]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Jan 2013 17:20:16 +0000 (09:20 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 14 Jan 2013 17:20:16 +0000 (09:20 -0800)
added patches:
ath9k-ar9003-fix-otp-register-offsets-for-ar9340.patch
firewire-net-fix-handling-of-fragmented-multicast-broadcast-packets.patch
mm-compaction-fix-echo-1-compact_memory-return-error-issue.patch
mm-use-aligned-zone-start-for-pfn_to_bitidx-calculation.patch
revert-ath9k_hw-update-ar9003-high_power-tx-gain-table.patch
sata_promise-fix-hardreset-lockdep-error.patch
scsi-mvsas-fix-undefined-bit-shift.patch
scsi-qla2xxx-test-and-clear-fcport_update_needed-atomically.patch

queue-3.0/ath9k-ar9003-fix-otp-register-offsets-for-ar9340.patch [new file with mode: 0644]
queue-3.0/firewire-net-fix-handling-of-fragmented-multicast-broadcast-packets.patch [new file with mode: 0644]
queue-3.0/mm-compaction-fix-echo-1-compact_memory-return-error-issue.patch [new file with mode: 0644]
queue-3.0/mm-use-aligned-zone-start-for-pfn_to_bitidx-calculation.patch [new file with mode: 0644]
queue-3.0/revert-ath9k_hw-update-ar9003-high_power-tx-gain-table.patch [new file with mode: 0644]
queue-3.0/sata_promise-fix-hardreset-lockdep-error.patch [new file with mode: 0644]
queue-3.0/scsi-mvsas-fix-undefined-bit-shift.patch [new file with mode: 0644]
queue-3.0/scsi-qla2xxx-test-and-clear-fcport_update_needed-atomically.patch [new file with mode: 0644]
queue-3.0/series

diff --git a/queue-3.0/ath9k-ar9003-fix-otp-register-offsets-for-ar9340.patch b/queue-3.0/ath9k-ar9003-fix-otp-register-offsets-for-ar9340.patch
new file mode 100644 (file)
index 0000000..af75c9f
--- /dev/null
@@ -0,0 +1,79 @@
+From b3cd8021379306c0be6932e4d3b4b01efc681769 Mon Sep 17 00:00:00 2001
+From: Gabor Juhos <juhosg@openwrt.org>
+Date: Sun, 9 Dec 2012 23:57:09 +0100
+Subject: ath9k: ar9003: fix OTP register offsets for AR9340
+
+From: Gabor Juhos <juhosg@openwrt.org>
+
+commit b3cd8021379306c0be6932e4d3b4b01efc681769 upstream.
+
+Trying to access the OTP memory on the AR9340
+causes a data bus error like this:
+
+  Data bus error, epc == 86e84164, ra == 86e84164
+  Oops[#1]:
+  Cpu 0
+  $ 0   : 00000000 00000061 deadc0de 00000000
+  $ 4   : b8115f18 00015f18 00000007 00000004
+  $ 8   : 00000001 7c7c3c7c 7c7c7c7c 7c7c7c7c
+  $12   : 7c7c3c7c 001f0041 00000000 7c7c7c3c
+  $16   : 86ee0000 00015f18 00000000 00000007
+  $20   : 00000004 00000064 00000004 86d71c44
+  $24   : 00000000 86e6ca00
+  $28   : 86d70000 86d71b20 86ece0c0 86e84164
+  Hi    : 00000000
+  Lo    : 00000064
+  epc   : 86e84164 ath9k_hw_wait+0x58/0xb0 [ath9k_hw]
+      Tainted: G           O
+  ra    : 86e84164 ath9k_hw_wait+0x58/0xb0 [ath9k_hw]
+  Status: 1100d403    KERNEL EXL IE
+  Cause : 4080801c
+  PrId  : 0001974c (MIPS 74Kc)
+  Modules linked in: ath9k(O+) ath9k_common(O) ath9k_hw(O) ath(O) ar934x_nfc
+  mac80211(O) usbcore usb_common scsi_mod nls_base nand nand_ecc nand_ids
+  crc_ccitt cfg80211(O) compat(O) arc4 aes_generic crypto_blkcipher cryptomgr
+  aead crypto_hash crypto_algapi ledtrig_timer ledtrig_default_on leds_gpio
+  Process insmod (pid: 459, threadinfo=86d70000, task=87942140, tls=779ac440)
+  Stack : 802fb500 000200da 804db150 804e0000 87816130 86ee0000 00010000 86d71b88
+          86d71bc0 00000004 00000003 86e9fcd0 80305300 0002c0d0 86e74c50 800b4c20
+          000003e8 00000001 00000000 86ee0000 000003ff 86e9fd64 80305300 80123938
+          fffffffc 00000004 000058bc 00000000 86ea0000 86ee0000 000001ff 878d6000
+          99999999 86e9fdc0 86ee0fcc 86e9e664 0000c0d0 86ee0000 0000700000007000
+          ...
+  Call Trace:
+  [<86e84164>] ath9k_hw_wait+0x58/0xb0 [ath9k_hw]
+  [<86e9fcd0>] ath9k_hw_setup_statusring+0x16b8/0x1c7c [ath9k_hw]
+
+  Code: 0000a812  0040f809  00000000 <00531024> 1054000b  24020001  0c05b5dc  2404000a  26520001
+
+The cause of the error is that the OTP register
+offsets are different on the AR9340 than the
+actually used values.
+
+Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/ath/ath9k/ar9003_eeprom.h |    6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
++++ b/drivers/net/wireless/ath/ath9k/ar9003_eeprom.h
+@@ -69,13 +69,13 @@
+ #define AR9300_BASE_ADDR 0x3ff
+ #define AR9300_BASE_ADDR_512 0x1ff
+-#define AR9300_OTP_BASE                       0x14000
+-#define AR9300_OTP_STATUS             0x15f18
++#define AR9300_OTP_BASE                       (AR_SREV_9340(ah) ? 0x30000 : 0x14000)
++#define AR9300_OTP_STATUS             (AR_SREV_9340(ah) ? 0x30018 : 0x15f18)
+ #define AR9300_OTP_STATUS_TYPE                0x7
+ #define AR9300_OTP_STATUS_VALID               0x4
+ #define AR9300_OTP_STATUS_ACCESS_BUSY 0x2
+ #define AR9300_OTP_STATUS_SM_BUSY     0x1
+-#define AR9300_OTP_READ_DATA          0x15f1c
++#define AR9300_OTP_READ_DATA          (AR_SREV_9340(ah) ? 0x3001c : 0x15f1c)
+ enum targetPowerHTRates {
+       HT_TARGET_RATE_0_8_16,
diff --git a/queue-3.0/firewire-net-fix-handling-of-fragmented-multicast-broadcast-packets.patch b/queue-3.0/firewire-net-fix-handling-of-fragmented-multicast-broadcast-packets.patch
new file mode 100644 (file)
index 0000000..29a2172
--- /dev/null
@@ -0,0 +1,70 @@
+From 9d2373420900a39f5212a3b289331aa3535b1000 Mon Sep 17 00:00:00 2001
+From: Stephan Gatzka <stephan.gatzka@gmail.com>
+Date: Wed, 28 Nov 2012 20:04:32 +0100
+Subject: firewire: net: Fix handling of fragmented multicast/broadcast packets.
+
+From: Stephan Gatzka <stephan.gatzka@gmail.com>
+
+commit 9d2373420900a39f5212a3b289331aa3535b1000 upstream.
+
+This patch fixes both the transmit and receive portion of sending
+fragmented mutlicast and broadcast packets.
+
+The transmit section was broken because the offset for INTFRAG and
+LASTFRAG packets were just miscalculated by IEEE1394_GASP_HDR_SIZE (which
+was reserved with skb_push() in fwnet_send_packet).
+
+The receive section was broken because in fwnet_incoming_packet is a call
+to fwnet_peer_find_by_node_id(). Called with generation == -1 it will
+not find a peer and the partial datagrams are associated to a peer.
+
+[Stefan R:  The fix to use context->card->generation is not perfect.
+It relies on the IR tasklet which processes packets from the prior bus
+generation to run before the self-ID-complete worklet which sets the
+current card generation.  Alas, there is no simple way of a race-free
+implementation.  Let's do it this way for now.]
+
+Signed-off-by: Stephan Gatzka <stephan.gatzka@gmail.com>
+Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/firewire/net.c |   13 +++++++++----
+ 1 file changed, 9 insertions(+), 4 deletions(-)
+
+--- a/drivers/firewire/net.c
++++ b/drivers/firewire/net.c
+@@ -863,8 +863,8 @@ static void fwnet_receive_broadcast(stru
+       if (specifier_id == IANA_SPECIFIER_ID && ver == RFC2734_SW_VERSION) {
+               buf_ptr += 2;
+               length -= IEEE1394_GASP_HDR_SIZE;
+-              fwnet_incoming_packet(dev, buf_ptr, length,
+-                                    source_node_id, -1, true);
++              fwnet_incoming_packet(dev, buf_ptr, length, source_node_id,
++                                    context->card->generation, true);
+       }
+       packet.payload_length = dev->rcv_buffer_size;
+@@ -959,7 +959,12 @@ static void fwnet_transmit_packet_done(s
+                       break;
+               }
+-              skb_pull(skb, ptask->max_payload);
++              if (ptask->dest_node == IEEE1394_ALL_NODES) {
++                      skb_pull(skb,
++                               ptask->max_payload + IEEE1394_GASP_HDR_SIZE);
++              } else {
++                      skb_pull(skb, ptask->max_payload);
++              }
+               if (ptask->outstanding_pkts > 1) {
+                       fwnet_make_sf_hdr(&ptask->hdr, RFC2374_HDR_INTFRAG,
+                                         dg_size, fg_off, datagram_label);
+@@ -1062,7 +1067,7 @@ static int fwnet_send_packet(struct fwne
+               smp_rmb();
+               node_id = dev->card->node_id;
+-              p = skb_push(ptask->skb, 8);
++              p = skb_push(ptask->skb, IEEE1394_GASP_HDR_SIZE);
+               put_unaligned_be32(node_id << 16 | IANA_SPECIFIER_ID >> 8, p);
+               put_unaligned_be32((IANA_SPECIFIER_ID & 0xff) << 24
+                                               | RFC2734_SW_VERSION, &p[4]);
diff --git a/queue-3.0/mm-compaction-fix-echo-1-compact_memory-return-error-issue.patch b/queue-3.0/mm-compaction-fix-echo-1-compact_memory-return-error-issue.patch
new file mode 100644 (file)
index 0000000..b043032
--- /dev/null
@@ -0,0 +1,70 @@
+From 7964c06d66c76507d8b6b662bffea770c29ef0ce Mon Sep 17 00:00:00 2001
+From: Jason Liu <r64343@freescale.com>
+Date: Fri, 11 Jan 2013 14:31:47 -0800
+Subject: mm: compaction: fix echo 1 > compact_memory return error issue
+
+From: Jason Liu <r64343@freescale.com>
+
+commit 7964c06d66c76507d8b6b662bffea770c29ef0ce upstream.
+
+when run the folloing command under shell, it will return error
+
+  sh/$ echo 1 > /proc/sys/vm/compact_memory
+  sh/$ sh: write error: Bad address
+
+After strace, I found the following log:
+
+  ...
+  write(1, "1\n", 2)               = 3
+  write(1, "", 4294967295)         = -1 EFAULT (Bad address)
+  write(2, "echo: write error: Bad address\n", 31echo: write error: Bad address
+  ) = 31
+
+This tells system return 3(COMPACT_COMPLETE) after write data to
+compact_memory.
+
+The fix is to make the system just return 0 instead 3(COMPACT_COMPLETE)
+from sysctl_compaction_handler after compaction_nodes finished.
+
+Signed-off-by: Jason Liu <r64343@freescale.com>
+Suggested-by: David Rientjes <rientjes@google.com>
+Acked-by: Mel Gorman <mgorman@suse.de>
+Cc: Rik van Riel <riel@redhat.com>
+Cc: Minchan Kim <minchan@kernel.org>
+Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
+Acked-by: David Rientjes <rientjes@google.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ mm/compaction.c |    6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- a/mm/compaction.c
++++ b/mm/compaction.c
+@@ -714,14 +714,12 @@ static int compact_node(int nid)
+ }
+ /* Compact all nodes in the system */
+-static int compact_nodes(void)
++static void compact_nodes(void)
+ {
+       int nid;
+       for_each_online_node(nid)
+               compact_node(nid);
+-
+-      return COMPACT_COMPLETE;
+ }
+ /* The written value is actually unused, all memory is compacted */
+@@ -732,7 +730,7 @@ int sysctl_compaction_handler(struct ctl
+                       void __user *buffer, size_t *length, loff_t *ppos)
+ {
+       if (write)
+-              return compact_nodes();
++              compact_nodes();
+       return 0;
+ }
diff --git a/queue-3.0/mm-use-aligned-zone-start-for-pfn_to_bitidx-calculation.patch b/queue-3.0/mm-use-aligned-zone-start-for-pfn_to_bitidx-calculation.patch
new file mode 100644 (file)
index 0000000..af1d163
--- /dev/null
@@ -0,0 +1,53 @@
+From c060f943d0929f3e429c5d9522290584f6281d6e Mon Sep 17 00:00:00 2001
+From: Laura Abbott <lauraa@codeaurora.org>
+Date: Fri, 11 Jan 2013 14:31:51 -0800
+Subject: mm: use aligned zone start for pfn_to_bitidx calculation
+
+From: Laura Abbott <lauraa@codeaurora.org>
+
+commit c060f943d0929f3e429c5d9522290584f6281d6e upstream.
+
+The current calculation in pfn_to_bitidx assumes that (pfn -
+zone->zone_start_pfn) >> pageblock_order will return the same bit for
+all pfn in a pageblock.  If zone_start_pfn is not aligned to
+pageblock_nr_pages, this may not always be correct.
+
+Consider the following with pageblock order = 10, zone start 2MB:
+
+  pfn     | pfn - zone start | (pfn - zone start) >> page block order
+  ----------------------------------------------------------------
+  0x26000 | 0x25e00       |  0x97
+  0x26100 | 0x25f00       |  0x97
+  0x26200 | 0x26000       |  0x98
+  0x26300 | 0x26100       |  0x98
+
+This means that calling {get,set}_pageblock_migratetype on a single page
+will not set the migratetype for the full block.  Fix this by rounding
+down zone_start_pfn when doing the bitidx calculation.
+
+For our use case, the effects of this bug were mostly tied to the fact
+that CMA allocations would either take a long time or fail to happen.
+Depending on the driver using CMA, this could result in anything from
+visual glitches to application failures.
+
+Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
+Acked-by: Mel Gorman <mgorman@suse.de>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ mm/page_alloc.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -5492,7 +5492,7 @@ static inline int pfn_to_bitidx(struct z
+       pfn &= (PAGES_PER_SECTION-1);
+       return (pfn >> pageblock_order) * NR_PAGEBLOCK_BITS;
+ #else
+-      pfn = pfn - zone->zone_start_pfn;
++      pfn = pfn - round_down(zone->zone_start_pfn, pageblock_nr_pages);
+       return (pfn >> pageblock_order) * NR_PAGEBLOCK_BITS;
+ #endif /* CONFIG_SPARSEMEM */
+ }
diff --git a/queue-3.0/revert-ath9k_hw-update-ar9003-high_power-tx-gain-table.patch b/queue-3.0/revert-ath9k_hw-update-ar9003-high_power-tx-gain-table.patch
new file mode 100644 (file)
index 0000000..606b5e2
--- /dev/null
@@ -0,0 +1,214 @@
+From 9c170e068636deb3e3f96114034bb711675f0faa Mon Sep 17 00:00:00 2001
+From: Felix Fietkau <nbd@openwrt.org>
+Date: Thu, 6 Dec 2012 18:40:11 +0100
+Subject: Revert "ath9k_hw: Update AR9003 high_power tx gain table"
+
+From: Felix Fietkau <nbd@openwrt.org>
+
+commit 9c170e068636deb3e3f96114034bb711675f0faa upstream.
+
+This reverts commit f74b9d365ddd33a375802b064f96a5d0e99af7c0.
+
+Turns out reverting commit a240dc7b3c7463bd60cf0a9b2a90f52f78aae0fd
+"ath9k_hw: Updated AR9003 tx gain table for 5GHz" was not enough to
+bring the tx power back to normal levels on devices like the
+Buffalo WZR-HP-G450H, this one needs to be reverted as well.
+
+This revert improves tx power by ~10 db on that device
+
+Signed-off-by: Felix Fietkau <nbd@openwrt.org>
+Cc: rmanohar@qca.qualcomm.com
+Signed-off-by: John W. Linville <linville@tuxdriver.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h |  172 +++++++++----------
+ 1 file changed, 86 insertions(+), 86 deletions(-)
+
+--- a/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
++++ b/drivers/net/wireless/ath/ath9k/ar9003_2p2_initvals.h
+@@ -34,98 +34,98 @@ static const u32 ar9300_2p2_radio_postam
+ static const u32 ar9300Modes_lowest_ob_db_tx_gain_table_2p2[][5] = {
+       /* Addr      5G_HT20     5G_HT40     2G_HT40     2G_HT20   */
+-      {0x0000a2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352},
+-      {0x0000a2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584},
+-      {0x0000a2e4, 0x03fc0000, 0x03fc0000, 0x03f0f800, 0x03f0f800},
++      {0x0000a2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352},
++      {0x0000a2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584},
++      {0x0000a2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800},
+       {0x0000a2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000},
+-      {0x0000a410, 0x000050d9, 0x000050d9, 0x000050d9, 0x000050d9},
+-      {0x0000a500, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+-      {0x0000a504, 0x06000003, 0x06000003, 0x04000002, 0x04000002},
+-      {0x0000a508, 0x0a000020, 0x0a000020, 0x08000004, 0x08000004},
+-      {0x0000a50c, 0x10000023, 0x10000023, 0x0b000200, 0x0b000200},
+-      {0x0000a510, 0x16000220, 0x16000220, 0x0f000202, 0x0f000202},
+-      {0x0000a514, 0x1c000223, 0x1c000223, 0x12000400, 0x12000400},
+-      {0x0000a518, 0x21002220, 0x21002220, 0x16000402, 0x16000402},
+-      {0x0000a51c, 0x27002223, 0x27002223, 0x19000404, 0x19000404},
+-      {0x0000a520, 0x2b022220, 0x2b022220, 0x1c000603, 0x1c000603},
+-      {0x0000a524, 0x2f022222, 0x2f022222, 0x21000a02, 0x21000a02},
+-      {0x0000a528, 0x34022225, 0x34022225, 0x25000a04, 0x25000a04},
+-      {0x0000a52c, 0x3a02222a, 0x3a02222a, 0x28000a20, 0x28000a20},
+-      {0x0000a530, 0x3e02222c, 0x3e02222c, 0x2c000e20, 0x2c000e20},
+-      {0x0000a534, 0x4202242a, 0x4202242a, 0x30000e22, 0x30000e22},
+-      {0x0000a538, 0x4702244a, 0x4702244a, 0x34000e24, 0x34000e24},
+-      {0x0000a53c, 0x4b02244c, 0x4b02244c, 0x38001640, 0x38001640},
+-      {0x0000a540, 0x4e02246c, 0x4e02246c, 0x3c001660, 0x3c001660},
+-      {0x0000a544, 0x52022470, 0x52022470, 0x3f001861, 0x3f001861},
+-      {0x0000a548, 0x55022490, 0x55022490, 0x43001a81, 0x43001a81},
+-      {0x0000a54c, 0x59022492, 0x59022492, 0x47001a83, 0x47001a83},
+-      {0x0000a550, 0x5d022692, 0x5d022692, 0x4a001c84, 0x4a001c84},
+-      {0x0000a554, 0x61022892, 0x61022892, 0x4e001ce3, 0x4e001ce3},
+-      {0x0000a558, 0x65024890, 0x65024890, 0x52001ce5, 0x52001ce5},
+-      {0x0000a55c, 0x69024892, 0x69024892, 0x56001ce9, 0x56001ce9},
+-      {0x0000a560, 0x6e024c92, 0x6e024c92, 0x5a001ceb, 0x5a001ceb},
+-      {0x0000a564, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+-      {0x0000a568, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+-      {0x0000a56c, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+-      {0x0000a570, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+-      {0x0000a574, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+-      {0x0000a578, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+-      {0x0000a57c, 0x74026e92, 0x74026e92, 0x5d001eec, 0x5d001eec},
+-      {0x0000a580, 0x00800000, 0x00800000, 0x00800000, 0x00800000},
+-      {0x0000a584, 0x06800003, 0x06800003, 0x04800002, 0x04800002},
+-      {0x0000a588, 0x0a800020, 0x0a800020, 0x08800004, 0x08800004},
+-      {0x0000a58c, 0x10800023, 0x10800023, 0x0b800200, 0x0b800200},
+-      {0x0000a590, 0x16800220, 0x16800220, 0x0f800202, 0x0f800202},
+-      {0x0000a594, 0x1c800223, 0x1c800223, 0x12800400, 0x12800400},
+-      {0x0000a598, 0x21802220, 0x21802220, 0x16800402, 0x16800402},
+-      {0x0000a59c, 0x27802223, 0x27802223, 0x19800404, 0x19800404},
+-      {0x0000a5a0, 0x2b822220, 0x2b822220, 0x1c800603, 0x1c800603},
+-      {0x0000a5a4, 0x2f822222, 0x2f822222, 0x21800a02, 0x21800a02},
+-      {0x0000a5a8, 0x34822225, 0x34822225, 0x25800a04, 0x25800a04},
+-      {0x0000a5ac, 0x3a82222a, 0x3a82222a, 0x28800a20, 0x28800a20},
+-      {0x0000a5b0, 0x3e82222c, 0x3e82222c, 0x2c800e20, 0x2c800e20},
+-      {0x0000a5b4, 0x4282242a, 0x4282242a, 0x30800e22, 0x30800e22},
+-      {0x0000a5b8, 0x4782244a, 0x4782244a, 0x34800e24, 0x34800e24},
+-      {0x0000a5bc, 0x4b82244c, 0x4b82244c, 0x38801640, 0x38801640},
+-      {0x0000a5c0, 0x4e82246c, 0x4e82246c, 0x3c801660, 0x3c801660},
+-      {0x0000a5c4, 0x52822470, 0x52822470, 0x3f801861, 0x3f801861},
+-      {0x0000a5c8, 0x55822490, 0x55822490, 0x43801a81, 0x43801a81},
+-      {0x0000a5cc, 0x59822492, 0x59822492, 0x47801a83, 0x47801a83},
+-      {0x0000a5d0, 0x5d822692, 0x5d822692, 0x4a801c84, 0x4a801c84},
+-      {0x0000a5d4, 0x61822892, 0x61822892, 0x4e801ce3, 0x4e801ce3},
+-      {0x0000a5d8, 0x65824890, 0x65824890, 0x52801ce5, 0x52801ce5},
+-      {0x0000a5dc, 0x69824892, 0x69824892, 0x56801ce9, 0x56801ce9},
+-      {0x0000a5e0, 0x6e824c92, 0x6e824c92, 0x5a801ceb, 0x5a801ceb},
+-      {0x0000a5e4, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+-      {0x0000a5e8, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+-      {0x0000a5ec, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+-      {0x0000a5f0, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+-      {0x0000a5f4, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+-      {0x0000a5f8, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
+-      {0x0000a5fc, 0x74826e92, 0x74826e92, 0x5d801eec, 0x5d801eec},
++      {0x0000a410, 0x000050d8, 0x000050d8, 0x000050d9, 0x000050d9},
++      {0x0000a500, 0x00002220, 0x00002220, 0x00000000, 0x00000000},
++      {0x0000a504, 0x04002222, 0x04002222, 0x04000002, 0x04000002},
++      {0x0000a508, 0x09002421, 0x09002421, 0x08000004, 0x08000004},
++      {0x0000a50c, 0x0d002621, 0x0d002621, 0x0b000200, 0x0b000200},
++      {0x0000a510, 0x13004620, 0x13004620, 0x0f000202, 0x0f000202},
++      {0x0000a514, 0x19004a20, 0x19004a20, 0x11000400, 0x11000400},
++      {0x0000a518, 0x1d004e20, 0x1d004e20, 0x15000402, 0x15000402},
++      {0x0000a51c, 0x21005420, 0x21005420, 0x19000404, 0x19000404},
++      {0x0000a520, 0x26005e20, 0x26005e20, 0x1b000603, 0x1b000603},
++      {0x0000a524, 0x2b005e40, 0x2b005e40, 0x1f000a02, 0x1f000a02},
++      {0x0000a528, 0x2f005e42, 0x2f005e42, 0x23000a04, 0x23000a04},
++      {0x0000a52c, 0x33005e44, 0x33005e44, 0x26000a20, 0x26000a20},
++      {0x0000a530, 0x38005e65, 0x38005e65, 0x2a000e20, 0x2a000e20},
++      {0x0000a534, 0x3c005e69, 0x3c005e69, 0x2e000e22, 0x2e000e22},
++      {0x0000a538, 0x40005e6b, 0x40005e6b, 0x31000e24, 0x31000e24},
++      {0x0000a53c, 0x44005e6d, 0x44005e6d, 0x34001640, 0x34001640},
++      {0x0000a540, 0x49005e72, 0x49005e72, 0x38001660, 0x38001660},
++      {0x0000a544, 0x4e005eb2, 0x4e005eb2, 0x3b001861, 0x3b001861},
++      {0x0000a548, 0x53005f12, 0x53005f12, 0x3e001a81, 0x3e001a81},
++      {0x0000a54c, 0x59025eb2, 0x59025eb2, 0x42001a83, 0x42001a83},
++      {0x0000a550, 0x5e025f12, 0x5e025f12, 0x44001c84, 0x44001c84},
++      {0x0000a554, 0x61027f12, 0x61027f12, 0x48001ce3, 0x48001ce3},
++      {0x0000a558, 0x6702bf12, 0x6702bf12, 0x4c001ce5, 0x4c001ce5},
++      {0x0000a55c, 0x6b02bf14, 0x6b02bf14, 0x50001ce9, 0x50001ce9},
++      {0x0000a560, 0x6f02bf16, 0x6f02bf16, 0x54001ceb, 0x54001ceb},
++      {0x0000a564, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec},
++      {0x0000a568, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec},
++      {0x0000a56c, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec},
++      {0x0000a570, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec},
++      {0x0000a574, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec},
++      {0x0000a578, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec},
++      {0x0000a57c, 0x6f02bf16, 0x6f02bf16, 0x56001eec, 0x56001eec},
++      {0x0000a580, 0x00802220, 0x00802220, 0x00800000, 0x00800000},
++      {0x0000a584, 0x04802222, 0x04802222, 0x04800002, 0x04800002},
++      {0x0000a588, 0x09802421, 0x09802421, 0x08800004, 0x08800004},
++      {0x0000a58c, 0x0d802621, 0x0d802621, 0x0b800200, 0x0b800200},
++      {0x0000a590, 0x13804620, 0x13804620, 0x0f800202, 0x0f800202},
++      {0x0000a594, 0x19804a20, 0x19804a20, 0x11800400, 0x11800400},
++      {0x0000a598, 0x1d804e20, 0x1d804e20, 0x15800402, 0x15800402},
++      {0x0000a59c, 0x21805420, 0x21805420, 0x19800404, 0x19800404},
++      {0x0000a5a0, 0x26805e20, 0x26805e20, 0x1b800603, 0x1b800603},
++      {0x0000a5a4, 0x2b805e40, 0x2b805e40, 0x1f800a02, 0x1f800a02},
++      {0x0000a5a8, 0x2f805e42, 0x2f805e42, 0x23800a04, 0x23800a04},
++      {0x0000a5ac, 0x33805e44, 0x33805e44, 0x26800a20, 0x26800a20},
++      {0x0000a5b0, 0x38805e65, 0x38805e65, 0x2a800e20, 0x2a800e20},
++      {0x0000a5b4, 0x3c805e69, 0x3c805e69, 0x2e800e22, 0x2e800e22},
++      {0x0000a5b8, 0x40805e6b, 0x40805e6b, 0x31800e24, 0x31800e24},
++      {0x0000a5bc, 0x44805e6d, 0x44805e6d, 0x34801640, 0x34801640},
++      {0x0000a5c0, 0x49805e72, 0x49805e72, 0x38801660, 0x38801660},
++      {0x0000a5c4, 0x4e805eb2, 0x4e805eb2, 0x3b801861, 0x3b801861},
++      {0x0000a5c8, 0x53805f12, 0x53805f12, 0x3e801a81, 0x3e801a81},
++      {0x0000a5cc, 0x59825eb2, 0x59825eb2, 0x42801a83, 0x42801a83},
++      {0x0000a5d0, 0x5e825f12, 0x5e825f12, 0x44801c84, 0x44801c84},
++      {0x0000a5d4, 0x61827f12, 0x61827f12, 0x48801ce3, 0x48801ce3},
++      {0x0000a5d8, 0x6782bf12, 0x6782bf12, 0x4c801ce5, 0x4c801ce5},
++      {0x0000a5dc, 0x6b82bf14, 0x6b82bf14, 0x50801ce9, 0x50801ce9},
++      {0x0000a5e0, 0x6f82bf16, 0x6f82bf16, 0x54801ceb, 0x54801ceb},
++      {0x0000a5e4, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
++      {0x0000a5e8, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
++      {0x0000a5ec, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
++      {0x0000a5f0, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
++      {0x0000a5f4, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
++      {0x0000a5f8, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
++      {0x0000a5fc, 0x6f82bf16, 0x6f82bf16, 0x56801eec, 0x56801eec},
+       {0x0000a600, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+       {0x0000a604, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+       {0x0000a608, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+       {0x0000a60c, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+-      {0x0000a610, 0x00000000, 0x00000000, 0x00000000, 0x00000000},
+-      {0x0000a614, 0x02004000, 0x02004000, 0x01404000, 0x01404000},
+-      {0x0000a618, 0x02004801, 0x02004801, 0x01404501, 0x01404501},
+-      {0x0000a61c, 0x02808a02, 0x02808a02, 0x02008501, 0x02008501},
+-      {0x0000a620, 0x0380ce03, 0x0380ce03, 0x0280ca03, 0x0280ca03},
+-      {0x0000a624, 0x04411104, 0x04411104, 0x03010c04, 0x03010c04},
+-      {0x0000a628, 0x04411104, 0x04411104, 0x04014c04, 0x04014c04},
+-      {0x0000a62c, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+-      {0x0000a630, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+-      {0x0000a634, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+-      {0x0000a638, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+-      {0x0000a63c, 0x04411104, 0x04411104, 0x04015005, 0x04015005},
+-      {0x0000b2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352},
+-      {0x0000b2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584},
+-      {0x0000b2e4, 0x03fc0000, 0x03fc0000, 0x03f0f800, 0x03f0f800},
++      {0x0000a610, 0x00804000, 0x00804000, 0x00000000, 0x00000000},
++      {0x0000a614, 0x00804201, 0x00804201, 0x01404000, 0x01404000},
++      {0x0000a618, 0x0280c802, 0x0280c802, 0x01404501, 0x01404501},
++      {0x0000a61c, 0x0280ca03, 0x0280ca03, 0x02008501, 0x02008501},
++      {0x0000a620, 0x04c15104, 0x04c15104, 0x0280ca03, 0x0280ca03},
++      {0x0000a624, 0x04c15305, 0x04c15305, 0x03010c04, 0x03010c04},
++      {0x0000a628, 0x04c15305, 0x04c15305, 0x04014c04, 0x04014c04},
++      {0x0000a62c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
++      {0x0000a630, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
++      {0x0000a634, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
++      {0x0000a638, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
++      {0x0000a63c, 0x04c15305, 0x04c15305, 0x04015005, 0x04015005},
++      {0x0000b2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352},
++      {0x0000b2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584},
++      {0x0000b2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800},
+       {0x0000b2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000},
+-      {0x0000c2dc, 0x00033800, 0x00033800, 0x03aaa352, 0x03aaa352},
+-      {0x0000c2e0, 0x0003c000, 0x0003c000, 0x03ccc584, 0x03ccc584},
+-      {0x0000c2e4, 0x03fc0000, 0x03fc0000, 0x03f0f800, 0x03f0f800},
++      {0x0000c2dc, 0x0380c7fc, 0x0380c7fc, 0x03aaa352, 0x03aaa352},
++      {0x0000c2e0, 0x0000f800, 0x0000f800, 0x03ccc584, 0x03ccc584},
++      {0x0000c2e4, 0x03ff0000, 0x03ff0000, 0x03f0f800, 0x03f0f800},
+       {0x0000c2e8, 0x00000000, 0x00000000, 0x03ff0000, 0x03ff0000},
+       {0x00016044, 0x012492d4, 0x012492d4, 0x012492d4, 0x012492d4},
+       {0x00016048, 0x62480001, 0x62480001, 0x62480001, 0x62480001},
diff --git a/queue-3.0/sata_promise-fix-hardreset-lockdep-error.patch b/queue-3.0/sata_promise-fix-hardreset-lockdep-error.patch
new file mode 100644 (file)
index 0000000..366830b
--- /dev/null
@@ -0,0 +1,84 @@
+From 3100d49d3cd236443faae9d81137c81b22d36003 Mon Sep 17 00:00:00 2001
+From: Mikael Pettersson <mikpe@it.uu.se>
+Date: Sun, 16 Sep 2012 20:53:43 +0200
+Subject: sata_promise: fix hardreset lockdep error
+
+From: Mikael Pettersson <mikpe@it.uu.se>
+
+commit 3100d49d3cd236443faae9d81137c81b22d36003 upstream.
+
+sata_promise's pdc_hard_reset_port() needs to serialize because it
+flips a port-specific bit in controller register that's shared by
+all ports. The code takes the ata host lock for this, but that's
+broken because an interrupt may arrive on our irq during the hard
+reset sequence, and that too will take the ata host lock. With
+lockdep enabled a big nasty warning is seen.
+
+Fixed by adding private state to the ata host structure, containing
+a second lock used only for serializing the hard reset sequences.
+This eliminated the lockdep warnings both on my test rig and on
+the original reporter's machine.
+
+Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
+Tested-by: Adko Branil <adkobranil@yahoo.com>
+Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/ata/sata_promise.c |   15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+--- a/drivers/ata/sata_promise.c
++++ b/drivers/ata/sata_promise.c
+@@ -147,6 +147,10 @@ struct pdc_port_priv {
+       dma_addr_t              pkt_dma;
+ };
++struct pdc_host_priv {
++      spinlock_t hard_reset_lock;
++};
++
+ static int pdc_sata_scr_read(struct ata_link *link, unsigned int sc_reg, u32 *val);
+ static int pdc_sata_scr_write(struct ata_link *link, unsigned int sc_reg, u32 val);
+ static int pdc_ata_init_one(struct pci_dev *pdev, const struct pci_device_id *ent);
+@@ -801,9 +805,10 @@ static void pdc_hard_reset_port(struct a
+       void __iomem *host_mmio = ap->host->iomap[PDC_MMIO_BAR];
+       void __iomem *pcictl_b1_mmio = host_mmio + PDC_PCI_CTL + 1;
+       unsigned int ata_no = pdc_ata_port_to_ata_no(ap);
++      struct pdc_host_priv *hpriv = ap->host->private_data;
+       u8 tmp;
+-      spin_lock(&ap->host->lock);
++      spin_lock(&hpriv->hard_reset_lock);
+       tmp = readb(pcictl_b1_mmio);
+       tmp &= ~(0x10 << ata_no);
+@@ -814,7 +819,7 @@ static void pdc_hard_reset_port(struct a
+       writeb(tmp, pcictl_b1_mmio);
+       readb(pcictl_b1_mmio); /* flush */
+-      spin_unlock(&ap->host->lock);
++      spin_unlock(&hpriv->hard_reset_lock);
+ }
+ static int pdc_sata_hardreset(struct ata_link *link, unsigned int *class,
+@@ -1183,6 +1188,7 @@ static int pdc_ata_init_one(struct pci_d
+       const struct ata_port_info *pi = &pdc_port_info[ent->driver_data];
+       const struct ata_port_info *ppi[PDC_MAX_PORTS];
+       struct ata_host *host;
++      struct pdc_host_priv *hpriv;
+       void __iomem *host_mmio;
+       int n_ports, i, rc;
+       int is_sataii_tx4;
+@@ -1220,6 +1226,11 @@ static int pdc_ata_init_one(struct pci_d
+               dev_printk(KERN_ERR, &pdev->dev, "failed to allocate host\n");
+               return -ENOMEM;
+       }
++      hpriv = devm_kzalloc(&pdev->dev, sizeof *hpriv, GFP_KERNEL);
++      if (!hpriv)
++              return -ENOMEM;
++      spin_lock_init(&hpriv->hard_reset_lock);
++      host->private_data = hpriv;
+       host->iomap = pcim_iomap_table(pdev);
+       is_sataii_tx4 = pdc_is_sataii_tx4(pi->flags);
diff --git a/queue-3.0/scsi-mvsas-fix-undefined-bit-shift.patch b/queue-3.0/scsi-mvsas-fix-undefined-bit-shift.patch
new file mode 100644 (file)
index 0000000..4d03b88
--- /dev/null
@@ -0,0 +1,70 @@
+From beecadea1b8d67f591b13f7099559f32f3fd601d Mon Sep 17 00:00:00 2001
+From: Xi Wang <xi.wang@gmail.com>
+Date: Fri, 16 Nov 2012 14:40:03 -0500
+Subject: SCSI: mvsas: fix undefined bit shift
+
+From: Xi Wang <xi.wang@gmail.com>
+
+commit beecadea1b8d67f591b13f7099559f32f3fd601d upstream.
+
+The macro bit(n) is defined as ((u32)1 << n), and thus it doesn't work
+with n >= 32, such as in mvs_94xx_assign_reg_set():
+
+       if (i >= 32) {
+               mvi->sata_reg_set |= bit(i);
+               ...
+       }
+
+The shift ((u32)1 << n) with n >= 32 also leads to undefined behavior.
+The result varies depending on the architecture.
+
+This patch changes bit(n) to do a 64-bit shift.  It also simplifies
+mv_ffc64() using __ffs64(), since invoking ffz() with ~0 is undefined.
+
+Signed-off-by: Xi Wang <xi.wang@gmail.com>
+Acked-by: Xiangliang Yu <yuxiangl@marvell.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/scsi/mvsas/mv_94xx.h |   14 ++------------
+ drivers/scsi/mvsas/mv_sas.h  |    2 +-
+ 2 files changed, 3 insertions(+), 13 deletions(-)
+
+--- a/drivers/scsi/mvsas/mv_94xx.h
++++ b/drivers/scsi/mvsas/mv_94xx.h
+@@ -193,21 +193,11 @@ struct mvs_prd {
+ #define SPI_ADDR_VLD_94XX             (1U << 1)
+ #define SPI_CTRL_SpiStart_94XX        (1U << 0)
+-#define mv_ffc(x)   ffz(x)
+-
+ static inline int
+ mv_ffc64(u64 v)
+ {
+-      int i;
+-      i = mv_ffc((u32)v);
+-      if (i >= 0)
+-              return i;
+-      i = mv_ffc((u32)(v>>32));
+-
+-      if (i != 0)
+-              return 32 + i;
+-
+-      return -1;
++      u64 x = ~v;
++      return x ? __ffs64(x) : -1;
+ }
+ #define r_reg_set_enable(i) \
+--- a/drivers/scsi/mvsas/mv_sas.h
++++ b/drivers/scsi/mvsas/mv_sas.h
+@@ -73,7 +73,7 @@ extern struct kmem_cache *mvs_task_list_
+ #define DEV_IS_EXPANDER(type) \
+       ((type == EDGE_DEV) || (type == FANOUT_DEV))
+-#define bit(n) ((u32)1 << n)
++#define bit(n) ((u64)1 << n)
+ #define for_each_phy(__lseq_mask, __mc, __lseq)                       \
+       for ((__mc) = (__lseq_mask), (__lseq) = 0;              \
diff --git a/queue-3.0/scsi-qla2xxx-test-and-clear-fcport_update_needed-atomically.patch b/queue-3.0/scsi-qla2xxx-test-and-clear-fcport_update_needed-atomically.patch
new file mode 100644 (file)
index 0000000..eb258ec
--- /dev/null
@@ -0,0 +1,55 @@
+From a394aac88506159e047630fc90dc2242568382d8 Mon Sep 17 00:00:00 2001
+From: David Jeffery <djeffery@redhat.com>
+Date: Wed, 21 Nov 2012 02:39:54 -0500
+Subject: SCSI: qla2xxx: Test and clear FCPORT_UPDATE_NEEDED atomically.
+
+From: David Jeffery <djeffery@redhat.com>
+
+commit a394aac88506159e047630fc90dc2242568382d8 upstream.
+
+When the qla2xxx driver loses access to multiple, remote ports, there is a race
+condition which can occur which will keep the request stuck on a scsi request
+queue indefinitely.
+
+This bad state occurred do to a race condition with how the FCPORT_UPDATE_NEEDED
+bit is set in qla2x00_schedule_rport_del(), and how it is cleared in
+qla2x00_do_dpc().  The problem port has its drport pointer set, but it has never
+been processed by the driver to inform the fc transport that the port has been
+lost.  qla2x00_schedule_rport_del() sets drport, and then sets the
+FCPORT_UPDATE_NEEDED bit.  In qla2x00_do_dpc(), the port lists are walked and
+any drport pointer is handled and the fc transport informed of the port loss,
+then the FCPORT_UPDATE_NEEDED bit is cleared.  This leaves a race where the
+dpc thread is processing one port removal, another port removal is marked
+with a call to qla2x00_schedule_rport_del(), and the dpc thread clears the
+bit for both removals, even though only the first removal was actually
+handled.  Until another event occurs to set FCPORT_UPDATE_NEEDED, the later
+port removal is never finished and qla2xxx stays in a bad state which causes
+requests to become stuck on request queues.
+
+This patch updates the driver to test and clear FCPORT_UPDATE_NEEDED
+atomically.  This ensures the port state changes are processed and not lost.
+
+Signed-off-by: David Jeffery <djeffery@redhat.com>
+Signed-off-by: Chad Dupuis <chad.dupuis@qlogic.com>
+Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
+Signed-off-by: James Bottomley <JBottomley@Parallels.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/scsi/qla2xxx/qla_os.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/scsi/qla2xxx/qla_os.c
++++ b/drivers/scsi/qla2xxx/qla_os.c
+@@ -3406,9 +3406,9 @@ qla2x00_do_dpc(void *data)
+                           base_vha->host_no));
+               }
+-              if (test_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags)) {
++              if (test_and_clear_bit(FCPORT_UPDATE_NEEDED,
++                  &base_vha->dpc_flags)) {
+                       qla2x00_update_fcports(base_vha);
+-                      clear_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags);
+               }
+               if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) {
index 57a56f5964c58fb1a455e1acc1b2928fb10ad31f..12899de536bebfac948541d390c01dbe7367e482 100644 (file)
@@ -1,3 +1,11 @@
 powerpc-fix-config_relocatable-y-config_crash_dump-n-build.patch
 powerpc-vdso-remove-redundant-locking-in-update_vsyscall_tz.patch
 s390-cio-fix-pgid-reserved-check.patch
+mm-compaction-fix-echo-1-compact_memory-return-error-issue.patch
+mm-use-aligned-zone-start-for-pfn_to_bitidx-calculation.patch
+revert-ath9k_hw-update-ar9003-high_power-tx-gain-table.patch
+ath9k-ar9003-fix-otp-register-offsets-for-ar9340.patch
+firewire-net-fix-handling-of-fragmented-multicast-broadcast-packets.patch
+scsi-mvsas-fix-undefined-bit-shift.patch
+scsi-qla2xxx-test-and-clear-fcport_update_needed-atomically.patch
+sata_promise-fix-hardreset-lockdep-error.patch