]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
more .25 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 28 Apr 2008 20:54:07 +0000 (13:54 -0700)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 28 Apr 2008 20:54:07 +0000 (13:54 -0700)
queue-2.6.25/alpha-unbreak-osf-1-binaries.patch [new file with mode: 0644]
queue-2.6.25/rdma-nes-fix-adapter-reset-after-pxe-boot.patch [new file with mode: 0644]
queue-2.6.25/scsi-qla2xxx-correct-regression-in-relogin-code.patch [new file with mode: 0644]
queue-2.6.25/series
queue-2.6.25/x86-fix-32-bit-x86-msi-x-allocation-leakage.patch [new file with mode: 0644]

diff --git a/queue-2.6.25/alpha-unbreak-osf-1-binaries.patch b/queue-2.6.25/alpha-unbreak-osf-1-binaries.patch
new file mode 100644 (file)
index 0000000..39db252
--- /dev/null
@@ -0,0 +1,40 @@
+From 2444e56b0c08e6f3e3877583841a1213e3263d98 Mon Sep 17 00:00:00 2001
+From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
+Date: Thu, 24 Apr 2008 16:54:50 +0400
+Subject: alpha: unbreak OSF/1 (a.out) binaries
+
+From: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
+
+commit 2444e56b0c08e6f3e3877583841a1213e3263d98 upstream
+
+
+OSF/1 brk(2) was broken by following one-liner in sys_brk()
+(commit 4cc6028d4040f95cdb590a87db478b42b8be0508):
+
+-      if (brk < mm->end_code)
++      if (brk < mm->start_brk)
+               goto out;
+
+The problem is that osf_set_program_attributes()
+does update mm->end_code, but not mm->start_brk,
+which still contains inappropriate value left from
+binary loader, so brk() always fails.
+
+Signed-off-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/alpha/kernel/osf_sys.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/alpha/kernel/osf_sys.c
++++ b/arch/alpha/kernel/osf_sys.c
+@@ -75,6 +75,7 @@ osf_set_program_attributes(unsigned long
+       lock_kernel();
+       mm = current->mm;
+       mm->end_code = bss_start + bss_len;
++      mm->start_brk = bss_start + bss_len;
+       mm->brk = bss_start + bss_len;
+ #if 0
+       printk("set_program_attributes(%lx %lx %lx %lx)\n",
diff --git a/queue-2.6.25/rdma-nes-fix-adapter-reset-after-pxe-boot.patch b/queue-2.6.25/rdma-nes-fix-adapter-reset-after-pxe-boot.patch
new file mode 100644 (file)
index 0000000..3df693f
--- /dev/null
@@ -0,0 +1,81 @@
+From jejb@kernel.org  Mon Apr 28 13:50:10 2008
+From: Chien Tung <ctung@neteffect.com>
+Date: Sun, 27 Apr 2008 18:35:11 GMT
+Subject: RDMA/nes: Fix adapter reset after PXE boot
+To: jejb@kernel.org, stable@kernel.org
+Message-ID: <200804271835.m3RIZBh0002982@hera.kernel.org>
+
+From: Chien Tung <ctung@neteffect.com>
+
+commit: bc5698f3ecc9587e1edb343a2878f8d228c49e0e upstream
+
+After PXE boot, the iw_nes driver does a full reset to ensure the card
+is in a clean state.  However, it doesn't wait for firmware to
+complete its work before issuing a port reset to enable the ports,
+which leads to problems bringing up the ports.
+
+The solution is to wait for firmware to complete its work before
+proceeding with port reset.
+
+This bug was flagged by Roland Dreier <rolandd@cisco.com>.
+
+Signed-off-by: Chien Tung <ctung@neteffect.com>
+Signed-off-by: Roland Dreier <rolandd@cisco.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/infiniband/hw/nes/nes_cm.c |    6 ++++--
+ drivers/infiniband/hw/nes/nes_hw.c |   20 +++++++++-----------
+ 2 files changed, 13 insertions(+), 13 deletions(-)
+
+--- a/drivers/infiniband/hw/nes/nes_cm.c
++++ b/drivers/infiniband/hw/nes/nes_cm.c
+@@ -1834,8 +1834,10 @@ int mini_cm_recv_pkt(struct nes_cm_core 
+       nfo.rem_addr = ntohl(iph->saddr);
+       nfo.rem_port = ntohs(tcph->source);
+-      nes_debug(NES_DBG_CM, "Received packet: dest=0x%08X:0x%04X src=0x%08X:0x%04X\n",
+-                      iph->daddr, tcph->dest, iph->saddr, tcph->source);
++      nes_debug(NES_DBG_CM, "Received packet: dest=" NIPQUAD_FMT
++                ":0x%04X src=" NIPQUAD_FMT ":0x%04X\n",
++                NIPQUAD(iph->daddr), tcph->dest,
++                NIPQUAD(iph->saddr), tcph->source);
+       /* note: this call is going to increment cm_node ref count */
+       cm_node = find_node(cm_core,
+--- a/drivers/infiniband/hw/nes/nes_hw.c
++++ b/drivers/infiniband/hw/nes/nes_hw.c
+@@ -625,6 +625,15 @@ unsigned int nes_reset_adapter_ne020(str
+                       nes_debug(NES_DBG_INIT, "Did not see full soft reset done.\n");
+                       return 0;
+               }
++
++              i = 0;
++              while ((nes_read_indexed(nesdev, NES_IDX_INT_CPU_STATUS) != 0x80) && i++ < 10000)
++                      mdelay(1);
++              if (i >= 10000) {
++                      printk(KERN_ERR PFX "Internal CPU not ready, status = %02X\n",
++                             nes_read_indexed(nesdev, NES_IDX_INT_CPU_STATUS));
++                      return 0;
++              }
+       }
+       /* port reset */
+@@ -673,17 +682,6 @@ unsigned int nes_reset_adapter_ne020(str
+               }
+       }
+-
+-
+-      i = 0;
+-      while ((nes_read_indexed(nesdev, NES_IDX_INT_CPU_STATUS) != 0x80) && i++ < 10000)
+-              mdelay(1);
+-      if (i >= 10000) {
+-              printk(KERN_ERR PFX "Internal CPU not ready, status = %02X\n",
+-                              nes_read_indexed(nesdev, NES_IDX_INT_CPU_STATUS));
+-              return 0;
+-      }
+-
+       return port_count;
+ }
diff --git a/queue-2.6.25/scsi-qla2xxx-correct-regression-in-relogin-code.patch b/queue-2.6.25/scsi-qla2xxx-correct-regression-in-relogin-code.patch
new file mode 100644 (file)
index 0000000..504b153
--- /dev/null
@@ -0,0 +1,38 @@
+From jejb@kernel.org  Mon Apr 28 13:50:50 2008
+From: Andrew Vasquez <andrew.vasquez@qlogic.com>
+Date: Sun, 27 Apr 2008 18:35:08 GMT
+Subject: SCSI: qla2xxx: Correct regression in relogin code.
+To: jejb@kernel.org, stable@kernel.org
+Message-ID: <200804271835.m3RIZ8xe002732@hera.kernel.org>
+
+
+From: Andrew Vasquez <andrew.vasquez@qlogic.com>
+
+commit: 666301e673e192c87a40e07a8357d6996b57b70f upstream
+
+
+Commit 63a8651f2548c6bb5132c0b4e7dad4f57a9274db ([SCSI] qla2xxx:
+Correct infinite-login-retry issue.) introduced a small
+regression where a successful relogin would result in an fcport's
+loop_id to be incorrectly reset to FC_NO_LOOP_ID.  Only clear-out
+loopid, if retries have been 'truly' exhausted.
+
+Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
+Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ drivers/scsi/qla2xxx/qla_os.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/scsi/qla2xxx/qla_os.c
++++ b/drivers/scsi/qla2xxx/qla_os.c
+@@ -2357,7 +2357,7 @@ qla2x00_do_dpc(void *data)
+                                       } else {
+                                               fcport->login_retry = 0;
+                                       }
+-                                      if (fcport->login_retry == 0)
++                                      if (fcport->login_retry == 0 && status != QLA_SUCCESS)
+                                               fcport->loop_id = FC_NO_LOOP_ID;
+                               }
+                               if (test_bit(LOOP_RESYNC_NEEDED, &ha->dpc_flags))
index cd4ee1719eb64b33e010e103251b9bff338b29a9..770b7b3af64a9c84d2e67e1116480de8a9a56a8e 100644 (file)
@@ -30,3 +30,7 @@ rtc-pcf8583-build-fix.patch
 dz-test-after-postfix-decrement-fails-in-dz_console_putchar.patch
 mm-fix-possible-off-by-one-in-walk_pte_range.patch
 hrtimer-timeout-too-long-when-using-hrtimer_cb_softirq.patch
+rdma-nes-fix-adapter-reset-after-pxe-boot.patch
+scsi-qla2xxx-correct-regression-in-relogin-code.patch
+alpha-unbreak-osf-1-binaries.patch
+x86-fix-32-bit-x86-msi-x-allocation-leakage.patch
diff --git a/queue-2.6.25/x86-fix-32-bit-x86-msi-x-allocation-leakage.patch b/queue-2.6.25/x86-fix-32-bit-x86-msi-x-allocation-leakage.patch
new file mode 100644 (file)
index 0000000..5cf5e01
--- /dev/null
@@ -0,0 +1,41 @@
+From peter.p.waskiewicz.jr@intel.com  Mon Apr 28 13:52:54 2008
+From: PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>
+Date: Mon, 28 Apr 2008 11:56:22 -0700
+Subject: x86: Fix 32-bit x86 MSI-X allocation leakage
+To: stable@kernel.org, linux-kernel@vger.kernel.org
+Cc: netdev@vger.kernel.org
+Message-ID: <20080428185622.11638.29287.stgit@scrappy.jf.intel.com>
+
+From: PJ Waskiewicz <peter.p.waskiewicz.jr@intel.com>
+
+commit 9d9ad4b51d2b29b5bbeb4011f5e76f7538119cf9 upstream
+
+This bug was introduced in the 2.6.24 i386/x86_64 tree merge, where
+MSI-X vector allocation will eventually fail.  The cause is the new
+bit array tracking used vectors is not getting cleared properly on
+IRQ destruction on the 32-bit APIC code.
+
+This can be seen easily using the ixgbe 10 GbE driver on multi-core
+systems by simply loading and unloading the driver a few times.
+Depending on the number of available vectors on the host system, the
+MSI-X allocation will eventually fail, and the driver will only be
+able to use legacy interrupts.
+
+Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr@intel.com>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ arch/x86/kernel/io_apic_32.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/x86/kernel/io_apic_32.c
++++ b/arch/x86/kernel/io_apic_32.c
+@@ -2477,6 +2477,7 @@ void destroy_irq(unsigned int irq)
+       dynamic_irq_cleanup(irq);
+       spin_lock_irqsave(&vector_lock, flags);
++      clear_bit(irq_vector[irq], used_vectors);
+       irq_vector[irq] = 0;
+       spin_unlock_irqrestore(&vector_lock, flags);
+ }