linux/drivers/scsi/mpt3sas
Ram Pai 9869fb485c scsi: mpt3sas: Force request partial completion alignment
commit f2e767bb5d upstream.

The firmware or device, possibly under a heavy I/O load, can return on a
partial unaligned boundary. Scsi-ml expects these requests to be
completed on an alignment boundary. Scsi-ml blindly requeues the I/O
without checking the alignment boundary of the I/O request for the
remaining bytes. This leads to errors, since devices cannot perform
non-aligned read/write operations.

This patch fixes the issue in the driver. It aligns unaligned
completions of FS requests, by truncating them to the nearest alignment
boundary.

[mkp: simplified if statement]

Reported-by: Mauricio Faria De Oliveira <mauricfo@linux.vnet.ibm.com>
Signed-off-by: Guilherme G. Piccoli <gpiccoli@linux.vnet.ibm.com>
Signed-off-by: Ram Pai <linuxram@us.ibm.com>
Acked-by: Sreekanth Reddy <Sreekanth.Reddy@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-06-07 12:07:48 +02:00
..
mpi mpt3sas: Update MPI header to 2.00.42 2016-05-11 16:10:56 -04:00
Kconfig mpt3sas: fix Kconfig dependency problem for mpt2sas back compatibility 2015-12-03 09:31:23 -08:00
Makefile mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs 2015-11-11 19:50:11 -05:00
mpt3sas_base.c SCSI misc on 20161006 2016-10-07 09:28:53 -07:00
mpt3sas_base.h scsi: mpt3sas: fix hang on ata passthrough commands 2017-01-26 08:24:44 +01:00
mpt3sas_config.c mpt3sas: Fix warnings exposed by W=1 2016-08-08 21:15:32 -04:00
mpt3sas_ctl.c mpt3sas: Fix warnings exposed by W=1 2016-08-08 21:15:32 -04:00
mpt3sas_ctl.h mpt3sas: Ported WarpDrive product SSS6200 support 2015-11-11 18:56:10 -05:00
mpt3sas_debug.h mpt2sas, mpt3sas: Remove SCSI_MPTXSAS_LOGGING entry from Kconfig 2015-11-11 18:31:14 -05:00
mpt3sas_scsih.c scsi: mpt3sas: Force request partial completion alignment 2017-06-07 12:07:48 +02:00
mpt3sas_transport.c mpt3sas: Fix warnings exposed by W=1 2016-08-08 21:15:32 -04:00
mpt3sas_trigger_diag.c mpt2sas, mpt3sas: Update attribution language to Avago 2015-01-13 16:27:27 +01:00
mpt3sas_trigger_diag.h mpt2sas, mpt3sas: Update attribution language to Avago 2015-01-13 16:27:27 +01:00
mpt3sas_warpdrive.c mpt3sas: Single driver module which supports both SAS 2.0 & SAS 3.0 HBAs 2015-11-11 19:50:11 -05:00