diff options
author | Richard Kennedy <richard@rsk.demon.co.uk> | 2008-03-28 17:50:30 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-04-02 18:06:09 -0400 |
commit | 9cebcdc7fb10d478b22d7125b215cee3b9ea82f2 (patch) | |
tree | c69a21cb09a1037c4d7a7358329eb626effb3f42 /drivers | |
parent | 822470537d0fc1dee38a2a9c8b8c398bfbb332bb (diff) |
USB: ohci: fix 2 timers to fire at jiffies + 1s
Code inspection discovered in 2 places timers were being incorrectly setup
using round_jiffies_relative(HZ). The timer would then fire at time (0 <= T <
HZ).
Fix them to use round_jiffies(jiffies + HZ);
Signed-off-by: Richard Kennedy <richard@rsk.demon.co.uk>
Cc: Alan Stern <stern@rowland.harvard.edu>
Cc: David Brownell <david-b@pacbell.net>
Cc: Arjan van de Ven <arjan@infradead.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/usb/host/ohci-hcd.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/ohci-q.c | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c index dd4798ee028e..33f1c1c32edf 100644 --- a/drivers/usb/host/ohci-hcd.c +++ b/drivers/usb/host/ohci-hcd.c | |||
@@ -467,7 +467,7 @@ static void unlink_watchdog_func(unsigned long _ohci) | |||
467 | out: | 467 | out: |
468 | kfree(seen); | 468 | kfree(seen); |
469 | if (ohci->eds_scheduled) | 469 | if (ohci->eds_scheduled) |
470 | mod_timer(&ohci->unlink_watchdog, round_jiffies_relative(HZ)); | 470 | mod_timer(&ohci->unlink_watchdog, round_jiffies(jiffies + HZ)); |
471 | done: | 471 | done: |
472 | spin_unlock_irqrestore(&ohci->lock, flags); | 472 | spin_unlock_irqrestore(&ohci->lock, flags); |
473 | } | 473 | } |
diff --git a/drivers/usb/host/ohci-q.c b/drivers/usb/host/ohci-q.c index 51817322232b..9c9f3b59186f 100644 --- a/drivers/usb/host/ohci-q.c +++ b/drivers/usb/host/ohci-q.c | |||
@@ -169,7 +169,7 @@ static int ed_schedule (struct ohci_hcd *ohci, struct ed *ed) | |||
169 | if (quirk_zfmicro(ohci) | 169 | if (quirk_zfmicro(ohci) |
170 | && (ed->type == PIPE_INTERRUPT) | 170 | && (ed->type == PIPE_INTERRUPT) |
171 | && !(ohci->eds_scheduled++)) | 171 | && !(ohci->eds_scheduled++)) |
172 | mod_timer(&ohci->unlink_watchdog, round_jiffies_relative(HZ)); | 172 | mod_timer(&ohci->unlink_watchdog, round_jiffies(jiffies + HZ)); |
173 | wmb (); | 173 | wmb (); |
174 | 174 | ||
175 | /* we care about rm_list when setting CLE/BLE in case the HC was at | 175 | /* we care about rm_list when setting CLE/BLE in case the HC was at |