FAILED: patch "[PATCH] usbip: synchronize event handler with sysfs code paths" failed to apply to 4.9-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.9-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 363eaa3a450abb4e63bd6e3ad79d1f7a0f717814 Mon Sep 17 00:00:00 2001
From: Shuah Khan <[email protected]>
Date: Mon, 29 Mar 2021 19:36:51 -0600
Subject: [PATCH] usbip: synchronize event handler with sysfs code paths
Fuzzing uncovered race condition between sysfs code paths in usbip drivers. Device connect/disconnect code paths initiated through sysfs interface are prone to races if disconnect happens during connect and vice versa.
Use sysfs_lock to synchronize event handler with sysfs paths in usbip drivers.
drivers/usb/usbip/usbip_event.c +2 -0
@@ -70,6 +70,7 @@ static void event_handler(struct work_struct *work)while ((ud =get_event ()) !=NULL ) {usbip_dbg_eh ("pending event %lx\n" , ud->event); +mutex_lock (&ud->sysfs_lock);/* * NOTE: shutdown must come first. * Shutdown the device.
@@ -90,6 +91,7 @@ static void event_handler(struct work_struct *work) ud->eh_ops.unusable (ud);unset_event (ud,USBIP_EH_UNUSABLE ); } +mutex_unlock (&ud->sysfs_lock);wake_up (&ud->eh_waitq); }