Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 26c72e22 authored by Clemens Ladisch's avatar Clemens Ladisch Committed by Stefan Richter
Browse files

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: default avatarClemens Ladisch <clemens@ladisch.de>
Signed-off-by: default avatarStefan Richter <stefanr@s5r6.in-berlin.de>
parent 935f672e
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -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)