Re: [PATCH] mpt3sas: correct reset of smid while clearing scsi tracker

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

 



On Wed, Jul 18, 2018 at 7:38 PM, Bart Van Assche <Bart.VanAssche@xxxxxxx> wrote:
> On Wed, 2018-07-18 at 01:22 -0400, Sreekanth Reddy wrote:
>> In mpt3sas_base_clear_st() function smid value is reseted in wrong line,
>> i.e. driver should reset smid value to zero after decrementing chain_offset
>> counter in chain_lookup table but in current code, driver is resetting smid
>> value before decrementing the chain_offset counter. which we are correcting
>> with this patch.
>>
>> Signed-off-by: Sreekanth Reddy <sreekanth.reddy@xxxxxxxxxxxx>
>> ---
>>  drivers/scsi/mpt3sas/mpt3sas_base.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/scsi/mpt3sas/mpt3sas_base.c b/drivers/scsi/mpt3sas/mpt3sas_base.c
>> index 902610d..94b939b 100644
>> --- a/drivers/scsi/mpt3sas/mpt3sas_base.c
>> +++ b/drivers/scsi/mpt3sas/mpt3sas_base.c
>> @@ -3283,8 +3283,8 @@ void mpt3sas_base_clear_st(struct MPT3SAS_ADAPTER *ioc,
>>               return;
>>       st->cb_idx = 0xFF;
>>       st->direct_io = 0;
>> -     st->smid = 0;
>>       atomic_set(&ioc->chain_lookup[st->smid - 1].chain_offset, 0);
>> +     st->smid = 0;
>>  }
>
> How can this patch be correct without memory barrier between the atomic set and the
> st->smid assignment?

Yes I agree that I need to add memory barrier around atomic_set() API.
I was not aware of this before.

Is it fine to use smp_mb__before_atomic() API before atomic_set() &
smp_mb__after_atomic() API after atomic_set?

Also in other places in driver, we are using atomic_inc() &
atomic_dec() APIs without memory barrier, I need to add memory barrier
their too. So is it fine to post separate patch for adding memory
barrier around atomic_xyz() APIs? if yes then please consider this
patch and I will post separate patch for adding memory barriers around
the atomic_xyz() APIs.

Thanks,
Sreekanth

>
> Bart.
>
>



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]

  Powered by Linux