# This is a BitKeeper generated patch for the following project: # Project Name: Linux kernel tree # This patch format is intended for GNU patch command version 2.5 or higher. # This patch includes the following deltas: # ChangeSet 1.579.9.7 -> 1.579.9.8 # drivers/usb/serial/usbserial.c 1.42 -> 1.43 # drivers/usb/serial/usb-serial.h 1.12 -> 1.13 # # The following is the BitKeeper ChangeSet Log # -------------------------------------------- # 02/09/23 greg@kroah.com 1.579.9.8 # [PATCH] USB: made port_softint global for other usb-serial drivers to use. # # Based off of a patch from Stuart MacDonald # -------------------------------------------- # diff -Nru a/drivers/usb/serial/usb-serial.h b/drivers/usb/serial/usb-serial.h --- a/drivers/usb/serial/usb-serial.h Mon Sep 23 15:15:49 2002 +++ b/drivers/usb/serial/usb-serial.h Mon Sep 23 15:15:49 2002 @@ -232,6 +232,7 @@ extern int usb_serial_register(struct usb_serial_device_type *new_device); extern void usb_serial_deregister(struct usb_serial_device_type *device); +extern void usb_serial_port_softint(void *private); extern int usb_serial_probe(struct usb_interface *iface, const struct usb_device_id *id); extern void usb_serial_disconnect(struct usb_interface *iface); diff -Nru a/drivers/usb/serial/usbserial.c b/drivers/usb/serial/usbserial.c --- a/drivers/usb/serial/usbserial.c Mon Sep 23 15:15:49 2002 +++ b/drivers/usb/serial/usbserial.c Mon Sep 23 15:15:49 2002 @@ -1090,6 +1090,8 @@ return; } + usb_serial_port_softint((void *)port); + queue_task(&port->tqueue, &tq_immediate); mark_bh(IMMEDIATE_BH); @@ -1108,14 +1110,18 @@ } } -static void port_softint(void *private) +void usb_serial_port_softint(void *private) { struct usb_serial_port *port = (struct usb_serial_port *)private; - struct usb_serial *serial = get_usb_serial (port, __FUNCTION__); + struct usb_serial *serial; struct tty_struct *tty; dbg("%s - port %d", __FUNCTION__, port->number); + if (!port) + return; + + serial = get_usb_serial (port, __FUNCTION__); if (!serial) return; @@ -1399,7 +1405,7 @@ port->number = i + serial->minor; port->serial = serial; port->magic = USB_SERIAL_PORT_MAGIC; - port->tqueue.routine = port_softint; + port->tqueue.routine = usb_serial_port_softint; port->tqueue.data = port; init_MUTEX (&port->sem); } @@ -1689,6 +1695,7 @@ EXPORT_SYMBOL(usb_serial_deregister); EXPORT_SYMBOL(usb_serial_probe); EXPORT_SYMBOL(usb_serial_disconnect); +EXPORT_SYMBOL(usb_serial_port_softint); #ifdef USES_EZUSB_FUNCTIONS EXPORT_SYMBOL(ezusb_writememory); EXPORT_SYMBOL(ezusb_set_reset);