USB: cdc-wdm: remove from device list on disconnect
authorBjørn Mork <bjorn@mork.no>
Wed, 9 May 2012 11:53:23 +0000 (13:53 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 11 May 2012 22:19:22 +0000 (15:19 -0700)
commit6286d85e8efdb59252d1ceb99a56fa6b0b11526c
tree37b91b39c74370899aedd708921f6774850cd52a
parent6b0b79d38806481c1c8fffa7c5842f3c83679a42
USB: cdc-wdm: remove from device list on disconnect

Prevents dereferencing an invalid struct usb_interface
pointer.

Always delete entry from device list whether or not the
rest of the device state cleanup is postponed. The device
list uses desc->intf as key, and wdm_open will dereference
this key while searching for a matching device.  A device
should not appear in the list unless probe() has succeeded
and disconnect() has not finished.

Cc: Oliver Neukum <oliver@neukum.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Bjørn Mork <bjorn@mork.no>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/cdc-wdm.c