From: Xiong Nandi Date: Tue, 31 Dec 2024 16:15:37 +0000 (+0800) Subject: usbip: Fix seqnum sign extension issue in vhci_tx_urb X-Git-Tag: v6.14-rc1~69^2~8 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=15b93f340fa6bcb0b47f574e1cd3b5ce02fec403;p=linux-block.git 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 Acked-by: Shuah Khan Link: https://lore.kernel.org/r/20241231161539.20192-2-xndchn@gmail.com Signed-off-by: Greg Kroah-Hartman --- 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");