From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk,
Rabin Vincent <rabin.vincent@stericsson.com>,
Linus Walleij <linus.walleij@linaro.org>,
Jens Axboe <axboe@kernel.dk>
Subject: [25/26] backing-dev: ensure wakeup_timer is deleted
Date: Fri, 18 Nov 2011 15:58:38 -0800 [thread overview]
Message-ID: <20111119000006.221446367@clark.kroah.org> (raw)
In-Reply-To: <20111119000026.GA6679@kroah.com>
3.0-stable review patch. If anyone has any objections, please let me know.
------------------
From: Rabin Vincent <rabin.vincent@stericsson.com>
commit 7a401a972df8e184b3d1a3fc958c0a4ddee8d312 upstream.
bdi_prune_sb() in bdi_unregister() attempts to removes the bdi links
from all super_blocks and then del_timer_sync() the writeback timer.
However, this can race with __mark_inode_dirty(), leading to
bdi_wakeup_thread_delayed() rearming the writeback timer on the bdi
we're unregistering, after we've called del_timer_sync().
This can end up with the bdi being freed with an active timer inside it,
as in the case of the following dump after the removal of an SD card.
Fix this by redoing the del_timer_sync() in bdi_destory().
------------[ cut here ]------------
WARNING: at /home/rabin/kernel/arm/lib/debugobjects.c:262 debug_print_object+0x9c/0xc8()
ODEBUG: free active (active state 0) object type: timer_list hint: wakeup_timer_fn+0x0/0x180
Modules linked in:
Backtrace:
[<c00109dc>] (dump_backtrace+0x0/0x110) from [<c0236e4c>] (dump_stack+0x18/0x1c)
r6:c02bc638 r5:00000106 r4:c79f5d18 r3:00000000
[<c0236e34>] (dump_stack+0x0/0x1c) from [<c0025e6c>] (warn_slowpath_common+0x54/0x6c)
[<c0025e18>] (warn_slowpath_common+0x0/0x6c) from [<c0025f28>] (warn_slowpath_fmt+0x38/0x40)
r8:20000013 r7:c780c6f0 r6:c031613c r5:c780c6f0 r4:c02b1b29
r3:00000009
[<c0025ef0>] (warn_slowpath_fmt+0x0/0x40) from [<c015eb4c>] (debug_print_object+0x9c/0xc8)
r3:c02b1b29 r2:c02bc662
[<c015eab0>] (debug_print_object+0x0/0xc8) from [<c015f574>] (debug_check_no_obj_freed+0xac/0x1dc)
r6:c7964000 r5:00000001 r4:c7964000
[<c015f4c8>] (debug_check_no_obj_freed+0x0/0x1dc) from [<c00a9e38>] (kmem_cache_free+0x88/0x1f8)
[<c00a9db0>] (kmem_cache_free+0x0/0x1f8) from [<c014286c>] (blk_release_queue+0x70/0x78)
[<c01427fc>] (blk_release_queue+0x0/0x78) from [<c015290c>] (kobject_release+0x70/0x84)
r5:c79641f0 r4:c796420c
[<c015289c>] (kobject_release+0x0/0x84) from [<c0153ce4>] (kref_put+0x68/0x80)
r7:00000083 r6:c74083d0 r5:c015289c r4:c796420c
[<c0153c7c>] (kref_put+0x0/0x80) from [<c01527d0>] (kobject_put+0x48/0x5c)
r5:c79643b4 r4:c79641f0
[<c0152788>] (kobject_put+0x0/0x5c) from [<c013ddd8>] (blk_cleanup_queue+0x68/0x74)
r4:c7964000
[<c013dd70>] (blk_cleanup_queue+0x0/0x74) from [<c01a6370>] (mmc_blk_put+0x78/0xe8)
r5:00000000 r4:c794c400
[<c01a62f8>] (mmc_blk_put+0x0/0xe8) from [<c01a64b4>] (mmc_blk_release+0x24/0x38)
r5:c794c400 r4:c0322824
[<c01a6490>] (mmc_blk_release+0x0/0x38) from [<c00de11c>] (__blkdev_put+0xe8/0x170)
r5:c78d5e00 r4:c74083c0
[<c00de034>] (__blkdev_put+0x0/0x170) from [<c00de2c0>] (blkdev_put+0x11c/0x12c)
r8:c79f5f70 r7:00000001 r6:c74083d0 r5:00000083 r4:c74083c0
r3:00000000
[<c00de1a4>] (blkdev_put+0x0/0x12c) from [<c00b0724>] (kill_block_super+0x60/0x6c)
r7:c7942300 r6:c79f4000 r5:00000083 r4:c74083c0
[<c00b06c4>] (kill_block_super+0x0/0x6c) from [<c00b0a94>] (deactivate_locked_super+0x44/0x70)
r6:c79f4000 r5:c031af64 r4:c794dc00 r3:c00b06c4
[<c00b0a50>] (deactivate_locked_super+0x0/0x70) from [<c00b1358>] (deactivate_super+0x6c/0x70)
r5:c794dc00 r4:c794dc00
[<c00b12ec>] (deactivate_super+0x0/0x70) from [<c00c88b0>] (mntput_no_expire+0x188/0x194)
r5:c794dc00 r4:c7942300
[<c00c8728>] (mntput_no_expire+0x0/0x194) from [<c00c95e0>] (sys_umount+0x2e4/0x310)
r6:c7942300 r5:00000000 r4:00000000 r3:00000000
[<c00c92fc>] (sys_umount+0x0/0x310) from [<c000d940>] (ret_fast_syscall+0x0/0x30)
---[ end trace e5c83c92ada51c76 ]---
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
---
mm/backing-dev.c | 8 ++++++++
1 file changed, 8 insertions(+)
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -686,6 +686,14 @@ void bdi_destroy(struct backing_dev_info
bdi_unregister(bdi);
+ /*
+ * If bdi_unregister() had already been called earlier, the
+ * wakeup_timer could still be armed because bdi_prune_sb()
+ * can race with the bdi_wakeup_thread_delayed() calls from
+ * __mark_inode_dirty().
+ */
+ del_timer_sync(&bdi->wb.wakeup_timer);
+
for (i = 0; i < NR_BDI_STAT_ITEMS; i++)
percpu_counter_destroy(&bdi->bdi_stat[i]);
next prev parent reply other threads:[~2011-11-19 0:17 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-19 0:00 [00/26] 3.0.10-stable review Greg KH
2011-11-18 23:58 ` [01/26] ALSA: hda - Dont add elements of other codecs to vmaster slave Greg KH
2011-11-18 23:58 ` [02/26] virtio-pci: fix use after free Greg KH
2011-11-18 23:58 ` [03/26] ASoC: Dont use wm8994->control_data in wm8994_readable_register() Greg KH
2011-11-18 23:58 ` [04/26] sh: Fix cached/uncaced address calculation in 29bit mode Greg KH
2011-11-18 23:58 ` [05/26] drm/i915: Fix object refcount leak on mmappable size limit error path Greg KH
2011-11-18 23:58 ` [06/26] drm/nouveau: initialize chan->fence.lock before use Greg KH
2011-11-18 23:58 ` [07/26] drm/radeon/kms: make an aux failure debug only Greg KH
2011-11-18 23:58 ` [08/26] ALSA: usb-audio - Check the dB-range validity in the later read, too Greg KH
2011-11-18 23:58 ` [09/26] ALSA: usb-audio - Fix the missing volume quirks at delayed init Greg KH
2011-11-18 23:58 ` [10/26] KEYS: Fix a NULL pointer deref in the user-defined key type Greg KH
2011-11-18 23:58 ` [11/26] hfs: add sanity check for file name length Greg KH
2011-11-18 23:58 ` [12/26] Revert "leds: save the delay values after a successful call to blink_set()" Greg KH
2011-11-18 23:58 ` [13/26] drm/radeon: add some missing FireMV pci ids Greg KH
2011-11-18 23:58 ` [14/26] drm/i915: enable ring freq scaling, RC6 and graphics turbo on Ivy Bridge v3 Greg KH
2011-11-18 23:58 ` [15/26] sfi: table irq 0xFF means no interrupt Greg KH
2011-11-18 23:58 ` [16/26] x86, mrst: use a temporary variable for SFI irq Greg KH
2011-11-18 23:58 ` [17/26] b43: refuse to load unsupported firmware Greg KH
2011-11-18 23:58 ` [18/26] md/raid5: abort any pending parity operations when array fails Greg KH
2011-11-18 23:58 ` [19/26] mfd: Fix twl4030 dependencies for audio codec Greg KH
2011-11-18 23:58 ` [20/26] xen:pvhvm: enable PVHVM VCPU placement when using more than 32 CPUs Greg KH
2011-11-18 23:58 ` [21/26] xen-gntalloc: integer overflow in gntalloc_ioctl_alloc() Greg KH
2011-11-18 23:58 ` [22/26] xen-gntalloc: signedness bug in add_grefs() Greg KH
2011-11-18 23:58 ` [23/26] powerpc/ps3: Fix lost SMP IPIs Greg KH
2011-11-18 23:58 ` [24/26] powerpc: Copy down exception vectors after feature fixups Greg KH
2011-11-18 23:58 ` Greg KH [this message]
2011-11-18 23:58 ` [26/26] block: Always check length of all iov entries in blk_rq_map_user_iov() Greg KH
2011-11-19 0:03 [00/26] 3.1.2-stable review Greg KH
2011-11-19 0:03 ` [25/26] backing-dev: ensure wakeup_timer is deleted Greg KH
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=20111119000006.221446367@clark.kroah.org \
--to=gregkh@suse.de \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=axboe@kernel.dk \
--cc=linus.walleij@linaro.org \
--cc=linux-kernel@vger.kernel.org \
--cc=rabin.vincent@stericsson.com \
--cc=stable@vger.kernel.org \
--cc=torvalds@linux-foundation.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®