diff options
author | Thomas Gleixner <tglx@linutronix.de> | 2017-11-01 21:00:19 +0100 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2017-11-01 21:00:19 +0100 |
commit | da2963e8fcd77c328f3da40c0aa8b650f18ed9ed (patch) | |
tree | e53458c1024d34fbe27d6a77b5c196507abb5bb3 /drivers/usb/misc/usbtest.c | |
parent | 00ed87da35e88a7a4d7f41673beab52ef828f12b (diff) | |
parent | 856ec53fcab37f52b184b0b2e3757702005455ff (diff) |
Merge tag 'timers-conversion-next2' of https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux into timers/core
Pull the next batch of timer conversions from Kees Cook:
- Second batch of scsi conversions that have been Reviewed and/or Acked.
- Various *_on_stack() changes for USB, Acked by Greg.
- DRM conversion that was declared too late for drm's tree, but Acked for timers.
- RAS driver conversion, Acked.
Diffstat (limited to 'drivers/usb/misc/usbtest.c')
-rw-r--r-- | drivers/usb/misc/usbtest.c | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c index eee82ca55b7b3..b1ad69edf8395 100644 --- a/drivers/usb/misc/usbtest.c +++ b/drivers/usb/misc/usbtest.c @@ -575,11 +575,16 @@ alloc_sglist(int nents, int max, int vary, struct usbtest_dev *dev, int pipe) return sg; } -static void sg_timeout(unsigned long _req) +struct sg_timeout { + struct timer_list timer; + struct usb_sg_request *req; +}; + +static void sg_timeout(struct timer_list *t) { - struct usb_sg_request *req = (struct usb_sg_request *) _req; + struct sg_timeout *timeout = from_timer(timeout, t, timer); - usb_sg_cancel(req); + usb_sg_cancel(timeout->req); } static int perform_sglist( @@ -593,9 +598,11 @@ static int perform_sglist( { struct usb_device *udev = testdev_to_usbdev(tdev); int retval = 0; - struct timer_list sg_timer; + struct sg_timeout timeout = { + .req = req, + }; - setup_timer_on_stack(&sg_timer, sg_timeout, (unsigned long) req); + timer_setup_on_stack(&timeout.timer, sg_timeout, 0); while (retval == 0 && iterations-- > 0) { retval = usb_sg_init(req, udev, pipe, @@ -606,13 +613,14 @@ static int perform_sglist( if (retval) break; - mod_timer(&sg_timer, jiffies + + mod_timer(&timeout.timer, jiffies + msecs_to_jiffies(SIMPLE_IO_TIMEOUT)); usb_sg_wait(req); - if (!del_timer_sync(&sg_timer)) + if (!del_timer_sync(&timeout.timer)) retval = -ETIMEDOUT; else retval = req->status; + destroy_timer_on_stack(&timeout.timer); /* FIXME check resulting data pattern */ |