Tejun Heo
3ff0aeceb4
workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s
...
commit fc4b514f27 upstream.
8852aac25e ("workqueue: mod_delayed_work_on() shouldn't queue timer on
0 delay") unexpectedly uncovered a very nasty abuse of delayed_work in
megaraid - it allocated work_struct, casted it to delayed_work and
then pass that into queue_delayed_work().
Previously, this was okay because 0 @delay short-circuited to
queue_work() before doing anything with delayed_work. 8852aac25e
moved 0 @delay test into __queue_delayed_work() after sanity check on
delayed_work making megaraid trigger BUG_ON().
Although megaraid is already fixed by c1d390d8e6 ("megaraid: fix
BUG_ON() from incorrect use of delayed work"), this patch converts
BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s so that such
abusers, if there are more, trigger warning but don't crash the
machine.
Signed-off-by: Tejun Heo <tj@kernel.org >
Cc: Xiaotian Feng <xtfeng@gmail.com >
Signed-off-by: Shuah Khan <shuah.khan@hp.com >
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
2012-12-17 10:49:02 -08:00
..
2012-04-13 08:14:07 -07:00
2012-10-02 09:47:24 -07:00
2011-06-15 20:04:01 -07:00
2012-08-15 12:04:28 -07:00
2012-08-09 08:27:35 -07:00
2012-10-02 09:47:52 -07:00
2012-07-16 08:47:51 -07:00
2012-10-02 09:47:41 -07:00
2012-09-14 10:00:38 -07:00
2011-03-14 09:15:23 -04:00
2011-03-03 10:55:40 -08:00
2011-03-03 10:55:40 -08:00
2011-04-27 15:11:03 +02:00
2011-03-23 19:46:28 -07:00
2011-05-19 18:51:57 +10:00
2011-12-09 08:52:27 -08:00
2012-10-28 10:02:12 -07:00
2012-05-21 09:40:04 -07:00
2012-01-12 11:35:46 -08:00
2012-10-13 05:28:15 +09:00
2011-03-23 19:47:19 -07:00
2012-04-13 08:14:08 -07:00
2012-10-02 09:47:55 -07:00
2011-05-20 08:56:56 +02:00
2012-08-01 12:27:20 -07:00
2011-05-17 23:19:17 +02:00
2012-04-22 16:21:45 -07:00
2012-12-03 12:59:14 -08:00
2011-03-23 19:47:08 -07:00
2012-07-19 08:58:46 -07:00
2012-01-06 14:14:13 -08:00
2011-12-09 08:52:50 -08:00
2011-03-25 17:52:22 -07:00
2011-04-10 17:01:05 +02:00
2011-05-11 21:37:15 +02:00
2011-11-11 09:35:48 -08:00
2012-03-12 10:32:57 -07:00
2011-04-19 16:45:51 -07:00
2011-05-28 17:02:57 +02:00
2011-03-31 11:26:23 -03:00
2011-03-23 13:54:47 +01:00
2011-06-07 12:25:50 +02:00
2011-05-26 17:12:34 -07:00
2012-10-21 09:17:10 -07:00
2011-04-14 08:52:33 +02:00
2011-04-14 08:52:33 +02:00
2011-05-25 08:39:17 -07:00
2011-04-14 08:52:33 +02:00
2011-05-26 17:12:34 -07:00
2011-03-31 11:26:23 -03:00
2012-02-13 11:06:10 -08:00
2011-05-19 16:55:28 +09:30
2011-03-23 19:46:58 -07:00
2011-04-18 10:35:30 -07:00
2011-05-29 11:18:09 -07:00
2011-10-25 07:10:14 +02:00
2011-05-24 12:10:51 +02:00
2012-02-03 09:18:57 -08:00
2011-05-26 17:12:37 -07:00
2011-05-25 19:20:21 +02:00
2011-05-05 23:16:57 -07:00
2011-05-05 23:16:58 -07:00
2011-05-20 12:50:29 -07:00
2011-05-05 23:16:57 -07:00
2011-07-20 10:50:12 -07:00
2011-06-15 23:07:21 -07:00
2012-10-13 05:28:11 +09:00
2011-06-16 16:12:05 -07:00
2012-02-20 12:48:10 -08:00
2011-03-23 19:46:22 -07:00
2012-11-26 11:34:58 -08:00
2011-01-27 21:13:51 -05:00
2011-01-27 21:13:51 -05:00
2011-02-22 22:07:22 +01:00
2011-01-27 21:13:51 -05:00
2012-12-10 10:45:08 -08:00
2012-12-10 10:45:08 -08:00
2011-04-24 13:18:38 +02:00
2011-07-20 18:32:40 +02:00
2011-07-20 18:32:41 +02:00
2011-04-14 08:52:36 +02:00
2012-02-13 11:06:08 -08:00
2011-05-28 17:02:54 +02:00
2011-04-14 08:52:36 +02:00
2012-10-13 05:28:15 +09:00
2011-11-11 09:36:23 -08:00
2011-06-17 10:17:12 +02:00
2011-07-20 10:50:12 -07:00
2011-01-14 04:56:49 -08:00
2011-08-29 13:29:08 -07:00
2011-05-20 13:53:02 -07:00
2012-10-28 10:02:11 -07:00
2012-01-06 14:13:50 -08:00
2011-03-23 19:46:51 -07:00
2012-04-13 08:14:07 -07:00
2011-12-21 12:57:40 -08:00
2011-11-11 09:35:52 -08:00
2012-10-21 09:17:10 -07:00
2011-04-04 12:48:08 -04:00
2011-03-23 19:47:08 -07:00
2011-01-13 08:03:18 -08:00
2011-03-31 11:26:23 -03:00
2011-03-23 19:46:59 -07:00
2011-05-10 14:35:35 -07:00
2011-03-31 11:26:23 -03:00
2012-12-03 12:59:15 -08:00
2012-12-17 10:49:02 -08:00