All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.