From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: multipart/mixed; boundary="===============5045843881656030531==" MIME-Version: 1.0 From: kbuild test robot To: kbuild-all@lists.01.org Subject: [bvanassche:scsi-for-next 21/39] drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restricted __be16 Date: Fri, 06 Dec 2019 18:04:55 +0800 Message-ID: <201912061856.KsFiGO5j%lkp@intel.com> List-Id: --===============5045843881656030531== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable tree: https://github.com/bvanassche/linux scsi-for-next head: f5e9c29f429620162f4a54fe024630824df57d6f commit: 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d [21/39] qla2xxx: Fix endia= nness annotations reproduce: # apt-get install sparse # sparse version: v0.6.1-91-g817270f-dirty git checkout 1c89946c16d91698b2f98cb5fdc0a7c2732cfa4d make ARCH=3Dx86_64 allmodconfig make C=3D1 CF=3D'-fdiagnostic-prefix -D__CHECK_ENDIAN__' If you fix the issue, kindly add following tag Reported-by: kbuild test robot sparse warnings: (new ones prefixed by >>) drivers/scsi/qla2xxx/qla_init.c:7146:43: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] login_timeout @@ got resunsigned short [usertype] login_timeout @@ drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: expected unsigned sh= ort [usertype] login_timeout drivers/scsi/qla2xxx/qla_init.c:7147:35: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7148:40: sparse: sparse: incorrect type = in assignment (different base types) @@ expected restricted __be32 [user= type] firmware_options_1 @@ got restricted __be32 [usertype] firmware_op= tions_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 __le3= 2 [usertype] drivers/scsi/qla2xxx/qla_init.c:7150:40: sparse: sparse: incorrect type = in assignment (different base types) @@ expected restricted __be32 [user= type] firmware_options_2 @@ got restricted __be32 [usertype] firmware_op= tions_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 __le3= 2 [usertype] drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: sparse: invalid assignm= ent: |=3D drivers/scsi/qla2xxx/qla_init.c:7151:40: sparse: left side has type r= estricted __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 [user= type] firmware_options_3 @@ got restricted __be32 [usertype] firmware_op= tions_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 __le3= 2 [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 in= t [usertype] host_p drivers/scsi/qla2xxx/qla_init.c:7153:28: sparse: got restricted __le3= 2 [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 in= t [usertype] efi_parameters drivers/scsi/qla2xxx/qla_init.c:7154:36: sparse: got restricted __le3= 2 [usertype] drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] max_luns_per_target @@ got resunsigned short [usertype] max_luns_per_= target @@ drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: expected unsigned sh= ort [usertype] max_luns_per_target drivers/scsi/qla2xxx/qla_init.c:7156:41: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] port_down_retry_count @@ got resunsigned short [usertype] port_down_r= etry_count @@ drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: expected unsigned sh= ort [usertype] port_down_retry_count drivers/scsi/qla2xxx/qla_init.c:7157:43: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] link_down_timeout @@ got resunsigned short [usertype] link_down_timeo= ut @@ drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: expected unsigned sh= ort [usertype] link_down_timeout drivers/scsi/qla2xxx/qla_init.c:7158:39: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: sparse: invalid assignm= ent: &=3D drivers/scsi/qla2xxx/qla_init.c:7165:40: sparse: left side has type r= estricted __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 assignm= ent: &=3D drivers/scsi/qla2xxx/qla_init.c:7167:28: sparse: left side has type u= nsigned 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 __le= 32 degrades to integer drivers/scsi/qla2xxx/qla_init.c:7208:40: sparse: sparse: restricted __le= 32 degrades to integer drivers/scsi/qla2xxx/qla_init.c:7221:13: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7223:13: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7225:36: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7242:27: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7245:13: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] login_timeout @@ got resunsigned short [usertype] login_timeout @@ drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: expected unsigned sh= ort [usertype] login_timeout drivers/scsi/qla2xxx/qla_init.c:7246:35: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7247:13: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] login_timeout @@ got resunsigned short [usertype] login_timeout @@ drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: expected unsigned sh= ort [usertype] login_timeout drivers/scsi/qla2xxx/qla_init.c:7248:35: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7249:29: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7266:13: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7270:41: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7276:37: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7281:34: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7283:13: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7298:33: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7299:21: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] interrupt_delay_timer @@ got resunsigned short [usertype] interrupt_d= elay_timer @@ drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: expected unsigned sh= ort [usertype] interrupt_delay_timer drivers/scsi/qla2xxx/qla_init.c:7312:44: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_init.c:7330:13: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7334:13: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7335:13: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7342:27: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7350:27: sparse: sparse: cast to restric= ted __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 [us= ertype] *p drivers/scsi/qla2xxx/qla_init.c:7401:13: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7402:13: sparse: sparse: cast to restric= ted __le16 drivers/scsi/qla2xxx/qla_init.c:7431:21: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7464:21: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7532:21: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7563:21: sparse: sparse: cast to restric= ted __le32 drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7648:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7649:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7652:37: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7694:29: sparse: sparse: cast to restric= ted __be32 >> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restric= ted __be16 >> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restric= ted __be16 >> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restric= ted __be16 >> drivers/scsi/qla2xxx/qla_init.c:7794:28: sparse: sparse: cast to restric= ted __be16 drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restric= ted __be16 drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restric= ted __be16 drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restric= ted __be16 drivers/scsi/qla2xxx/qla_init.c:7810:29: sparse: sparse: cast to restric= ted __be16 drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7902:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: cast to restric= ted __be32 drivers/scsi/qla2xxx/qla_init.c:7903:29: sparse: sparse: too many warnin= gs -- drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: expected unsigned sh= ort [usertype] mb3 drivers/scsi/qla2xxx/qla_iocb.c:2400:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb9 @@ got resunsigned short [usertype] mb9 @@ drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: expected unsigned sh= ort [usertype] mb9 drivers/scsi/qla2xxx/qla_iocb.c:2402:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2426:9: sparse: sparse: incorrect type i= n 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 sho= rt [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 [usertyp= e] mb0 @@ got resunsigned short [usertype] mb0 @@ drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: expected unsigned sh= ort [usertype] mb0 drivers/scsi/qla2xxx/qla_iocb.c:2427:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb1 @@ got short [usertype] mb1 @@ drivers/scsi/qla2xxx/qla_iocb.c:2428:18: sparse: expected unsigned sh= ort [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 [usertyp= e] mb2 @@ got resunsigned short [usertype] mb2 @@ drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: expected unsigned sh= ort [usertype] mb2 drivers/scsi/qla2xxx/qla_iocb.c:2431:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb3 @@ got resunsigned short [usertype] mb3 @@ drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: expected unsigned sh= ort [usertype] mb3 drivers/scsi/qla2xxx/qla_iocb.c:2432:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb9 @@ got resunsigned short [usertype] mb9 @@ drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: expected unsigned sh= ort [usertype] mb9 drivers/scsi/qla2xxx/qla_iocb.c:2434:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2453:9: sparse: sparse: incorrect type i= n 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 sho= rt [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 [usertyp= e] mb0 @@ got resunsigned short [usertype] mb0 @@ drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: expected unsigned sh= ort [usertype] mb0 drivers/scsi/qla2xxx/qla_iocb.c:2454:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb1 @@ got resunsigned short [usertype] mb1 @@ drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: expected unsigned sh= ort [usertype] mb1 drivers/scsi/qla2xxx/qla_iocb.c:2456:26: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb10 @@ got resunsigned short [usertype] mb10 @@ drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: expected unsigned sh= ort [usertype] mb10 drivers/scsi/qla2xxx/qla_iocb.c:2457:27: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb1 @@ got resunsigned short [usertype] mb1 @@ drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: expected unsigned sh= ort [usertype] mb1 drivers/scsi/qla2xxx/qla_iocb.c:2459:26: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb2 @@ got resunsigned short [usertype] mb2 @@ drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: expected unsigned sh= ort [usertype] mb2 drivers/scsi/qla2xxx/qla_iocb.c:2461:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb3 @@ got resunsigned short [usertype] mb3 @@ drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: expected unsigned sh= ort [usertype] mb3 drivers/scsi/qla2xxx/qla_iocb.c:2462:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb6 @@ got resunsigned short [usertype] mb6 @@ drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: expected unsigned sh= ort [usertype] mb6 drivers/scsi/qla2xxx/qla_iocb.c:2463:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb7 @@ got resunsigned short [usertype] mb7 @@ drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: expected unsigned sh= ort [usertype] mb7 drivers/scsi/qla2xxx/qla_iocb.c:2464:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] mb9 @@ got resunsigned short [usertype] mb9 @@ drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: expected unsigned sh= ort [usertype] mb9 drivers/scsi/qla2xxx/qla_iocb.c:2465:18: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] nport_handle @@ got resunsigned short [usertype] nport_handle @@ drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: expected unsigned sh= ort [usertype] nport_handle drivers/scsi/qla2xxx/qla_iocb.c:2485:27: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] timeout @@ got resunsigned short [usertype] timeout @@ drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: expected unsigned sh= ort [usertype] timeout drivers/scsi/qla2xxx/qla_iocb.c:2486:22: sparse: got restricted __le1= 6 [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 in= t [usertype] control_flags drivers/scsi/qla2xxx/qla_iocb.c:2487:28: sparse: got restricted __le3= 2 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] nport_handle @@ got resunsigned short [usertype] nport_handle @@ drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: expected unsigned sh= ort [usertype] nport_handle drivers/scsi/qla2xxx/qla_iocb.c:2649:32: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] nport_handle @@ got resunsigned short [usertype] nport_handle @@ drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: expected unsigned sh= ort [usertype] nport_handle drivers/scsi/qla2xxx/qla_iocb.c:2983:32: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] tx_dsd_count @@ got resunsigned short [usertype] tx_dsd_count @@ drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: expected unsigned sh= ort [usertype] tx_dsd_count drivers/scsi/qla2xxx/qla_iocb.c:2984:32: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] rx_dsd_count @@ got resunsigned short [usertype] rx_dsd_count @@ drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: expected unsigned sh= ort [usertype] rx_dsd_count drivers/scsi/qla2xxx/qla_iocb.c:2987:32: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:3032:9: sparse: sparse: incorrect type i= n 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 sho= rt [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 [usertyp= e] status @@ got resunsigned short [usertype] status @@ drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: expected unsigned sh= ort [usertype] status drivers/scsi/qla2xxx/qla_iocb.c:3033:25: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] control_flags @@ got resunsigned short [usertype] control_flags @@ drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: expected unsigned sh= ort [usertype] control_flags drivers/scsi/qla2xxx/qla_iocb.c:3034:32: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@ drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: expected unsigned sh= ort [usertype] cmd_dsd_count drivers/scsi/qla2xxx/qla_iocb.c:3036:32: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] total_dsd_count @@ got resunsigned short [usertype] total_dsd_count @@ drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: expected unsigned sh= ort [usertype] total_dsd_count drivers/scsi/qla2xxx/qla_iocb.c:3038:34: sparse: got restricted __le1= 6 [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 in= t [usertype] req_bytecount drivers/scsi/qla2xxx/qla_iocb.c:3040:32: sparse: got restricted __le3= 2 [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 in= t [usertype] rsp_bytecount drivers/scsi/qla2xxx/qla_iocb.c:3042:32: sparse: got restricted __le3= 2 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:3047:33: sparse: sparse: incorrect type = in assignment (different base types) @@ expected restricted __le32 [user= type] 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 [us= ertype] req_bytecount drivers/scsi/qla2xxx/qla_iocb.c:3051:33: sparse: sparse: incorrect type = in assignment (different base types) @@ expected restricted __le32 [user= type] 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 [us= ertype] rsp_bytecount drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] nport_handle @@ got resunsigned short [usertype] nport_handle @@ drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: expected unsigned sh= ort [usertype] nport_handle drivers/scsi/qla2xxx/qla_iocb.c:3101:31: sparse: got restricted __le1= 6 [usertype] >> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] comp_status @@ got resunsigned short [usertype] comp_status @@ >> drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: expected unsigned sh= ort [usertype] comp_status drivers/scsi/qla2xxx/qla_iocb.c:3103:30: sparse: got restricted __le1= 6 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] cmd_dsd_count @@ got resunsigned short [usertype] cmd_dsd_count @@ drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: expected unsigned sh= ort [usertype] cmd_dsd_count drivers/scsi/qla2xxx/qla_iocb.c:3108:32: sparse: got restricted __le1= 6 [usertype] >> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: sparse: incorrect type = in assignment (different base types) @@ expected unsigned short [usertyp= e] rsp_dsd_count @@ got resunsigned short [usertype] rsp_dsd_count @@ >> drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: expected unsigned sh= ort [usertype] rsp_dsd_count drivers/scsi/qla2xxx/qla_iocb.c:3110:32: sparse: got restricted __le1= 6 [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 in= t [usertype] cmd_byte_count drivers/scsi/qla2xxx/qla_iocb.c:3111:33: sparse: got restricted __le3= 2 [usertype] drivers/scsi/qla2xxx/qla_iocb.c:3327:37: sparse: sparse: too many warnin= gs -- drivers/scsi/qla2xxx/qla_mr.c:56:21: sparse: sparse: restricted pci_chan= nel_state_t degrades to integer drivers/scsi/qla2xxx/qla_mr.c:56:37: sparse: sparse: restricted pci_chan= nel_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 shor= t [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 shor= t [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_flas= h(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, segme= nts, 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, r= isc_size, risc_attr =3D 0; e315cd28b9ef0d Anirban Chakraborty 2008-11-06 7621 struct qla_hw_data *h= a =3D vha->hw; 73208dfd7ab19f Anirban Chakraborty 2008-12-09 7622 struct req_que *req = =3D ha->req_q_map[0]; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7623 struct fwdt *fwdt =3D= ha->fwdt; eaac30be268b90 Andrew Vasquez 2009-01-22 7624 = 7c3df1320e5e87 Saurav Kashyap 2011-07-14 7625 ql_dbg(ql_dbg_init, v= ha, 0x008b, cfb0919c12a331 Chad Dupuis 2011-11-18 7626 "FW: Loading firm= ware from flash (%x).\n", faddr); eaac30be268b90 Andrew Vasquez 2009-01-22 7627 = f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7628 dcode =3D (void *)req= ->ring; f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7629 qla24xx_read_flash_da= ta(vha, dcode, faddr, 8); f8f97b0c5b7f7c Joe Carnuccio 2019-03-12 7630 if (qla24xx_risc_firm= ware_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 verif= y 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 =3D (void *)req= ->ring; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7642 *srisc_addr =3D 0; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7643 segments =3D FA_RISC_= CODE_SEGMENTS; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7644 for (j =3D 0; j < seg= ments; j++) { a28d9e4ef99729 Joe Carnuccio 2019-03-12 7645 ql_dbg(ql_dbg_init, = vha, 0x008d, a28d9e4ef99729 Joe Carnuccio 2019-03-12 7646 "-> Loading segm= ent %u...\n", j); a28d9e4ef99729 Joe Carnuccio 2019-03-12 7647 qla24xx_read_flash_d= ata(vha, dcode, faddr, 10); d1c61909c05ead Andrew Vasquez 2006-05-17 7648 risc_addr =3D be32_t= o_cpu(dcode[2]); d1c61909c05ead Andrew Vasquez 2006-05-17 7649 risc_size =3D be32_t= o_cpu(dcode[3]); a28d9e4ef99729 Joe Carnuccio 2019-03-12 7650 if (!*srisc_addr) { a28d9e4ef99729 Joe Carnuccio 2019-03-12 7651 *srisc_addr =3D ris= c_addr; a28d9e4ef99729 Joe Carnuccio 2019-03-12 @7652 risc_attr =3D 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 =3D ha->fw_tran= sfer_size >> 2; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7656 for (fragment =3D 0;= risc_size; fragment++) { d1c61909c05ead Andrew Vasquez 2006-05-17 7657 if (dlen > risc_siz= e) d1c61909c05ead Andrew Vasquez 2006-05-17 7658 dlen =3D 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 fra= gment %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 =3D 0; i < d= len; i++) d1c61909c05ead Andrew Vasquez 2006-05-17 7665 dcode[i] =3D swab3= 2(dcode[i]); d1c61909c05ead Andrew Vasquez 2006-05-17 7666 = a28d9e4ef99729 Joe Carnuccio 2019-03-12 7667 rval =3D qla2x00_lo= ad_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_fata= l, vha, 0x008f, a28d9e4ef99729 Joe Carnuccio 2019-03-12 7670 "-> Failed loa= d firmware fragment %u.\n", 7c3df1320e5e87 Saurav Kashyap 2011-07-14 7671 fragment); f261f7aff7badc Chad Dupuis 2014-09-25 7672 return QLA_FUNCTIO= N_FAILED; d1c61909c05ead Andrew Vasquez 2006-05-17 7673 } d1c61909c05ead Andrew Vasquez 2006-05-17 7674 = d1c61909c05ead Andrew Vasquez 2006-05-17 7675 faddr +=3D dlen; d1c61909c05ead Andrew Vasquez 2006-05-17 7676 risc_addr +=3D dlen; d1c61909c05ead Andrew Vasquez 2006-05-17 7677 risc_size -=3D 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 =3D (risc_a= ttr & BIT_9) ? 2 : 1; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7685 ql_dbg(ql_dbg_init, v= ha, 0x0160, "-> templates =3D %u\n", templates); a28d9e4ef99729 Joe Carnuccio 2019-03-12 7686 for (j =3D 0; j < tem= plates; j++, fwdt++) { a28d9e4ef99729 Joe Carnuccio 2019-03-12 7687 if (fwdt->template) a28d9e4ef99729 Joe Carnuccio 2019-03-12 7688 vfree(fwdt->templat= e); a28d9e4ef99729 Joe Carnuccio 2019-03-12 7689 fwdt->template =3D N= ULL; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7690 fwdt->length =3D 0; f73cb695d3eccd Chad Dupuis 2014-02-26 7691 = 3695310e37b4e5 Joe Carnuccio 2019-03-12 7692 dcode =3D (void *)re= q->ring; f73cb695d3eccd Chad Dupuis 2014-02-26 7693 qla24xx_read_flash_d= ata(vha, dcode, faddr, 7); f73cb695d3eccd Chad Dupuis 2014-02-26 7694 risc_size =3D be32_t= o_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 templ= ate array at %#x (%#x dwords)\n", a28d9e4ef99729 Joe Carnuccio 2019-03-12 7697 j, faddr, risc_s= ize); 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 fail= ed 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 i= gnore checksum */ a28d9e4ef99729 Joe Carnuccio 2019-03-12 7705 faddr +=3D 7; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7706 risc_size -=3D 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 templ= ate allocate template %#x words...\n", a28d9e4ef99729 Joe Carnuccio 2019-03-12 7710 j, risc_size); a28d9e4ef99729 Joe Carnuccio 2019-03-12 7711 fwdt->template =3D v= malloc(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 fail= ed 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 =3D fwdt->temp= late; f73cb695d3eccd Chad Dupuis 2014-02-26 7719 qla24xx_read_flash_d= ata(vha, dcode, faddr, risc_size); f73cb695d3eccd Chad Dupuis 2014-02-26 7720 = f73cb695d3eccd Chad Dupuis 2014-02-26 7721 if (!qla27xx_fwdt_te= mplate_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 fail= ed 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 =3D qla27xx_fwd= t_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 templ= ate 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 temp= late 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 =3D dle= n; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7739 ql_dbg(ql_dbg_init, = vha, 0x0168, a28d9e4ef99729 Joe Carnuccio 2019-03-12 7740 "-> fwdt%u loade= d template ok\n", j); a28d9e4ef99729 Joe Carnuccio 2019-03-12 7741 = a28d9e4ef99729 Joe Carnuccio 2019-03-12 7742 faddr +=3D 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 =3D NU= LL; a28d9e4ef99729 Joe Carnuccio 2019-03-12 7751 fwdt->length =3D 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 "ht= tp://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, *fwc= ode; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7764 uint32_t risc_addr, r= isc_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 *h= a =3D vha->hw; 73208dfd7ab19f Anirban Chakraborty 2008-12-09 7767 struct req_que *req = =3D 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 =3D qla2x00_requ= est_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 =3D QLA_SUCCESS; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7780 = 73208dfd7ab19f Anirban Chakraborty 2008-12-09 7781 wcode =3D (uint16_t *= )req->ring; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7782 *srisc_addr =3D 0; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7783 fwcode =3D (uint16_t = *)blob->fw->data; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7784 fwclen =3D 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 verif= y 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_integri= ty; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7792 } 5433383ef33ed4 Andrew Vasquez 2005-11-09 7793 for (i =3D 0; i < 4; = i++) 5433383ef33ed4 Andrew Vasquez 2005-11-09 @7794 wcode[i] =3D be16_to= _cpu(fwcode[i + 4]); 5433383ef33ed4 Andrew Vasquez 2005-11-09 7795 if ((wcode[0] =3D=3D = 0xffff && wcode[1] =3D=3D 0xffff && wcode[2] =3D=3D 0xffff && 5433383ef33ed4 Andrew Vasquez 2005-11-09 7796 wcode[3] =3D=3D 0= xffff) || (wcode[0] =3D=3D 0 && wcode[1] =3D=3D 0 && 5433383ef33ed4 Andrew Vasquez 2005-11-09 7797 wcode[2] =3D=3D 0 &&= wcode[3] =3D=3D 0)) { 7c3df1320e5e87 Saurav Kashyap 2011-07-14 7798 ql_log(ql_log_fatal,= vha, 0x0086, 7c3df1320e5e87 Saurav Kashyap 2011-07-14 7799 "Unable to verif= y 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_integri= ty; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7804 } 5433383ef33ed4 Andrew Vasquez 2005-11-09 7805 = 5433383ef33ed4 Andrew Vasquez 2005-11-09 7806 seg =3D blob->segs; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7807 while (*seg && rval = =3D=3D QLA_SUCCESS) { 5433383ef33ed4 Andrew Vasquez 2005-11-09 7808 risc_addr =3D *seg; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7809 *srisc_addr =3D *sri= sc_addr =3D=3D 0 ? *seg : *srisc_addr; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7810 risc_size =3D be16_t= o_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 +=3D risc_siz= e * 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 veri= fy integrity of firmware image " 5b5e0928f742cf Alexey Dobriyan 2017-02-27 7817 "(%zd).\n", blo= b->fw->size); 5433383ef33ed4 Andrew Vasquez 2005-11-09 7818 goto fail_fw_integr= ity; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7819 } 5433383ef33ed4 Andrew Vasquez 2005-11-09 7820 = 5433383ef33ed4 Andrew Vasquez 2005-11-09 7821 fragment =3D 0; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7822 while (risc_size > 0= && rval =3D=3D QLA_SUCCESS) { 5433383ef33ed4 Andrew Vasquez 2005-11-09 7823 wlen =3D (uint16_t)= (ha->fw_transfer_size >> 1); 5433383ef33ed4 Andrew Vasquez 2005-11-09 7824 if (wlen > risc_siz= e) 5433383ef33ed4 Andrew Vasquez 2005-11-09 7825 wlen =3D 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 s= egment@ 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 =3D 0; i < w= len; i++) 5433383ef33ed4 Andrew Vasquez 2005-11-09 7831 wcode[i] =3D swab1= 6(fwcode[i]); 5433383ef33ed4 Andrew Vasquez 2005-11-09 7832 = 73208dfd7ab19f Anirban Chakraborty 2008-12-09 7833 rval =3D qla2x00_lo= ad_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_fata= l, vha, 0x008a, 7c3df1320e5e87 Saurav Kashyap 2011-07-14 7837 "Failed to loa= d 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 +=3D wlen; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7843 risc_addr +=3D wlen; 5433383ef33ed4 Andrew Vasquez 2005-11-09 7844 risc_size -=3D 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_F= AILED; 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 fi= rmware(-request) hotplug support for all ISPs. :::::: TO: Andrew Vasquez :::::: CC: James Bottomley --- 0-DAY kernel test infrastructure Open Source Technology Cen= ter https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corpor= ation --===============5045843881656030531==--