Re: [PATCH 6.1] char: xillybus: Prevent use-after-free due to race condition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[ Sasha's backport helper bot ]

Hi,

The upstream commit SHA1 provided is correct: 282a4b71816b6076029017a7bab3a9dcee12a920

WARNING: Author mismatch between patch and upstream commit:
Backport author: Bin Lan <bin.lan.cn@xxxxxxxxxxxxx>
Commit author: Eli Billauer <eli.billauer@xxxxxxxxx>


Status in newer kernel trees:
6.11.y | Present (exact SHA1)
6.6.y | Present (exact SHA1)
6.1.y | Not found

Note: The patch differs from the upstream commit:
---
--- -	2024-11-20 07:57:09.359392384 -0500
+++ /tmp/tmp.xddhwSQUsX	2024-11-20 07:57:09.349600178 -0500
@@ -1,3 +1,5 @@
+[ Upstream commit 282a4b71816b6076029017a7bab3a9dcee12a920 ]
+
 The driver for XillyUSB devices maintains a kref reference count on each
 xillyusb_dev structure, which represents a physical device. This reference
 count reaches zero when the device has been disconnected and there are no
@@ -41,15 +43,16 @@
 Signed-off-by: Eli Billauer <eli.billauer@xxxxxxxxx>
 Link: https://lore.kernel.org/r/20221030094209.65916-1-eli.billauer@xxxxxxxxx
 Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
+Signed-off-by: Bin Lan <bin.lan.cn@xxxxxxxxxxxxx>
 ---
  drivers/char/xillybus/xillyusb.c | 22 +++++++++++++++++++---
  1 file changed, 19 insertions(+), 3 deletions(-)
 
 diff --git a/drivers/char/xillybus/xillyusb.c b/drivers/char/xillybus/xillyusb.c
-index 39bcbfd908b46..5a5afa14ca8cb 100644
+index 3a2a0fb3d928..45771b1a3716 100644
 --- a/drivers/char/xillybus/xillyusb.c
 +++ b/drivers/char/xillybus/xillyusb.c
-@@ -184,6 +184,14 @@ struct xillyusb_dev {
+@@ -185,6 +185,14 @@ struct xillyusb_dev {
  	struct mutex process_in_mutex; /* synchronize wakeup_all() */
  };
  
@@ -64,7 +67,7 @@
  /* FPGA to host opcodes */
  enum {
  	OPCODE_DATA = 0,
-@@ -1237,9 +1245,16 @@ static int xillyusb_open(struct inode *inode, struct file *filp)
+@@ -1234,9 +1242,16 @@ static int xillyusb_open(struct inode *inode, struct file *filp)
  	int rc;
  	int index;
  
@@ -82,7 +85,7 @@
  
  	chan = &xdev->channels[index];
  	filp->private_data = chan;
-@@ -1275,8 +1290,6 @@ static int xillyusb_open(struct inode *inode, struct file *filp)
+@@ -1272,8 +1287,6 @@ static int xillyusb_open(struct inode *inode, struct file *filp)
  	    ((filp->f_mode & FMODE_WRITE) && chan->open_for_write))
  		goto unmutex_fail;
  
@@ -91,7 +94,7 @@
  	if (filp->f_mode & FMODE_READ)
  		chan->open_for_read = 1;
  
-@@ -1413,6 +1426,7 @@ static int xillyusb_open(struct inode *inode, struct file *filp)
+@@ -1410,6 +1423,7 @@ static int xillyusb_open(struct inode *inode, struct file *filp)
  	return rc;
  
  unmutex_fail:
@@ -99,7 +102,7 @@
  	mutex_unlock(&chan->lock);
  	return rc;
  }
-@@ -2227,7 +2241,9 @@ static void xillyusb_disconnect(struct usb_interface *interface)
+@@ -2244,7 +2258,9 @@ static void xillyusb_disconnect(struct usb_interface *interface)
  
  	xdev->dev = NULL;
  
@@ -109,3 +112,6 @@
  }
  
  static struct usb_driver xillyusb_driver = {
+-- 
+2.43.0
+
---

Results of testing on various branches:

| Branch                    | Patch Apply | Build Test |
|---------------------------|-------------|------------|
| stable/linux-6.1.y        |  Success    |  Success   |




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux