David Daney
0e6826c73c
MIPS: __raw_spin_lock() may spin forever on ticket wrap.
...
If the lock is not acquired and has to spin *and* the second attempt
to acquire the lock fails, the delay time is not masked by the ticket
range mask. If the ticket number wraps around to zero, the result is
that the lock sampling delay is essentially infinite (due to casting
-1 to an unsigned int).
The fix: Always mask the difference between my_ticket and the current
ticket value before calculating the delay.
Signed-off-by: David Daney <ddaney@caviumnetworks.com>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2009-03-30 14:49:39 +02:00
..
2008-10-11 16:18:52 +01:00
2008-10-27 16:18:30 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-11 09:57:27 +00:00
2008-10-15 12:46:50 +01:00
2009-01-11 09:57:21 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-11 09:57:24 +00:00
2008-10-15 12:46:51 +01:00
2009-01-11 09:57:24 +00:00
2008-10-15 12:46:51 +01:00
2009-01-11 09:57:24 +00:00
2009-01-11 09:57:24 +00:00
2008-10-11 16:18:52 +01:00
2009-01-11 09:57:24 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-27 16:18:29 +00:00
2008-10-11 16:18:52 +01:00
2009-01-30 21:33:01 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-27 16:18:27 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-11 09:57:21 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-30 21:32:58 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-12-12 18:12:23 +00:00
2009-01-30 21:32:57 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-30 14:44:33 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-30 14:44:34 +00:00
2008-11-24 16:35:07 +00:00
2008-10-11 16:18:52 +01:00
2009-01-14 19:56:50 -08:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-15 12:46:49 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-03-08 09:59:39 -07:00
2008-10-11 16:18:52 +01:00
2009-01-11 09:57:22 +00:00
2008-10-11 16:18:56 +01:00
2009-01-11 09:57:22 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-12-22 08:54:47 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-30 14:44:34 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-03-11 21:11:07 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-11 09:57:22 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-12 15:27:13 -08:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-14 19:56:50 -08:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-20 08:52:41 -07:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-03-23 23:38:05 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-01-11 09:57:22 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-12-09 21:55:43 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-03-11 21:11:07 +01:00
2009-01-11 09:57:22 +00:00
2009-01-30 21:32:58 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-03-13 23:07:59 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-02-01 11:01:26 +05:30
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-03-30 14:49:39 +02:00
2009-01-11 09:57:24 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-02-15 22:43:33 -08:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:54 +01:00
2009-03-30 14:49:39 +02:00
2009-01-11 09:57:24 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2009-02-01 11:01:27 +05:30
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:57 +01:00
2008-10-11 16:18:52 +01:00
2009-01-30 21:32:57 +00:00
2009-03-13 23:07:59 +01:00
2009-01-11 09:57:26 +00:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:54 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:56 +01:00
2008-10-11 16:18:52 +01:00
2008-10-11 16:18:52 +01:00