From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
alan@lxorguk.ukuu.org.uk, Tejun Heo <tj@kernel.org>,
Xiaotian Feng <xtfeng@gmail.com>, Shuah Khan <shuah.khan@hp.com>
Subject: [ 03/22] workqueue: convert BUG_ON()s in __queue_delayed_work() to WARN_ON_ONCE()s
Date: Fri, 14 Dec 2012 14:25:48 -0800 [thread overview]
Message-ID: <20121214222250.541693497@linuxfoundation.org> (raw)
In-Reply-To: <20121214222249.889051473@linuxfoundation.org>
3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Tejun Heo <tj@kernel.org>
commit fc4b514f2727f74a4587c31db87e0e93465518c3 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>
---
kernel/workqueue.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -1145,8 +1145,8 @@ int queue_delayed_work_on(int cpu, struc
if (!test_and_set_bit(WORK_STRUCT_PENDING_BIT, work_data_bits(work))) {
unsigned int lcpu;
- BUG_ON(timer_pending(timer));
- BUG_ON(!list_empty(&work->entry));
+ WARN_ON_ONCE(timer_pending(timer));
+ WARN_ON_ONCE(!list_empty(&work->entry));
timer_stats_timer_set_start_info(&dwork->timer);
next prev parent reply other threads:[~2012-12-14 22:26 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-14 22:25 [ 00/22] 3.0.57-stable review Greg Kroah-Hartman
2012-12-14 22:25 ` [ 01/22] ARM: 7566/1: vfp: fix save and restore when running on pre-VFPv3 and CONFIG_VFPv3 set Greg Kroah-Hartman
2012-12-14 22:25 ` [ 02/22] powerpc/ptrace: Fix build with gcc 4.6 Greg Kroah-Hartman
2012-12-14 22:25 ` Greg Kroah-Hartman [this message]
2012-12-14 22:25 ` [ 04/22] mm: dmapool: use provided gfp flags for all dma_alloc_coherent() calls Greg Kroah-Hartman
2012-12-14 22:25 ` [ 05/22] x86,AMD: Power driver support for AMDs family 16h processors Greg Kroah-Hartman
2012-12-14 22:25 ` [ 06/22] telephony: ijx: buffer overflow in ixj_write_cid() Greg Kroah-Hartman
2012-12-14 22:25 ` [ 07/22] tmpfs: fix shared mempolicy leak Greg Kroah-Hartman
2012-12-14 22:25 ` [ 08/22] x86: hpet: Fix masking of MSI interrupts Greg Kroah-Hartman
2012-12-14 22:25 ` [ 09/22] USB: add new zte 3g-dongles pid to option.c Greg Kroah-Hartman
2012-12-14 22:25 ` [ 10/22] USB: option: blacklist network interface on Huawei E173 Greg Kroah-Hartman
2012-12-14 22:25 ` [ 11/22] USB: ftdi_sio: Add support for Newport AGILIS motor drivers Greg Kroah-Hartman
2012-12-14 22:25 ` [ 12/22] usb: ftdi_sio: fixup BeagleBone A5+ quirk Greg Kroah-Hartman
2012-12-14 22:25 ` [ 13/22] USB: cp210x: add Virtenio Preon32 device id Greg Kroah-Hartman
2012-12-14 22:25 ` [ 14/22] USB: mark uas driver as BROKEN Greg Kroah-Hartman
2012-12-14 22:26 ` [ 15/22] ACPI / battery: Correct battery capacity values on Thinkpads Greg Kroah-Hartman
2012-12-14 22:26 ` [ 16/22] ACPI / PNP: Do not crash due to stale pointer use during system resume Greg Kroah-Hartman
2012-12-14 22:26 ` [ 17/22] ACPI / video: ignore BIOS initial backlight value for HP Folio 13-2000 Greg Kroah-Hartman
2012-12-14 22:26 ` [ 18/22] USB: OHCI: workaround for hardware bug: retired TDs not added to the Done Queue Greg Kroah-Hartman
2012-12-14 22:26 ` [ 19/22] xhci: Extend Fresco Logic MSI quirk Greg Kroah-Hartman
2012-12-14 22:26 ` [ 20/22] ftrace: Clear bits properly in reset_iter_read() Greg Kroah-Hartman
2012-12-14 22:26 ` [ 21/22] powerpc: Update DSCR on all CPUs when writing sysfs dscr_default Greg Kroah-Hartman
2012-12-14 22:26 ` [ 22/22] powerpc: Keep thread.dscr and thread.dscr_inherit in sync Greg Kroah-Hartman
2012-12-15 14:25 ` [ 00/22] 3.0.57-stable review Shuah Khan
2012-12-15 20:49 ` Shuah Khan
2012-12-16 8:32 ` Nikola Ciprich
2012-12-16 13:52 ` Satoru Takeuchi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20121214222250.541693497@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=shuah.khan@hp.com \
--cc=stable@vger.kernel.org \
--cc=tj@kernel.org \
--cc=xtfeng@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.