From: Brian Downing Date: Sat, 4 Aug 2012 23:32:19 +0000 (-0500) Subject: usb: musb: Fix bad call to kfree() in musb_free X-Git-Tag: v3.7-rc1~171^2~138^2~19 X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=decadacbd7259b1dce0aeb9cb4468432edf88fb4;p=~emulex%2Finfiniband.git usb: musb: Fix bad call to kfree() in musb_free Commit 622859634a663c5e55d0e2a2cdbb55ac058d97b3 (usb: musb: drop a gigantic amount of ifdeferry) included this change: @@ -1901,11 +1844,7 @@ static void musb_free(struct musb *musb) dma_controller_destroy(c); } -#ifdef CONFIG_USB_MUSB_HDRC_HCD - usb_put_hcd(musb_to_hcd(musb)); -#else kfree(musb); -#endif } /* Since musb comes from struct usb_hcd's hcd_priv, which is allocated on the end of that struct, kfree'ing it is not going to work. Replace kfree(musb) with usb_put_hcd(musb_to_hcd(musb)), which appears to be the right thing to do here. Signed-off-by: Brian Downing Signed-off-by: Felipe Balbi --- diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c index 9bc4feab4fe..65b3f531092 100644 --- a/drivers/usb/musb/musb_core.c +++ b/drivers/usb/musb/musb_core.c @@ -1868,7 +1868,7 @@ static void musb_free(struct musb *musb) dma_controller_destroy(c); } - kfree(musb); + usb_put_hcd(musb_to_hcd(musb)); } /*