OSDN Git Service

can: gs_usb: fixed disconnect bug by removing erroneous use of kfree()
authorMaximilain Schneider <max@schneidersoft.net>
Tue, 23 Feb 2016 01:17:28 +0000 (01:17 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Mar 2016 15:42:59 +0000 (08:42 -0700)
commit16517aa05d49d235451e357e2ef5b38c0584904b
treedc421a3d4bcca287e4682935cc5aa4c7615aa6a2
parentbfed1f518daa78346fb3f118367212ad352b2f07
can: gs_usb: fixed disconnect bug by removing erroneous use of kfree()

commit e9a2d81b1761093386a0bb8a4f51642ac785ef63 upstream.

gs_destroy_candev() erroneously calls kfree() on a struct gs_can *, which is
allocated through alloc_candev() and should instead be freed using
free_candev() alone.

The inappropriate use of kfree() causes the kernel to hang when
gs_destroy_candev() is called.

Only the struct gs_usb * which is allocated through kzalloc() should be freed
using kfree() when the device is disconnected.

Signed-off-by: Maximilian Schneider <max@schneidersoft.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/can/usb/gs_usb.c