Files
linux/drivers/scsi
Arnd Bergmann 757b22f9d5 advansys: fix big-endian builds
Building the advansys driver in a big-endian configuration such as
ARM allmodconfig shows a warning:

 drivers/scsi/advansys.c: In function 'adv_build_req':
 include/uapi/linux/byteorder/big_endian.h:32:26: warning: large integer implicitly truncated to unsigned type [-Woverflow]
  #define __cpu_to_le32(x) ((__force __le32)__swab32((x)))
 drivers/scsi/advansys.c:7806:22: note: in expansion of macro 'cpu_to_le32'
   scsiqp->sense_len = cpu_to_le32(SCSI_SENSE_BUFFERSIZE);

It turns out that the commit that introduced this used the cpu_to_le32()
incorrectly on an 8-bit field, which results in the sense_len to always
be set to zero, as the SCSI_SENSE_BUFFERSIZE value gets moved to upper
byte of the 32-bit intermediate.

This removes the cpu_to_le32() call to restore the original version.

I found this only by looking at the compiler output and have not done a
full review for possible further endianess bugs in the same driver.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Fixes: 811ddc057a ("advansys: use DMA-API for mapping sense buffer")
Reviewed-by: Hannes Reinecke <hare@suse.de>
Cc: stable@vger.kernel.org # v4.2+
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2015-11-18 10:16:19 -05:00
..
2015-11-11 21:01:15 -05:00
2015-11-09 11:07:16 -05:00
2015-11-17 18:21:22 -05:00
2015-06-19 16:57:51 -07:00
2015-04-27 10:10:19 -07:00
2015-04-27 10:04:39 -07:00
2015-04-27 10:04:39 -07:00
2015-04-27 10:05:55 -07:00
2015-04-27 10:05:55 -07:00
2015-11-18 10:16:19 -05:00
2015-04-17 10:13:56 -07:00
2014-11-20 09:11:11 +01:00
2015-07-31 13:31:10 +02:00
2014-07-17 22:07:37 +02:00
2014-11-20 09:11:10 +01:00
2014-11-20 09:11:10 +01:00
2014-11-24 16:13:16 +01:00
2014-11-20 09:11:10 +01:00
2013-04-09 14:13:16 -04:00
2013-04-09 14:13:16 -04:00
2015-11-09 12:39:28 -05:00
2015-11-13 16:49:35 -05:00
2015-11-09 12:39:28 -05:00
2015-11-09 19:32:41 -05:00
2015-06-02 17:24:54 -07:00
2013-04-09 14:13:27 -04:00
2013-04-09 14:13:15 -04:00
2014-07-17 22:07:35 +02:00
2014-11-24 20:01:28 +01:00
2014-11-20 09:11:10 +01:00
2014-11-20 09:11:10 +01:00
2015-08-28 13:14:57 -07:00
2015-04-16 10:37:12 -07:00
2015-11-11 21:10:26 -05:00
2014-11-12 11:15:57 +01:00
2015-01-09 15:44:19 +01:00
2014-07-17 22:07:39 +02:00
2014-11-24 20:01:28 +01:00
2014-11-12 11:15:57 +01:00
2015-08-26 07:45:25 -07:00
2015-06-02 08:03:25 -07:00
2014-11-20 09:11:15 +01:00
2014-11-20 09:11:10 +01:00
2014-11-20 09:11:10 +01:00
2013-04-09 14:13:15 -04:00