From: Greg Kroah-Hartman Date: Wed, 6 Nov 2013 02:41:32 +0000 (-0800) Subject: remove 2 3.4 patches that shouldn't be there... X-Git-Tag: v3.4.69~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b0b820287556f9b4dbc4289c259412eebd9a8cfe;p=thirdparty%2Fkernel%2Fstable-queue.git remove 2 3.4 patches that shouldn't be there... --- diff --git a/queue-3.4/md-avoid-deadlock-when-md_set_badblocks.patch b/queue-3.4/md-avoid-deadlock-when-md_set_badblocks.patch deleted file mode 100644 index 02937655e10..00000000000 --- a/queue-3.4/md-avoid-deadlock-when-md_set_badblocks.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 905b0297a9533d7a6ee00a01a990456636877dd6 Mon Sep 17 00:00:00 2001 -From: Bian Yu -Date: Sat, 12 Oct 2013 01:10:03 -0400 -Subject: md: avoid deadlock when md_set_badblocks. - -From: Bian Yu - -commit 905b0297a9533d7a6ee00a01a990456636877dd6 upstream. - -When operate harddisk and hit errors, md_set_badblocks is called after -scsi_restart_operations which already disabled the irq. but md_set_badblocks -will call write_sequnlock_irq and enable irq. so softirq can preempt the -current thread and that may cause a deadlock. I think this situation should -use write_sequnlock_irqsave/irqrestore instead. - -I met the situation and the call trace is below: -[ 638.919974] BUG: spinlock recursion on CPU#0, scsi_eh_13/1010 -[ 638.921923] lock: 0xffff8800d4d51fc8, .magic: dead4ead, .owner: scsi_eh_13/1010, .owner_cpu: 0 -[ 638.923890] CPU: 0 PID: 1010 Comm: scsi_eh_13 Not tainted 3.12.0-rc5+ #37 -[ 638.925844] Hardware name: To be filled by O.E.M. To be filled by O.E.M./MAHOBAY, BIOS 4.6.5 03/05/2013 -[ 638.927816] ffff880037ad4640 ffff880118c03d50 ffffffff8172ff85 0000000000000007 -[ 638.929829] ffff8800d4d51fc8 ffff880118c03d70 ffffffff81730030 ffff8800d4d51fc8 -[ 638.931848] ffffffff81a72eb0 ffff880118c03d90 ffffffff81730056 ffff8800d4d51fc8 -[ 638.933884] Call Trace: -[ 638.935867] [] dump_stack+0x55/0x76 -[ 638.937878] [] spin_dump+0x8a/0x8f -[ 638.939861] [] spin_bug+0x21/0x26 -[ 638.941836] [] do_raw_spin_lock+0xa4/0xc0 -[ 638.943801] [] _raw_spin_lock+0x66/0x80 -[ 638.945747] [] ? scsi_device_unbusy+0x9d/0xd0 -[ 638.947672] [] ? _raw_spin_unlock+0x2b/0x50 -[ 638.949595] [] scsi_device_unbusy+0x9d/0xd0 -[ 638.951504] [] scsi_finish_command+0x37/0xe0 -[ 638.953388] [] scsi_softirq_done+0xa8/0x140 -[ 638.955248] [] blk_done_softirq+0x7b/0x90 -[ 638.957116] [] __do_softirq+0xfd/0x330 -[ 638.958987] [] ? __lock_release+0x6f/0x100 -[ 638.960861] [] call_softirq+0x1c/0x30 -[ 638.962724] [] do_softirq+0x8d/0xc0 -[ 638.964565] [] irq_exit+0x10e/0x150 -[ 638.966390] [] smp_apic_timer_interrupt+0x4a/0x60 -[ 638.968223] [] apic_timer_interrupt+0x6f/0x80 -[ 638.970079] [] ? __lock_release+0x6f/0x100 -[ 638.971899] [] ? _raw_spin_unlock_irq+0x3a/0x50 -[ 638.973691] [] ? _raw_spin_unlock_irq+0x30/0x50 -[ 638.975475] [] md_set_badblocks+0x1f3/0x4a0 -[ 638.977243] [] rdev_set_badblocks+0x27/0x80 -[ 638.978988] [] raid5_end_read_request+0x36b/0x4e0 [raid456] -[ 638.980723] [] bio_endio+0x1d/0x40 -[ 638.982463] [] req_bio_endio.isra.65+0x83/0xa0 -[ 638.984214] [] blk_update_request+0x7f/0x350 -[ 638.985967] [] blk_update_bidi_request+0x31/0x90 -[ 638.987710] [] __blk_end_bidi_request+0x20/0x50 -[ 638.989439] [] __blk_end_request_all+0x1f/0x30 -[ 638.991149] [] blk_peek_request+0x106/0x250 -[ 638.992861] [] ? scsi_kill_request.isra.32+0xe9/0x130 -[ 638.994561] [] scsi_request_fn+0x4a/0x3d0 -[ 638.996251] [] __blk_run_queue+0x37/0x50 -[ 638.997900] [] blk_run_queue+0x2f/0x50 -[ 638.999553] [] scsi_run_queue+0xe0/0x1c0 -[ 639.001185] [] scsi_run_host_queues+0x21/0x40 -[ 639.002798] [] scsi_restart_operations+0x177/0x200 -[ 639.004391] [] scsi_error_handler+0xc9/0xe0 -[ 639.005996] [] ? scsi_unjam_host+0xd0/0xd0 -[ 639.007600] [] kthread+0xdb/0xe0 -[ 639.009205] [] ? flush_kthread_worker+0x170/0x170 -[ 639.010821] [] ret_from_fork+0x7c/0xb0 -[ 639.012437] [] ? flush_kthread_worker+0x170/0x170 - -This bug was introduce in commit 2e8ac30312973dd20e68073653 -(the first time rdev_set_badblock was call from interrupt context), -so this patch is appropriate for 3.5 and subsequent kernels. - -Signed-off-by: Bian Yu -Reviewed-by: Jianpeng Ma -Signed-off-by: NeilBrown -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/md/md.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - ---- a/drivers/md/md.c -+++ b/drivers/md/md.c -@@ -7780,6 +7780,7 @@ static int md_set_badblocks(struct badbl - u64 *p; - int lo, hi; - int rv = 1; -+ unsigned long flags; - - if (bb->shift < 0) - /* badblocks are disabled */ -@@ -7794,7 +7795,7 @@ static int md_set_badblocks(struct badbl - sectors = next - s; - } - -- write_seqlock_irq(&bb->lock); -+ write_seqlock_irqsave(&bb->lock, flags); - - p = bb->page; - lo = 0; -@@ -7910,7 +7911,7 @@ static int md_set_badblocks(struct badbl - bb->changed = 1; - if (!acknowledged) - bb->unacked_exist = 1; -- write_sequnlock_irq(&bb->lock); -+ write_sequnlock_irqrestore(&bb->lock, flags); - - return rv; - } diff --git a/queue-3.4/mwifiex-fix-sdio-interrupt-lost-issue.patch b/queue-3.4/mwifiex-fix-sdio-interrupt-lost-issue.patch deleted file mode 100644 index 91731363d88..00000000000 --- a/queue-3.4/mwifiex-fix-sdio-interrupt-lost-issue.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 453b0c3f6910672f79da354077af728d92f95c5b Mon Sep 17 00:00:00 2001 -From: Amitkumar Karwar -Date: Fri, 27 Sep 2013 10:55:38 -0700 -Subject: mwifiex: fix SDIO interrupt lost issue - -From: Amitkumar Karwar - -commit 453b0c3f6910672f79da354077af728d92f95c5b upstream. - -601216e "mwifiex: process RX packets in SDIO IRQ thread directly" -introduced a command timeout issue which can be reproduced easily on -an AM33xx platform using a test application written by Daniel Mack: - -https://gist.github.com/zonque/6579314 - -mwifiex_main_process() is called from both the SDIO handler and -the workqueue. In case an interrupt occurs right after the -int_status check, but before updating the mwifiex_processing flag, -this interrupt gets lost, resulting in a command timeout and -consequently a card reset. - -Let main_proc_lock protect both int_status and mwifiex_processing -flag. This fixes the interrupt lost issue. - -Reported-by: Sven Neumann -Reported-by: Andreas Fenkart -Tested-by: Daniel Mack -Reviewed-by: Dylan Reid -Signed-off-by: Amitkumar Karwar -Signed-off-by: Bing Zhao -Signed-off-by: Paul Stewart -Signed-off-by: John W. Linville -Signed-off-by: Greg Kroah-Hartman - ---- - drivers/net/wireless/mwifiex/main.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/mwifiex/main.c -+++ b/drivers/net/wireless/mwifiex/main.c -@@ -261,10 +261,12 @@ process_start: - } - } while (true); - -- if ((adapter->int_status) || IS_CARD_RX_RCVD(adapter)) -+ spin_lock_irqsave(&adapter->main_proc_lock, flags); -+ if ((adapter->int_status) || IS_CARD_RX_RCVD(adapter)) { -+ spin_unlock_irqrestore(&adapter->main_proc_lock, flags); - goto process_start; -+ } - -- spin_lock_irqsave(&adapter->main_proc_lock, flags); - adapter->mwifiex_processing = false; - spin_unlock_irqrestore(&adapter->main_proc_lock, flags); - diff --git a/queue-3.4/series b/queue-3.4/series index 3a91e76716a..2a5a37058f0 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -4,12 +4,10 @@ usb-quirks-add-touchscreen-that-is-dazzeled-by-remote-wakeup.patch usb-serial-ftdi_sio-add-id-for-z3x-box-device.patch mac80211-correctly-close-cancelled-scans.patch mac80211-update-sta-last_rx-on-acked-tx-frames.patch -mwifiex-fix-sdio-interrupt-lost-issue.patch rtlwifi-rtl8192cu-fix-error-in-pointer-arithmetic.patch jfs-fix-error-path-in-ialloc.patch can-flexcan-flexcan_chip_start-fix-regression-mark-one-mb-for-tx-and-abort-pending-tx.patch libata-make-ata_eh_qc_retry-bump-scmd-allowed-on-bogus-failures.patch -md-avoid-deadlock-when-md_set_badblocks.patch md-fix-skipping-recovery-for-read-only-arrays.patch clockevents-sanitize-ticks-to-nsec-conversion.patch parisc-do-not-crash-64bit-smp-kernels-on-machines-with-4gb-ram.patch