]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
small sbp2 fix of earlier patch named:
authorChris Wright <chrisw@sous-sol.org>
Mon, 5 Jun 2006 17:57:44 +0000 (10:57 -0700)
committerChris Wright <chrisw@sous-sol.org>
Mon, 5 Jun 2006 17:57:44 +0000 (10:57 -0700)
  ohci1394, sbp2: fix "scsi_add_device failed" with PL-3507 based devices

review-2.6.16/sbp2-fix-check-of-return-value-of-hpsb_allocate_and_register_addrspace.patch [new file with mode: 0644]
review-2.6.16/series

diff --git a/review-2.6.16/sbp2-fix-check-of-return-value-of-hpsb_allocate_and_register_addrspace.patch b/review-2.6.16/sbp2-fix-check-of-return-value-of-hpsb_allocate_and_register_addrspace.patch
new file mode 100644 (file)
index 0000000..3444935
--- /dev/null
@@ -0,0 +1,30 @@
+From stable-bounces@linux.kernel.org  Fri Jun  2 17:05:37 2006
+Date: Sat, 3 Jun 2006 02:00:33 +0200 (CEST)
+From: Stefan Richter <stefanr@s5r6.in-berlin.de>
+To: Linus Torvalds <torvalds@osdl.org>, stable@kernel.org
+Cc: Jody McIntyre <scjody@modernduck.com>, linux1394-devel@lists.sourceforge.net, Ben Collins <bcollins@ubuntu.com>, linux-kernel@vger.kernel.org
+Subject: sbp2: fix check of return value of  hpsb_allocate_and_register_addrspace
+
+I added a failure check in patch "sbp2: variable status FIFO address
+(fix login timeout)" --- alas for a wrong error value.  This is a bug
+since Linux 2.6.16.  Leads to NULL pointer dereference if the call
+failed, and bogus failure handling if call succeeded.
+
+Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
+Signed-off-by: Chris Wright <chrisw@sous-sol.org>
+---
+
+ drivers/ieee1394/sbp2.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- linux-2.6.16.20.orig/drivers/ieee1394/sbp2.c
++++ linux-2.6.16.20/drivers/ieee1394/sbp2.c
+@@ -764,7 +764,7 @@ static struct scsi_id_instance_data *sbp
+                       &sbp2_highlevel, ud->ne->host, &sbp2_ops,
+                       sizeof(struct sbp2_status_block), sizeof(quadlet_t),
+                       0x010000000000ULL, CSR1212_ALL_SPACE_END);
+-      if (!scsi_id->status_fifo_addr) {
++      if (scsi_id->status_fifo_addr == ~0ULL) {
+               SBP2_ERR("failed to allocate status FIFO address range");
+               goto failed_alloc;
+       }
index 25484023f654396a7d03ea90a1f2f8f6aed79c5a..8414b252be81376e9c28298032dfcf285e6c53f9 100644 (file)
@@ -9,3 +9,4 @@ ipw2200-Filter-unsupported-channels-out-in-ad-hoc-mode.patch
 x86_64-add-crashdump-trigger-points.patch
 x86_64-don-t-do-syscall-exit-tracing-twice.patch
 sbp2-backport-read_capacity-workaround-for-ipod.patch
+sbp2-fix-check-of-return-value-of-hpsb_allocate_and_register_addrspace.patch