summaryrefslogtreecommitdiffstats
path: root/drivers/usb/serial/io_tables.h
diff options
context:
space:
mode:
authorJohan Hovold <jhovold@gmail.com>2012-10-17 13:34:57 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-10-17 13:47:58 -0700
commitc27f3efc56080a246f6ab7f57f0a6f56d256d769 (patch)
treea913ccc587e06fc77d9f834b11c96018c7e63f56 /drivers/usb/serial/io_tables.h
parent95940a04bfe8a4d246f4ca17c6a3b00148bdead0 (diff)
downloadlinux-stable-c27f3efc56080a246f6ab7f57f0a6f56d256d769.tar.gz
linux-stable-c27f3efc56080a246f6ab7f57f0a6f56d256d769.tar.bz2
linux-stable-c27f3efc56080a246f6ab7f57f0a6f56d256d769.zip
USB: io_edgeport: fix port-data memory leak
Fix port-data memory leak by moving port data allocation and deallocation to port_probe and port_remove. Since commit 0998d0631001288 (device-core: Ensure drvdata = NULL when no driver is bound) the port private data is no longer freed at release as it is no longer accessible. Compile-only tested. Cc: <stable@vger.kernel.org> Signed-off-by: Johan Hovold <jhovold@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/usb/serial/io_tables.h')
-rw-r--r--drivers/usb/serial/io_tables.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/usb/serial/io_tables.h b/drivers/usb/serial/io_tables.h
index 350afddb55ba..1511dd0ad324 100644
--- a/drivers/usb/serial/io_tables.h
+++ b/drivers/usb/serial/io_tables.h
@@ -110,6 +110,8 @@ static struct usb_serial_driver edgeport_2port_device = {
.attach = edge_startup,
.disconnect = edge_disconnect,
.release = edge_release,
+ .port_probe = edge_port_probe,
+ .port_remove = edge_port_remove,
.ioctl = edge_ioctl,
.set_termios = edge_set_termios,
.tiocmget = edge_tiocmget,
@@ -139,6 +141,8 @@ static struct usb_serial_driver edgeport_4port_device = {
.attach = edge_startup,
.disconnect = edge_disconnect,
.release = edge_release,
+ .port_probe = edge_port_probe,
+ .port_remove = edge_port_remove,
.ioctl = edge_ioctl,
.set_termios = edge_set_termios,
.tiocmget = edge_tiocmget,
@@ -168,6 +172,8 @@ static struct usb_serial_driver edgeport_8port_device = {
.attach = edge_startup,
.disconnect = edge_disconnect,
.release = edge_release,
+ .port_probe = edge_port_probe,
+ .port_remove = edge_port_remove,
.ioctl = edge_ioctl,
.set_termios = edge_set_termios,
.tiocmget = edge_tiocmget,
@@ -197,6 +203,8 @@ static struct usb_serial_driver epic_device = {
.attach = edge_startup,
.disconnect = edge_disconnect,
.release = edge_release,
+ .port_probe = edge_port_probe,
+ .port_remove = edge_port_remove,
.ioctl = edge_ioctl,
.set_termios = edge_set_termios,
.tiocmget = edge_tiocmget,