firewire: sbp2: document the absence of alignment requirements
authorClemens Ladisch <clemens@ladisch.de>
Fri, 18 May 2012 20:26:21 +0000 (22:26 +0200)
committerStefan Richter <stefanr@s5r6.in-berlin.de>
Mon, 21 May 2012 19:49:44 +0000 (21:49 +0200)
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>
drivers/firewire/sbp2.c

index 1f888f3..1162d6b 100644 (file)
@@ -207,9 +207,8 @@ static const struct device *lu_dev(const struct sbp2_logical_unit *lu)
 #define SBP2_MAX_CDB_SIZE              16
 
 /*
- * The default maximum s/g segment size of a FireWire controller is
- * usually 0x10000, but SBP-2 only allows 0xffff. Since buffers have to
- * be quadlet-aligned, we set the length limit to 0xffff & ~3.
+ * The maximum SBP-2 data buffer size is 0xffff.  We quadlet-align this
+ * for compatibility with earlier versions of this driver.
  */
 #define SBP2_MAX_SEG_SIZE              0xfffc
 
@@ -1530,7 +1529,10 @@ static int sbp2_scsi_slave_alloc(struct scsi_device *sdev)
 
        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);
 
        if (lu->tgt->workarounds & SBP2_WORKAROUND_INQUIRY_36)