* [bvanassche:scsi-for-next 21/39] drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
@ 2019-12-06 0:13 kbuild test robot
0 siblings, 0 replies; 3+ messages in thread
From: kbuild test robot @ 2019-12-06 0:13 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 50434 bytes --]
tree: https://github.com/bvanassche/linux scsi-for-next
head: f5e9c29f429620162f4a54fe024630824df57d6f
commit: 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d [21/39] qla2xxx: Fix endianness annotations
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-91-g817270f-dirty
git checkout 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/scsi/qla2xxx/qla_init.c:7146:43: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_1 @@ got restricted __be32 [usertype] firmware_options_1 @@
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: expected restricted __be32 [usertype] firmware_options_1
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_2 @@ got restricted __be32 [usertype] firmware_options_2 @@
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: expected restricted __be32 [usertype] firmware_options_2
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: sparse: invalid assignment: |=
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: left side has type restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_3 @@ got restricted __be32 [usertype] firmware_options_3 @@
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: expected restricted __be32 [usertype] firmware_options_3
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] host_p @@ got restrunsigned int [usertype] host_p @@
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: expected unsigned int [usertype] host_p
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] efi_parameters @@ got restrunsigned int [usertype] efi_parameters @@
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: expected unsigned int [usertype] efi_parameters
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] max_luns_per_target @@ got resunsigned short [usertype] max_luns_per_target @@
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: expected unsigned short [usertype] max_luns_per_target
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] port_down_retry_count @@ got resunsigned short [usertype] port_down_retry_count @@
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: expected unsigned short [usertype] port_down_retry_count
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] link_down_timeout @@ got resunsigned short [usertype] link_down_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: expected unsigned short [usertype] link_down_timeout
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: sparse: invalid assignment: &=
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: left side has type restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: sparse: invalid assignment: &=
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: left side has type unsigned int
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7201:26: sparse: sparse: restricted __le32 degrades to integer
drivers/scsi/qla2xxx/qla_init.c:7208:40: sparse: sparse: restricted __le32 degrades to integer
drivers/scsi/qla2xxx/qla_init.c:7221:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7223:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7225:36: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7242:27: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7245:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7247:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7249:29: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7266:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7270:41: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7276:37: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7281:34: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7283:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7298:33: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7299:21: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] interrupt_delay_timer @@ got resunsigned short [usertype] interrupt_delay_timer @@
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: expected unsigned short [usertype] interrupt_delay_timer
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7330:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7334:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7335:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7342:27: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7350:27: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __le32 const [usertype] *p @@ got __le32 const [usertype] *p @@
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: expected restricted __le32 const [usertype] *p
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: got unsigned int [usertype] *p
drivers/scsi/qla2xxx/qla_init.c:7401:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7402:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7431:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7464:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7532:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7563:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: too many warnings
--
drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb0 @@ got resunsigned short [usertype] mb0 @@
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: expected unsigned short [usertype] mb0
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: got restricted __le16
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb2 @@ got resunsigned short [usertype] mb2 @@
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: expected unsigned short [usertype] mb2
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb3 @@ got resunsigned short [usertype] mb3 @@
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb0 @@ got resunsigned short [usertype] mb0 @@
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: expected unsigned short [usertype] mb0
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got resunsigned short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb10 @@ got resunsigned short [usertype] mb10 @@
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: expected unsigned short [usertype] mb10
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got resunsigned short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb2 @@ got resunsigned short [usertype] mb2 @@
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: expected unsigned short [usertype] mb2
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb3 @@ got resunsigned short [usertype] mb3 @@
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb6 @@ got resunsigned short [usertype] mb6 @@
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: expected unsigned short [usertype] mb6
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb7 @@ got resunsigned short [usertype] mb7 @@
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: expected unsigned short [usertype] mb7
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] timeout @@ got resunsigned short [usertype] timeout @@
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: expected unsigned short [usertype] timeout
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] control_flags @@ got restrunsigned int [usertype] control_flags @@
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: expected unsigned int [usertype] control_flags
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] tx_dsd_count @@ got resunsigned short [usertype] tx_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: expected unsigned short [usertype] tx_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] rx_dsd_count @@ got resunsigned short [usertype] rx_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: expected unsigned short [usertype] rx_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] status @@ got resunsigned short [usertype] status @@
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: expected unsigned short [usertype] status
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] control_flags @@ got resunsigned short [usertype] control_flags @@
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: expected unsigned short [usertype] control_flags
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: expected unsigned short [usertype] cmd_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] total_dsd_count @@ got resunsigned short [usertype] total_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: expected unsigned short [usertype] total_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] req_bytecount @@ got restrunsigned int [usertype] req_bytecount @@
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: expected unsigned int [usertype] req_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] rsp_bytecount @@ got restrunsigned int [usertype] rsp_bytecount @@
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: expected unsigned int [usertype] rsp_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] length @@ got icted __le32 [usertype] length @@
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: expected restricted __le32 [usertype] length
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: got unsigned int [usertype] req_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] length @@ got icted __le32 [usertype] length @@
drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: expected restricted __le32 [usertype] length
>> drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: got unsigned int [usertype] rsp_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got resunsigned short [usertype] comp_status @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: expected unsigned short [usertype] comp_status
drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: expected unsigned short [usertype] cmd_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] rsp_dsd_count @@ got resunsigned short [usertype] rsp_dsd_count @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: expected unsigned short [usertype] rsp_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] cmd_byte_count @@ got restrunsigned int [usertype] cmd_byte_count @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: expected unsigned int [usertype] cmd_byte_count
drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3327:37: sparse: sparse: too many warnings
--
drivers/scsi/qla2xxx/qla_mr.c:56:21: sparse: sparse: restricted pci_channel_state_t degrades to integer
drivers/scsi/qla2xxx/qla_mr.c:56:37: sparse: sparse: restricted pci_channel_state_t degrades to integer
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got restricted __lunsigned short [usertype] comp_status @@
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: expected unsigned short [usertype] comp_status
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: got restricted __le16 [assigned] [usertype] cpstatus
>> drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got resunsigned short [usertype] comp_status @@
drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: expected unsigned short [usertype] comp_status
>> drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: got restricted __le16 [usertype] tgt_id_sts
arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
vim +7794 drivers/scsi/qla2xxx/qla_init.c
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7609
413975a0f1a43a Adrian Bunk 2006-06-30 7610 static int
cbc8eb67da11a4 Andrew Vasquez 2009-06-03 7611 qla24xx_load_risc_flash(scsi_qla_host_t *vha, uint32_t *srisc_addr,
cbc8eb67da11a4 Andrew Vasquez 2009-06-03 7612 uint32_t faddr)
d1c61909c05ead Andrew Vasquez 2006-05-17 7613 {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7614 int rval;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7615 uint templates, segments, fragment;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7616 ulong i;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7617 uint j;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7618 ulong dlen;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7619 uint32_t *dcode;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7620 uint32_t risc_addr, risc_size, risc_attr = 0;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7621 struct qla_hw_data *ha = vha->hw;
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7622 struct req_que *req = ha->req_q_map[0];
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7623 struct fwdt *fwdt = ha->fwdt;
eaac30be268b90 Andrew Vasquez 2009-01-22 7624
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7625 ql_dbg(ql_dbg_init, vha, 0x008b,
cfb0919c12a331 Chad Dupuis 2011-11-18 7626 "FW: Loading firmware from flash (%x).\n", faddr);
eaac30be268b90 Andrew Vasquez 2009-01-22 7627
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7628 dcode = (void *)req->ring;
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7629 qla24xx_read_flash_data(vha, dcode, faddr, 8);
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7630 if (qla24xx_risc_firmware_invalid(dcode)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7631 ql_log(ql_log_fatal, vha, 0x008c,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7632 "Unable to verify the integrity of flash firmware "
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7633 "image.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7634 ql_log(ql_log_fatal, vha, 0x008d,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7635 "Firmware data: %08x %08x %08x %08x.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7636 dcode[0], dcode[1], dcode[2], dcode[3]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7637
d1c61909c05ead Andrew Vasquez 2006-05-17 7638 return QLA_FUNCTION_FAILED;
d1c61909c05ead Andrew Vasquez 2006-05-17 7639 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7640
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7641 dcode = (void *)req->ring;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7642 *srisc_addr = 0;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7643 segments = FA_RISC_CODE_SEGMENTS;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7644 for (j = 0; j < segments; j++) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7645 ql_dbg(ql_dbg_init, vha, 0x008d,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7646 "-> Loading segment %u...\n", j);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7647 qla24xx_read_flash_data(vha, dcode, faddr, 10);
d1c61909c05ead Andrew Vasquez 2006-05-17 7648 risc_addr = be32_to_cpu(dcode[2]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7649 risc_size = be32_to_cpu(dcode[3]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7650 if (!*srisc_addr) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7651 *srisc_addr = risc_addr;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 @7652 risc_attr = be32_to_cpu(dcode[9]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7653 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7654
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7655 dlen = ha->fw_transfer_size >> 2;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7656 for (fragment = 0; risc_size; fragment++) {
d1c61909c05ead Andrew Vasquez 2006-05-17 7657 if (dlen > risc_size)
d1c61909c05ead Andrew Vasquez 2006-05-17 7658 dlen = risc_size;
d1c61909c05ead Andrew Vasquez 2006-05-17 7659
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7660 ql_dbg(ql_dbg_init, vha, 0x008e,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7661 "-> Loading fragment %u: %#x <- %#x (%#lx dwords)...\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7662 fragment, risc_addr, faddr, dlen);
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7663 qla24xx_read_flash_data(vha, dcode, faddr, dlen);
d1c61909c05ead Andrew Vasquez 2006-05-17 7664 for (i = 0; i < dlen; i++)
d1c61909c05ead Andrew Vasquez 2006-05-17 7665 dcode[i] = swab32(dcode[i]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7666
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7667 rval = qla2x00_load_ram(vha, req->dma, risc_addr, dlen);
d1c61909c05ead Andrew Vasquez 2006-05-17 7668 if (rval) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7669 ql_log(ql_log_fatal, vha, 0x008f,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7670 "-> Failed load firmware fragment %u.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7671 fragment);
f261f7aff7badc Chad Dupuis 2014-09-25 7672 return QLA_FUNCTION_FAILED;
d1c61909c05ead Andrew Vasquez 2006-05-17 7673 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7674
d1c61909c05ead Andrew Vasquez 2006-05-17 7675 faddr += dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7676 risc_addr += dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7677 risc_size -= dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7678 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7679 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7680
ecc89f25e225fa Joe Carnuccio 2019-03-12 7681 if (!IS_QLA27XX(ha) && !IS_QLA28XX(ha))
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7682 return QLA_SUCCESS;
f73cb695d3eccd Chad Dupuis 2014-02-26 7683
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7684 templates = (risc_attr & BIT_9) ? 2 : 1;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7685 ql_dbg(ql_dbg_init, vha, 0x0160, "-> templates = %u\n", templates);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7686 for (j = 0; j < templates; j++, fwdt++) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7687 if (fwdt->template)
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7688 vfree(fwdt->template);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7689 fwdt->template = NULL;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7690 fwdt->length = 0;
f73cb695d3eccd Chad Dupuis 2014-02-26 7691
3695310e37b4e5 Joe Carnuccio 2019-03-12 7692 dcode = (void *)req->ring;
f73cb695d3eccd Chad Dupuis 2014-02-26 7693 qla24xx_read_flash_data(vha, dcode, faddr, 7);
f73cb695d3eccd Chad Dupuis 2014-02-26 7694 risc_size = be32_to_cpu(dcode[2]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7695 ql_dbg(ql_dbg_init, vha, 0x0161,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7696 "-> fwdt%u template array at %#x (%#x dwords)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7697 j, faddr, risc_size);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7698 if (!risc_size || !~risc_size) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7699 ql_dbg(ql_dbg_init, vha, 0x0162,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7700 "-> fwdt%u failed to read array\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7701 goto failed;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7702 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7703
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7704 /* skip header and ignore checksum */
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7705 faddr += 7;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7706 risc_size -= 8;
f73cb695d3eccd Chad Dupuis 2014-02-26 7707
f73cb695d3eccd Chad Dupuis 2014-02-26 7708 ql_dbg(ql_dbg_init, vha, 0x0163,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7709 "-> fwdt%u template allocate template %#x words...\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7710 j, risc_size);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7711 fwdt->template = vmalloc(risc_size * sizeof(*dcode));
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7712 if (!fwdt->template) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7713 ql_log(ql_log_warn, vha, 0x0164,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7714 "-> fwdt%u failed allocate template.\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7715 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7716 }
f73cb695d3eccd Chad Dupuis 2014-02-26 7717
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7718 dcode = fwdt->template;
f73cb695d3eccd Chad Dupuis 2014-02-26 7719 qla24xx_read_flash_data(vha, dcode, faddr, risc_size);
f73cb695d3eccd Chad Dupuis 2014-02-26 7720
f73cb695d3eccd Chad Dupuis 2014-02-26 7721 if (!qla27xx_fwdt_template_valid(dcode)) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7722 ql_log(ql_log_warn, vha, 0x0165,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7723 "-> fwdt%u failed template validate\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7724 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7725 }
f73cb695d3eccd Chad Dupuis 2014-02-26 7726
f73cb695d3eccd Chad Dupuis 2014-02-26 7727 dlen = qla27xx_fwdt_template_size(dcode);
f73cb695d3eccd Chad Dupuis 2014-02-26 7728 ql_dbg(ql_dbg_init, vha, 0x0166,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7729 "-> fwdt%u template size %#lx bytes (%#lx words)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7730 j, dlen, dlen / sizeof(*dcode));
f73cb695d3eccd Chad Dupuis 2014-02-26 7731 if (dlen > risc_size * sizeof(*dcode)) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7732 ql_log(ql_log_warn, vha, 0x0167,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7733 "-> fwdt%u template exceeds array (%-lu bytes)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7734 j, dlen - risc_size * sizeof(*dcode));
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7735 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7736 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7737
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7738 fwdt->length = dlen;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7739 ql_dbg(ql_dbg_init, vha, 0x0168,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7740 "-> fwdt%u loaded template ok\n", j);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7741
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7742 faddr += risc_size + 1;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7743 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7744
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7745 return QLA_SUCCESS;
f73cb695d3eccd Chad Dupuis 2014-02-26 7746
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7747 failed:
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7748 if (fwdt->template)
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7749 vfree(fwdt->template);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7750 fwdt->template = NULL;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7751 fwdt->length = 0;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7752
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7753 return QLA_SUCCESS;
d1c61909c05ead Andrew Vasquez 2006-05-17 7754 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7755
e9454a883b3a26 Giridhar Malavali 2013-02-08 7756 #define QLA_FW_URL "http://ldriver.qlogic.com/firmware/"
d1c61909c05ead Andrew Vasquez 2006-05-17 7757
0107109ed69c9e Andrew Vasquez 2005-07-06 7758 int
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7759 qla2x00_load_risc(scsi_qla_host_t *vha, uint32_t *srisc_addr)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7760 {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7761 int rval;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7762 int i, fragment;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7763 uint16_t *wcode, *fwcode;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7764 uint32_t risc_addr, risc_size, fwclen, wlen, *seg;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7765 struct fw_blob *blob;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7766 struct qla_hw_data *ha = vha->hw;
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7767 struct req_que *req = ha->req_q_map[0];
5433383ef33ed4 Andrew Vasquez 2005-11-09 7768
5433383ef33ed4 Andrew Vasquez 2005-11-09 7769 /* Load firmware blob. */
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7770 blob = qla2x00_request_firmware(vha);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7771 if (!blob) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7772 ql_log(ql_log_info, vha, 0x0083,
94bcf830114a7a Yannick Guerrini 2015-02-26 7773 "Firmware image unavailable.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7774 ql_log(ql_log_info, vha, 0x0084,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7775 "Firmware images can be retrieved from: "QLA_FW_URL ".\n");
5433383ef33ed4 Andrew Vasquez 2005-11-09 7776 return QLA_FUNCTION_FAILED;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7777 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7778
5433383ef33ed4 Andrew Vasquez 2005-11-09 7779 rval = QLA_SUCCESS;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7780
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7781 wcode = (uint16_t *)req->ring;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7782 *srisc_addr = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7783 fwcode = (uint16_t *)blob->fw->data;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7784 fwclen = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7785
5433383ef33ed4 Andrew Vasquez 2005-11-09 7786 /* Validate firmware image by checking version. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7787 if (blob->fw->size < 8 * sizeof(uint16_t)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7788 ql_log(ql_log_fatal, vha, 0x0085,
5b5e0928f742cf Alexey Dobriyan 2017-02-27 7789 "Unable to verify integrity of firmware image (%zd).\n",
5433383ef33ed4 Andrew Vasquez 2005-11-09 7790 blob->fw->size);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7791 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7792 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7793 for (i = 0; i < 4; i++)
5433383ef33ed4 Andrew Vasquez 2005-11-09 @7794 wcode[i] = be16_to_cpu(fwcode[i + 4]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7795 if ((wcode[0] == 0xffff && wcode[1] == 0xffff && wcode[2] == 0xffff &&
5433383ef33ed4 Andrew Vasquez 2005-11-09 7796 wcode[3] == 0xffff) || (wcode[0] == 0 && wcode[1] == 0 &&
5433383ef33ed4 Andrew Vasquez 2005-11-09 7797 wcode[2] == 0 && wcode[3] == 0)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7798 ql_log(ql_log_fatal, vha, 0x0086,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7799 "Unable to verify integrity of firmware image.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7800 ql_log(ql_log_fatal, vha, 0x0087,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7801 "Firmware data: %04x %04x %04x %04x.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7802 wcode[0], wcode[1], wcode[2], wcode[3]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7803 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7804 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7805
5433383ef33ed4 Andrew Vasquez 2005-11-09 7806 seg = blob->segs;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7807 while (*seg && rval == QLA_SUCCESS) {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7808 risc_addr = *seg;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7809 *srisc_addr = *srisc_addr == 0 ? *seg : *srisc_addr;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7810 risc_size = be16_to_cpu(fwcode[3]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7811
5433383ef33ed4 Andrew Vasquez 2005-11-09 7812 /* Validate firmware image size. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7813 fwclen += risc_size * sizeof(uint16_t);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7814 if (blob->fw->size < fwclen) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7815 ql_log(ql_log_fatal, vha, 0x0088,
5433383ef33ed4 Andrew Vasquez 2005-11-09 7816 "Unable to verify integrity of firmware image "
5b5e0928f742cf Alexey Dobriyan 2017-02-27 7817 "(%zd).\n", blob->fw->size);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7818 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7819 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7820
5433383ef33ed4 Andrew Vasquez 2005-11-09 7821 fragment = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7822 while (risc_size > 0 && rval == QLA_SUCCESS) {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7823 wlen = (uint16_t)(ha->fw_transfer_size >> 1);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7824 if (wlen > risc_size)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7825 wlen = risc_size;
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7826 ql_dbg(ql_dbg_init, vha, 0x0089,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7827 "Loading risc segment@ risc addr %x number of "
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7828 "words 0x%x.\n", risc_addr, wlen);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7829
5433383ef33ed4 Andrew Vasquez 2005-11-09 7830 for (i = 0; i < wlen; i++)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7831 wcode[i] = swab16(fwcode[i]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7832
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7833 rval = qla2x00_load_ram(vha, req->dma, risc_addr,
5433383ef33ed4 Andrew Vasquez 2005-11-09 7834 wlen);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7835 if (rval) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7836 ql_log(ql_log_fatal, vha, 0x008a,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7837 "Failed to load segment %d of firmware.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7838 fragment);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7839 break;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7840 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7841
5433383ef33ed4 Andrew Vasquez 2005-11-09 7842 fwcode += wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7843 risc_addr += wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7844 risc_size -= wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7845 fragment++;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7846 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7847
5433383ef33ed4 Andrew Vasquez 2005-11-09 7848 /* Next segment. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7849 seg++;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7850 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7851 return rval;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7852
5433383ef33ed4 Andrew Vasquez 2005-11-09 7853 fail_fw_integrity:
5433383ef33ed4 Andrew Vasquez 2005-11-09 7854 return QLA_FUNCTION_FAILED;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7855 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7856
:::::: The code at line 7794 was first introduced by commit
:::::: 5433383ef33ed40c9c8a86a4355da344234af2a5 [SCSI] qla2xxx: Add full firmware(-request) hotplug support for all ISPs.
:::::: TO: Andrew Vasquez <andrew.vasquez@qlogic.com>
:::::: CC: James Bottomley <jejb@mulgrave.(none)>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
^ permalink raw reply [flat|nested] 3+ messages in thread
* [bvanassche:scsi-for-next 21/39] drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
@ 2019-12-06 16:34 kbuild test robot
0 siblings, 0 replies; 3+ messages in thread
From: kbuild test robot @ 2019-12-06 16:34 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 50434 bytes --]
tree: https://github.com/bvanassche/linux scsi-for-next
head: f5e9c29f429620162f4a54fe024630824df57d6f
commit: 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d [21/39] qla2xxx: Fix endianness annotations
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-91-g817270f-dirty
git checkout 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/scsi/qla2xxx/qla_init.c:7146:43: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_1 @@ got restricted __be32 [usertype] firmware_options_1 @@
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: expected restricted __be32 [usertype] firmware_options_1
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_2 @@ got restricted __be32 [usertype] firmware_options_2 @@
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: expected restricted __be32 [usertype] firmware_options_2
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: sparse: invalid assignment: |=
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: left side has type restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_3 @@ got restricted __be32 [usertype] firmware_options_3 @@
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: expected restricted __be32 [usertype] firmware_options_3
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] host_p @@ got restrunsigned int [usertype] host_p @@
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: expected unsigned int [usertype] host_p
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] efi_parameters @@ got restrunsigned int [usertype] efi_parameters @@
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: expected unsigned int [usertype] efi_parameters
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] max_luns_per_target @@ got resunsigned short [usertype] max_luns_per_target @@
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: expected unsigned short [usertype] max_luns_per_target
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] port_down_retry_count @@ got resunsigned short [usertype] port_down_retry_count @@
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: expected unsigned short [usertype] port_down_retry_count
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] link_down_timeout @@ got resunsigned short [usertype] link_down_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: expected unsigned short [usertype] link_down_timeout
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: sparse: invalid assignment: &=
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: left side has type restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: sparse: invalid assignment: &=
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: left side has type unsigned int
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7201:26: sparse: sparse: restricted __le32 degrades to integer
drivers/scsi/qla2xxx/qla_init.c:7208:40: sparse: sparse: restricted __le32 degrades to integer
drivers/scsi/qla2xxx/qla_init.c:7221:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7223:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7225:36: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7242:27: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7245:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7247:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7249:29: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7266:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7270:41: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7276:37: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7281:34: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7283:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7298:33: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7299:21: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] interrupt_delay_timer @@ got resunsigned short [usertype] interrupt_delay_timer @@
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: expected unsigned short [usertype] interrupt_delay_timer
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7330:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7334:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7335:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7342:27: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7350:27: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __le32 const [usertype] *p @@ got __le32 const [usertype] *p @@
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: expected restricted __le32 const [usertype] *p
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: got unsigned int [usertype] *p
drivers/scsi/qla2xxx/qla_init.c:7401:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7402:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7431:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7464:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7532:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7563:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: too many warnings
--
drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb0 @@ got resunsigned short [usertype] mb0 @@
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: expected unsigned short [usertype] mb0
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: got restricted __le16
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb2 @@ got resunsigned short [usertype] mb2 @@
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: expected unsigned short [usertype] mb2
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb3 @@ got resunsigned short [usertype] mb3 @@
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb0 @@ got resunsigned short [usertype] mb0 @@
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: expected unsigned short [usertype] mb0
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got resunsigned short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb10 @@ got resunsigned short [usertype] mb10 @@
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: expected unsigned short [usertype] mb10
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got resunsigned short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb2 @@ got resunsigned short [usertype] mb2 @@
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: expected unsigned short [usertype] mb2
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb3 @@ got resunsigned short [usertype] mb3 @@
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb6 @@ got resunsigned short [usertype] mb6 @@
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: expected unsigned short [usertype] mb6
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb7 @@ got resunsigned short [usertype] mb7 @@
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: expected unsigned short [usertype] mb7
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] timeout @@ got resunsigned short [usertype] timeout @@
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: expected unsigned short [usertype] timeout
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] control_flags @@ got restrunsigned int [usertype] control_flags @@
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: expected unsigned int [usertype] control_flags
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] tx_dsd_count @@ got resunsigned short [usertype] tx_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: expected unsigned short [usertype] tx_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] rx_dsd_count @@ got resunsigned short [usertype] rx_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: expected unsigned short [usertype] rx_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] status @@ got resunsigned short [usertype] status @@
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: expected unsigned short [usertype] status
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] control_flags @@ got resunsigned short [usertype] control_flags @@
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: expected unsigned short [usertype] control_flags
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: expected unsigned short [usertype] cmd_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] total_dsd_count @@ got resunsigned short [usertype] total_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: expected unsigned short [usertype] total_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] req_bytecount @@ got restrunsigned int [usertype] req_bytecount @@
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: expected unsigned int [usertype] req_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] rsp_bytecount @@ got restrunsigned int [usertype] rsp_bytecount @@
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: expected unsigned int [usertype] rsp_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] length @@ got icted __le32 [usertype] length @@
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: expected restricted __le32 [usertype] length
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: got unsigned int [usertype] req_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] length @@ got icted __le32 [usertype] length @@
drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: expected restricted __le32 [usertype] length
>> drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: got unsigned int [usertype] rsp_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got resunsigned short [usertype] comp_status @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: expected unsigned short [usertype] comp_status
drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: expected unsigned short [usertype] cmd_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] rsp_dsd_count @@ got resunsigned short [usertype] rsp_dsd_count @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: expected unsigned short [usertype] rsp_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] cmd_byte_count @@ got restrunsigned int [usertype] cmd_byte_count @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: expected unsigned int [usertype] cmd_byte_count
drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3327:37: sparse: sparse: too many warnings
--
drivers/scsi/qla2xxx/qla_mr.c:56:21: sparse: sparse: restricted pci_channel_state_t degrades to integer
drivers/scsi/qla2xxx/qla_mr.c:56:37: sparse: sparse: restricted pci_channel_state_t degrades to integer
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got restricted __lunsigned short [usertype] comp_status @@
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: expected unsigned short [usertype] comp_status
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: got restricted __le16 [assigned] [usertype] cpstatus
>> drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got resunsigned short [usertype] comp_status @@
drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: expected unsigned short [usertype] comp_status
>> drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: got restricted __le16 [usertype] tgt_id_sts
arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
vim +7794 drivers/scsi/qla2xxx/qla_init.c
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7609
413975a0f1a43a Adrian Bunk 2006-06-30 7610 static int
cbc8eb67da11a4 Andrew Vasquez 2009-06-03 7611 qla24xx_load_risc_flash(scsi_qla_host_t *vha, uint32_t *srisc_addr,
cbc8eb67da11a4 Andrew Vasquez 2009-06-03 7612 uint32_t faddr)
d1c61909c05ead Andrew Vasquez 2006-05-17 7613 {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7614 int rval;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7615 uint templates, segments, fragment;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7616 ulong i;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7617 uint j;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7618 ulong dlen;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7619 uint32_t *dcode;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7620 uint32_t risc_addr, risc_size, risc_attr = 0;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7621 struct qla_hw_data *ha = vha->hw;
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7622 struct req_que *req = ha->req_q_map[0];
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7623 struct fwdt *fwdt = ha->fwdt;
eaac30be268b90 Andrew Vasquez 2009-01-22 7624
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7625 ql_dbg(ql_dbg_init, vha, 0x008b,
cfb0919c12a331 Chad Dupuis 2011-11-18 7626 "FW: Loading firmware from flash (%x).\n", faddr);
eaac30be268b90 Andrew Vasquez 2009-01-22 7627
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7628 dcode = (void *)req->ring;
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7629 qla24xx_read_flash_data(vha, dcode, faddr, 8);
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7630 if (qla24xx_risc_firmware_invalid(dcode)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7631 ql_log(ql_log_fatal, vha, 0x008c,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7632 "Unable to verify the integrity of flash firmware "
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7633 "image.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7634 ql_log(ql_log_fatal, vha, 0x008d,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7635 "Firmware data: %08x %08x %08x %08x.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7636 dcode[0], dcode[1], dcode[2], dcode[3]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7637
d1c61909c05ead Andrew Vasquez 2006-05-17 7638 return QLA_FUNCTION_FAILED;
d1c61909c05ead Andrew Vasquez 2006-05-17 7639 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7640
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7641 dcode = (void *)req->ring;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7642 *srisc_addr = 0;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7643 segments = FA_RISC_CODE_SEGMENTS;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7644 for (j = 0; j < segments; j++) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7645 ql_dbg(ql_dbg_init, vha, 0x008d,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7646 "-> Loading segment %u...\n", j);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7647 qla24xx_read_flash_data(vha, dcode, faddr, 10);
d1c61909c05ead Andrew Vasquez 2006-05-17 7648 risc_addr = be32_to_cpu(dcode[2]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7649 risc_size = be32_to_cpu(dcode[3]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7650 if (!*srisc_addr) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7651 *srisc_addr = risc_addr;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 @7652 risc_attr = be32_to_cpu(dcode[9]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7653 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7654
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7655 dlen = ha->fw_transfer_size >> 2;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7656 for (fragment = 0; risc_size; fragment++) {
d1c61909c05ead Andrew Vasquez 2006-05-17 7657 if (dlen > risc_size)
d1c61909c05ead Andrew Vasquez 2006-05-17 7658 dlen = risc_size;
d1c61909c05ead Andrew Vasquez 2006-05-17 7659
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7660 ql_dbg(ql_dbg_init, vha, 0x008e,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7661 "-> Loading fragment %u: %#x <- %#x (%#lx dwords)...\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7662 fragment, risc_addr, faddr, dlen);
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7663 qla24xx_read_flash_data(vha, dcode, faddr, dlen);
d1c61909c05ead Andrew Vasquez 2006-05-17 7664 for (i = 0; i < dlen; i++)
d1c61909c05ead Andrew Vasquez 2006-05-17 7665 dcode[i] = swab32(dcode[i]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7666
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7667 rval = qla2x00_load_ram(vha, req->dma, risc_addr, dlen);
d1c61909c05ead Andrew Vasquez 2006-05-17 7668 if (rval) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7669 ql_log(ql_log_fatal, vha, 0x008f,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7670 "-> Failed load firmware fragment %u.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7671 fragment);
f261f7aff7badc Chad Dupuis 2014-09-25 7672 return QLA_FUNCTION_FAILED;
d1c61909c05ead Andrew Vasquez 2006-05-17 7673 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7674
d1c61909c05ead Andrew Vasquez 2006-05-17 7675 faddr += dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7676 risc_addr += dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7677 risc_size -= dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7678 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7679 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7680
ecc89f25e225fa Joe Carnuccio 2019-03-12 7681 if (!IS_QLA27XX(ha) && !IS_QLA28XX(ha))
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7682 return QLA_SUCCESS;
f73cb695d3eccd Chad Dupuis 2014-02-26 7683
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7684 templates = (risc_attr & BIT_9) ? 2 : 1;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7685 ql_dbg(ql_dbg_init, vha, 0x0160, "-> templates = %u\n", templates);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7686 for (j = 0; j < templates; j++, fwdt++) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7687 if (fwdt->template)
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7688 vfree(fwdt->template);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7689 fwdt->template = NULL;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7690 fwdt->length = 0;
f73cb695d3eccd Chad Dupuis 2014-02-26 7691
3695310e37b4e5 Joe Carnuccio 2019-03-12 7692 dcode = (void *)req->ring;
f73cb695d3eccd Chad Dupuis 2014-02-26 7693 qla24xx_read_flash_data(vha, dcode, faddr, 7);
f73cb695d3eccd Chad Dupuis 2014-02-26 7694 risc_size = be32_to_cpu(dcode[2]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7695 ql_dbg(ql_dbg_init, vha, 0x0161,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7696 "-> fwdt%u template array at %#x (%#x dwords)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7697 j, faddr, risc_size);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7698 if (!risc_size || !~risc_size) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7699 ql_dbg(ql_dbg_init, vha, 0x0162,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7700 "-> fwdt%u failed to read array\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7701 goto failed;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7702 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7703
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7704 /* skip header and ignore checksum */
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7705 faddr += 7;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7706 risc_size -= 8;
f73cb695d3eccd Chad Dupuis 2014-02-26 7707
f73cb695d3eccd Chad Dupuis 2014-02-26 7708 ql_dbg(ql_dbg_init, vha, 0x0163,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7709 "-> fwdt%u template allocate template %#x words...\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7710 j, risc_size);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7711 fwdt->template = vmalloc(risc_size * sizeof(*dcode));
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7712 if (!fwdt->template) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7713 ql_log(ql_log_warn, vha, 0x0164,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7714 "-> fwdt%u failed allocate template.\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7715 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7716 }
f73cb695d3eccd Chad Dupuis 2014-02-26 7717
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7718 dcode = fwdt->template;
f73cb695d3eccd Chad Dupuis 2014-02-26 7719 qla24xx_read_flash_data(vha, dcode, faddr, risc_size);
f73cb695d3eccd Chad Dupuis 2014-02-26 7720
f73cb695d3eccd Chad Dupuis 2014-02-26 7721 if (!qla27xx_fwdt_template_valid(dcode)) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7722 ql_log(ql_log_warn, vha, 0x0165,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7723 "-> fwdt%u failed template validate\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7724 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7725 }
f73cb695d3eccd Chad Dupuis 2014-02-26 7726
f73cb695d3eccd Chad Dupuis 2014-02-26 7727 dlen = qla27xx_fwdt_template_size(dcode);
f73cb695d3eccd Chad Dupuis 2014-02-26 7728 ql_dbg(ql_dbg_init, vha, 0x0166,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7729 "-> fwdt%u template size %#lx bytes (%#lx words)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7730 j, dlen, dlen / sizeof(*dcode));
f73cb695d3eccd Chad Dupuis 2014-02-26 7731 if (dlen > risc_size * sizeof(*dcode)) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7732 ql_log(ql_log_warn, vha, 0x0167,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7733 "-> fwdt%u template exceeds array (%-lu bytes)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7734 j, dlen - risc_size * sizeof(*dcode));
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7735 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7736 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7737
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7738 fwdt->length = dlen;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7739 ql_dbg(ql_dbg_init, vha, 0x0168,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7740 "-> fwdt%u loaded template ok\n", j);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7741
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7742 faddr += risc_size + 1;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7743 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7744
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7745 return QLA_SUCCESS;
f73cb695d3eccd Chad Dupuis 2014-02-26 7746
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7747 failed:
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7748 if (fwdt->template)
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7749 vfree(fwdt->template);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7750 fwdt->template = NULL;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7751 fwdt->length = 0;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7752
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7753 return QLA_SUCCESS;
d1c61909c05ead Andrew Vasquez 2006-05-17 7754 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7755
e9454a883b3a26 Giridhar Malavali 2013-02-08 7756 #define QLA_FW_URL "http://ldriver.qlogic.com/firmware/"
d1c61909c05ead Andrew Vasquez 2006-05-17 7757
0107109ed69c9e Andrew Vasquez 2005-07-06 7758 int
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7759 qla2x00_load_risc(scsi_qla_host_t *vha, uint32_t *srisc_addr)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7760 {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7761 int rval;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7762 int i, fragment;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7763 uint16_t *wcode, *fwcode;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7764 uint32_t risc_addr, risc_size, fwclen, wlen, *seg;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7765 struct fw_blob *blob;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7766 struct qla_hw_data *ha = vha->hw;
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7767 struct req_que *req = ha->req_q_map[0];
5433383ef33ed4 Andrew Vasquez 2005-11-09 7768
5433383ef33ed4 Andrew Vasquez 2005-11-09 7769 /* Load firmware blob. */
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7770 blob = qla2x00_request_firmware(vha);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7771 if (!blob) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7772 ql_log(ql_log_info, vha, 0x0083,
94bcf830114a7a Yannick Guerrini 2015-02-26 7773 "Firmware image unavailable.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7774 ql_log(ql_log_info, vha, 0x0084,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7775 "Firmware images can be retrieved from: "QLA_FW_URL ".\n");
5433383ef33ed4 Andrew Vasquez 2005-11-09 7776 return QLA_FUNCTION_FAILED;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7777 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7778
5433383ef33ed4 Andrew Vasquez 2005-11-09 7779 rval = QLA_SUCCESS;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7780
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7781 wcode = (uint16_t *)req->ring;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7782 *srisc_addr = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7783 fwcode = (uint16_t *)blob->fw->data;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7784 fwclen = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7785
5433383ef33ed4 Andrew Vasquez 2005-11-09 7786 /* Validate firmware image by checking version. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7787 if (blob->fw->size < 8 * sizeof(uint16_t)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7788 ql_log(ql_log_fatal, vha, 0x0085,
5b5e0928f742cf Alexey Dobriyan 2017-02-27 7789 "Unable to verify integrity of firmware image (%zd).\n",
5433383ef33ed4 Andrew Vasquez 2005-11-09 7790 blob->fw->size);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7791 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7792 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7793 for (i = 0; i < 4; i++)
5433383ef33ed4 Andrew Vasquez 2005-11-09 @7794 wcode[i] = be16_to_cpu(fwcode[i + 4]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7795 if ((wcode[0] == 0xffff && wcode[1] == 0xffff && wcode[2] == 0xffff &&
5433383ef33ed4 Andrew Vasquez 2005-11-09 7796 wcode[3] == 0xffff) || (wcode[0] == 0 && wcode[1] == 0 &&
5433383ef33ed4 Andrew Vasquez 2005-11-09 7797 wcode[2] == 0 && wcode[3] == 0)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7798 ql_log(ql_log_fatal, vha, 0x0086,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7799 "Unable to verify integrity of firmware image.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7800 ql_log(ql_log_fatal, vha, 0x0087,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7801 "Firmware data: %04x %04x %04x %04x.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7802 wcode[0], wcode[1], wcode[2], wcode[3]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7803 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7804 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7805
5433383ef33ed4 Andrew Vasquez 2005-11-09 7806 seg = blob->segs;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7807 while (*seg && rval == QLA_SUCCESS) {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7808 risc_addr = *seg;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7809 *srisc_addr = *srisc_addr == 0 ? *seg : *srisc_addr;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7810 risc_size = be16_to_cpu(fwcode[3]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7811
5433383ef33ed4 Andrew Vasquez 2005-11-09 7812 /* Validate firmware image size. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7813 fwclen += risc_size * sizeof(uint16_t);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7814 if (blob->fw->size < fwclen) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7815 ql_log(ql_log_fatal, vha, 0x0088,
5433383ef33ed4 Andrew Vasquez 2005-11-09 7816 "Unable to verify integrity of firmware image "
5b5e0928f742cf Alexey Dobriyan 2017-02-27 7817 "(%zd).\n", blob->fw->size);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7818 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7819 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7820
5433383ef33ed4 Andrew Vasquez 2005-11-09 7821 fragment = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7822 while (risc_size > 0 && rval == QLA_SUCCESS) {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7823 wlen = (uint16_t)(ha->fw_transfer_size >> 1);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7824 if (wlen > risc_size)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7825 wlen = risc_size;
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7826 ql_dbg(ql_dbg_init, vha, 0x0089,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7827 "Loading risc segment@ risc addr %x number of "
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7828 "words 0x%x.\n", risc_addr, wlen);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7829
5433383ef33ed4 Andrew Vasquez 2005-11-09 7830 for (i = 0; i < wlen; i++)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7831 wcode[i] = swab16(fwcode[i]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7832
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7833 rval = qla2x00_load_ram(vha, req->dma, risc_addr,
5433383ef33ed4 Andrew Vasquez 2005-11-09 7834 wlen);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7835 if (rval) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7836 ql_log(ql_log_fatal, vha, 0x008a,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7837 "Failed to load segment %d of firmware.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7838 fragment);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7839 break;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7840 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7841
5433383ef33ed4 Andrew Vasquez 2005-11-09 7842 fwcode += wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7843 risc_addr += wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7844 risc_size -= wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7845 fragment++;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7846 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7847
5433383ef33ed4 Andrew Vasquez 2005-11-09 7848 /* Next segment. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7849 seg++;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7850 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7851 return rval;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7852
5433383ef33ed4 Andrew Vasquez 2005-11-09 7853 fail_fw_integrity:
5433383ef33ed4 Andrew Vasquez 2005-11-09 7854 return QLA_FUNCTION_FAILED;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7855 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7856
:::::: The code at line 7794 was first introduced by commit
:::::: 5433383ef33ed40c9c8a86a4355da344234af2a5 [SCSI] qla2xxx: Add full firmware(-request) hotplug support for all ISPs.
:::::: TO: Andrew Vasquez <andrew.vasquez@qlogic.com>
:::::: CC: James Bottomley <jejb@mulgrave.(none)>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
^ permalink raw reply [flat|nested] 3+ messages in thread
* [bvanassche:scsi-for-next 21/39] drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
@ 2019-12-06 10:04 kbuild test robot
0 siblings, 0 replies; 3+ messages in thread
From: kbuild test robot @ 2019-12-06 10:04 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 50434 bytes --]
tree: https://github.com/bvanassche/linux scsi-for-next
head: f5e9c29f429620162f4a54fe024630824df57d6f
commit: 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d [21/39] qla2xxx: Fix endianness annotations
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-91-g817270f-dirty
git checkout 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d
make ARCH=x86_64 allmodconfig
make C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>
sparse warnings: (new ones prefixed by >>)
drivers/scsi/qla2xxx/qla_init.c:7146:43: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_1 @@ got restricted __be32 [usertype] firmware_options_1 @@
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: expected restricted __be32 [usertype] firmware_options_1
drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_2 @@ got restricted __be32 [usertype] firmware_options_2 @@
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: expected restricted __be32 [usertype] firmware_options_2
drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: sparse: invalid assignment: |=
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: left side has type restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __be32 [usertype] firmware_options_3 @@ got restricted __be32 [usertype] firmware_options_3 @@
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: expected restricted __be32 [usertype] firmware_options_3
drivers/scsi/qla2xxx/qla_init.c:7152:40: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] host_p @@ got restrunsigned int [usertype] host_p @@
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: expected unsigned int [usertype] host_p
drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] efi_parameters @@ got restrunsigned int [usertype] efi_parameters @@
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: expected unsigned int [usertype] efi_parameters
drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] max_luns_per_target @@ got resunsigned short [usertype] max_luns_per_target @@
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: expected unsigned short [usertype] max_luns_per_target
drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] port_down_retry_count @@ got resunsigned short [usertype] port_down_retry_count @@
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: expected unsigned short [usertype] port_down_retry_count
drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] link_down_timeout @@ got resunsigned short [usertype] link_down_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: expected unsigned short [usertype] link_down_timeout
drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: sparse: invalid assignment: &=
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: left side has type restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: sparse: invalid assignment: &=
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: left side has type unsigned int
drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: right side has type restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7201:26: sparse: sparse: restricted __le32 degrades to integer
drivers/scsi/qla2xxx/qla_init.c:7208:40: sparse: sparse: restricted __le32 degrades to integer
drivers/scsi/qla2xxx/qla_init.c:7221:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7223:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7225:36: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7242:27: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7245:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7247:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] login_timeout @@ got resunsigned short [usertype] login_timeout @@
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: expected unsigned short [usertype] login_timeout
drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7249:29: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7266:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7270:41: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7276:37: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7281:34: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7283:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7298:33: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7299:21: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] interrupt_delay_timer @@ got resunsigned short [usertype] interrupt_delay_timer @@
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: expected unsigned short [usertype] interrupt_delay_timer
drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_init.c:7330:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7334:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7335:13: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7342:27: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7350:27: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: sparse: incorrect type in argument 1 (different base types) @@ expected restricted __le32 const [usertype] *p @@ got __le32 const [usertype] *p @@
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: expected restricted __le32 const [usertype] *p
drivers/scsi/qla2xxx/qla_init.c:7365:37: sparse: got unsigned int [usertype] *p
drivers/scsi/qla2xxx/qla_init.c:7401:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7402:13: sparse: sparse: cast to restricted __le16
drivers/scsi/qla2xxx/qla_init.c:7431:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7464:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7532:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7563:21: sparse: sparse: cast to restricted __le32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restricted __be32
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
>> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restricted __be16
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restricted __be32
drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: too many warnings
--
drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb0 @@ got resunsigned short [usertype] mb0 @@
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: expected unsigned short [usertype] mb0
drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: got restricted __le16
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb2 @@ got resunsigned short [usertype] mb2 @@
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: expected unsigned short [usertype] mb2
drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb3 @@ got resunsigned short [usertype] mb3 @@
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb0 @@ got resunsigned short [usertype] mb0 @@
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: expected unsigned short [usertype] mb0
drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got resunsigned short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb10 @@ got resunsigned short [usertype] mb10 @@
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: expected unsigned short [usertype] mb10
drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb1 @@ got resunsigned short [usertype] mb1 @@
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: expected unsigned short [usertype] mb1
drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb2 @@ got resunsigned short [usertype] mb2 @@
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: expected unsigned short [usertype] mb2
drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb3 @@ got resunsigned short [usertype] mb3 @@
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: expected unsigned short [usertype] mb3
drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb6 @@ got resunsigned short [usertype] mb6 @@
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: expected unsigned short [usertype] mb6
drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb7 @@ got resunsigned short [usertype] mb7 @@
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: expected unsigned short [usertype] mb7
drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] mb9 @@ got resunsigned short [usertype] mb9 @@
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: expected unsigned short [usertype] mb9
drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] timeout @@ got resunsigned short [usertype] timeout @@
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: expected unsigned short [usertype] timeout
drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] control_flags @@ got restrunsigned int [usertype] control_flags @@
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: expected unsigned int [usertype] control_flags
drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] tx_dsd_count @@ got resunsigned short [usertype] tx_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: expected unsigned short [usertype] tx_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] rx_dsd_count @@ got resunsigned short [usertype] rx_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: expected unsigned short [usertype] rx_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] extended @@ got resunsigned short [usertype] extended @@
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: expected unsigned short [usertype] extended
drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] status @@ got resunsigned short [usertype] status @@
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: expected unsigned short [usertype] status
drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] control_flags @@ got resunsigned short [usertype] control_flags @@
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: expected unsigned short [usertype] control_flags
drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: expected unsigned short [usertype] cmd_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] total_dsd_count @@ got resunsigned short [usertype] total_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: expected unsigned short [usertype] total_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] req_bytecount @@ got restrunsigned int [usertype] req_bytecount @@
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: expected unsigned int [usertype] req_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] rsp_bytecount @@ got restrunsigned int [usertype] rsp_bytecount @@
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: expected unsigned int [usertype] rsp_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] length @@ got icted __le32 [usertype] length @@
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: expected restricted __le32 [usertype] length
drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: got unsigned int [usertype] req_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected restricted __le32 [usertype] length @@ got icted __le32 [usertype] length @@
drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: expected restricted __le32 [usertype] length
>> drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: got unsigned int [usertype] rsp_bytecount
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] nport_handle @@ got resunsigned short [usertype] nport_handle @@
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: expected unsigned short [usertype] nport_handle
drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got resunsigned short [usertype] comp_status @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: expected unsigned short [usertype] comp_status
drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: got restricted __le16 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: expected unsigned short [usertype] cmd_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] rsp_dsd_count @@ got resunsigned short [usertype] rsp_dsd_count @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: expected unsigned short [usertype] rsp_dsd_count
drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: got restricted __le16 [usertype]
>> drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned int [usertype] cmd_byte_count @@ got restrunsigned int [usertype] cmd_byte_count @@
>> drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: expected unsigned int [usertype] cmd_byte_count
drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: got restricted __le32 [usertype]
drivers/scsi/qla2xxx/qla_iocb.c:3327:37: sparse: sparse: too many warnings
--
drivers/scsi/qla2xxx/qla_mr.c:56:21: sparse: sparse: restricted pci_channel_state_t degrades to integer
drivers/scsi/qla2xxx/qla_mr.c:56:37: sparse: sparse: restricted pci_channel_state_t degrades to integer
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got restricted __lunsigned short [usertype] comp_status @@
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: expected unsigned short [usertype] comp_status
>> drivers/scsi/qla2xxx/qla_mr.c:2186:32: sparse: got restricted __le16 [assigned] [usertype] cpstatus
>> drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: sparse: incorrect type in assignment (different base types) @@ expected unsigned short [usertype] comp_status @@ got resunsigned short [usertype] comp_status @@
drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: expected unsigned short [usertype] comp_status
>> drivers/scsi/qla2xxx/qla_mr.c:2203:32: sparse: got restricted __le16 [usertype] tgt_id_sts
arch/x86/include/asm/bitops.h:77:37: sparse: sparse: cast truncates bits from constant value (ffffff7f becomes 7f)
vim +7794 drivers/scsi/qla2xxx/qla_init.c
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7609
413975a0f1a43a Adrian Bunk 2006-06-30 7610 static int
cbc8eb67da11a4 Andrew Vasquez 2009-06-03 7611 qla24xx_load_risc_flash(scsi_qla_host_t *vha, uint32_t *srisc_addr,
cbc8eb67da11a4 Andrew Vasquez 2009-06-03 7612 uint32_t faddr)
d1c61909c05ead Andrew Vasquez 2006-05-17 7613 {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7614 int rval;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7615 uint templates, segments, fragment;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7616 ulong i;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7617 uint j;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7618 ulong dlen;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7619 uint32_t *dcode;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7620 uint32_t risc_addr, risc_size, risc_attr = 0;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7621 struct qla_hw_data *ha = vha->hw;
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7622 struct req_que *req = ha->req_q_map[0];
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7623 struct fwdt *fwdt = ha->fwdt;
eaac30be268b90 Andrew Vasquez 2009-01-22 7624
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7625 ql_dbg(ql_dbg_init, vha, 0x008b,
cfb0919c12a331 Chad Dupuis 2011-11-18 7626 "FW: Loading firmware from flash (%x).\n", faddr);
eaac30be268b90 Andrew Vasquez 2009-01-22 7627
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7628 dcode = (void *)req->ring;
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7629 qla24xx_read_flash_data(vha, dcode, faddr, 8);
f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7630 if (qla24xx_risc_firmware_invalid(dcode)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7631 ql_log(ql_log_fatal, vha, 0x008c,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7632 "Unable to verify the integrity of flash firmware "
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7633 "image.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7634 ql_log(ql_log_fatal, vha, 0x008d,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7635 "Firmware data: %08x %08x %08x %08x.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7636 dcode[0], dcode[1], dcode[2], dcode[3]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7637
d1c61909c05ead Andrew Vasquez 2006-05-17 7638 return QLA_FUNCTION_FAILED;
d1c61909c05ead Andrew Vasquez 2006-05-17 7639 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7640
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7641 dcode = (void *)req->ring;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7642 *srisc_addr = 0;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7643 segments = FA_RISC_CODE_SEGMENTS;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7644 for (j = 0; j < segments; j++) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7645 ql_dbg(ql_dbg_init, vha, 0x008d,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7646 "-> Loading segment %u...\n", j);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7647 qla24xx_read_flash_data(vha, dcode, faddr, 10);
d1c61909c05ead Andrew Vasquez 2006-05-17 7648 risc_addr = be32_to_cpu(dcode[2]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7649 risc_size = be32_to_cpu(dcode[3]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7650 if (!*srisc_addr) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7651 *srisc_addr = risc_addr;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 @7652 risc_attr = be32_to_cpu(dcode[9]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7653 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7654
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7655 dlen = ha->fw_transfer_size >> 2;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7656 for (fragment = 0; risc_size; fragment++) {
d1c61909c05ead Andrew Vasquez 2006-05-17 7657 if (dlen > risc_size)
d1c61909c05ead Andrew Vasquez 2006-05-17 7658 dlen = risc_size;
d1c61909c05ead Andrew Vasquez 2006-05-17 7659
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7660 ql_dbg(ql_dbg_init, vha, 0x008e,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7661 "-> Loading fragment %u: %#x <- %#x (%#lx dwords)...\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7662 fragment, risc_addr, faddr, dlen);
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7663 qla24xx_read_flash_data(vha, dcode, faddr, dlen);
d1c61909c05ead Andrew Vasquez 2006-05-17 7664 for (i = 0; i < dlen; i++)
d1c61909c05ead Andrew Vasquez 2006-05-17 7665 dcode[i] = swab32(dcode[i]);
d1c61909c05ead Andrew Vasquez 2006-05-17 7666
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7667 rval = qla2x00_load_ram(vha, req->dma, risc_addr, dlen);
d1c61909c05ead Andrew Vasquez 2006-05-17 7668 if (rval) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7669 ql_log(ql_log_fatal, vha, 0x008f,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7670 "-> Failed load firmware fragment %u.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7671 fragment);
f261f7aff7badc Chad Dupuis 2014-09-25 7672 return QLA_FUNCTION_FAILED;
d1c61909c05ead Andrew Vasquez 2006-05-17 7673 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7674
d1c61909c05ead Andrew Vasquez 2006-05-17 7675 faddr += dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7676 risc_addr += dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7677 risc_size -= dlen;
d1c61909c05ead Andrew Vasquez 2006-05-17 7678 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7679 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7680
ecc89f25e225fa Joe Carnuccio 2019-03-12 7681 if (!IS_QLA27XX(ha) && !IS_QLA28XX(ha))
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7682 return QLA_SUCCESS;
f73cb695d3eccd Chad Dupuis 2014-02-26 7683
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7684 templates = (risc_attr & BIT_9) ? 2 : 1;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7685 ql_dbg(ql_dbg_init, vha, 0x0160, "-> templates = %u\n", templates);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7686 for (j = 0; j < templates; j++, fwdt++) {
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7687 if (fwdt->template)
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7688 vfree(fwdt->template);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7689 fwdt->template = NULL;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7690 fwdt->length = 0;
f73cb695d3eccd Chad Dupuis 2014-02-26 7691
3695310e37b4e5 Joe Carnuccio 2019-03-12 7692 dcode = (void *)req->ring;
f73cb695d3eccd Chad Dupuis 2014-02-26 7693 qla24xx_read_flash_data(vha, dcode, faddr, 7);
f73cb695d3eccd Chad Dupuis 2014-02-26 7694 risc_size = be32_to_cpu(dcode[2]);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7695 ql_dbg(ql_dbg_init, vha, 0x0161,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7696 "-> fwdt%u template array at %#x (%#x dwords)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7697 j, faddr, risc_size);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7698 if (!risc_size || !~risc_size) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7699 ql_dbg(ql_dbg_init, vha, 0x0162,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7700 "-> fwdt%u failed to read array\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7701 goto failed;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7702 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7703
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7704 /* skip header and ignore checksum */
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7705 faddr += 7;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7706 risc_size -= 8;
f73cb695d3eccd Chad Dupuis 2014-02-26 7707
f73cb695d3eccd Chad Dupuis 2014-02-26 7708 ql_dbg(ql_dbg_init, vha, 0x0163,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7709 "-> fwdt%u template allocate template %#x words...\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7710 j, risc_size);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7711 fwdt->template = vmalloc(risc_size * sizeof(*dcode));
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7712 if (!fwdt->template) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7713 ql_log(ql_log_warn, vha, 0x0164,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7714 "-> fwdt%u failed allocate template.\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7715 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7716 }
f73cb695d3eccd Chad Dupuis 2014-02-26 7717
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7718 dcode = fwdt->template;
f73cb695d3eccd Chad Dupuis 2014-02-26 7719 qla24xx_read_flash_data(vha, dcode, faddr, risc_size);
f73cb695d3eccd Chad Dupuis 2014-02-26 7720
f73cb695d3eccd Chad Dupuis 2014-02-26 7721 if (!qla27xx_fwdt_template_valid(dcode)) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7722 ql_log(ql_log_warn, vha, 0x0165,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7723 "-> fwdt%u failed template validate\n", j);
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7724 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7725 }
f73cb695d3eccd Chad Dupuis 2014-02-26 7726
f73cb695d3eccd Chad Dupuis 2014-02-26 7727 dlen = qla27xx_fwdt_template_size(dcode);
f73cb695d3eccd Chad Dupuis 2014-02-26 7728 ql_dbg(ql_dbg_init, vha, 0x0166,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7729 "-> fwdt%u template size %#lx bytes (%#lx words)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7730 j, dlen, dlen / sizeof(*dcode));
f73cb695d3eccd Chad Dupuis 2014-02-26 7731 if (dlen > risc_size * sizeof(*dcode)) {
f73cb695d3eccd Chad Dupuis 2014-02-26 7732 ql_log(ql_log_warn, vha, 0x0167,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7733 "-> fwdt%u template exceeds array (%-lu bytes)\n",
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7734 j, dlen - risc_size * sizeof(*dcode));
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7735 goto failed;
f73cb695d3eccd Chad Dupuis 2014-02-26 7736 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7737
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7738 fwdt->length = dlen;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7739 ql_dbg(ql_dbg_init, vha, 0x0168,
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7740 "-> fwdt%u loaded template ok\n", j);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7741
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7742 faddr += risc_size + 1;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7743 }
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7744
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7745 return QLA_SUCCESS;
f73cb695d3eccd Chad Dupuis 2014-02-26 7746
2ff6ae85d5eea5 Joe Carnuccio 2019-03-12 7747 failed:
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7748 if (fwdt->template)
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7749 vfree(fwdt->template);
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7750 fwdt->template = NULL;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7751 fwdt->length = 0;
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7752
a28d9e4ef99729 Joe Carnuccio 2019-03-12 7753 return QLA_SUCCESS;
d1c61909c05ead Andrew Vasquez 2006-05-17 7754 }
d1c61909c05ead Andrew Vasquez 2006-05-17 7755
e9454a883b3a26 Giridhar Malavali 2013-02-08 7756 #define QLA_FW_URL "http://ldriver.qlogic.com/firmware/"
d1c61909c05ead Andrew Vasquez 2006-05-17 7757
0107109ed69c9e Andrew Vasquez 2005-07-06 7758 int
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7759 qla2x00_load_risc(scsi_qla_host_t *vha, uint32_t *srisc_addr)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7760 {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7761 int rval;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7762 int i, fragment;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7763 uint16_t *wcode, *fwcode;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7764 uint32_t risc_addr, risc_size, fwclen, wlen, *seg;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7765 struct fw_blob *blob;
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7766 struct qla_hw_data *ha = vha->hw;
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7767 struct req_que *req = ha->req_q_map[0];
5433383ef33ed4 Andrew Vasquez 2005-11-09 7768
5433383ef33ed4 Andrew Vasquez 2005-11-09 7769 /* Load firmware blob. */
e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7770 blob = qla2x00_request_firmware(vha);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7771 if (!blob) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7772 ql_log(ql_log_info, vha, 0x0083,
94bcf830114a7a Yannick Guerrini 2015-02-26 7773 "Firmware image unavailable.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7774 ql_log(ql_log_info, vha, 0x0084,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7775 "Firmware images can be retrieved from: "QLA_FW_URL ".\n");
5433383ef33ed4 Andrew Vasquez 2005-11-09 7776 return QLA_FUNCTION_FAILED;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7777 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7778
5433383ef33ed4 Andrew Vasquez 2005-11-09 7779 rval = QLA_SUCCESS;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7780
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7781 wcode = (uint16_t *)req->ring;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7782 *srisc_addr = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7783 fwcode = (uint16_t *)blob->fw->data;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7784 fwclen = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7785
5433383ef33ed4 Andrew Vasquez 2005-11-09 7786 /* Validate firmware image by checking version. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7787 if (blob->fw->size < 8 * sizeof(uint16_t)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7788 ql_log(ql_log_fatal, vha, 0x0085,
5b5e0928f742cf Alexey Dobriyan 2017-02-27 7789 "Unable to verify integrity of firmware image (%zd).\n",
5433383ef33ed4 Andrew Vasquez 2005-11-09 7790 blob->fw->size);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7791 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7792 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7793 for (i = 0; i < 4; i++)
5433383ef33ed4 Andrew Vasquez 2005-11-09 @7794 wcode[i] = be16_to_cpu(fwcode[i + 4]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7795 if ((wcode[0] == 0xffff && wcode[1] == 0xffff && wcode[2] == 0xffff &&
5433383ef33ed4 Andrew Vasquez 2005-11-09 7796 wcode[3] == 0xffff) || (wcode[0] == 0 && wcode[1] == 0 &&
5433383ef33ed4 Andrew Vasquez 2005-11-09 7797 wcode[2] == 0 && wcode[3] == 0)) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7798 ql_log(ql_log_fatal, vha, 0x0086,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7799 "Unable to verify integrity of firmware image.\n");
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7800 ql_log(ql_log_fatal, vha, 0x0087,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7801 "Firmware data: %04x %04x %04x %04x.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7802 wcode[0], wcode[1], wcode[2], wcode[3]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7803 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7804 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7805
5433383ef33ed4 Andrew Vasquez 2005-11-09 7806 seg = blob->segs;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7807 while (*seg && rval == QLA_SUCCESS) {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7808 risc_addr = *seg;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7809 *srisc_addr = *srisc_addr == 0 ? *seg : *srisc_addr;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7810 risc_size = be16_to_cpu(fwcode[3]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7811
5433383ef33ed4 Andrew Vasquez 2005-11-09 7812 /* Validate firmware image size. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7813 fwclen += risc_size * sizeof(uint16_t);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7814 if (blob->fw->size < fwclen) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7815 ql_log(ql_log_fatal, vha, 0x0088,
5433383ef33ed4 Andrew Vasquez 2005-11-09 7816 "Unable to verify integrity of firmware image "
5b5e0928f742cf Alexey Dobriyan 2017-02-27 7817 "(%zd).\n", blob->fw->size);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7818 goto fail_fw_integrity;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7819 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7820
5433383ef33ed4 Andrew Vasquez 2005-11-09 7821 fragment = 0;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7822 while (risc_size > 0 && rval == QLA_SUCCESS) {
5433383ef33ed4 Andrew Vasquez 2005-11-09 7823 wlen = (uint16_t)(ha->fw_transfer_size >> 1);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7824 if (wlen > risc_size)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7825 wlen = risc_size;
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7826 ql_dbg(ql_dbg_init, vha, 0x0089,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7827 "Loading risc segment@ risc addr %x number of "
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7828 "words 0x%x.\n", risc_addr, wlen);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7829
5433383ef33ed4 Andrew Vasquez 2005-11-09 7830 for (i = 0; i < wlen; i++)
5433383ef33ed4 Andrew Vasquez 2005-11-09 7831 wcode[i] = swab16(fwcode[i]);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7832
73208dfd7ab19f Anirban Chakraborty 2008-12-09 7833 rval = qla2x00_load_ram(vha, req->dma, risc_addr,
5433383ef33ed4 Andrew Vasquez 2005-11-09 7834 wlen);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7835 if (rval) {
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7836 ql_log(ql_log_fatal, vha, 0x008a,
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7837 "Failed to load segment %d of firmware.\n",
7c3df1320e5e87 Saurav Kashyap 2011-07-14 7838 fragment);
5433383ef33ed4 Andrew Vasquez 2005-11-09 7839 break;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7840 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7841
5433383ef33ed4 Andrew Vasquez 2005-11-09 7842 fwcode += wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7843 risc_addr += wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7844 risc_size -= wlen;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7845 fragment++;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7846 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7847
5433383ef33ed4 Andrew Vasquez 2005-11-09 7848 /* Next segment. */
5433383ef33ed4 Andrew Vasquez 2005-11-09 7849 seg++;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7850 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7851 return rval;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7852
5433383ef33ed4 Andrew Vasquez 2005-11-09 7853 fail_fw_integrity:
5433383ef33ed4 Andrew Vasquez 2005-11-09 7854 return QLA_FUNCTION_FAILED;
5433383ef33ed4 Andrew Vasquez 2005-11-09 7855 }
5433383ef33ed4 Andrew Vasquez 2005-11-09 7856
:::::: The code at line 7794 was first introduced by commit
:::::: 5433383ef33ed40c9c8a86a4355da344234af2a5 [SCSI] qla2xxx: Add full firmware(-request) hotplug support for all ISPs.
:::::: TO: Andrew Vasquez <andrew.vasquez@qlogic.com>
:::::: CC: James Bottomley <jejb@mulgrave.(none)>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-12-06 16:34 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-06 0:13 [bvanassche:scsi-for-next 21/39] drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16 kbuild test robot
2019-12-06 10:04 kbuild test robot
2019-12-06 16:34 kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.