USB: serial: fix unthrottle races
PATCH 1/5 USB: serial: fix unthrottle races
Review void usb_serial_generic_unthrottle(struct tty_struct *tty) · line 513
Quoted 12 lines · Johan Hovold
(quoted diff) +6
-0@@ -484,6 +503,12 @@ void usb_serial_generic_unthrottle(struct tty_struct *tty) port->throttled = port->throttle_req = 0; spin_unlock_irq(&port->lock); + /* + * Matches the smp_mb__after_atomic() in + * usb_serial_generic_read_bulk_callback(). + */ + smp_mb(); + if (was_throttled) usb_serial_generic_submit_read_urbs(port, GFP_KERNEL);
Doesn't the spin_unlock_irq() imply smp_mb()?
Otherwise it looks correct to me.
Regards
Oliver