Skip to contentSkip to conversation

FAILED: patch "[PATCH] usbip: vudc synchronize sysfs code paths" failed to apply to 4.14-stable tree

PATCH [email protected] 3 participants 5 messages Apr 11, 2021 – Apr 26, 2021

Subsystems (3)
lore
Share & tools
lore

[email protected]

author maintainer
#0 lore raw

The patch below does not apply to the 4.14-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 bd8b82042269a95db48074b8bb400678dbac1815 Mon Sep 17 00:00:00 2001
From: Shuah Khan <[email protected]>
Date: Mon, 29 Mar 2021 19:36:50 -0600
Subject: [PATCH] usbip: vudc synchronize 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 protect sysfs paths in vudc.

drivers/usb/usbip/vudc_dev.c +1 -0
index c8eeabdd9b56..2bc428f2e261 100644
@@ -572,6 +572,7 @@ static int init_vudc_hw(struct vudc *udc)
 	init_waitqueue_head(&udc->tx_waitq);
 
 	spin_lock_init(&ud->lock);
+	mutex_init(&ud->sysfs_lock);
 	ud->status = SDEV_ST_AVAILABLE;
 	ud->side = USBIP_VUDC;
 
drivers/usb/usbip/vudc_sysfs.c +5 -0
index 7383a543c6d1..f7633ee655a1 100644
@@ -112,6 +112,7 @@ static ssize_t usbip_sockfd_store(struct device *dev,
 		dev_err(dev, "no device");
 		return -ENODEV;
 	}
+	mutex_lock(&udc->ud.sysfs_lock);
 	spin_lock_irqsave(&udc->lock, flags);
 	/* Don't export what we don't have */
 	if (!udc->driver || !udc->pullup) {
@@ -187,6 +188,8 @@ static ssize_t usbip_sockfd_store(struct device *dev,
 
 		wake_up_process(udc->ud.tcp_rx);
 		wake_up_process(udc->ud.tcp_tx);
+
+		mutex_unlock(&udc->ud.sysfs_lock);
 		return count;
 
 	} else {
@@ -207,6 +210,7 @@ static ssize_t usbip_sockfd_store(struct device *dev,
 	}
 
 	spin_unlock_irqrestore(&udc->lock, flags);
+	mutex_unlock(&udc->ud.sysfs_lock);
 
 	return count;
 
@@ -216,6 +220,7 @@ static ssize_t usbip_sockfd_store(struct device *dev,
 	spin_unlock_irq(&udc->ud.lock);
 unlock:
 	spin_unlock_irqrestore(&udc->lock, flags);
+	mutex_unlock(&udc->ud.sysfs_lock);
 
 	return ret;
 }
#1 lore raw

Hi Greg,

Quoted 6 lines · On Sun, Apr 11, 2021 at 09:20:12AM +0200, [email protected] wrote:

The patch below does not apply to the 4.14-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]>.

Quoted 7 lines

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From bd8b82042269a95db48074b8bb400678dbac1815 Mon Sep 17 00:00:00 2001

Just wondering if you have missed this one as I am not seeing it in your queue for 4.14-stable but can see in 4.9-stable queue. And this will apply directly on top of your 4.14-stable queue.

--
Regards
Sudip

maintainer
#2 lore raw
Quoted 13 lines · Sudip Mukherjee

Hi Greg,

Quoted 10 lines · On Sun, Apr 11, 2021 at 09:20:12AM +0200, [email protected] wrote:

The patch below does not apply to the 4.14-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

Quoted 9 lines
Quoted 3 lines

------------------ original commit in Linus's tree ------------------

From bd8b82042269a95db48074b8bb400678dbac1815 Mon Sep 17 00:00:00 2001

Just wondering if you have missed this one as I am not seeing it in your queue for 4.14-stable but can see in 4.9-stable queue. And this will apply directly on top of your 4.14-stable queue.

This patch needed some work. Tom sent in the patch.

https://lore.kernel.org/stable/[email protected]/

thanks,
-- Shuah

author maintainer
#3 lore raw
Quoted 18 lines · Shuah Khan
Quoted 17 lines · Sudip Mukherjee

Hi Greg,

Quoted 13 lines · On Sun, Apr 11, 2021 at 09:20:12AM +0200, [email protected] wrote:

The patch below does not apply to the 4.14-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 bd8b82042269a95db48074b8bb400678dbac1815 Mon Sep 17 00:00:00 2001

Quoted 8 lines
Quoted 5 lines

Just wondering if you have missed this one as I am not seeing it in your queue for 4.14-stable but can see in 4.9-stable queue. And this will apply directly on top of your 4.14-stable queue.

This patch needed some work. Tom sent in the patch.

https://lore.kernel.org/stable/[email protected]/

Ok, I missed that.

Can I get a set of patches just for 4.14.y now? Mixing them in the series like that is a guarantee that someone will mess up. And I did.

thanks,

greg k-h

maintainer
#4 lore raw
Quoted 24 lines · Greg KH
Quoted 23 lines · Shuah Khan
Quoted 22 lines · Sudip Mukherjee

Hi Greg,

Quoted 6 lines · On Sun, Apr 11, 2021 at 09:20:12AM +0200, [email protected] wrote:

The patch below does not apply to the 4.14-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]>.

Quoted 7 lines

thanks,

greg k-h

------------------ original commit in Linus's tree ------------------

From bd8b82042269a95db48074b8bb400678dbac1815 Mon Sep 17 00:00:00 2001

Just wondering if you have missed this one as I am not seeing it in your queue for 4.14-stable but can see in 4.9-stable queue. And this will apply directly on top of your 4.14-stable queue.

Quoted 9 lines
Quoted 3 lines

This patch needed some work. Tom sent in the patch.

https://lore.kernel.org/stable/[email protected]/

Ok, I missed that.

Can I get a set of patches just for 4.14.y now? Mixing them in the series like that is a guarantee that someone will mess up. And I did.

Yes. My bad asking Tom to send this as a series. :(

Thanks Sudip for catching this.

Tom, Please resend this patch tagging it for 4.14.y

https://lore.kernel.org/stable/[email protected]/

This is the only patch that needed back-port for 4.14.x. Others are already in 4.14.y.

thanks,
-- Shuah