From penberg@cs.helsinki.fi Wed Oct 29 10:34:59 2008 From: Pekka J Enberg Date: Tue, 28 Oct 2008 00:14:38 +0200 (EET) Subject: Staging: w35und: plug memory leak in wbsoft_tx() To: greg@kroah.com Cc: pavel@suse.cz, linux-kernel@vger.kernel.org Message-ID: From: Pekka Enberg There's no reason to duplicate the skb in wbsoft_tx() and leak GFP_ATOMIC memory as the contents are copied to ->TxBuffer in MdxTx() anyway before MLMESendFrame() returns. Signed-off-by: Pekka Enberg Acked-by: Pavel Machek Signed-off-by: Greg Kroah-Hartman --- drivers/staging/winbond/linux/wbusb.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) --- a/drivers/staging/winbond/linux/wbusb.c +++ b/drivers/staging/winbond/linux/wbusb.c @@ -107,11 +107,8 @@ static void wbsoft_configure_filter(stru static int wbsoft_tx(struct ieee80211_hw *dev, struct sk_buff *skb) { - char *buffer = kmalloc(skb->len, GFP_ATOMIC); - printk("Sending frame %d bytes\n", skb->len); - memcpy(buffer, skb->data, skb->len); - if (1 == MLMESendFrame(my_adapter, buffer, skb->len, FRAME_TYPE_802_11_MANAGEMENT)) - printk("frame sent ok (%d bytes)?\n", skb->len); + MLMESendFrame(my_adapter, skb->data, skb->len, FRAME_TYPE_802_11_MANAGEMENT); + return NETDEV_TX_OK; }