summaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAlan Cox2009-07-09 14:36:22 +0200
committerLinus Torvalds2009-07-11 04:17:22 +0200
commit24a15a62dcb1968bf4ffdae55c88fa934d971180 (patch)
tree39a2231da07c6a47a4b66baf0158591a9739ac8f /include/linux
parenttty: Sort out the USB sysrq changes that wrecked performance (diff)
downloadkernel-qcow2-linux-24a15a62dcb1968bf4ffdae55c88fa934d971180.tar.gz
kernel-qcow2-linux-24a15a62dcb1968bf4ffdae55c88fa934d971180.tar.xz
kernel-qcow2-linux-24a15a62dcb1968bf4ffdae55c88fa934d971180.zip
tty: Fix USB kref leak
The sysrq code acquired a kref leak. Fix it by passing the tty separately from the caller (thus effectively using the callers kref which all the callers hold anyway) Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/usb/serial.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/usb/serial.h b/include/linux/usb/serial.h
index 44801d26a37a..0ec50ba62139 100644
--- a/include/linux/usb/serial.h
+++ b/include/linux/usb/serial.h
@@ -317,7 +317,8 @@ extern int usb_serial_generic_register(int debug);
extern void usb_serial_generic_deregister(void);
extern void usb_serial_generic_resubmit_read_urb(struct usb_serial_port *port,
gfp_t mem_flags);
-extern int usb_serial_handle_sysrq_char(struct usb_serial_port *port,
+extern int usb_serial_handle_sysrq_char(struct tty_struct *tty,
+ struct usb_serial_port *port,
unsigned int ch);
extern int usb_serial_handle_break(struct usb_serial_port *port);