firewire: sbp2: document the absence of alignment requirements
The SBP-2/3 specifications do not require any alignment of data buffers; only their own data structures need to be quadlet-aligned [SR: or octlet-aligned]. Fix the comments to reflect this, but leave the actual alignment at 32 bits to avoid theoretical problems with target implementations that might handle this incorrectly. Signed-off-by: Clemens Ladisch <clemens@ladisch.de> Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
This commit is contained in:
committed by
Stefan Richter
parent
935f672e02
commit
26c72e22c9
@@ -207,9 +207,8 @@ static const struct device *lu_dev(const struct sbp2_logical_unit *lu)
|
|||||||
#define SBP2_MAX_CDB_SIZE 16
|
#define SBP2_MAX_CDB_SIZE 16
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The default maximum s/g segment size of a FireWire controller is
|
* The maximum SBP-2 data buffer size is 0xffff. We quadlet-align this
|
||||||
* usually 0x10000, but SBP-2 only allows 0xffff. Since buffers have to
|
* for compatibility with earlier versions of this driver.
|
||||||
* be quadlet-aligned, we set the length limit to 0xffff & ~3.
|
|
||||||
*/
|
*/
|
||||||
#define SBP2_MAX_SEG_SIZE 0xfffc
|
#define SBP2_MAX_SEG_SIZE 0xfffc
|
||||||
|
|
||||||
@@ -1530,7 +1529,10 @@ static int sbp2_scsi_slave_alloc(struct scsi_device *sdev)
|
|||||||
|
|
||||||
sdev->allow_restart = 1;
|
sdev->allow_restart = 1;
|
||||||
|
|
||||||
/* SBP-2 requires quadlet alignment of the data buffers. */
|
/*
|
||||||
|
* SBP-2 does not require any alignment, but we set it anyway
|
||||||
|
* for compatibility with earlier versions of this driver.
|
||||||
|
*/
|
||||||
blk_queue_update_dma_alignment(sdev->request_queue, 4 - 1);
|
blk_queue_update_dma_alignment(sdev->request_queue, 4 - 1);
|
||||||
|
|
||||||
if (lu->tgt->workarounds & SBP2_WORKAROUND_INQUIRY_36)
|
if (lu->tgt->workarounds & SBP2_WORKAROUND_INQUIRY_36)
|
||||||
|
Reference in New Issue
Block a user