summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiong Nandi <xndchn@gmail.com>2025-01-01 00:15:37 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2025-01-17 12:38:01 +0100
commit15b93f340fa6bcb0b47f574e1cd3b5ce02fec403 (patch)
treef98a47138ad6b7deeb7f987e8a2bbc5f3278a3be
parent6d7965fb5cde90a6ef7bbbf0b3debb33a196cf9d (diff)
usbip: Fix seqnum sign extension issue in vhci_tx_urb
The atomic_inc_return function returns an int, while priv->seqnum is an unsigned long. So we must cast the result to u32 to prevent potential sign extension and size mismatch issues. Signed-off-by: Xiong Nandi <xndchn@gmail.com> Acked-by: Shuah Khan <skhan@linuxfoundation.org> Link: https://lore.kernel.org/r/20241231161539.20192-2-xndchn@gmail.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/usb/usbip/vhci_hcd.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
index f4843ea5080c..e70fba9f55d6 100644
--- a/drivers/usb/usbip/vhci_hcd.c
+++ b/drivers/usb/usbip/vhci_hcd.c
@@ -676,7 +676,7 @@ static void vhci_tx_urb(struct urb *urb, struct vhci_device *vdev)
spin_lock_irqsave(&vdev->priv_lock, flags);
- priv->seqnum = atomic_inc_return(&vhci_hcd->seqnum);
+ priv->seqnum = (u32)atomic_inc_return(&vhci_hcd->seqnum);
if (priv->seqnum == 0xffff)
dev_info(&urb->dev->dev, "seqnum max\n");