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>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
6d7965fb5c
commit
15b93f340f
@@ -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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user