From: Steven Rostedt <rostedt@goodmis.org>
To: Ben Hutchings <ben@decadent.org.uk>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org, stable@vger.kernel.org,
torvalds@linux-foundation.org, akpm@linux-foundation.org,
alan@lxorguk.ukuu.org.uk, Jens Axboe <axboe@kernel.dk>,
Tejun Heo <tj@kernel.org>, Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [ 00/73] 3.2.25-stable review
Date: Wed, 01 Aug 2012 08:55:16 -0400 [thread overview]
Message-ID: <1343825716.27983.84.camel@gandalf.stny.rr.com> (raw)
In-Reply-To: <20120731044310.013763753@decadent.org.uk>
On Tue, 2012-07-31 at 05:43 +0100, Ben Hutchings wrote:
> This is the start of the stable review cycle for the 3.2.25 release.
> There are 73 patches in this series, which will be posted as responses
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Thu Aug 2 10:00:00 UTC 2012.
> Anything received after that time might be too late.
>
> A combined patch relative to 3.2.24 will be posted as an additional
> response to this, and the diffstat can be found below.
I tested this against configs I normally test against my own code, and I
hit this bug:
[ 37.030215] =============================================================================
[ 37.031170] BUG blkdev_queue: Poison overwritten
[ 37.031170] -----------------------------------------------------------------------------
[ 37.031170]
[ 37.031170] INFO: 0xffff8800757287b0-0xffff8800757287b0. First byte 0x6a instead of 0x6b
[ 37.031170] INFO: Allocated in blk_alloc_queue_node+0x25/0x1fb age=3399 cpu=1 pid=1
[ 37.031170] __slab_alloc+0x2e4/0x365
[ 37.031170] kmem_cache_alloc_node+0x92/0x18d
[ 37.031170] blk_alloc_queue_node+0x25/0x1fb
[ 37.031170] blk_init_queue_node+0x24/0x5c
[ 37.031170] blk_init_queue+0x11/0x13
[ 37.031170] floppy_init+0x78/0x5d9^M
[ 37.031170] do_one_initcall+0x7f/0x140
[ 37.092043] kernel_init+0xc9/0x143
[ 37.092043] kernel_thread_helper+0x4/0x10
[ 37.092043] INFO: Freed in blk_release_queue+0x86/0x8b age=78 cpu=0 pid=1
[ 37.092043] __slab_free+0x38/0x377
[ 37.092043] kmem_cache_free+0xf7/0x155
[ 37.092043] blk_release_queue+0x86/0x8b
[ 37.092043] kobject_cleanup+0xc4/0xeb
[ 37.092043] kobject_release+0xd/0xf
[ 37.092043] kobject_put+0x4a/0x4f
[ 37.092043] blk_cleanup_queue+0x159/0x162
[ 37.092043] floppy_init+0x5b6/0x5d9
[ 37.092043] do_one_initcall+0x7f/0x140
[ 37.092043] kernel_init+0xc9/0x143
[ 37.092043] kernel_thread_helper+0x4/0x10
[ 37.092043] INFO: Slab 0xffffea0001d5ca00 objects=9 used=9 fp=0x (null) flags=0x100000000004080
[ 37.092043] INFO: Object 0xffff880075728000 @offset=0 fp=0xffff88007572e700
[...]
[ 37.092043] Object ffff880075728b80: 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b kkkkkkkkkkkkkkkk
[ 37.092043] Object ffff880075728b90: 6b 6b 6b 6b 6b 6b 6b a5 kkkkkkk.
[ 37.092043] Redzone ffff880075728b98: bb bb bb bb bb bb bb bb ........
[ 37.092043] Padding ffff880075728cd8: 5a 5a 5a 5a 5a 5a 5a 5a ZZZZZZZZ
[ 37.092043] Pid: 1, comm: swapper/0 Not tainted 3.2.0-test+ #1
[ 37.092043] Call Trace:
[ 37.092043] [<ffffffff8114d18b>] ? print_section+0x3d/0x3f
[ 37.092043] [<ffffffff8114db29>] print_trailer+0x10a/0x113
[ 37.092043] [<ffffffff8114df53>] check_bytes_and_report+0xb1/0xea
[ 37.092043] [<ffffffff8114e050>] check_object+0xc4/0x1fc
[ 37.092043] [<ffffffff813f7c63>] ? blk_alloc_queue_node+0x25/0x1fb
[ 37.092043] [<ffffffff813f7c63>] ? blk_alloc_queue_node+0x25/0x1fb
[ 37.092043] [<ffffffff819e465e>] alloc_debug_processing+0xa7/0x14a
[ 37.092043] [<ffffffff819e4fb1>] __slab_alloc+0x2e4/0x365
[ 37.092043] [<ffffffff813f7c63>] ? blk_alloc_queue_node+0x25/0x1fb
[ 37.092043] [<ffffffff810b113d>] ? trace_hardirqs_on+0xd/0xf
[ 37.092043] [<ffffffff8114fd71>] kmem_cache_alloc_node+0x92/0x18d
[ 37.092043] [<ffffffff810b10f9>] ? trace_hardirqs_on_caller+0x12f/0x166
[ 37.092043] [<ffffffff813f7c63>] ? blk_alloc_queue_node+0x25/0x1fb
[ 37.092043] [<ffffffff813f7c63>] blk_alloc_queue_node+0x25/0x1fb
[ 37.092043] [<ffffffff813f7e4a>] blk_alloc_queue+0x11/0x13
[ 37.092043] [<ffffffff81550489>] brd_alloc+0x79/0x185
[ 37.092043] [<ffffffff82264a24>] brd_init+0xc6/0x19c
[ 37.092043] [<ffffffff8226495e>] ? floppy_init+0x5d9/0x5d9
[ 37.092043] [<ffffffff8100020f>] do_one_initcall+0x7f/0x140
[ 37.092043] [<ffffffff82234c44>] kernel_init+0xc9/0x143
[ 37.092043] [<ffffffff81a14874>] kernel_thread_helper+0x4/0x10
[ 37.092043] [<ffffffff81a0c5f4>] ? retint_restore_args+0x13/0x13
[ 37.092043] [<ffffffff82234b7b>] ? start_kernel+0x3af/0x3af
[ 37.092043] [<ffffffff81a14870>] ? gs_change+0x13/0x13
[ 37.092043] FIX blkdev_queue: Restoring 0xffff8800757287b0-0xffff8800757287b0=0x6b
I then checked against 3.2.24 and it bugged too, as well as vanilla 3.2.
I then checked against 3.3 and it did not bug. I kicked off a 'reverse'
bisect with ktest (bad is good and good is bad) and found the fix:
commit 3f9a5aabd0a9fe0e0cd308506f48963d79169aa7
Author: Vivek Goyal <vgoyal@redhat.com>
floppy: Cleanup disk->queue before caling put_disk() if add_disk() was never called
I applied it against v3.2.24 and it solved the bug. I did not apply it
against 25-rc1, but I'm pretty sure it should work for that too.
I haven't checked 3.0 if that has an issue with my config.
Anyway, please apply this patch to stable 3.2. Either for 25 or for 26.
Thanks!
-- Steve
commit 3f9a5aabd0a9fe0e0cd308506f48963d79169aa7
Author: Vivek Goyal <vgoyal@redhat.com>
Date: Wed Feb 8 20:03:38 2012 +0100
floppy: Cleanup disk->queue before caling put_disk() if add_disk() was never called
add_disk() takes gendisk reference on request queue. If driver failed during
initialization and never called add_disk() then that extra reference is not
taken. That reference is put in put_disk(). floppy driver allocates the
disk, allocates queue, sets disk->queue and then relizes that floppy
controller is not present. It tries to tear down everything and tries to
put a reference down in put_disk() which was never taken.
In such error cases cleanup disk->queue before calling put_disk() so that
we never try to put down a reference which was never taken in first place.
Reported-and-tested-by: Suresh Jayaraman <sjayaraman@suse.com>
Tested-by: Dirk Gouders <gouders@et.bocholt.fh-gelsenkirchen.de>
Signed-off-by: Vivek Goyal <vgoyal@redhat.com>
Acked-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
index 510fb10..401ba78 100644
--- a/drivers/block/floppy.c
+++ b/drivers/block/floppy.c
@@ -4368,8 +4368,14 @@ out_unreg_blkdev:
out_put_disk:
while (dr--) {
del_timer_sync(&motor_off_timer[dr]);
- if (disks[dr]->queue)
+ if (disks[dr]->queue) {
blk_cleanup_queue(disks[dr]->queue);
+ /*
+ * put_disk() is not paired with add_disk() and
+ * will put queue reference one extra time. fix it.
+ */
+ disks[dr]->queue = NULL;
+ }
put_disk(disks[dr]);
}
return err;
next prev parent reply other threads:[~2012-08-01 12:55 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-31 4:43 Ben Hutchings
2012-07-31 4:43 ` [ 01/73] mm: reduce the amount of work done when updating min_free_kbytes Ben Hutchings
2012-07-31 4:43 ` [ 02/73] mm: compaction: allow compaction to isolate dirty pages Ben Hutchings
2012-07-31 4:43 ` [ 03/73] mm: compaction: determine if dirty pages can be migrated without blocking within ->migratepage Ben Hutchings
2012-07-31 4:43 ` [ 04/73] mm: page allocator: do not call direct reclaim for THP allocations while compaction is deferred Ben Hutchings
2012-07-31 4:43 ` [ 05/73] mm: compaction: make isolate_lru_page() filter-aware again Ben Hutchings
2012-07-31 4:43 ` [ 06/73] mm: compaction: introduce sync-light migration for use by compaction Ben Hutchings
2012-07-31 16:42 ` Herton Ronaldo Krzesinski
2012-07-31 17:00 ` Mel Gorman
2012-07-31 17:03 ` Mel Gorman
2012-07-31 23:12 ` Ben Hutchings
2012-07-31 4:43 ` [ 07/73] mm: vmscan: when reclaiming for compaction, ensure there are sufficient free pages available Ben Hutchings
2012-07-31 4:43 ` [ 08/73] mm: vmscan: do not OOM if aborting reclaim to start compaction Ben Hutchings
2012-07-31 4:43 ` [ 09/73] mm: vmscan: check if reclaim should really abort even if compaction_ready() is true for one zone Ben Hutchings
2012-07-31 4:43 ` [ 10/73] vmscan: promote shared file mapped pages Ben Hutchings
2012-07-31 4:43 ` [ 11/73] vmscan: activate executable pages after first usage Ben Hutchings
2012-07-31 4:43 ` [ 12/73] mm/vmscan.c: consider swap space when deciding whether to continue reclaim Ben Hutchings
2012-07-31 4:43 ` [ 13/73] mm: test PageSwapBacked in lumpy reclaim Ben Hutchings
2012-07-31 4:43 ` [ 14/73] mm: vmscan: convert global reclaim to per-memcg LRU lists Ben Hutchings
2012-07-31 4:43 ` [ 15/73] cpuset: mm: reduce large amounts of memory barrier related damage v3 Ben Hutchings
2012-07-31 4:43 ` [ 16/73] mm/hugetlb: fix warning in alloc_huge_page/dequeue_huge_page_vma Ben Hutchings
2012-07-31 4:43 ` [ 17/73] [SCSI] Fix NULL dereferences in scsi_cmd_to_driver Ben Hutchings
2012-07-31 4:43 ` [ 18/73] sched/nohz: Fix rq->cpu_load[] calculations Ben Hutchings
2012-07-31 4:43 ` [ 19/73] sched/nohz: Fix rq->cpu_load calculations some more Ben Hutchings
2012-07-31 4:43 ` [ 20/73] powerpc/ftrace: Fix assembly trampoline register usage Ben Hutchings
2012-07-31 4:43 ` [ 21/73] cx25821: Remove bad strcpy to read-only char* Ben Hutchings
2012-07-31 4:43 ` [ 22/73] x86: Fix boot on Twinhead H12Y Ben Hutchings
2012-07-31 4:43 ` [ 23/73] r8169: RxConfig hack for the 8168evl Ben Hutchings
2012-07-31 4:43 ` [ 24/73] cifs: when CONFIG_HIGHMEM is set, serialize the read/write kmaps Ben Hutchings
2012-07-31 4:43 ` [ 25/73] wireless: rt2x00: rt2800usb add more devices ids Ben Hutchings
2012-07-31 4:43 ` [ 26/73] wireless: rt2x00: rt2800usb more devices were identified Ben Hutchings
2012-07-31 4:43 ` [ 27/73] rt2800usb: 2001:3c17 is an RT3370 device Ben Hutchings
2012-07-31 4:43 ` [ 28/73] ARM: OMAP2+: OPP: Fix to ensure check of right oppdef after bad one Ben Hutchings
2012-08-01 1:56 ` Herton Ronaldo Krzesinski
2012-08-01 2:36 ` Ben Hutchings
2012-07-31 4:43 ` [ 29/73] usb: gadget: Fix g_ether interface link status Ben Hutchings
2012-07-31 4:43 ` [ 30/73] ext4: pass a char * to ext4_count_free() instead of a buffer_head ptr Ben Hutchings
2012-07-31 4:43 ` [ 31/73] ftrace: Disable function tracing during suspend/resume and hibernation, again Ben Hutchings
2012-07-31 4:43 ` [ 32/73] x86, microcode: microcode_core.c simple_strtoul cleanup Ben Hutchings
2012-07-31 4:43 ` [ 33/73] x86, microcode: Sanitize per-cpu microcode reloading interface Ben Hutchings
2012-08-03 9:04 ` Sven Joachim
2012-08-03 9:43 ` Borislav Petkov
2012-08-03 12:27 ` Borislav Petkov
2012-08-04 15:41 ` Ben Hutchings
2012-08-04 16:07 ` Henrique de Moraes Holschuh
2012-08-04 17:23 ` Ben Hutchings
2012-08-05 9:21 ` Borislav Petkov
2012-08-05 18:56 ` Ben Hutchings
2012-07-31 4:43 ` [ 34/73] usbdevfs: Correct amount of data copied to user in processcompl_compat Ben Hutchings
2012-07-31 4:43 ` [ 35/73] ASoC: dapm: Fix locking during codec shutdown Ben Hutchings
2012-07-31 16:11 ` Herton Ronaldo Krzesinski
2012-07-31 16:13 ` Mark Brown
2012-07-31 23:20 ` Ben Hutchings
2012-07-31 4:43 ` [ 36/73] ext4: fix overhead calculation used by ext4_statfs() Ben Hutchings
2012-07-31 4:43 ` [ 37/73] udf: Improve table length check to avoid possible overflow Ben Hutchings
2012-07-31 4:43 ` [ 38/73] powerpc: Add "memory" attribute for mfmsr() Ben Hutchings
2012-07-31 4:43 ` [ 39/73] mwifiex: correction in mcs index check Ben Hutchings
2012-07-31 4:43 ` [ 40/73] USB: option: Ignore ZTE (Vodafone) K3570/71 net interfaces Ben Hutchings
2012-07-31 4:43 ` [ 41/73] USB: option: add ZTE MF821D Ben Hutchings
2012-07-31 4:43 ` [ 42/73] target: Add generation of LOGICAL BLOCK ADDRESS OUT OF RANGE Ben Hutchings
2012-07-31 4:43 ` [ 43/73] target: Add range checking to UNMAP emulation Ben Hutchings
2012-07-31 4:43 ` [ 44/73] target: Fix reading of data length fields for UNMAP commands Ben Hutchings
2012-07-31 4:43 ` [ 45/73] target: Fix possible integer underflow in UNMAP emulation Ben Hutchings
2012-07-31 4:43 ` [ 46/73] target: Check number of unmap descriptors against our limit Ben Hutchings
2012-07-31 4:43 ` [ 47/73] s390/idle: fix sequence handling vs cpu hotplug Ben Hutchings
2012-07-31 4:43 ` [ 48/73] rtlwifi: rtl8192de: Fix phy-based version calculation Ben Hutchings
2012-07-31 4:43 ` [ 49/73] workqueue: perform cpu down operations from low priority cpu_notifier() Ben Hutchings
2012-07-31 4:44 ` [ 50/73] ALSA: hda - Add support for Realtek ALC282 Ben Hutchings
2012-07-31 4:44 ` [ 51/73] iommu/amd: Fix hotplug with iommu=pt Ben Hutchings
2012-07-31 4:44 ` [ 52/73] drm/radeon: Try harder to avoid HW cursor ending on a multiple of 128 columns Ben Hutchings
2012-07-31 4:44 ` [ 53/73] ALSA: hda - Turn on PIN_OUT from hdmi playback prepare Ben Hutchings
2012-07-31 4:44 ` [ 54/73] block: add blk_queue_dead() Ben Hutchings
2012-07-31 4:44 ` [ 55/73] [SCSI] Fix device removal NULL pointer dereference Ben Hutchings
2012-07-31 4:44 ` [ 56/73] [SCSI] Avoid dangling pointer in scsi_requeue_command() Ben Hutchings
2012-07-31 4:44 ` [ 57/73] [SCSI] fix hot unplug vs async scan race Ben Hutchings
2012-07-31 4:44 ` [ 58/73] [SCSI] fix eh wakeup (scsi_schedule_eh vs scsi_restart_operations) Ben Hutchings
2012-07-31 4:44 ` [ 59/73] [SCSI] libsas: continue revalidation Ben Hutchings
2012-07-31 4:44 ` [ 60/73] [SCSI] libsas: fix sas_discover_devices return code handling Ben Hutchings
2012-07-31 4:44 ` [ 61/73] iscsi-target: Drop bogus struct file usage for iSCSI/SCTP Ben Hutchings
2012-07-31 4:44 ` [ 62/73] mmc: sdhci-pci: CaFe has broken card detection Ben Hutchings
2012-07-31 4:44 ` [ 63/73] ext4: dont let i_reserved_meta_blocks go negative Ben Hutchings
2012-07-31 4:44 ` [ 64/73] ext4: undo ext4_calc_metadata_amount if we fail to claim space Ben Hutchings
2012-07-31 4:44 ` [ 65/73] ASoC: dapm: Fix _PRE and _POST events for DAPM performance improvements Ben Hutchings
2012-07-31 4:44 ` [ 66/73] locks: fix checking of fcntl_setlease argument Ben Hutchings
2012-07-31 4:44 ` [ 67/73] ACPI/AC: prevent OOPS on some boxes due to missing check power_supply_register() return value check Ben Hutchings
2012-07-31 4:44 ` [ 68/73] drm/radeon: fix bo creation retry path Ben Hutchings
2012-07-31 4:44 ` [ 69/73] drm/radeon: fix non revealent error message Ben Hutchings
2012-07-31 4:44 ` [ 70/73] drm/radeon: fix hotplug of DP to DVI|HDMI passive adapters (v2) Ben Hutchings
2012-07-31 4:44 ` [ 71/73] drm/radeon: on hotplug force link training to happen (v2) Ben Hutchings
2012-07-31 4:44 ` [ 72/73] Btrfs: call the ordered free operation without any locks held Ben Hutchings
2012-07-31 4:44 ` [ 73/73] nouveau: Fix alignment requirements on src and dst addresses Ben Hutchings
2012-07-31 5:00 ` [ 00/73] 3.2.25-stable review Ben Hutchings
2012-08-01 12:55 ` Steven Rostedt [this message]
2012-08-05 22:26 ` Ben Hutchings
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=1343825716.27983.84.camel@gandalf.stny.rr.com \
--to=rostedt@goodmis.org \
--cc=akpm@linux-foundation.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=axboe@kernel.dk \
--cc=ben@decadent.org.uk \
--cc=gregkh@linuxfoundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stable@vger.kernel.org \
--cc=tj@kernel.org \
--cc=torvalds@linux-foundation.org \
--cc=vgoyal@redhat.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 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®