2008-06-25 16:38:19

by Stefan Richter

[permalink] [raw]
Subject: [PATCH] firewire: fw-sbp2: fix parsing of logical unit directories

Date: Tue, 24 Jun 2008 19:11:13 -0700
From: Richard Sharpe <[email protected]>

There is a small off-by-one bug in firewire-sbp2. This causes problems
when a device exports multiple LUN Directories. I found it when trying
to talk to a SONY DVD Jukebox.

Signed-off-by: Richard Sharpe <[email protected]>
Acked-by: Kristian H?gsberg <[email protected]>
Signed-off-by: Stefan Richter <[email protected]> (op. order, changelog)
---

Kevin, this bug probably prevented the detection of the second drive in
the PowerFile C200 when you tested the new drivers.

drivers/firewire/fw-sbp2.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Index: linux/drivers/firewire/fw-sbp2.c
===================================================================
--- linux.orig/drivers/firewire/fw-sbp2.c
+++ linux/drivers/firewire/fw-sbp2.c
@@ -1066,7 +1066,8 @@ static int sbp2_scan_unit_dir(struct sbp
break;

case SBP2_CSR_LOGICAL_UNIT_DIRECTORY:
- if (sbp2_scan_logical_unit_dir(tgt, ci.p + value) < 0)
+ /* Adjust for the increment in the iterator */
+ if (sbp2_scan_logical_unit_dir(tgt, ci.p - 1 + value) < 0)
return -ENOMEM;
break;
}

--
Stefan Richter
-=====-==--- -==- ==--=
http://arcgraph.de/sr/