USB: fix port probing and removal in garmin_gps
authorAlan Stern <stern@rowland.harvard.edu>
Wed, 10 Oct 2012 18:10:21 +0000 (14:10 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 16 Oct 2012 17:25:55 +0000 (10:25 -0700)
commitdb5c8b524444d4fc6b1f32d368a50a3729e50002
treeed09dfb961fd6c505dc292cf26335e7110db5fe3
parent8bf769eb5f6efc33f95088850f33fcc05d28b508
USB: fix port probing and removal in garmin_gps

This patch (as1615) fixes a bug in the Garmin USB serial driver.  It
uses attach, disconnect, and release routines to carry out actions
that should be handled by port_probe and port_remove routines, because
they access port-specific data.

The bug causes an oops when the device in unplugged, because the
private data for each port structure now gets erased when the port is
unbound from the driver, resulting in a null-pointer dereference.

Signed-off-by: Alan Stern <stern@rowland.harvard.edu>
Reported--by: Markus Schauler <mschauler@gmail.com>
Tested-by: Markus Schauler <mschauler@gmail.com>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/serial/garmin_gps.c