Skip to content

Commit

Permalink
USB: serial: introduce a flag into the usb serial layer to tell drive…
Browse files Browse the repository at this point in the history
…rs that their URBs are killed due to suspension

This patch introduces a flag into the usb serial layer to tell drivers
that their URBs are killed due to suspension. That is necessary to let
drivers know whether they should report an error back.

Signed-off-by: Oliver Neukum <oneukum@suse.de>

Hi Greg,

this is for 2.6.30. Patches to use this in drivers are under development.

	Regards
		Oliver
  • Loading branch information
Oliver Neukum authored and Greg Kroah-Hartman committed Mar 24, 2009
1 parent 6e14bda commit f8bece8
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 1 deletion.
4 changes: 4 additions & 0 deletions drivers/usb/serial/usb-serial.c
Original file line number Diff line number Diff line change
Expand Up @@ -1067,6 +1067,8 @@ int usb_serial_suspend(struct usb_interface *intf, pm_message_t message)
struct usb_serial_port *port;
int i, r = 0;

serial->suspending = 1;

for (i = 0; i < serial->num_ports; ++i) {
port = serial->port[i];
if (port)
Expand All @@ -1084,8 +1086,10 @@ int usb_serial_resume(struct usb_interface *intf)
{
struct usb_serial *serial = usb_get_intfdata(intf);

serial->suspending = 0;
if (serial->type->resume)
return serial->type->resume(serial);

return 0;
}
EXPORT_SYMBOL(usb_serial_resume);
Expand Down
3 changes: 2 additions & 1 deletion include/linux/usb/serial.h
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,8 @@ struct usb_serial {
struct usb_device *dev;
struct usb_serial_driver *type;
struct usb_interface *interface;
unsigned char disconnected;
unsigned char disconnected:1;
unsigned char suspending:1;
unsigned char minor;
unsigned char num_ports;
unsigned char num_port_pointers;
Expand Down

0 comments on commit f8bece8

Please sign in to comment.