All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Chaitra P B <chaitra.basappa@broadcom.com>
Cc: kbuild-all@01.org, linux-scsi@vger.kernel.org,
	stable@vger.kernel.org, Bart.VanAssche@wdc.com,
	Sathya.Prakash@broadcom.com,
	suganath-prabu.subramani@broadcom.com,
	Chaitra P B <chaitra.basappa@broadcom.com>
Subject: Re: [PATCH] mpt3sas: Cache enclosure pages during enclosure add.
Date: Wed, 21 Mar 2018 05:06:52 +0800	[thread overview]
Message-ID: <201803210419.5Ewwdskh%fengguang.wu@intel.com> (raw)
In-Reply-To: <1521540956-42347-1-git-send-email-chaitra.basappa@broadcom.com>

Hi Chaitra,

I love your patch! Perhaps something to improve:

[auto build test WARNING on v4.16-rc4]
[also build test WARNING on next-20180320]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Chaitra-P-B/mpt3sas-Cache-enclosure-pages-during-enclosure-add/20180320-220411
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:6100:63: sparse: incorrect type in argument 2 (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got restriunsigned short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6100:63:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6100:63:    got restricted __le16 [addressable] [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6907:13: sparse: cast to restricted __le16
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6907:13: sparse: cast from restricted __le32
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:160:22: sparse: symbol 'mpt3sas_raid_template' was not declared. Should it be static?
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:161:22: sparse: symbol 'mpt2sas_raid_template' was not declared. Should it be static?
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:1373:24: sparse: symbol 'mpt3sas_scsih_enclosure_find_by_handle' was not declared. Should it be static?
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3749:36: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3749:36:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3749:36:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3942:9: sparse: cast to restricted __le16
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3949:28: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [usertype] Event @@    got unsignedrestricted __le16 [usertype] Event @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3949:28:    expected restricted __le16 [usertype] Event
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3949:28:    got unsigned short [unsigned] [usertype] event
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3950:35: sparse: incorrect type in assignment (different base types) @@    expected restricted __le32 [usertype] EventContext @@    got unsignrestricted __le32 [usertype] EventContext @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3950:35:    expected restricted __le32 [usertype] EventContext
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3950:35:    got unsigned int [unsigned] [usertype] event_context
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4001:9: sparse: cast to restricted __le16
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4009:32: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [usertype] DevHandle @@    got unsignedrestricted __le16 [usertype] DevHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4009:32:    expected restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4009:32:    got unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4531:61: sparse: incorrect type in assignment (different base types) @@    expected restricted __le32 [usertype] PrimaryReferenceTag @@    got restricted __le32 [usertype] PrimaryReferenceTag @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4531:61:    expected restricted __le32 [usertype] PrimaryReferenceTag
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4531:61:    got restricted __be32 [usertype] <noident>
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:7324:37: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [usertype] EnclosureHandle @@    got unsignedrestricted __le16 [usertype] EnclosureHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7324:37:    expected restricted __le16 [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7324:37:    got unsigned short [unsigned] [usertype] <noident>
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:7329:59: sparse: incorrect type in argument 2 (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7329:59:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7329:59:    got restricted __le16 [usertype] EnclosureHandle
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:7345:43: sparse: incorrect type in argument 5 (different base types) @@    expected unsigned int [unsigned] [usertype] handle @@    got ed int [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7345:43:    expected unsigned int [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7345:43:    got restricted __le16 [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8408:55: sparse: incorrect type in argument 2 (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8408:55:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8408:55:    got restricted __le16 [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8416:63: sparse: restricted __le64 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8417:60: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8441:43: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8466:65: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8470:44: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8470:44:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8470:44:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8472:62: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8472:62:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8472:62:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8558:51: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] DevHandle @@    got cted __le16 [addressable] [usertype] DevHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8558:51:    expected restricted __le16 [addressable] [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8558:51:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8563:43: sparse: incorrect type in assignment (different base types) @@    expected restricted __le64 [addressable] [usertype] SASAddress @@    got stricted __le64 [addressable] [usertype] SASAddress @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8563:43:    expected restricted __le64 [addressable] [usertype] SASAddress
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8563:43:    got unsigned long long [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8565:37: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] Slot @@    got cted __le16 [addressable] [usertype] Slot @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8565:37:    expected restricted __le16 [addressable] [usertype] Slot
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8565:37:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8566:38: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] Flags @@    got cted __le16 [addressable] [usertype] Flags @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8566:38:    expected restricted __le16 [addressable] [usertype] Flags
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8566:38:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8596:58: sparse: restricted __le64 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8597:58: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8632:67: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8636:45: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8636:45:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8636:45:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8638:62: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8638:62:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8638:62:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8688:38: sparse: incorrect type in assignment (different base types) @@    expected restricted __le64 [addressable] [usertype] WWID @@    got stricted __le64 [addressable] [usertype] WWID @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8688:38:    expected restricted __le64 [addressable] [usertype] WWID
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8688:38:    got unsigned long long [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8689:38: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] Slot @@    got cted __le16 [addressable] [usertype] Slot @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8689:38:    expected restricted __le16 [addressable] [usertype] Slot
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8689:38:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8690:39: sparse: incorrect type in assignment (different base types) @@    expected restricted __le32 [addressable] [usertype] Flags @@    got ed __le32 [addressable] [usertype] Flags @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8690:39:    expected restricted __le32 [addressable] [usertype] Flags
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8690:39:    got unsigned int [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8691:43: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] DevHandle @@    got unsigrestricted __le16 [addressable] [usertype] DevHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8691:43:    expected restricted __le16 [addressable] [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8691:43:    got unsigned short [unsigned] [assigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:9610:25: sparse: cast to restricted __le32

Please review and possibly fold the followup patch.

vim +6100 drivers/scsi/mpt3sas/mpt3sas_scsih.c

f92363d12 Sreekanth Reddy          2012-11-30  6030  
f92363d12 Sreekanth Reddy          2012-11-30  6031  /**
f92363d12 Sreekanth Reddy          2012-11-30  6032   * _scsih_add_device -  creating sas device object
f92363d12 Sreekanth Reddy          2012-11-30  6033   * @ioc: per adapter object
f92363d12 Sreekanth Reddy          2012-11-30  6034   * @handle: sas device handle
f92363d12 Sreekanth Reddy          2012-11-30  6035   * @phy_num: phy number end device attached to
f92363d12 Sreekanth Reddy          2012-11-30  6036   * @is_pd: is this hidden raid component
f92363d12 Sreekanth Reddy          2012-11-30  6037   *
f92363d12 Sreekanth Reddy          2012-11-30  6038   * Creating end device object, stored in ioc->sas_device_list.
f92363d12 Sreekanth Reddy          2012-11-30  6039   *
f92363d12 Sreekanth Reddy          2012-11-30  6040   * Returns 0 for success, non-zero for failure.
f92363d12 Sreekanth Reddy          2012-11-30  6041   */
f92363d12 Sreekanth Reddy          2012-11-30  6042  static int
f92363d12 Sreekanth Reddy          2012-11-30  6043  _scsih_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 phy_num,
f92363d12 Sreekanth Reddy          2012-11-30  6044  	u8 is_pd)
f92363d12 Sreekanth Reddy          2012-11-30  6045  {
f92363d12 Sreekanth Reddy          2012-11-30  6046  	Mpi2ConfigReply_t mpi_reply;
f92363d12 Sreekanth Reddy          2012-11-30  6047  	Mpi2SasDevicePage0_t sas_device_pg0;
f92363d12 Sreekanth Reddy          2012-11-30  6048  	struct _sas_device *sas_device;
793a6223b Chaitra P B              2018-03-20  6049  	struct _enclosure_node *enclosure_dev = NULL;
f92363d12 Sreekanth Reddy          2012-11-30  6050  	u32 ioc_status;
f92363d12 Sreekanth Reddy          2012-11-30  6051  	u64 sas_address;
f92363d12 Sreekanth Reddy          2012-11-30  6052  	u32 device_info;
f92363d12 Sreekanth Reddy          2012-11-30  6053  
f92363d12 Sreekanth Reddy          2012-11-30  6054  	if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
f92363d12 Sreekanth Reddy          2012-11-30  6055  	    MPI2_SAS_DEVICE_PGAD_FORM_HANDLE, handle))) {
f92363d12 Sreekanth Reddy          2012-11-30  6056  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6057  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6058  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6059  	}
f92363d12 Sreekanth Reddy          2012-11-30  6060  
f92363d12 Sreekanth Reddy          2012-11-30  6061  	ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
f92363d12 Sreekanth Reddy          2012-11-30  6062  	    MPI2_IOCSTATUS_MASK;
f92363d12 Sreekanth Reddy          2012-11-30  6063  	if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
f92363d12 Sreekanth Reddy          2012-11-30  6064  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6065  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6066  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6067  	}
f92363d12 Sreekanth Reddy          2012-11-30  6068  
f92363d12 Sreekanth Reddy          2012-11-30  6069  	/* check if this is end device */
f92363d12 Sreekanth Reddy          2012-11-30  6070  	device_info = le32_to_cpu(sas_device_pg0.DeviceInfo);
f92363d12 Sreekanth Reddy          2012-11-30  6071  	if (!(_scsih_is_end_device(device_info)))
f92363d12 Sreekanth Reddy          2012-11-30  6072  		return -1;
c696f7b83 Suganath Prabu Subramani 2016-10-26  6073  	set_bit(handle, ioc->pend_os_device_add);
f92363d12 Sreekanth Reddy          2012-11-30  6074  	sas_address = le64_to_cpu(sas_device_pg0.SASAddress);
f92363d12 Sreekanth Reddy          2012-11-30  6075  
f92363d12 Sreekanth Reddy          2012-11-30  6076  	/* check if device is present */
f92363d12 Sreekanth Reddy          2012-11-30  6077  	if (!(le16_to_cpu(sas_device_pg0.Flags) &
f92363d12 Sreekanth Reddy          2012-11-30  6078  	    MPI2_SAS_DEVICE0_FLAGS_DEVICE_PRESENT)) {
f92363d12 Sreekanth Reddy          2012-11-30  6079  		pr_err(MPT3SAS_FMT "device is not present handle(0x04%x)!!!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6080  			ioc->name, handle);
f92363d12 Sreekanth Reddy          2012-11-30  6081  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6082  	}
f92363d12 Sreekanth Reddy          2012-11-30  6083  
f92363d12 Sreekanth Reddy          2012-11-30  6084  	/* check if there were any issues with discovery */
f92363d12 Sreekanth Reddy          2012-11-30  6085  	if (_scsih_check_access_status(ioc, sas_address, handle,
f92363d12 Sreekanth Reddy          2012-11-30  6086  	    sas_device_pg0.AccessStatus))
f92363d12 Sreekanth Reddy          2012-11-30  6087  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6088  
d1cb5e495 Sreekanth Reddy          2015-11-11  6089  	sas_device = mpt3sas_get_sdev_by_addr(ioc,
f92363d12 Sreekanth Reddy          2012-11-30  6090  					sas_address);
d1cb5e495 Sreekanth Reddy          2015-11-11  6091  	if (sas_device) {
c696f7b83 Suganath Prabu Subramani 2016-10-26  6092  		clear_bit(handle, ioc->pend_os_device_add);
d1cb5e495 Sreekanth Reddy          2015-11-11  6093  		sas_device_put(sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6094  		return -1;
d1cb5e495 Sreekanth Reddy          2015-11-11  6095  	}
f92363d12 Sreekanth Reddy          2012-11-30  6096  
758889564 Sreekanth Reddy          2017-10-10  6097  	if (sas_device_pg0.EnclosureHandle) {
793a6223b Chaitra P B              2018-03-20  6098  		enclosure_dev =
793a6223b Chaitra P B              2018-03-20  6099  			mpt3sas_scsih_enclosure_find_by_handle(ioc,
758889564 Sreekanth Reddy          2017-10-10 @6100  						sas_device_pg0.EnclosureHandle);
793a6223b Chaitra P B              2018-03-20  6101  		if (enclosure_dev == NULL)
793a6223b Chaitra P B              2018-03-20  6102  			pr_info(MPT3SAS_FMT "Enclosure handle(0x%04x)"
793a6223b Chaitra P B              2018-03-20  6103  			       "doesn't match with enclosure device!\n",
758889564 Sreekanth Reddy          2017-10-10  6104  			       ioc->name, sas_device_pg0.EnclosureHandle);
758889564 Sreekanth Reddy          2017-10-10  6105  	}
758889564 Sreekanth Reddy          2017-10-10  6106  
f92363d12 Sreekanth Reddy          2012-11-30  6107  	sas_device = kzalloc(sizeof(struct _sas_device),
f92363d12 Sreekanth Reddy          2012-11-30  6108  	    GFP_KERNEL);
f92363d12 Sreekanth Reddy          2012-11-30  6109  	if (!sas_device) {
f92363d12 Sreekanth Reddy          2012-11-30  6110  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6111  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6112  		return 0;
f92363d12 Sreekanth Reddy          2012-11-30  6113  	}
f92363d12 Sreekanth Reddy          2012-11-30  6114  
d1cb5e495 Sreekanth Reddy          2015-11-11  6115  	kref_init(&sas_device->refcount);
f92363d12 Sreekanth Reddy          2012-11-30  6116  	sas_device->handle = handle;
f92363d12 Sreekanth Reddy          2012-11-30  6117  	if (_scsih_get_sas_address(ioc,
f92363d12 Sreekanth Reddy          2012-11-30  6118  	    le16_to_cpu(sas_device_pg0.ParentDevHandle),
f92363d12 Sreekanth Reddy          2012-11-30  6119  	    &sas_device->sas_address_parent) != 0)
f92363d12 Sreekanth Reddy          2012-11-30  6120  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6121  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6122  	sas_device->enclosure_handle =
f92363d12 Sreekanth Reddy          2012-11-30  6123  	    le16_to_cpu(sas_device_pg0.EnclosureHandle);
e6d45e3e7 Sreekanth Reddy          2015-06-30  6124  	if (sas_device->enclosure_handle != 0)
f92363d12 Sreekanth Reddy          2012-11-30  6125  		sas_device->slot =
f92363d12 Sreekanth Reddy          2012-11-30  6126  		    le16_to_cpu(sas_device_pg0.Slot);
f92363d12 Sreekanth Reddy          2012-11-30  6127  	sas_device->device_info = device_info;
f92363d12 Sreekanth Reddy          2012-11-30  6128  	sas_device->sas_address = sas_address;
f92363d12 Sreekanth Reddy          2012-11-30  6129  	sas_device->phy = sas_device_pg0.PhyNum;
f92363d12 Sreekanth Reddy          2012-11-30  6130  	sas_device->fast_path = (le16_to_cpu(sas_device_pg0.Flags) &
f92363d12 Sreekanth Reddy          2012-11-30  6131  	    MPI25_SAS_DEVICE0_FLAGS_FAST_PATH_CAPABLE) ? 1 : 0;
f92363d12 Sreekanth Reddy          2012-11-30  6132  
aa53bb895 Suganath Prabu Subramani 2016-10-26  6133  	if (le16_to_cpu(sas_device_pg0.Flags)
aa53bb895 Suganath Prabu Subramani 2016-10-26  6134  		& MPI2_SAS_DEVICE0_FLAGS_ENCL_LEVEL_VALID) {
e6d45e3e7 Sreekanth Reddy          2015-06-30  6135  		sas_device->enclosure_level =
aa53bb895 Suganath Prabu Subramani 2016-10-26  6136  			sas_device_pg0.EnclosureLevel;
310c8e40d Calvin Owens             2016-07-27  6137  		memcpy(sas_device->connector_name,
310c8e40d Calvin Owens             2016-07-27  6138  			sas_device_pg0.ConnectorName, 4);
310c8e40d Calvin Owens             2016-07-27  6139  		sas_device->connector_name[4] = '\0';
e6d45e3e7 Sreekanth Reddy          2015-06-30  6140  	} else {
e6d45e3e7 Sreekanth Reddy          2015-06-30  6141  		sas_device->enclosure_level = 0;
e6d45e3e7 Sreekanth Reddy          2015-06-30  6142  		sas_device->connector_name[0] = '\0';
e6d45e3e7 Sreekanth Reddy          2015-06-30  6143  	}
758889564 Sreekanth Reddy          2017-10-10  6144  	/* get enclosure_logical_id & chassis_slot*/
758889564 Sreekanth Reddy          2017-10-10  6145  	sas_device->is_chassis_slot_valid = 0;
793a6223b Chaitra P B              2018-03-20  6146  	if (enclosure_dev) {
f92363d12 Sreekanth Reddy          2012-11-30  6147  		sas_device->enclosure_logical_id =
793a6223b Chaitra P B              2018-03-20  6148  		    le64_to_cpu(enclosure_dev->pg0.EnclosureLogicalID);
793a6223b Chaitra P B              2018-03-20  6149  		if (le16_to_cpu(enclosure_dev->pg0.Flags) &
758889564 Sreekanth Reddy          2017-10-10  6150  		    MPI2_SAS_ENCLS0_FLAGS_CHASSIS_SLOT_VALID) {
758889564 Sreekanth Reddy          2017-10-10  6151  			sas_device->is_chassis_slot_valid = 1;
758889564 Sreekanth Reddy          2017-10-10  6152  			sas_device->chassis_slot =
793a6223b Chaitra P B              2018-03-20  6153  					enclosure_dev->pg0.ChassisSlot;
758889564 Sreekanth Reddy          2017-10-10  6154  		}
758889564 Sreekanth Reddy          2017-10-10  6155  	}
758889564 Sreekanth Reddy          2017-10-10  6156  
f92363d12 Sreekanth Reddy          2012-11-30  6157  	/* get device name */
f92363d12 Sreekanth Reddy          2012-11-30  6158  	sas_device->device_name = le64_to_cpu(sas_device_pg0.DeviceName);
f92363d12 Sreekanth Reddy          2012-11-30  6159  
f92363d12 Sreekanth Reddy          2012-11-30  6160  	if (ioc->wait_for_discovery_to_complete)
f92363d12 Sreekanth Reddy          2012-11-30  6161  		_scsih_sas_device_init_add(ioc, sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6162  	else
f92363d12 Sreekanth Reddy          2012-11-30  6163  		_scsih_sas_device_add(ioc, sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6164  
d1cb5e495 Sreekanth Reddy          2015-11-11  6165  	sas_device_put(sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6166  	return 0;
f92363d12 Sreekanth Reddy          2012-11-30  6167  }
f92363d12 Sreekanth Reddy          2012-11-30  6168  

:::::: The code at line 6100 was first introduced by commit
:::::: 7588895646b5a943d3310271885c5935123a455c scsi: mpt3sas: Display chassis slot information of the drive

:::::: TO: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
:::::: CC: Martin K. Petersen <martin.petersen@oracle.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

WARNING: multiple messages have this Message-ID (diff)
From: kbuild test robot <lkp@intel.com>
Cc: kbuild-all@01.org, linux-scsi@vger.kernel.org,
	stable@vger.kernel.org, Bart.VanAssche@wdc.com,
	Sathya.Prakash@broadcom.com,
	suganath-prabu.subramani@broadcom.com,
	Chaitra P B <chaitra.basappa@broadcom.com>
Subject: Re: [PATCH] mpt3sas: Cache enclosure pages during enclosure add.
Date: Wed, 21 Mar 2018 05:06:52 +0800	[thread overview]
Message-ID: <201803210419.5Ewwdskh%fengguang.wu@intel.com> (raw)
In-Reply-To: <1521540956-42347-1-git-send-email-chaitra.basappa@broadcom.com>

Hi Chaitra,

I love your patch! Perhaps something to improve:

[auto build test WARNING on v4.16-rc4]
[also build test WARNING on next-20180320]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Chaitra-P-B/mpt3sas-Cache-enclosure-pages-during-enclosure-add/20180320-220411
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:6100:63: sparse: incorrect type in argument 2 (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got restriunsigned short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6100:63:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6100:63:    got restricted __le16 [addressable] [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6907:13: sparse: cast to restricted __le16
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:6907:13: sparse: cast from restricted __le32
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:160:22: sparse: symbol 'mpt3sas_raid_template' was not declared. Should it be static?
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:161:22: sparse: symbol 'mpt2sas_raid_template' was not declared. Should it be static?
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:1373:24: sparse: symbol 'mpt3sas_scsih_enclosure_find_by_handle' was not declared. Should it be static?
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3749:36: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3749:36:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3749:36:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3942:9: sparse: cast to restricted __le16
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3949:28: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [usertype] Event @@    got unsignedrestricted __le16 [usertype] Event @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3949:28:    expected restricted __le16 [usertype] Event
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3949:28:    got unsigned short [unsigned] [usertype] event
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3950:35: sparse: incorrect type in assignment (different base types) @@    expected restricted __le32 [usertype] EventContext @@    got unsignrestricted __le32 [usertype] EventContext @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3950:35:    expected restricted __le32 [usertype] EventContext
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:3950:35:    got unsigned int [unsigned] [usertype] event_context
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4001:9: sparse: cast to restricted __le16
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4009:32: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [usertype] DevHandle @@    got unsignedrestricted __le16 [usertype] DevHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4009:32:    expected restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4009:32:    got unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4531:61: sparse: incorrect type in assignment (different base types) @@    expected restricted __le32 [usertype] PrimaryReferenceTag @@    got restricted __le32 [usertype] PrimaryReferenceTag @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4531:61:    expected restricted __le32 [usertype] PrimaryReferenceTag
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:4531:61:    got restricted __be32 [usertype] <noident>
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:7324:37: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [usertype] EnclosureHandle @@    got unsignedrestricted __le16 [usertype] EnclosureHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7324:37:    expected restricted __le16 [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7324:37:    got unsigned short [unsigned] [usertype] <noident>
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:7329:59: sparse: incorrect type in argument 2 (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7329:59:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7329:59:    got restricted __le16 [usertype] EnclosureHandle
>> drivers/scsi/mpt3sas/mpt3sas_scsih.c:7345:43: sparse: incorrect type in argument 5 (different base types) @@    expected unsigned int [unsigned] [usertype] handle @@    got ed int [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7345:43:    expected unsigned int [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:7345:43:    got restricted __le16 [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8408:55: sparse: incorrect type in argument 2 (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8408:55:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8408:55:    got restricted __le16 [usertype] EnclosureHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8416:63: sparse: restricted __le64 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8417:60: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8441:43: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8466:65: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8470:44: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8470:44:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8470:44:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8472:62: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8472:62:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8472:62:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8558:51: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] DevHandle @@    got cted __le16 [addressable] [usertype] DevHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8558:51:    expected restricted __le16 [addressable] [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8558:51:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8563:43: sparse: incorrect type in assignment (different base types) @@    expected restricted __le64 [addressable] [usertype] SASAddress @@    got stricted __le64 [addressable] [usertype] SASAddress @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8563:43:    expected restricted __le64 [addressable] [usertype] SASAddress
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8563:43:    got unsigned long long [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8565:37: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] Slot @@    got cted __le16 [addressable] [usertype] Slot @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8565:37:    expected restricted __le16 [addressable] [usertype] Slot
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8565:37:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8566:38: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] Flags @@    got cted __le16 [addressable] [usertype] Flags @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8566:38:    expected restricted __le16 [addressable] [usertype] Flags
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8566:38:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8596:58: sparse: restricted __le64 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8597:58: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8632:67: sparse: restricted __le16 degrades to integer
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8636:45: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8636:45:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8636:45:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8638:62: sparse: incorrect type in assignment (different base types) @@    expected unsigned short [unsigned] [usertype] handle @@    got  short [unsigned] [usertype] handle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8638:62:    expected unsigned short [unsigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8638:62:    got restricted __le16 [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8688:38: sparse: incorrect type in assignment (different base types) @@    expected restricted __le64 [addressable] [usertype] WWID @@    got stricted __le64 [addressable] [usertype] WWID @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8688:38:    expected restricted __le64 [addressable] [usertype] WWID
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8688:38:    got unsigned long long [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8689:38: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] Slot @@    got cted __le16 [addressable] [usertype] Slot @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8689:38:    expected restricted __le16 [addressable] [usertype] Slot
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8689:38:    got unsigned short [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8690:39: sparse: incorrect type in assignment (different base types) @@    expected restricted __le32 [addressable] [usertype] Flags @@    got ed __le32 [addressable] [usertype] Flags @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8690:39:    expected restricted __le32 [addressable] [usertype] Flags
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8690:39:    got unsigned int [unsigned] [usertype] <noident>
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8691:43: sparse: incorrect type in assignment (different base types) @@    expected restricted __le16 [addressable] [usertype] DevHandle @@    got unsigrestricted __le16 [addressable] [usertype] DevHandle @@
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8691:43:    expected restricted __le16 [addressable] [usertype] DevHandle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:8691:43:    got unsigned short [unsigned] [assigned] [usertype] handle
   drivers/scsi/mpt3sas/mpt3sas_scsih.c:9610:25: sparse: cast to restricted __le32

Please review and possibly fold the followup patch.

vim +6100 drivers/scsi/mpt3sas/mpt3sas_scsih.c

f92363d12 Sreekanth Reddy          2012-11-30  6030  
f92363d12 Sreekanth Reddy          2012-11-30  6031  /**
f92363d12 Sreekanth Reddy          2012-11-30  6032   * _scsih_add_device -  creating sas device object
f92363d12 Sreekanth Reddy          2012-11-30  6033   * @ioc: per adapter object
f92363d12 Sreekanth Reddy          2012-11-30  6034   * @handle: sas device handle
f92363d12 Sreekanth Reddy          2012-11-30  6035   * @phy_num: phy number end device attached to
f92363d12 Sreekanth Reddy          2012-11-30  6036   * @is_pd: is this hidden raid component
f92363d12 Sreekanth Reddy          2012-11-30  6037   *
f92363d12 Sreekanth Reddy          2012-11-30  6038   * Creating end device object, stored in ioc->sas_device_list.
f92363d12 Sreekanth Reddy          2012-11-30  6039   *
f92363d12 Sreekanth Reddy          2012-11-30  6040   * Returns 0 for success, non-zero for failure.
f92363d12 Sreekanth Reddy          2012-11-30  6041   */
f92363d12 Sreekanth Reddy          2012-11-30  6042  static int
f92363d12 Sreekanth Reddy          2012-11-30  6043  _scsih_add_device(struct MPT3SAS_ADAPTER *ioc, u16 handle, u8 phy_num,
f92363d12 Sreekanth Reddy          2012-11-30  6044  	u8 is_pd)
f92363d12 Sreekanth Reddy          2012-11-30  6045  {
f92363d12 Sreekanth Reddy          2012-11-30  6046  	Mpi2ConfigReply_t mpi_reply;
f92363d12 Sreekanth Reddy          2012-11-30  6047  	Mpi2SasDevicePage0_t sas_device_pg0;
f92363d12 Sreekanth Reddy          2012-11-30  6048  	struct _sas_device *sas_device;
793a6223b Chaitra P B              2018-03-20  6049  	struct _enclosure_node *enclosure_dev = NULL;
f92363d12 Sreekanth Reddy          2012-11-30  6050  	u32 ioc_status;
f92363d12 Sreekanth Reddy          2012-11-30  6051  	u64 sas_address;
f92363d12 Sreekanth Reddy          2012-11-30  6052  	u32 device_info;
f92363d12 Sreekanth Reddy          2012-11-30  6053  
f92363d12 Sreekanth Reddy          2012-11-30  6054  	if ((mpt3sas_config_get_sas_device_pg0(ioc, &mpi_reply, &sas_device_pg0,
f92363d12 Sreekanth Reddy          2012-11-30  6055  	    MPI2_SAS_DEVICE_PGAD_FORM_HANDLE, handle))) {
f92363d12 Sreekanth Reddy          2012-11-30  6056  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6057  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6058  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6059  	}
f92363d12 Sreekanth Reddy          2012-11-30  6060  
f92363d12 Sreekanth Reddy          2012-11-30  6061  	ioc_status = le16_to_cpu(mpi_reply.IOCStatus) &
f92363d12 Sreekanth Reddy          2012-11-30  6062  	    MPI2_IOCSTATUS_MASK;
f92363d12 Sreekanth Reddy          2012-11-30  6063  	if (ioc_status != MPI2_IOCSTATUS_SUCCESS) {
f92363d12 Sreekanth Reddy          2012-11-30  6064  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6065  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6066  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6067  	}
f92363d12 Sreekanth Reddy          2012-11-30  6068  
f92363d12 Sreekanth Reddy          2012-11-30  6069  	/* check if this is end device */
f92363d12 Sreekanth Reddy          2012-11-30  6070  	device_info = le32_to_cpu(sas_device_pg0.DeviceInfo);
f92363d12 Sreekanth Reddy          2012-11-30  6071  	if (!(_scsih_is_end_device(device_info)))
f92363d12 Sreekanth Reddy          2012-11-30  6072  		return -1;
c696f7b83 Suganath Prabu Subramani 2016-10-26  6073  	set_bit(handle, ioc->pend_os_device_add);
f92363d12 Sreekanth Reddy          2012-11-30  6074  	sas_address = le64_to_cpu(sas_device_pg0.SASAddress);
f92363d12 Sreekanth Reddy          2012-11-30  6075  
f92363d12 Sreekanth Reddy          2012-11-30  6076  	/* check if device is present */
f92363d12 Sreekanth Reddy          2012-11-30  6077  	if (!(le16_to_cpu(sas_device_pg0.Flags) &
f92363d12 Sreekanth Reddy          2012-11-30  6078  	    MPI2_SAS_DEVICE0_FLAGS_DEVICE_PRESENT)) {
f92363d12 Sreekanth Reddy          2012-11-30  6079  		pr_err(MPT3SAS_FMT "device is not present handle(0x04%x)!!!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6080  			ioc->name, handle);
f92363d12 Sreekanth Reddy          2012-11-30  6081  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6082  	}
f92363d12 Sreekanth Reddy          2012-11-30  6083  
f92363d12 Sreekanth Reddy          2012-11-30  6084  	/* check if there were any issues with discovery */
f92363d12 Sreekanth Reddy          2012-11-30  6085  	if (_scsih_check_access_status(ioc, sas_address, handle,
f92363d12 Sreekanth Reddy          2012-11-30  6086  	    sas_device_pg0.AccessStatus))
f92363d12 Sreekanth Reddy          2012-11-30  6087  		return -1;
f92363d12 Sreekanth Reddy          2012-11-30  6088  
d1cb5e495 Sreekanth Reddy          2015-11-11  6089  	sas_device = mpt3sas_get_sdev_by_addr(ioc,
f92363d12 Sreekanth Reddy          2012-11-30  6090  					sas_address);
d1cb5e495 Sreekanth Reddy          2015-11-11  6091  	if (sas_device) {
c696f7b83 Suganath Prabu Subramani 2016-10-26  6092  		clear_bit(handle, ioc->pend_os_device_add);
d1cb5e495 Sreekanth Reddy          2015-11-11  6093  		sas_device_put(sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6094  		return -1;
d1cb5e495 Sreekanth Reddy          2015-11-11  6095  	}
f92363d12 Sreekanth Reddy          2012-11-30  6096  
758889564 Sreekanth Reddy          2017-10-10  6097  	if (sas_device_pg0.EnclosureHandle) {
793a6223b Chaitra P B              2018-03-20  6098  		enclosure_dev =
793a6223b Chaitra P B              2018-03-20  6099  			mpt3sas_scsih_enclosure_find_by_handle(ioc,
758889564 Sreekanth Reddy          2017-10-10 @6100  						sas_device_pg0.EnclosureHandle);
793a6223b Chaitra P B              2018-03-20  6101  		if (enclosure_dev == NULL)
793a6223b Chaitra P B              2018-03-20  6102  			pr_info(MPT3SAS_FMT "Enclosure handle(0x%04x)"
793a6223b Chaitra P B              2018-03-20  6103  			       "doesn't match with enclosure device!\n",
758889564 Sreekanth Reddy          2017-10-10  6104  			       ioc->name, sas_device_pg0.EnclosureHandle);
758889564 Sreekanth Reddy          2017-10-10  6105  	}
758889564 Sreekanth Reddy          2017-10-10  6106  
f92363d12 Sreekanth Reddy          2012-11-30  6107  	sas_device = kzalloc(sizeof(struct _sas_device),
f92363d12 Sreekanth Reddy          2012-11-30  6108  	    GFP_KERNEL);
f92363d12 Sreekanth Reddy          2012-11-30  6109  	if (!sas_device) {
f92363d12 Sreekanth Reddy          2012-11-30  6110  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6111  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6112  		return 0;
f92363d12 Sreekanth Reddy          2012-11-30  6113  	}
f92363d12 Sreekanth Reddy          2012-11-30  6114  
d1cb5e495 Sreekanth Reddy          2015-11-11  6115  	kref_init(&sas_device->refcount);
f92363d12 Sreekanth Reddy          2012-11-30  6116  	sas_device->handle = handle;
f92363d12 Sreekanth Reddy          2012-11-30  6117  	if (_scsih_get_sas_address(ioc,
f92363d12 Sreekanth Reddy          2012-11-30  6118  	    le16_to_cpu(sas_device_pg0.ParentDevHandle),
f92363d12 Sreekanth Reddy          2012-11-30  6119  	    &sas_device->sas_address_parent) != 0)
f92363d12 Sreekanth Reddy          2012-11-30  6120  		pr_err(MPT3SAS_FMT "failure at %s:%d/%s()!\n",
f92363d12 Sreekanth Reddy          2012-11-30  6121  		    ioc->name, __FILE__, __LINE__, __func__);
f92363d12 Sreekanth Reddy          2012-11-30  6122  	sas_device->enclosure_handle =
f92363d12 Sreekanth Reddy          2012-11-30  6123  	    le16_to_cpu(sas_device_pg0.EnclosureHandle);
e6d45e3e7 Sreekanth Reddy          2015-06-30  6124  	if (sas_device->enclosure_handle != 0)
f92363d12 Sreekanth Reddy          2012-11-30  6125  		sas_device->slot =
f92363d12 Sreekanth Reddy          2012-11-30  6126  		    le16_to_cpu(sas_device_pg0.Slot);
f92363d12 Sreekanth Reddy          2012-11-30  6127  	sas_device->device_info = device_info;
f92363d12 Sreekanth Reddy          2012-11-30  6128  	sas_device->sas_address = sas_address;
f92363d12 Sreekanth Reddy          2012-11-30  6129  	sas_device->phy = sas_device_pg0.PhyNum;
f92363d12 Sreekanth Reddy          2012-11-30  6130  	sas_device->fast_path = (le16_to_cpu(sas_device_pg0.Flags) &
f92363d12 Sreekanth Reddy          2012-11-30  6131  	    MPI25_SAS_DEVICE0_FLAGS_FAST_PATH_CAPABLE) ? 1 : 0;
f92363d12 Sreekanth Reddy          2012-11-30  6132  
aa53bb895 Suganath Prabu Subramani 2016-10-26  6133  	if (le16_to_cpu(sas_device_pg0.Flags)
aa53bb895 Suganath Prabu Subramani 2016-10-26  6134  		& MPI2_SAS_DEVICE0_FLAGS_ENCL_LEVEL_VALID) {
e6d45e3e7 Sreekanth Reddy          2015-06-30  6135  		sas_device->enclosure_level =
aa53bb895 Suganath Prabu Subramani 2016-10-26  6136  			sas_device_pg0.EnclosureLevel;
310c8e40d Calvin Owens             2016-07-27  6137  		memcpy(sas_device->connector_name,
310c8e40d Calvin Owens             2016-07-27  6138  			sas_device_pg0.ConnectorName, 4);
310c8e40d Calvin Owens             2016-07-27  6139  		sas_device->connector_name[4] = '\0';
e6d45e3e7 Sreekanth Reddy          2015-06-30  6140  	} else {
e6d45e3e7 Sreekanth Reddy          2015-06-30  6141  		sas_device->enclosure_level = 0;
e6d45e3e7 Sreekanth Reddy          2015-06-30  6142  		sas_device->connector_name[0] = '\0';
e6d45e3e7 Sreekanth Reddy          2015-06-30  6143  	}
758889564 Sreekanth Reddy          2017-10-10  6144  	/* get enclosure_logical_id & chassis_slot*/
758889564 Sreekanth Reddy          2017-10-10  6145  	sas_device->is_chassis_slot_valid = 0;
793a6223b Chaitra P B              2018-03-20  6146  	if (enclosure_dev) {
f92363d12 Sreekanth Reddy          2012-11-30  6147  		sas_device->enclosure_logical_id =
793a6223b Chaitra P B              2018-03-20  6148  		    le64_to_cpu(enclosure_dev->pg0.EnclosureLogicalID);
793a6223b Chaitra P B              2018-03-20  6149  		if (le16_to_cpu(enclosure_dev->pg0.Flags) &
758889564 Sreekanth Reddy          2017-10-10  6150  		    MPI2_SAS_ENCLS0_FLAGS_CHASSIS_SLOT_VALID) {
758889564 Sreekanth Reddy          2017-10-10  6151  			sas_device->is_chassis_slot_valid = 1;
758889564 Sreekanth Reddy          2017-10-10  6152  			sas_device->chassis_slot =
793a6223b Chaitra P B              2018-03-20  6153  					enclosure_dev->pg0.ChassisSlot;
758889564 Sreekanth Reddy          2017-10-10  6154  		}
758889564 Sreekanth Reddy          2017-10-10  6155  	}
758889564 Sreekanth Reddy          2017-10-10  6156  
f92363d12 Sreekanth Reddy          2012-11-30  6157  	/* get device name */
f92363d12 Sreekanth Reddy          2012-11-30  6158  	sas_device->device_name = le64_to_cpu(sas_device_pg0.DeviceName);
f92363d12 Sreekanth Reddy          2012-11-30  6159  
f92363d12 Sreekanth Reddy          2012-11-30  6160  	if (ioc->wait_for_discovery_to_complete)
f92363d12 Sreekanth Reddy          2012-11-30  6161  		_scsih_sas_device_init_add(ioc, sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6162  	else
f92363d12 Sreekanth Reddy          2012-11-30  6163  		_scsih_sas_device_add(ioc, sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6164  
d1cb5e495 Sreekanth Reddy          2015-11-11  6165  	sas_device_put(sas_device);
f92363d12 Sreekanth Reddy          2012-11-30  6166  	return 0;
f92363d12 Sreekanth Reddy          2012-11-30  6167  }
f92363d12 Sreekanth Reddy          2012-11-30  6168  

:::::: The code at line 6100 was first introduced by commit
:::::: 7588895646b5a943d3310271885c5935123a455c scsi: mpt3sas: Display chassis slot information of the drive

:::::: TO: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
:::::: CC: Martin K. Petersen <martin.petersen@oracle.com>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

  reply	other threads:[~2018-03-20 21:07 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-20 10:15 [PATCH] mpt3sas: Cache enclosure pages during enclosure add Chaitra P B
2018-03-20 21:06 ` kbuild test robot [this message]
2018-03-20 21:06   ` kbuild test robot
2018-03-20 21:06 ` [RFC PATCH] mpt3sas: mpt3sas_scsih_enclosure_find_by_handle can be static kbuild test robot
2018-03-20 21:06   ` kbuild test robot
2018-03-27 18:55   ` Bart Van Assche
2018-03-28 21:54     ` Martin K. Petersen
2018-03-28 21:54       ` Martin K. Petersen
2018-04-05 11:43       ` *** SPAM *** " Jaco Kroon
2018-04-10  7:15       ` Jaco Kroon
2018-04-10 12:46         ` Bart Van Assche

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201803210419.5Ewwdskh%fengguang.wu@intel.com \
    --to=lkp@intel.com \
    --cc=Bart.VanAssche@wdc.com \
    --cc=Sathya.Prakash@broadcom.com \
    --cc=chaitra.basappa@broadcom.com \
    --cc=kbuild-all@01.org \
    --cc=linux-scsi@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=suganath-prabu.subramani@broadcom.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.