Re: [PATCH/RFC] mmc: sh_mmcif: Add exclusion between cmd and interrupt

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

 



Hello Sergei,

2015-02-16 1:02 GMT+09:00 Sergei Shtylyov <sergei.shtylyov@xxxxxxxxxxxxxxxxxx>:
> Hello.
>
> On 02/15/2015 05:46 PM, Yoshihiro Kaneko wrote:
>
>> From: Kouichi Tomita <kouichi.tomita.yn@xxxxxxxxxxx>
>
>
>> A command end interrupt should not be processed between command issue
>> and setting of wait_for flag. It expects already the flag to be set.
>> Therefore the exclusive control was added.
>
>
>> Signed-off-by: Kouichi Tomita <kouichi.tomita.yn@xxxxxxxxxxx>
>> Signed-off-by: Yoshihiro Kaneko <ykaneko0929@xxxxxxxxx>
>> ---
>
>
>> This patch is based on next branch of Chris Ball's mmc tree.
>
>
>>   drivers/mmc/host/sh_mmcif.c | 11 ++++++++++-
>>   1 file changed, 10 insertions(+), 1 deletion(-)
>
>
>> diff --git a/drivers/mmc/host/sh_mmcif.c b/drivers/mmc/host/sh_mmcif.c
>> index 7d9d6a3..e5d0b42 100644
>> --- a/drivers/mmc/host/sh_mmcif.c
>> +++ b/drivers/mmc/host/sh_mmcif.c
>
> [...]
>>
>> @@ -1171,6 +1174,12 @@ static irqreturn_t sh_mmcif_irqt(int irq, void
>> *dev_id)
>>         struct sh_mmcif_host *host = dev_id;
>>         struct mmc_request *mrq;
>>         bool wait = false;
>> +       unsigned long flags;
>> +       int wait_work;
>> +
>> +       spin_lock_irqsave(&host->lock, flags);
>> +       wait_work = host->wait_for;
>> +       spin_unlock_irqrestore(&host->lock, flags);
>
>
>    Locking don't seem to have much sense here, as the read is already
> atomic.

Thank you for your review.
I agree with you and I will remove this locking.


Thanks,
Kaneko

>
> WBR, Sergei
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux