[linux-next:master 3879/7050] drivers/scsi/qla2xxx/qla_os.c:5929:30: sparse: sparse: incorrect type in assignment (different base types)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head:   b86a6a241b7c60ca7a6ca4fb3c0d2aedbbf2c1b6
commit: d83a80ee57f0cb38baccc75e96bc56ac47d300b3 [3879/7050] scsi: qla2xxx: Add vendor extended RDP additions and amendments
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.1-174-g094d5a94-dirty
        git checkout d83a80ee57f0cb38baccc75e96bc56ac47d300b3
        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@xxxxxxxxx>


sparse warnings: (new ones prefixed by >>)

   drivers/scsi/qla2xxx/qla_os.c:4470:45: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] exchange_count @@    got resunsigned short [usertype] exchange_count @@
   drivers/scsi/qla2xxx/qla_os.c:4470:45: sparse:    expected unsigned short [usertype] exchange_count
   drivers/scsi/qla2xxx/qla_os.c:4470:45: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:4481:45: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] exchange_count @@    got resunsigned short [usertype] exchange_count @@
   drivers/scsi/qla2xxx/qla_os.c:4481:45: sparse:    expected unsigned short [usertype] exchange_count
   drivers/scsi/qla2xxx/qla_os.c:4481:45: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:4581:45: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] exchange_count @@    got resunsigned short [usertype] exchange_count @@
   drivers/scsi/qla2xxx/qla_os.c:4581:45: sparse:    expected unsigned short [usertype] exchange_count
   drivers/scsi/qla2xxx/qla_os.c:4581:45: sparse:    got restricted __le16 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:5132:41: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_os.c:5136:37: sparse: sparse: cast to restricted __le16
   drivers/scsi/qla2xxx/qla_os.c:5922:50: sparse: sparse: incorrect type in assignment (different base types) @@    expected restricted __le32 [usertype] tx_len @@    got 2 [usertype] tx_len @@
   drivers/scsi/qla2xxx/qla_os.c:5922:50: sparse:    expected restricted __le32 [usertype] tx_len
   drivers/scsi/qla2xxx/qla_os.c:5922:50: sparse:    got unsigned long
>> drivers/scsi/qla2xxx/qla_os.c:5929:30: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] cmd @@    got restrunsigned int [usertype] cmd @@
   drivers/scsi/qla2xxx/qla_os.c:5929:30: sparse:    expected unsigned int [usertype] cmd
   drivers/scsi/qla2xxx/qla_os.c:5929:30: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:5930:32: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qla2xxx/qla_os.c:5930:32: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qla2xxx/qla_os.c:5930:32: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qla2xxx/qla_os.c:5930:32: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qla2xxx/qla_os.c:5930:32: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qla2xxx/qla_os.c:5930:32: sparse: sparse: restricted __le32 degrades to integer
>> drivers/scsi/qla2xxx/qla_os.c:5930:30: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] len @@    got restrunsigned int [usertype] len @@
   drivers/scsi/qla2xxx/qla_os.c:5930:30: sparse:    expected unsigned int [usertype] len
   drivers/scsi/qla2xxx/qla_os.c:5930:30: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:5934:48: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:5934:48: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:5934:48: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:5935:48: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:5935:48: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:5935:48: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:5937:58: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] req_payload_word_0 @@    got d int [usertype] req_payload_word_0 @@
   drivers/scsi/qla2xxx/qla_os.c:5937:58: sparse:    expected unsigned int [usertype] req_payload_word_0
   drivers/scsi/qla2xxx/qla_os.c:5937:58: sparse:    got restricted __be32
   drivers/scsi/qla2xxx/qla_os.c:5941:49: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:5941:49: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:5941:49: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:5942:49: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:5942:49: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:5942:49: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:5944:59: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] req_payload_word_0 @@    got d int [usertype] req_payload_word_0 @@
   drivers/scsi/qla2xxx/qla_os.c:5944:59: sparse:    expected unsigned int [usertype] req_payload_word_0
   drivers/scsi/qla2xxx/qla_os.c:5944:59: sparse:    got restricted __be32
   drivers/scsi/qla2xxx/qla_os.c:5976:61: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:5976:61: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:5976:61: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:5978:61: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:5978:61: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:5978:61: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:5985:62: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] sfp_flags @@    got resunsigned short [usertype] sfp_flags @@
   drivers/scsi/qla2xxx/qla_os.c:5985:62: sparse:    expected unsigned short [usertype] sfp_flags
   drivers/scsi/qla2xxx/qla_os.c:5985:62: sparse:    got restricted __be16 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:5991:47: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:5991:47: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:5991:47: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:5992:47: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:5992:47: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:5992:47: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:5994:50: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] speed_capab @@    got resunsigned short [usertype] speed_capab @@
   drivers/scsi/qla2xxx/qla_os.c:5994:50: sparse:    expected unsigned short [usertype] speed_capab
   drivers/scsi/qla2xxx/qla_os.c:5994:50: sparse:    got restricted __be16 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:5996:54: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [usertype] operating_speed @@    got resunsigned short [usertype] operating_speed @@
   drivers/scsi/qla2xxx/qla_os.c:5996:54: sparse:    expected unsigned short [usertype] operating_speed
   drivers/scsi/qla2xxx/qla_os.c:5996:54: sparse:    got restricted __be16 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6003:59: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6003:59: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6003:59: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6005:59: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6005:59: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6005:59: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse: sparse: cast from restricted __le32
>> drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] val @@    got restrunsigned int [usertype] val @@
   drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse:    expected unsigned int [usertype] val
   drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse:    got restricted __le32 [usertype] link_fail_cnt
   drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6008:29: sparse: sparse: cast from restricted __le32
>> drivers/scsi/qla2xxx/qla_os.c:6007:64: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] link_fail_cnt @@    got restrunsigned int [usertype] link_fail_cnt @@
   drivers/scsi/qla2xxx/qla_os.c:6007:64: sparse:    expected unsigned int [usertype] link_fail_cnt
   drivers/scsi/qla2xxx/qla_os.c:6007:64: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] val @@    got restrunsigned int [usertype] val @@
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse:    expected unsigned int [usertype] val
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse:    got restricted __le32 [usertype] loss_sync_cnt
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6010:29: sparse: sparse: cast from restricted __le32
>> drivers/scsi/qla2xxx/qla_os.c:6009:64: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] loss_sync_cnt @@    got restrunsigned int [usertype] loss_sync_cnt @@
   drivers/scsi/qla2xxx/qla_os.c:6009:64: sparse:    expected unsigned int [usertype] loss_sync_cnt
   drivers/scsi/qla2xxx/qla_os.c:6009:64: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] val @@    got restrunsigned int [usertype] val @@
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse:    expected unsigned int [usertype] val
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse:    got restricted __le32 [usertype] loss_sig_cnt
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6012:29: sparse: sparse: cast from restricted __le32
>> drivers/scsi/qla2xxx/qla_os.c:6011:63: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] loss_sig_cnt @@    got restrunsigned int [usertype] loss_sig_cnt @@
   drivers/scsi/qla2xxx/qla_os.c:6011:63: sparse:    expected unsigned int [usertype] loss_sig_cnt
   drivers/scsi/qla2xxx/qla_os.c:6011:63: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] val @@    got restrunsigned int [usertype] val @@
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse:    expected unsigned int [usertype] val
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse:    got restricted __le32 [usertype] prim_seq_err_cnt
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6014:29: sparse: sparse: cast from restricted __le32
>> drivers/scsi/qla2xxx/qla_os.c:6013:67: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] prim_seq_err_cnt @@    got restrunsigned int [usertype] prim_seq_err_cnt @@
   drivers/scsi/qla2xxx/qla_os.c:6013:67: sparse:    expected unsigned int [usertype] prim_seq_err_cnt
   drivers/scsi/qla2xxx/qla_os.c:6013:67: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] val @@    got restrunsigned int [usertype] val @@
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse:    expected unsigned int [usertype] val
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse:    got restricted __le32 [usertype] inval_xmit_word_cnt
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6016:29: sparse: sparse: cast from restricted __le32
>> drivers/scsi/qla2xxx/qla_os.c:6015:70: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] inval_xmit_word_cnt @@    got restrunsigned int [usertype] inval_xmit_word_cnt @@
   drivers/scsi/qla2xxx/qla_os.c:6015:70: sparse:    expected unsigned int [usertype] inval_xmit_word_cnt
   drivers/scsi/qla2xxx/qla_os.c:6015:70: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse: sparse: incorrect type in argument 1 (different base types) @@    expected unsigned int [usertype] val @@    got restrunsigned int [usertype] val @@
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse:    expected unsigned int [usertype] val
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse:    got restricted __le32 [usertype] inval_crc_cnt
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse: sparse: cast from restricted __le32
   drivers/scsi/qla2xxx/qla_os.c:6018:29: sparse: sparse: cast from restricted __le32
>> drivers/scsi/qla2xxx/qla_os.c:6017:64: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] inval_crc_cnt @@    got restrunsigned int [usertype] inval_crc_cnt @@
   drivers/scsi/qla2xxx/qla_os.c:6017:64: sparse:    expected unsigned int [usertype] inval_crc_cnt
   drivers/scsi/qla2xxx/qla_os.c:6017:64: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6024:51: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6024:51: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6024:51: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6025:51: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6025:51: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6025:51: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6035:53: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6035:53: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6035:53: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6036:53: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6036:53: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6036:53: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6045:20: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qla2xxx/qla_os.c:6053:66: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6053:66: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6053:66: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6055:66: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6055:66: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6055:66: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:6058:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] fcport_b2b @@    got restrunsigned int [usertype] fcport_b2b @@
   drivers/scsi/qla2xxx/qla_os.c:6058:68: sparse:    expected unsigned int [usertype] fcport_b2b
   drivers/scsi/qla2xxx/qla_os.c:6058:68: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:6060:77: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] attached_fcport_b2b @@    got restrunsigned int [usertype] attached_fcport_b2b @@
   drivers/scsi/qla2xxx/qla_os.c:6060:77: sparse:    expected unsigned int [usertype] attached_fcport_b2b
   drivers/scsi/qla2xxx/qla_os.c:6060:77: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:6062:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] fcport_rtt @@    got restrunsigned int [usertype] fcport_rtt @@
   drivers/scsi/qla2xxx/qla_os.c:6062:68: sparse:    expected unsigned int [usertype] fcport_rtt
   drivers/scsi/qla2xxx/qla_os.c:6062:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6074:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6074:68: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6074:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6076:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6076:68: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6076:68: sparse:    got restricted __be32 [usertype]
>> drivers/scsi/qla2xxx/qla_os.c:6083:73: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] element_flags @@    got restrunsigned int [usertype] element_flags @@
   drivers/scsi/qla2xxx/qla_os.c:6083:73: sparse:    expected unsigned int [usertype] element_flags
   drivers/scsi/qla2xxx/qla_os.c:6083:73: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6087:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6087:68: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6087:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6089:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6089:68: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6089:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6096:73: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] element_flags @@    got restrunsigned int [usertype] element_flags @@
   drivers/scsi/qla2xxx/qla_os.c:6096:73: sparse:    expected unsigned int [usertype] element_flags
   drivers/scsi/qla2xxx/qla_os.c:6096:73: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6100:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6100:68: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6100:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6102:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6102:68: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6102:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6109:73: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] element_flags @@    got restrunsigned int [usertype] element_flags @@
   drivers/scsi/qla2xxx/qla_os.c:6109:73: sparse:    expected unsigned int [usertype] element_flags
   drivers/scsi/qla2xxx/qla_os.c:6109:73: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6113:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6113:68: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6113:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6115:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6115:68: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6115:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6122:73: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] element_flags @@    got restrunsigned int [usertype] element_flags @@
   drivers/scsi/qla2xxx/qla_os.c:6122:73: sparse:    expected unsigned int [usertype] element_flags
   drivers/scsi/qla2xxx/qla_os.c:6122:73: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6126:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_tag @@    got restrunsigned int [usertype] desc_tag @@
   drivers/scsi/qla2xxx/qla_os.c:6126:68: sparse:    expected unsigned int [usertype] desc_tag
   drivers/scsi/qla2xxx/qla_os.c:6126:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6128:68: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] desc_len @@    got restrunsigned int [usertype] desc_len @@
   drivers/scsi/qla2xxx/qla_os.c:6128:68: sparse:    expected unsigned int [usertype] desc_len
   drivers/scsi/qla2xxx/qla_os.c:6128:68: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6135:73: sparse: sparse: incorrect type in assignment (different base types) @@    expected unsigned int [usertype] element_flags @@    got restrunsigned int [usertype] element_flags @@
   drivers/scsi/qla2xxx/qla_os.c:6135:73: sparse:    expected unsigned int [usertype] element_flags
   drivers/scsi/qla2xxx/qla_os.c:6135:73: sparse:    got restricted __be32 [usertype]
   drivers/scsi/qla2xxx/qla_os.c:6143:73: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_os.c:6143:73: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_os.c:6143:73: sparse:    right side has type restricted __be32
   drivers/scsi/qla2xxx/qla_os.c:6151:73: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_os.c:6151:73: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_os.c:6151:73: sparse:    right side has type restricted __be32
   drivers/scsi/qla2xxx/qla_os.c:6159:73: sparse: sparse: invalid assignment: |=
   drivers/scsi/qla2xxx/qla_os.c:6159:73: sparse:    left side has type unsigned int
   drivers/scsi/qla2xxx/qla_os.c:6159:73: sparse:    right side has type restricted __be32
   drivers/scsi/qla2xxx/qla_os.c:6167:73: sparse: sparse: too many warnings

vim +5929 drivers/scsi/qla2xxx/qla_os.c

  5815	
  5816	/*
  5817	 * Function Name: qla24xx_process_purex_iocb
  5818	 *
  5819	 * Description:
  5820	 * Prepare a RDP response and send to Fabric switch
  5821	 *
  5822	 * PARAMETERS:
  5823	 * vha:	SCSI qla host
  5824	 * purex: RDP request received by HBA
  5825	 */
  5826	static int qla24xx_process_purex_iocb(struct scsi_qla_host *vha, void *pkt)
  5827	{
  5828		struct qla_hw_data *ha = vha->hw;
  5829		struct purex_entry_24xx *purex = pkt;
  5830		struct port_database_24xx *pdb = NULL;
  5831		dma_addr_t rsp_els_dma;
  5832		dma_addr_t rsp_payload_dma;
  5833		dma_addr_t stat_dma;
  5834		dma_addr_t bbc_dma;
  5835		dma_addr_t sfp_dma;
  5836		struct els_entry_24xx *rsp_els = NULL;
  5837		struct rdp_rsp_payload *rsp_payload = NULL;
  5838		struct link_statistics *stat = NULL;
  5839		struct buffer_credit_24xx *bbc = NULL;
  5840		uint8_t *sfp = NULL;
  5841		uint16_t sfp_flags = 0;
  5842		int rval = -ENOMEM;
  5843	
  5844		ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0180,
  5845		    "%s: Enter\n", __func__);
  5846	
  5847		ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0181,
  5848		    "-------- ELS REQ -------\n");
  5849		ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x0182,
  5850		    (void *)purex, sizeof(*purex));
  5851	
  5852		rsp_els = dma_alloc_coherent(&ha->pdev->dev, sizeof(*rsp_els),
  5853		    &rsp_els_dma, GFP_KERNEL);
  5854		if (!rsp_els)
  5855			goto dealloc;
  5856	
  5857		rsp_payload = dma_alloc_coherent(&ha->pdev->dev, sizeof(*rsp_payload),
  5858		    &rsp_payload_dma, GFP_KERNEL);
  5859		if (!rsp_payload)
  5860			goto dealloc;
  5861	
  5862		sfp = dma_alloc_coherent(&ha->pdev->dev, SFP_RTDI_LEN,
  5863		    &sfp_dma, GFP_KERNEL);
  5864	
  5865		stat = dma_alloc_coherent(&ha->pdev->dev, sizeof(*stat),
  5866		    &stat_dma, GFP_KERNEL);
  5867	
  5868		bbc = dma_alloc_coherent(&ha->pdev->dev, sizeof(*bbc),
  5869		    &bbc_dma, GFP_KERNEL);
  5870	
  5871		/* Prepare Response IOCB */
  5872		memset(rsp_els, 0, sizeof(*rsp_els));
  5873		rsp_els->entry_type = ELS_IOCB_TYPE;
  5874		rsp_els->entry_count = 1;
  5875		rsp_els->sys_define = 0;
  5876		rsp_els->entry_status = 0;
  5877		rsp_els->handle = 0;
  5878		rsp_els->nport_handle = purex->nport_handle;
  5879		rsp_els->tx_dsd_count = 1;
  5880		rsp_els->vp_index = purex->vp_idx;
  5881		rsp_els->sof_type = EST_SOFI3;
  5882		rsp_els->rx_xchg_address = purex->rx_xchg_addr;
  5883		rsp_els->rx_dsd_count = 0;
  5884		rsp_els->opcode = purex->els_frame_payload[0];
  5885	
  5886		rsp_els->port_id[0] = purex->s_id[0];
  5887		rsp_els->port_id[1] = purex->s_id[1];
  5888		rsp_els->port_id[2] = purex->s_id[2];
  5889	
  5890		rsp_els->control_flags = EPD_ELS_ACC;
  5891		rsp_els->rx_byte_count = 0;
  5892		rsp_els->tx_byte_count = cpu_to_le32(sizeof(*rsp_payload));
  5893	
  5894		put_unaligned_le64(rsp_payload_dma, &rsp_els->tx_address);
  5895		rsp_els->tx_len = rsp_els->tx_byte_count;
  5896	
  5897		rsp_els->rx_address = 0;
  5898		rsp_els->rx_len = 0;
  5899	
  5900		if (sizeof(*rsp_payload) <= 0x100)
  5901			goto accept;
  5902	
  5903		pdb = kzalloc(sizeof(*pdb), GFP_KERNEL);
  5904		if (!pdb)
  5905			goto reduce;
  5906	
  5907		rval = qla24xx_get_port_database(vha, purex->nport_handle, pdb);
  5908		if (rval)
  5909			goto reduce;
  5910	
  5911		if (pdb->port_id[0] != purex->s_id[2] ||
  5912		    pdb->port_id[1] != purex->s_id[1] ||
  5913		    pdb->port_id[2] != purex->s_id[0])
  5914			goto reduce;
  5915	
  5916		if (pdb->current_login_state == PDS_PLOGI_COMPLETE ||
  5917		    pdb->current_login_state == PDS_PRLI_COMPLETE)
  5918			goto accept;
  5919	
  5920	reduce:
  5921		ql_dbg(ql_dbg_init, vha, 0x016e, "Requesting port is not logged in.\n");
  5922		rsp_els->tx_byte_count = rsp_els->tx_len =
  5923		    offsetof(struct rdp_rsp_payload, buffer_credit_desc);
  5924		ql_dbg(ql_dbg_init, vha, 0x016f, "Reduced response payload size %u.\n",
  5925		    rsp_els->tx_byte_count);
  5926	
  5927	accept:
  5928		/* Prepare Response Payload */
> 5929		rsp_payload->hdr.cmd = cpu_to_be32(0x2 << 24); /* LS_ACC */
> 5930		rsp_payload->hdr.len = cpu_to_be32(
  5931		    rsp_els->tx_byte_count - sizeof(rsp_payload->hdr));
  5932	
  5933		/* Link service Request Info Descriptor */
> 5934		rsp_payload->ls_req_info_desc.desc_tag = cpu_to_be32(0x1);
> 5935		rsp_payload->ls_req_info_desc.desc_len =
  5936		    cpu_to_be32(RDP_DESC_LEN(rsp_payload->ls_req_info_desc));
> 5937		rsp_payload->ls_req_info_desc.req_payload_word_0 =
  5938		    cpu_to_be32p((uint32_t *)purex->els_frame_payload);
  5939	
  5940		/* Link service Request Info Descriptor 2 */
  5941		rsp_payload->ls_req_info_desc2.desc_tag = cpu_to_be32(0x1);
  5942		rsp_payload->ls_req_info_desc2.desc_len =
  5943		    cpu_to_be32(RDP_DESC_LEN(rsp_payload->ls_req_info_desc2));
> 5944		rsp_payload->ls_req_info_desc2.req_payload_word_0 =
  5945		    cpu_to_be32p((uint32_t *)purex->els_frame_payload);
  5946	
  5947		if (sfp) {
  5948			/* SFP Flags */
  5949			memset(sfp, 0, SFP_RTDI_LEN);
  5950			rval = qla2x00_read_sfp(vha, sfp_dma, sfp, 0xa0, 0x7, 2, 0);
  5951			if (!rval) {
  5952				/* SFP Flags bits 3-0: Port Tx Laser Type */
  5953				if (sfp[0] & BIT_2 || sfp[1] & (BIT_6|BIT_5))
  5954					sfp_flags |= BIT_0; /* short wave */
  5955				else if (sfp[0] & BIT_1)
  5956					sfp_flags |= BIT_1; /* long wave 1310nm */
  5957				else if (sfp[1] & BIT_4)
  5958					sfp_flags |= BIT_1|BIT_0; /* long wave 1550nm */
  5959			}
  5960	
  5961			/* SFP Type */
  5962			memset(sfp, 0, SFP_RTDI_LEN);
  5963			rval = qla2x00_read_sfp(vha, sfp_dma, sfp, 0xa0, 0x0, 1, 0);
  5964			if (!rval) {
  5965				sfp_flags |= BIT_4; /* optical */
  5966				if (sfp[0] == 0x3)
  5967					sfp_flags |= BIT_6; /* sfp+ */
  5968			}
  5969	
  5970			/* SFP Diagnostics */
  5971			memset(sfp, 0, SFP_RTDI_LEN);
  5972			rval = qla2x00_read_sfp(vha, sfp_dma, sfp, 0xa2, 0x60, 10, 0);
  5973			if (!rval && sfp_flags) {
  5974				uint16_t *trx = (void *)sfp; /* already be16 */
  5975	
  5976				rsp_payload->sfp_diag_desc.desc_tag =
  5977				    cpu_to_be32(0x10000);
  5978				rsp_payload->sfp_diag_desc.desc_len =
  5979				    cpu_to_be32(RDP_DESC_LEN(rsp_payload->sfp_diag_desc));
  5980				rsp_payload->sfp_diag_desc.temperature = trx[0];
  5981				rsp_payload->sfp_diag_desc.vcc = trx[1];
  5982				rsp_payload->sfp_diag_desc.tx_bias = trx[2];
  5983				rsp_payload->sfp_diag_desc.tx_power = trx[3];
  5984				rsp_payload->sfp_diag_desc.rx_power = trx[4];
> 5985				rsp_payload->sfp_diag_desc.sfp_flags =
  5986				    cpu_to_be16(sfp_flags);
  5987			}
  5988		}
  5989	
  5990		/* Port Speed Descriptor */
> 5991		rsp_payload->port_speed_desc.desc_tag = cpu_to_be32(0x10001);
  5992		rsp_payload->port_speed_desc.desc_len =
  5993		    cpu_to_be32(RDP_DESC_LEN(rsp_payload->port_speed_desc));
> 5994		rsp_payload->port_speed_desc.speed_capab = cpu_to_be16(
  5995		    qla25xx_rdp_port_speed_capability(ha));
> 5996		rsp_payload->port_speed_desc.operating_speed = cpu_to_be16(
  5997		    qla25xx_rdp_port_speed_currently(ha));
  5998	
  5999		if (stat) {
  6000			rval = qla24xx_get_isp_stats(vha, stat, stat_dma, 0);
  6001			if (!rval) {
  6002				/* Link Error Status Descriptor */
  6003				rsp_payload->ls_err_desc.desc_tag =
  6004				    cpu_to_be32(0x10002);
> 6005				rsp_payload->ls_err_desc.desc_len =
  6006				    cpu_to_be32(RDP_DESC_LEN(rsp_payload->ls_err_desc));
> 6007				rsp_payload->ls_err_desc.link_fail_cnt =
> 6008				    cpu_to_be32(stat->link_fail_cnt);
> 6009				rsp_payload->ls_err_desc.loss_sync_cnt =
  6010				    cpu_to_be32(stat->loss_sync_cnt);
> 6011				rsp_payload->ls_err_desc.loss_sig_cnt =
  6012				    cpu_to_be32(stat->loss_sig_cnt);
> 6013				rsp_payload->ls_err_desc.prim_seq_err_cnt =
  6014				    cpu_to_be32(stat->prim_seq_err_cnt);
> 6015				rsp_payload->ls_err_desc.inval_xmit_word_cnt =
  6016				    cpu_to_be32(stat->inval_xmit_word_cnt);
> 6017				rsp_payload->ls_err_desc.inval_crc_cnt =
  6018				    cpu_to_be32(stat->inval_crc_cnt);
  6019				rsp_payload->ls_err_desc.pn_port_phy_type |= BIT_6;
  6020			}
  6021		}
  6022	
  6023		/* Portname Descriptor */
  6024		rsp_payload->port_name_diag_desc.desc_tag = cpu_to_be32(0x10003);
  6025		rsp_payload->port_name_diag_desc.desc_len =
  6026		    cpu_to_be32(RDP_DESC_LEN(rsp_payload->port_name_diag_desc));
  6027		memcpy(rsp_payload->port_name_diag_desc.WWNN,
  6028		    vha->node_name,
  6029		    sizeof(rsp_payload->port_name_diag_desc.WWNN));
  6030		memcpy(rsp_payload->port_name_diag_desc.WWPN,
  6031		    vha->port_name,
  6032		    sizeof(rsp_payload->port_name_diag_desc.WWPN));
  6033	
  6034		/* F-Port Portname Descriptor */
  6035		rsp_payload->port_name_direct_desc.desc_tag = cpu_to_be32(0x10003);
> 6036		rsp_payload->port_name_direct_desc.desc_len =
  6037		    cpu_to_be32(RDP_DESC_LEN(rsp_payload->port_name_direct_desc));
  6038		memcpy(rsp_payload->port_name_direct_desc.WWNN,
  6039		    vha->fabric_node_name,
  6040		    sizeof(rsp_payload->port_name_direct_desc.WWNN));
  6041		memcpy(rsp_payload->port_name_direct_desc.WWPN,
  6042		    vha->fabric_port_name,
  6043		    sizeof(rsp_payload->port_name_direct_desc.WWPN));
  6044	
  6045		if (rsp_els->tx_byte_count < sizeof(*rsp_payload))
  6046			goto send;
  6047	
  6048		if (bbc) {
  6049			memset(bbc, 0, sizeof(*bbc));
  6050			rval = qla24xx_get_buffer_credits(vha, bbc, bbc_dma);
  6051			if (!rval) {
  6052				/* Bufer Credit Descriptor */
> 6053				rsp_payload->buffer_credit_desc.desc_tag =
  6054				    cpu_to_be32(0x10006);
> 6055				rsp_payload->buffer_credit_desc.desc_len =
  6056				    cpu_to_be32(RDP_DESC_LEN(
  6057					rsp_payload->buffer_credit_desc));
> 6058				rsp_payload->buffer_credit_desc.fcport_b2b =
  6059				    cpu_to_be32(LSW(bbc->parameter[0]));
> 6060				rsp_payload->buffer_credit_desc.attached_fcport_b2b =
  6061				    cpu_to_be32(0);
> 6062				rsp_payload->buffer_credit_desc.fcport_rtt =
  6063				    cpu_to_be32(0);
  6064			}
  6065		}
  6066	
  6067		if (sfp) {
  6068			memset(sfp, 0, SFP_RTDI_LEN);
  6069			rval = qla2x00_read_sfp(vha, sfp_dma, sfp, 0xa2, 0, 64, 0);
  6070			if (!rval) {
  6071				uint16_t *trx = (void *)sfp; /* already be16 */
  6072	
  6073				/* Optical Element Descriptor, Temperature */
  6074				rsp_payload->optical_elmt_desc[0].desc_tag =
  6075				    cpu_to_be32(0x10007);
  6076				rsp_payload->optical_elmt_desc[0].desc_len =
  6077				    cpu_to_be32(RDP_DESC_LEN(
  6078					*rsp_payload->optical_elmt_desc));
  6079				rsp_payload->optical_elmt_desc[0].high_alarm = trx[0];
  6080				rsp_payload->optical_elmt_desc[0].low_alarm = trx[1];
  6081				rsp_payload->optical_elmt_desc[0].high_warn = trx[2];
  6082				rsp_payload->optical_elmt_desc[0].low_warn = trx[3];
> 6083				rsp_payload->optical_elmt_desc[0].element_flags =
  6084				    cpu_to_be32(1 << 28);
  6085	
  6086				/* Optical Element Descriptor, Voltage */
  6087				rsp_payload->optical_elmt_desc[1].desc_tag =
  6088				    cpu_to_be32(0x10007);
  6089				rsp_payload->optical_elmt_desc[1].desc_len =
  6090				    cpu_to_be32(RDP_DESC_LEN(
  6091					*rsp_payload->optical_elmt_desc));
  6092				rsp_payload->optical_elmt_desc[1].high_alarm = trx[4];
  6093				rsp_payload->optical_elmt_desc[1].low_alarm = trx[5];
  6094				rsp_payload->optical_elmt_desc[1].high_warn = trx[6];
  6095				rsp_payload->optical_elmt_desc[1].low_warn = trx[7];
  6096				rsp_payload->optical_elmt_desc[1].element_flags =
  6097				    cpu_to_be32(2 << 28);
  6098	
  6099				/* Optical Element Descriptor, Tx Bias Current */
  6100				rsp_payload->optical_elmt_desc[2].desc_tag =
  6101				    cpu_to_be32(0x10007);
  6102				rsp_payload->optical_elmt_desc[2].desc_len =
  6103				    cpu_to_be32(RDP_DESC_LEN(
  6104					*rsp_payload->optical_elmt_desc));
  6105				rsp_payload->optical_elmt_desc[2].high_alarm = trx[8];
  6106				rsp_payload->optical_elmt_desc[2].low_alarm = trx[9];
  6107				rsp_payload->optical_elmt_desc[2].high_warn = trx[10];
  6108				rsp_payload->optical_elmt_desc[2].low_warn = trx[11];
  6109				rsp_payload->optical_elmt_desc[2].element_flags =
  6110				    cpu_to_be32(3 << 28);
  6111	
  6112				/* Optical Element Descriptor, Tx Power */
  6113				rsp_payload->optical_elmt_desc[3].desc_tag =
  6114				    cpu_to_be32(0x10007);
  6115				rsp_payload->optical_elmt_desc[3].desc_len =
  6116				    cpu_to_be32(RDP_DESC_LEN(
  6117					*rsp_payload->optical_elmt_desc));
  6118				rsp_payload->optical_elmt_desc[3].high_alarm = trx[12];
  6119				rsp_payload->optical_elmt_desc[3].low_alarm = trx[13];
  6120				rsp_payload->optical_elmt_desc[3].high_warn = trx[14];
  6121				rsp_payload->optical_elmt_desc[3].low_warn = trx[15];
  6122				rsp_payload->optical_elmt_desc[3].element_flags =
  6123				    cpu_to_be32(4 << 28);
  6124	
  6125				/* Optical Element Descriptor, Rx Power */
  6126				rsp_payload->optical_elmt_desc[4].desc_tag =
  6127				    cpu_to_be32(0x10007);
  6128				rsp_payload->optical_elmt_desc[4].desc_len =
  6129				    cpu_to_be32(RDP_DESC_LEN(
  6130					*rsp_payload->optical_elmt_desc));
  6131				rsp_payload->optical_elmt_desc[4].high_alarm = trx[16];
  6132				rsp_payload->optical_elmt_desc[4].low_alarm = trx[17];
  6133				rsp_payload->optical_elmt_desc[4].high_warn = trx[18];
  6134				rsp_payload->optical_elmt_desc[4].low_warn = trx[19];
  6135				rsp_payload->optical_elmt_desc[4].element_flags =
  6136				    cpu_to_be32(5 << 28);
  6137			}
  6138	
  6139			memset(sfp, 0, SFP_RTDI_LEN);
  6140			rval = qla2x00_read_sfp(vha, sfp_dma, sfp, 0xa2, 112, 64, 0);
  6141			if (!rval) {
  6142				/* Temperature high/low alarm/warning */
  6143				rsp_payload->optical_elmt_desc[0].element_flags |=
  6144				    cpu_to_be32(
  6145					(sfp[0] >> 7 & 1) << 3 |
  6146					(sfp[0] >> 6 & 1) << 2 |
  6147					(sfp[4] >> 7 & 1) << 1 |
  6148					(sfp[4] >> 6 & 1) << 0);
  6149	
  6150				/* Voltage high/low alarm/warning */
  6151				rsp_payload->optical_elmt_desc[1].element_flags |=
  6152				    cpu_to_be32(
  6153					(sfp[0] >> 5 & 1) << 3 |
  6154					(sfp[0] >> 4 & 1) << 2 |
  6155					(sfp[4] >> 5 & 1) << 1 |
  6156					(sfp[4] >> 4 & 1) << 0);
  6157	
  6158				/* Tx Bias Current high/low alarm/warning */
  6159				rsp_payload->optical_elmt_desc[2].element_flags |=
  6160				    cpu_to_be32(
  6161					(sfp[0] >> 3 & 1) << 3 |
  6162					(sfp[0] >> 2 & 1) << 2 |
  6163					(sfp[4] >> 3 & 1) << 1 |
  6164					(sfp[4] >> 2 & 1) << 0);
  6165	
  6166				/* Tx Power high/low alarm/warning */
  6167				rsp_payload->optical_elmt_desc[3].element_flags |=
  6168				    cpu_to_be32(
  6169					(sfp[0] >> 1 & 1) << 3 |
  6170					(sfp[0] >> 0 & 1) << 2 |
  6171					(sfp[4] >> 1 & 1) << 1 |
  6172					(sfp[4] >> 0 & 1) << 0);
  6173	
  6174				/* Rx Power high/low alarm/warning */
  6175				rsp_payload->optical_elmt_desc[4].element_flags |=
  6176				    cpu_to_be32(
  6177					(sfp[1] >> 7 & 1) << 3 |
  6178					(sfp[1] >> 6 & 1) << 2 |
  6179					(sfp[5] >> 7 & 1) << 1 |
  6180					(sfp[5] >> 6 & 1) << 0);
  6181			}
  6182		}
  6183	
  6184		if (sfp) {
  6185			memset(sfp, 0, SFP_RTDI_LEN);
  6186			rval = qla2x00_read_sfp(vha, sfp_dma, sfp, 0xa0, 20, 64, 0);
  6187			if (!rval) {
  6188				/* Optical Product Data Descriptor */
  6189				rsp_payload->optical_prod_desc.desc_tag =
  6190				    cpu_to_be32(0x10008);
  6191				rsp_payload->optical_prod_desc.desc_len =
  6192				    cpu_to_be32(RDP_DESC_LEN(
  6193					rsp_payload->optical_prod_desc));
  6194				memcpy(rsp_payload->optical_prod_desc.vendor_name,
  6195				    sfp + 0,
  6196				    sizeof(rsp_payload->optical_prod_desc.vendor_name));
  6197				memcpy(rsp_payload->optical_prod_desc.part_number,
  6198				    sfp + 20,
  6199				    sizeof(rsp_payload->optical_prod_desc.part_number));
  6200				memcpy(rsp_payload->optical_prod_desc.revision,
  6201				    sfp + 36,
  6202				    sizeof(rsp_payload->optical_prod_desc.revision));
  6203				memcpy(rsp_payload->optical_prod_desc.serial_number,
  6204				    sfp + 48,
  6205				    sizeof(rsp_payload->optical_prod_desc.serial_number));
  6206			}
  6207	
  6208			memset(sfp, 0, SFP_RTDI_LEN);
  6209			rval = qla2x00_read_sfp(vha, sfp_dma, sfp, 0xa0, 84, 8, 0);
  6210			if (!rval) {
  6211				memcpy(rsp_payload->optical_prod_desc.date,
  6212				    sfp + 0,
  6213				    sizeof(rsp_payload->optical_prod_desc.date));
  6214			}
  6215		}
  6216	
  6217	send:
  6218		ql_dbg(ql_dbg_init, vha, 0x0183,
  6219		    "Sending ELS Response to RDP Request...\n");
  6220		ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0184,
  6221		    "-------- ELS RSP -------\n");
  6222		ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x0185,
  6223		    (void *)rsp_els, sizeof(*rsp_els));
  6224		ql_dbg(ql_dbg_init + ql_dbg_verbose, vha, 0x0186,
  6225		    "-------- ELS RSP PAYLOAD -------\n");
  6226		ql_dump_buffer(ql_dbg_init + ql_dbg_verbose, vha, 0x0187,
  6227		    (void *)rsp_payload, rsp_els->tx_byte_count);
  6228	
  6229		rval = qla2x00_issue_iocb(vha, rsp_els, rsp_els_dma, 0);
  6230	
  6231		if (rval != QLA_SUCCESS) {
  6232			ql_log(ql_log_warn, vha, 0x0188,
  6233			    "%s: failed to issue IOCB (%x).\n", __func__, rval);
  6234		} else if (rsp_els->entry_status != 0) {
  6235			ql_log(ql_log_warn, vha, 0x0189,
  6236			    "%s: failed to complete IOCB -- error status (%x).\n",
  6237			    __func__, rsp_els->entry_status);
  6238			rval = QLA_FUNCTION_FAILED;
  6239		} else {
  6240			ql_dbg(ql_dbg_init, vha, 0x018a, "%s: done.\n", __func__);
  6241		}
  6242	
  6243	dealloc:
  6244		kfree(pdb);
  6245	
  6246		if (bbc)
  6247			dma_free_coherent(&ha->pdev->dev, sizeof(*bbc),
  6248			    bbc, bbc_dma);
  6249		if (stat)
  6250			dma_free_coherent(&ha->pdev->dev, sizeof(*stat),
  6251			    stat, stat_dma);
  6252		if (sfp)
  6253			dma_free_coherent(&ha->pdev->dev, SFP_RTDI_LEN,
  6254			    sfp, sfp_dma);
  6255		if (rsp_payload)
  6256			dma_free_coherent(&ha->pdev->dev, sizeof(*rsp_payload),
  6257			    rsp_payload, rsp_payload_dma);
  6258		if (rsp_els)
  6259			dma_free_coherent(&ha->pdev->dev, sizeof(*rsp_els),
  6260			    rsp_els, rsp_els_dma);
  6261	
  6262		return rval;
  6263	}
  6264	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux