--- /dev/null
+From 4a25417c20fac00b3afd58ce27408f964d19e708 Mon Sep 17 00:00:00 2001
+From: Ariel Elior <ariele@broadcom.com>
+Date: Thu, 22 Nov 2012 07:16:17 +0000
+Subject: bnx2x: remove redundant warning log
+
+From: Ariel Elior <ariele@broadcom.com>
+
+commit 4a25417c20fac00b3afd58ce27408f964d19e708 upstream.
+
+fix bug where a register which was only meant to be read in 578xx/57712
+devices causes a bogus error message to be logged when read from other
+devices.
+
+Signed-off-by: Ariel Elior <ariele@broadcom.com>
+Signed-off-by: Eilon Greenstein <eilong@broadcom.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: CAI Qian <caiqian@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c | 11 +++++++----
+ 1 file changed, 7 insertions(+), 4 deletions(-)
+
+--- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
++++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c
+@@ -9545,10 +9545,13 @@ static int __devinit bnx2x_prev_unload_c
+ */
+ static void __devinit bnx2x_prev_interrupted_dmae(struct bnx2x *bp)
+ {
+- u32 val = REG_RD(bp, PGLUE_B_REG_PGLUE_B_INT_STS);
+- if (val & PGLUE_B_PGLUE_B_INT_STS_REG_WAS_ERROR_ATTN) {
+- BNX2X_ERR("was error bit was found to be set in pglueb upon startup. Clearing");
+- REG_WR(bp, PGLUE_B_REG_WAS_ERROR_PF_7_0_CLR, 1 << BP_FUNC(bp));
++ if (!CHIP_IS_E1x(bp)) {
++ u32 val = REG_RD(bp, PGLUE_B_REG_PGLUE_B_INT_STS);
++ if (val & PGLUE_B_PGLUE_B_INT_STS_REG_WAS_ERROR_ATTN) {
++ BNX2X_ERR("was error bit was found to be set in pglueb upon startup. Clearing");
++ REG_WR(bp, PGLUE_B_REG_WAS_ERROR_PF_7_0_CLR,
++ 1 << BP_FUNC(bp));
++ }
+ }
+ }
+
--- /dev/null
+From 7e06b7a3333f5c7a0cec12aff20d39c5c87c0795 Mon Sep 17 00:00:00 2001
+From: Jean Delvare <jdelvare@suse.de>
+Date: Thu, 18 Oct 2012 15:54:45 +0200
+Subject: i7300_edac: Fix error flag testing
+
+From: Jean Delvare <jdelvare@suse.de>
+
+commit 7e06b7a3333f5c7a0cec12aff20d39c5c87c0795 upstream.
+
+* Right-shift the values in GET_FBD_FAT_IDX and GET_FBD_NF_IDX, so
+ that the callers get the result they expect.
+* Fix definition of FERR_FAT_FBD_ERR_MASK.
+* Call GET_FBD_NF_IDX, not GET_FBD_FAT_IDX, when operating on
+ register FERR_NF_FBD. We were lucky they have the same definition.
+
+This fixes kernel bug #44131:
+https://bugzilla.kernel.org/show_bug.cgi?id=44131
+
+Signed-off-by: Jean Delvare <jdelvare@suse.de>
+Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
+Cc: Doug Thompson <dougthompson@xmission.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/edac/i7300_edac.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+--- a/drivers/edac/i7300_edac.c
++++ b/drivers/edac/i7300_edac.c
+@@ -197,8 +197,8 @@ static const char *ferr_fat_fbd_name[] =
+ [0] = "Memory Write error on non-redundant retry or "
+ "FBD configuration Write error on retry",
+ };
+-#define GET_FBD_FAT_IDX(fbderr) (fbderr & (3 << 28))
+-#define FERR_FAT_FBD_ERR_MASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 3))
++#define GET_FBD_FAT_IDX(fbderr) (((fbderr) >> 28) & 3)
++#define FERR_FAT_FBD_ERR_MASK ((1 << 0) | (1 << 1) | (1 << 2) | (1 << 22))
+
+ #define FERR_NF_FBD 0xa0
+ static const char *ferr_nf_fbd_name[] = {
+@@ -225,7 +225,7 @@ static const char *ferr_nf_fbd_name[] =
+ [1] = "Aliased Uncorrectable Non-Mirrored Demand Data ECC",
+ [0] = "Uncorrectable Data ECC on Replay",
+ };
+-#define GET_FBD_NF_IDX(fbderr) (fbderr & (3 << 28))
++#define GET_FBD_NF_IDX(fbderr) (((fbderr) >> 28) & 3)
+ #define FERR_NF_FBD_ERR_MASK ((1 << 24) | (1 << 23) | (1 << 22) | (1 << 21) |\
+ (1 << 18) | (1 << 17) | (1 << 16) | (1 << 15) |\
+ (1 << 14) | (1 << 13) | (1 << 11) | (1 << 10) |\
+@@ -464,7 +464,7 @@ static void i7300_process_fbd_error(stru
+ errnum = find_first_bit(&errors,
+ ARRAY_SIZE(ferr_nf_fbd_name));
+ specific = GET_ERR_FROM_TABLE(ferr_nf_fbd_name, errnum);
+- branch = (GET_FBD_FAT_IDX(error_reg) == 2) ? 1 : 0;
++ branch = (GET_FBD_NF_IDX(error_reg) == 2) ? 1 : 0;
+
+ pci_read_config_dword(pvt->pci_dev_16_1_fsb_addr_map,
+ REDMEMA, &syndrome);
--- /dev/null
+From 42709efb3a47524c6252e1bdc85e205f7bc356fb Mon Sep 17 00:00:00 2001
+From: Prarit Bhargava <prarit@redhat.com>
+Date: Tue, 16 Oct 2012 09:02:27 -0400
+Subject: i7core_edac: fix panic when accessing sysfs files
+
+From: Prarit Bhargava <prarit@redhat.com>
+
+commit 42709efb3a47524c6252e1bdc85e205f7bc356fb upstream.
+
+The i7core_edac addrmatch_dev and chancounts_dev have sysfs files
+associated with them. The sysfs files, however, are coded so that the
+parent device is is the mci device. This is incorrect and the mci struct
+should be obtained through the addrmatch_dev and chancounts_dev device's
+private data field which is populated in i7core_create_sysfs_devices().
+
+Signed-off-by: Prarit Bhargava <prarit@redhat.com>
+Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
+Cc: Shuah Khan <shuah.khan@hp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/edac/i7core_edac.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/edac/i7core_edac.c
++++ b/drivers/edac/i7core_edac.c
+@@ -816,7 +816,7 @@ static ssize_t i7core_inject_store_##par
+ struct device_attribute *mattr, \
+ const char *data, size_t count) \
+ { \
+- struct mem_ctl_info *mci = to_mci(dev); \
++ struct mem_ctl_info *mci = dev_get_drvdata(dev); \
+ struct i7core_pvt *pvt; \
+ long value; \
+ int rc; \
+@@ -845,7 +845,7 @@ static ssize_t i7core_inject_show_##para
+ struct device_attribute *mattr, \
+ char *data) \
+ { \
+- struct mem_ctl_info *mci = to_mci(dev); \
++ struct mem_ctl_info *mci = dev_get_drvdata(dev); \
+ struct i7core_pvt *pvt; \
+ \
+ pvt = mci->pvt_info; \
+@@ -1052,7 +1052,7 @@ static ssize_t i7core_show_counter_##par
+ struct device_attribute *mattr, \
+ char *data) \
+ { \
+- struct mem_ctl_info *mci = to_mci(dev); \
++ struct mem_ctl_info *mci = dev_get_drvdata(dev); \
+ struct i7core_pvt *pvt = mci->pvt_info; \
+ \
+ edac_dbg(1, "\n"); \
--- /dev/null
+From 6bdd253f635f7b2ef027d116933a6c9ec148b87f Mon Sep 17 00:00:00 2001
+From: Johannes Berg <johannes.berg@intel.com>
+Date: Sat, 24 Nov 2012 00:32:19 +0100
+Subject: mac80211: fix remain-on-channel (non-)cancelling
+
+From: Johannes Berg <johannes.berg@intel.com>
+
+commit 6bdd253f635f7b2ef027d116933a6c9ec148b87f upstream.
+
+Felix Liao reported that when an interface is set DOWN
+while another interface is executing a ROC, the warning
+in ieee80211_start_next_roc() (about the first item on
+the list having started already) triggers.
+
+This is because ieee80211_roc_purge() calls it even if
+it never actually changed the list of ROC items. To fix
+this, simply remove the function call. If it is needed
+then it will be done by the ieee80211_sw_roc_work()
+function when the ROC item that is being removed while
+active is cleaned up.
+
+Reported-by: Felix Liao <Felix.Liao@watchguard.com>
+Signed-off-by: Johannes Berg <johannes.berg@intel.com>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ net/mac80211/offchannel.c | 2 --
+ 1 file changed, 2 deletions(-)
+
+--- a/net/mac80211/offchannel.c
++++ b/net/mac80211/offchannel.c
+@@ -453,8 +453,6 @@ void ieee80211_roc_purge(struct ieee8021
+ list_move_tail(&roc->list, &tmp_list);
+ roc->abort = true;
+ }
+-
+- ieee80211_start_next_roc(local);
+ mutex_unlock(&local->mtx);
+
+ list_for_each_entry_safe(roc, tmp, &tmp_list, list) {
--- /dev/null
+From 874807a83139abc094f939e93623c5623573d543 Mon Sep 17 00:00:00 2001
+From: NeilBrown <neilb@suse.de>
+Date: Tue, 27 Nov 2012 12:14:40 +1100
+Subject: md/raid1{,0}: fix deadlock in bitmap_unplug.
+
+From: NeilBrown <neilb@suse.de>
+
+commit 874807a83139abc094f939e93623c5623573d543 upstream.
+
+If the raid1 or raid10 unplug function gets called
+from a make_request function (which is very possible) when
+there are bios on the current->bio_list list, then it will not
+be able to successfully call bitmap_unplug() and it could
+need to submit more bios and wait for them to complete.
+But they won't complete while current->bio_list is non-empty.
+
+So detect that case and handle the unplugging off to another thread
+just like we already do when called from within the scheduler.
+
+RAID1 version of bug was introduced in 3.6, so that part of fix is
+suitable for 3.6.y. RAID10 part won't apply.
+
+Reported-by: Torsten Kaiser <just.for.lkml@googlemail.com>
+Reported-by: Peter Maloney <peter.maloney@brockmann-consult.de>
+Signed-off-by: NeilBrown <neilb@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/md/raid1.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/md/raid1.c
++++ b/drivers/md/raid1.c
+@@ -958,7 +958,7 @@ static void raid1_unplug(struct blk_plug
+ struct r1conf *conf = mddev->private;
+ struct bio *bio;
+
+- if (from_schedule) {
++ if (from_schedule || current->bio_list) {
+ spin_lock_irq(&conf->device_lock);
+ bio_list_merge(&conf->pending_bio_list, &plug->pending);
+ conf->pending_count += plug->pending_cnt;
--- /dev/null
+From fd8ef11730f1d03d5d6555aa53126e9e34f52f12 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <efault@gmx.de>
+Date: Mon, 3 Dec 2012 06:25:25 +0100
+Subject: Revert "sched, autogroup: Stop going ahead if autogroup is disabled"
+
+From: Mike Galbraith <efault@gmx.de>
+
+commit fd8ef11730f1d03d5d6555aa53126e9e34f52f12 upstream.
+
+This reverts commit 800d4d30c8f20bd728e5741a3b77c4859a613f7c.
+
+Between commits 8323f26ce342 ("sched: Fix race in task_group()") and
+800d4d30c8f2 ("sched, autogroup: Stop going ahead if autogroup is
+disabled"), autogroup is a wreck.
+
+With both applied, all you have to do to crash a box is disable
+autogroup during boot up, then reboot.. boom, NULL pointer dereference
+due to commit 800d4d30c8f2 not allowing autogroup to move things, and
+commit 8323f26ce342 making that the only way to switch runqueues:
+
+ BUG: unable to handle kernel NULL pointer dereference at (null)
+ IP: [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
+ Pid: 7047, comm: systemd-user-se Not tainted 3.6.8-smp #7 MEDIONPC MS-7502/MS-7502
+ RIP: effective_load.isra.43+0x50/0x90
+ Process systemd-user-se (pid: 7047, threadinfo ffff880221dde000, task ffff88022618b3a0)
+ Call Trace:
+ select_task_rq_fair+0x255/0x780
+ try_to_wake_up+0x156/0x2c0
+ wake_up_state+0xb/0x10
+ signal_wake_up+0x28/0x40
+ complete_signal+0x1d6/0x250
+ __send_signal+0x170/0x310
+ send_signal+0x40/0x80
+ do_send_sig_info+0x47/0x90
+ group_send_sig_info+0x4a/0x70
+ kill_pid_info+0x3a/0x60
+ sys_kill+0x97/0x1a0
+ ? vfs_read+0x120/0x160
+ ? sys_read+0x45/0x90
+ system_call_fastpath+0x16/0x1b
+ Code: 49 0f af 41 50 31 d2 49 f7 f0 48 83 f8 01 48 0f 46 c6 48 2b 07 48 8b bf 40 01 00 00 48 85 ff 74 3a 45 31 c0 48 8b 8f 50 01 00 00 <48> 8b 11 4c 8b 89 80 00 00 00 49 89 d2 48 01 d0 45 8b 59 58 4c
+ RIP [<ffffffff81063ac0>] effective_load.isra.43+0x50/0x90
+ RSP <ffff880221ddfbd8>
+ CR2: 0000000000000000
+
+Signed-off-by: Mike Galbraith <efault@gmx.de>
+Acked-by: Ingo Molnar <mingo@kernel.org>
+Cc: Yong Zhang <yong.zhang0@gmail.com>
+Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/sched/auto_group.c | 4 ----
+ kernel/sched/auto_group.h | 5 -----
+ 2 files changed, 9 deletions(-)
+
+--- a/kernel/sched/auto_group.c
++++ b/kernel/sched/auto_group.c
+@@ -143,15 +143,11 @@ autogroup_move_group(struct task_struct
+
+ p->signal->autogroup = autogroup_kref_get(ag);
+
+- if (!ACCESS_ONCE(sysctl_sched_autogroup_enabled))
+- goto out;
+-
+ t = p;
+ do {
+ sched_move_task(t);
+ } while_each_thread(p, t);
+
+-out:
+ unlock_task_sighand(p, &flags);
+ autogroup_kref_put(prev);
+ }
+--- a/kernel/sched/auto_group.h
++++ b/kernel/sched/auto_group.h
+@@ -4,11 +4,6 @@
+ #include <linux/rwsem.h>
+
+ struct autogroup {
+- /*
+- * reference doesn't mean how many thread attach to this
+- * autogroup now. It just stands for the number of task
+- * could use this autogroup.
+- */
+ struct kref kref;
+ struct task_group *tg;
+ struct rw_semaphore lock;
iwlwifi-fix-the-basic-cck-rates-calculation.patch
arm-kirkwood-update-pci-e-fixup.patch
x86-fpu-avoid-fpu-lazy-restore-after-suspend.patch
+workqueue-exit-rescuer_thread-as-task_running.patch
+mac80211-fix-remain-on-channel-non-cancelling.patch
+md-raid1-0-fix-deadlock-in-bitmap_unplug.patch
+i7300_edac-fix-error-flag-testing.patch
+revert-sched-autogroup-stop-going-ahead-if-autogroup-is-disabled.patch
+bnx2x-remove-redundant-warning-log.patch
+i7core_edac-fix-panic-when-accessing-sysfs-files.patch
--- /dev/null
+From 412d32e6c98527078779e5b515823b2810e40324 Mon Sep 17 00:00:00 2001
+From: Mike Galbraith <mgalbraith@suse.de>
+Date: Wed, 28 Nov 2012 07:17:18 +0100
+Subject: workqueue: exit rescuer_thread() as TASK_RUNNING
+
+From: Mike Galbraith <mgalbraith@suse.de>
+
+commit 412d32e6c98527078779e5b515823b2810e40324 upstream.
+
+A rescue thread exiting TASK_INTERRUPTIBLE can lead to a task scheduling
+off, never to be seen again. In the case where this occurred, an exiting
+thread hit reiserfs homebrew conditional resched while holding a mutex,
+bringing the box to its knees.
+
+PID: 18105 TASK: ffff8807fd412180 CPU: 5 COMMAND: "kdmflush"
+ #0 [ffff8808157e7670] schedule at ffffffff8143f489
+ #1 [ffff8808157e77b8] reiserfs_get_block at ffffffffa038ab2d [reiserfs]
+ #2 [ffff8808157e79a8] __block_write_begin at ffffffff8117fb14
+ #3 [ffff8808157e7a98] reiserfs_write_begin at ffffffffa0388695 [reiserfs]
+ #4 [ffff8808157e7ad8] generic_perform_write at ffffffff810ee9e2
+ #5 [ffff8808157e7b58] generic_file_buffered_write at ffffffff810eeb41
+ #6 [ffff8808157e7ba8] __generic_file_aio_write at ffffffff810f1a3a
+ #7 [ffff8808157e7c58] generic_file_aio_write at ffffffff810f1c88
+ #8 [ffff8808157e7cc8] do_sync_write at ffffffff8114f850
+ #9 [ffff8808157e7dd8] do_acct_process at ffffffff810a268f
+ [exception RIP: kernel_thread_helper]
+ RIP: ffffffff8144a5c0 RSP: ffff8808157e7f58 RFLAGS: 00000202
+ RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
+ RDX: 0000000000000000 RSI: ffffffff8107af60 RDI: ffff8803ee491d18
+ RBP: 0000000000000000 R8: 0000000000000000 R9: 0000000000000000
+ R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
+ R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
+ ORIG_RAX: ffffffffffffffff CS: 0010 SS: 0018
+
+Signed-off-by: Mike Galbraith <mgalbraith@suse.de>
+Signed-off-by: Tejun Heo <tj@kernel.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/workqueue.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+--- a/kernel/workqueue.c
++++ b/kernel/workqueue.c
+@@ -2266,8 +2266,10 @@ static int rescuer_thread(void *__wq)
+ repeat:
+ set_current_state(TASK_INTERRUPTIBLE);
+
+- if (kthread_should_stop())
++ if (kthread_should_stop()) {
++ __set_current_state(TASK_RUNNING);
+ return 0;
++ }
+
+ /*
+ * See whether any cpu is asking for help. Unbounded