]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
usb: usbtmc: Fix timeout value in get_stb
authorDave Penkler <dpenkler@gmail.com>
Wed, 21 May 2025 12:16:56 +0000 (14:16 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 27 Jun 2025 10:04:00 +0000 (11:04 +0100)
commit 342e4955a1f1ce28c70a589999b76365082dbf10 upstream.

wait_event_interruptible_timeout requires a timeout argument
in units of jiffies. It was being called in usbtmc_get_stb
with the usb timeout value which is in units of milliseconds.

Pass the timeout argument converted to jiffies.

Fixes: 048c6d88a021 ("usb: usbtmc: Add ioctls to set/get usb timeout")
Cc: stable@vger.kernel.org
Signed-off-by: Dave Penkler <dpenkler@gmail.com>
Link: https://lore.kernel.org/r/20250521121656.18174-4-dpenkler@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/class/usbtmc.c

index f76fedd8fa900b738e7ae8110cbb668be45093b1..ff706f48e0ada935eeda82973f95c3151f9ea1d4 100644 (file)
@@ -486,6 +486,7 @@ static int usbtmc488_ioctl_read_stb(struct usbtmc_file_data *file_data,
        __u8 stb;
        int rv;
        long wait_rv;
+       unsigned long expire;
 
        dev_dbg(dev, "Enter ioctl_read_stb iin_ep_present: %d\n",
                data->iin_ep_present);
@@ -528,10 +529,11 @@ static int usbtmc488_ioctl_read_stb(struct usbtmc_file_data *file_data,
        }
 
        if (data->iin_ep_present) {
+               expire = msecs_to_jiffies(file_data->timeout);
                wait_rv = wait_event_interruptible_timeout(
                        data->waitq,
                        atomic_read(&data->iin_data_valid) != 0,
-                       file_data->timeout);
+                       expire);
                if (wait_rv < 0) {
                        dev_dbg(dev, "wait interrupted %ld\n", wait_rv);
                        rv = wait_rv;