| From 342e4955a1f1ce28c70a589999b76365082dbf10 Mon Sep 17 00:00:00 2001 |
| From: Dave Penkler <dpenkler@gmail.com> |
| Date: Wed, 21 May 2025 14:16:56 +0200 |
| Subject: usb: usbtmc: Fix timeout value in get_stb |
| |
| From: Dave Penkler <dpenkler@gmail.com> |
| |
| 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 | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/class/usbtmc.c |
| +++ b/drivers/usb/class/usbtmc.c |
| @@ -486,6 +486,7 @@ static int usbtmc488_ioctl_read_stb(stru |
| __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(stru |
| } |
| |
| 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; |