2.4.36-stable kernel tree
リビジョン | f1affe8a24b00faa282f0c98bfd62ca573af6052 (tree) |
---|---|
日時 | 2007-02-03 18:44:42 |
作者 | Oliver Neukum <oliver@neuk...> |
コミッター | Willy Tarreau |
[PATCH] proper locking on disconnect for mdc800
this makes mdc800 take the necessary lock in disconnect() to prevent
submission of an URB for a disconnected device.
Signed-off-by: Oliver Neukum <oliver@neukum.name>
@@ -523,7 +523,8 @@ static void mdc800_usb_disconnect (struct usb_device *dev,void* ptr) | ||
523 | 523 | |
524 | 524 | if (mdc800->state == NOT_CONNECTED) |
525 | 525 | return; |
526 | - | |
526 | + | |
527 | + down (&mdc800->io_lock); | |
527 | 528 | mdc800->state=NOT_CONNECTED; |
528 | 529 | |
529 | 530 | usb_unlink_urb (mdc800->irq_urb); |
@@ -533,6 +534,7 @@ static void mdc800_usb_disconnect (struct usb_device *dev,void* ptr) | ||
533 | 534 | usb_driver_release_interface (&mdc800_usb_driver, &dev->actconfig->interface[1]); |
534 | 535 | |
535 | 536 | mdc800->dev=0; |
537 | + up (&mdc800->io_lock); | |
536 | 538 | info ("Mustek MDC800 disconnected from USB."); |
537 | 539 | } |
538 | 540 |