[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <98d269d2-da80-fdd4-13c3-84e2868c05d3@huawei.com>
Date: Sat, 16 Feb 2019 16:43:49 +0800
From: Jason Yan <yanaijie@...wei.com>
To: Sergei Shtylyov <sergei.shtylyov@...entembedded.com>,
<linux-ide@...r.kernel.org>, <tj@...nel.org>, <axboe@...nel.dk>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH] ata: fix a race condition when internal cmd time out
Hi, Sergei
Thanks for the review.
On 2019/2/16 15:45, Sergei Shtylyov wrote:
> Hello!
>
> On 16.02.2019 6:42, Jason Yan wrote:
>
>> For internal cmds, we will unmap DMA memory associated with the cmd
>> before we abort the cmd. If DMA transfering data before the aborting,
>
> Transferring.
>
>> bus error will occured.
>
> Occur.
>
>> ata_exec_internal_sg
>> ->ata_port_freeze if timeout
>> ->ata_qc_complete
>> ->ata_sg_clean
>> dma transfering data = bus error
>> ->ap->ops->post_internal_cmd
>> ->sas_ata_post_internal
>> ->sas_ata_internal_abort
>> ->abort the cmd
>>
>> Fix this by move post_internal_cmd() before unmapping the DMA memory
>
> Moving.
>
>> when time out. Notice that we have to set ATA_QCFLAG_FAILED flag before
>> calling post_internal_cmd() so that the aborting will work.
>>
>> Reported-by: luojian <luojian5@...wei.com>
>> Signed-off-by: Jason Yan <yanaijie@...wei.com>
> [...]
>
> MBR, Sergei
>
>
Powered by blists - more mailing lists