Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9cebcdc7 authored by Richard Kennedy's avatar Richard Kennedy Committed by Greg Kroah-Hartman
Browse files

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: default avatarRichard 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: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 82247053
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -467,7 +467,7 @@ static void unlink_watchdog_func(unsigned long _ohci)
out:
out:
	kfree(seen);
	kfree(seen);
	if (ohci->eds_scheduled)
	if (ohci->eds_scheduled)
		mod_timer(&ohci->unlink_watchdog, round_jiffies_relative(HZ));
		mod_timer(&ohci->unlink_watchdog, round_jiffies(jiffies + HZ));
done:
done:
	spin_unlock_irqrestore(&ohci->lock, flags);
	spin_unlock_irqrestore(&ohci->lock, flags);
}
}
+1 −1
Original line number Original line Diff line number Diff line
@@ -169,7 +169,7 @@ static int ed_schedule (struct ohci_hcd *ohci, struct ed *ed)
	if (quirk_zfmicro(ohci)
	if (quirk_zfmicro(ohci)
			&& (ed->type == PIPE_INTERRUPT)
			&& (ed->type == PIPE_INTERRUPT)
			&& !(ohci->eds_scheduled++))
			&& !(ohci->eds_scheduled++))
		mod_timer(&ohci->unlink_watchdog, round_jiffies_relative(HZ));
		mod_timer(&ohci->unlink_watchdog, round_jiffies(jiffies + HZ));
	wmb ();
	wmb ();


	/* we care about rm_list when setting CLE/BLE in case the HC was at
	/* we care about rm_list when setting CLE/BLE in case the HC was at