--- /dev/null
+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;
+ }