From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756849AbdJKQHG (ORCPT ); Wed, 11 Oct 2017 12:07:06 -0400 Received: from mx1.redhat.com ([209.132.183.28]:46346 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751985AbdJKQHE (ORCPT ); Wed, 11 Oct 2017 12:07:04 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 3CFA73D970 Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx06.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=thenzl@redhat.com Subject: Re: [PATCH 08/10] mpt3sas: Fix possibility of using invalid Enclosure Handles for SAS device after host reset To: Sreekanth Reddy , linux-scsi@vger.kernel.org, hch@infradead.org Cc: martin.petersen@oracle.com, Sathya.Prakash@broadcom.com, linux-kernel@vger.kernel.org References: <1507641083-20207-1-git-send-email-Sreekanth.Reddy@broadcom.com> <1507641083-20207-9-git-send-email-Sreekanth.Reddy@broadcom.com> From: Tomas Henzl Message-ID: Date: Wed, 11 Oct 2017 18:07:02 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <1507641083-20207-9-git-send-email-Sreekanth.Reddy@broadcom.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-Language: en-MW X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.30]); Wed, 11 Oct 2017 16:07:04 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 10/10/2017 03:11 PM, Sreekanth Reddy wrote: > Enclosure handles are not updated after host reset. > As a result, driver device structure is holding previously > assigned enclosure handle which is different from the > enclosure handle populated in the corresponding device page. > > Modified the driver to update devices enclosure handles after > host reset to current value, by referring the enclosure handles > from corresponding device pages > > Signed-off-by: Sreekanth Reddy > --- > drivers/scsi/mpt3sas/mpt3sas_scsih.c | 117 ++++++++++++++++++++++++----------- > 1 file changed, 81 insertions(+), 36 deletions(-) > > diff --git a/drivers/scsi/mpt3sas/mpt3sas_scsih.c b/drivers/scsi/mpt3sas/mpt3sas_scsih.c > index 17b934b..b819914 100644 > --- a/drivers/scsi/mpt3sas/mpt3sas_scsih.c > +++ b/drivers/scsi/mpt3sas/mpt3sas_scsih.c > @@ -5383,6 +5383,52 @@ _scsih_check_access_status(struct MPT3SAS_ADAPTER *ioc, u64 sas_address, > } > > /** > + * _scsih_get_enclosure_logicalid_chassis_slot - get device's > + * EnclosureLogicalID and ChassisSlot information. > + * @ioc: per adapter object > + * @sas_device_pg0: SAS device page0 > + * @sas_device: per sas device object > + * > + * Returns nothing. > + */ > +static void > +_scsih_get_enclosure_logicalid_chassis_slot(struct MPT3SAS_ADAPTER *ioc, > + Mpi2SasDevicePage0_t *sas_device_pg0, struct _sas_device *sas_device) > +{ > + Mpi2ConfigReply_t mpi_reply; > + Mpi2SasEnclosurePage0_t enclosure_pg0; > + > + if (!sas_device_pg0 || !sas_device) > + return; This test^ implies that sas_device_pg0 or sas_device can be null, is that true? Signed-off-by: Tomas Henzl