Skip to content

Commit

Permalink
ieee1394: sbp2: add support for disks >2 TB (and 16 bytes long CDBs)
Browse files Browse the repository at this point in the history
Increase the command ORB data structure to transport up to 16 bytes long
CDBs (instead of 12 bytes), and tell the SCSI mid layer about it.  This
is notably necessary for READ CAPACITY(16) and friends, i.e. support of
large disks.

Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
  • Loading branch information
Stefan Richter committed Jul 2, 2009
1 parent af27194 commit ebbb16b
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
1 change: 1 addition & 0 deletions drivers/ieee1394/sbp2.c
Original file line number Diff line number Diff line change
Expand Up @@ -880,6 +880,7 @@ static struct sbp2_lu *sbp2_alloc_device(struct unit_directory *ud)
}

shost->hostdata[0] = (unsigned long)lu;
shost->max_cmd_len = SBP2_MAX_CDB_SIZE;

if (!scsi_add_host(shost, &ud->device)) {
lu->shost = shost;
Expand Down
8 changes: 7 additions & 1 deletion drivers/ieee1394/sbp2.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@

#define SBP2_DEVICE_NAME "sbp2"

/*
* There is no transport protocol limit to the CDB length, but we implement
* a fixed length only. 16 bytes is enough for disks larger than 2 TB.
*/
#define SBP2_MAX_CDB_SIZE 16

/*
* SBP-2 specific definitions
*/
Expand Down Expand Up @@ -51,7 +57,7 @@ struct sbp2_command_orb {
u32 data_descriptor_hi;
u32 data_descriptor_lo;
u32 misc;
u8 cdb[12];
u8 cdb[SBP2_MAX_CDB_SIZE];
} __attribute__((packed));

#define SBP2_LOGIN_REQUEST 0x0
Expand Down

0 comments on commit ebbb16b

Please sign in to comment.