aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/drivers/target/target_core_user.c
diff options
context:
space:
mode:
authorSamuel Holland <samuel@sholland.org>2021-04-27 18:59:15 -0500
committerMartin K. Petersen <martin.petersen@oracle.com>2021-05-15 18:01:34 -0400
commit05f7f1b9ee8273eab805da3d5e2d064872aa75b1 (patch)
tree10e035dceb00bbbf649dfa00204df4619503feaf /drivers/target/target_core_user.c
parentscsi: 3w-9xxx: Reduce scope of structure packing (diff)
downloadwireguard-linux-05f7f1b9ee8273eab805da3d5e2d064872aa75b1.tar.xz
wireguard-linux-05f7f1b9ee8273eab805da3d5e2d064872aa75b1.zip
scsi: 3w-9xxx: Fix endianness issues in command packets
The controller expects all data it sends/receives to be little-endian. Therefore, the packet struct definitions should use the __le16/32/64 types. Once those are correct, sparse reports several issues with the driver code, which are fixed here as well. The main issue observed was at the call to scsi_set_resid(), where the byteswapped parameter would eventually trigger the alignment check at drivers/scsi/sd.c:2009. At that point, the kernel would continuously complain about an "Unaligned partial completion", and no further I/O could occur. This gets the controller working on big endian powerpc64. Link: https://lore.kernel.org/r/20210427235915.39211-4-samuel@sholland.org Signed-off-by: Samuel Holland <samuel@sholland.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/target/target_core_user.c')
0 files changed, 0 insertions, 0 deletions