[PATCH v3] ahci_xgene: Fix the dma state machine lockup for the ATA_CMD_SMART PIO mode command.

Suman Tripathi stripathi at apm.com
Tue Feb 3 08:12:48 PST 2015


   Ugh, please avoid using HTML when posting to the lists hosted on
vger.kernel.org -- it's configured to ignore such mails AFAIK.
Yeah forgot to set the plain text mode. Sorry for that

>>>     This patch addresses the issue with ATA_CMD_SMART pio mode
>>>     command for enumeration and device detection with ATA devices.
>>>     The X-Gene AHCI controller has an errata in which it cannot clear
>>>     the BSY bit after the PIO setup FIS. The dma state machine enters


>>     Hum, if this happens after every PIO command (PIO setup FISes are not
>> specific to the command, right?), perhaps it would make more sense to record
>> the *protocol* used by the last command?


> No it happens for IDENTIFY DEVICE, ATA_CMD_PACKET and ATA_CMD_SMART commands .
> It is actually the commands associated with a BSY bit clearing.


   I don't understand that -- BSY bit is cleared for *every* command,
either at the end of it, or along with setting the DRQ bit for PIO
data transfer.
BSY bit is cleared after the end of these commands by the controller.
So due to the bug it doesn't clear it. When the DMA commands is issued
, it check for the BSY bit cleared or not and finds not cleared and
results in CMFatalErrorUpdate  and hangs.

Ping ?? Any problem with this last posted version  Actually Mark from
redhat reported this issue while using smartctl and we found that
ATA_CMD_SMART also has BSY bit not clearing issue..

On Tue, Feb 3, 2015 at 1:18 AM, Suman Tripathi <stripathi at apm.com> wrote:
>    Ugh, please avoid using HTML when posting to the lists hosted on
> vger.kernel.org -- it's configured to ignore such mails AFAIK.
> Yeah forgot to set the plain text mode. Sorry for that
>
>>>>     This patch addresses the issue with ATA_CMD_SMART pio mode
>>>>     command for enumeration and device detection with ATA devices.
>>>>     The X-Gene AHCI controller has an errata in which it cannot clear
>>>>     the BSY bit after the PIO setup FIS. The dma state machine enters
>
>
>>>     Hum, if this happens after every PIO command (PIO setup FISes are not
>>> specific to the command, right?), perhaps it would make more sense to record
>>> the *protocol* used by the last command?
>
>
>> No it happens for IDENTIFY DEVICE, ATA_CMD_PACKET and ATA_CMD_SMART commands .
>> It is actually the commands associated with a BSY bit clearing.
>
>
>    I don't understand that -- BSY bit is cleared for *every* command,
> either at the end of it, or along with setting the DRQ bit for PIO
> data transfer.
> BSY bit is cleared after the end of these commands by the controller.
> So due to the bug it doesn't clear it. When the DMA commands is issued
> , it check for the BSY bit cleared or not and finds not cleared and
> results in CMFatalErrorUpdate  and hangs.
>
>>>>     CMFatalErrorUpdate state and locks up. It is the same issue as
>>>>     in the commit 2a0bdff6b958d1b2523d2754b6cd5e__0ea4053016 (ahci-xgene:
>>>>     fix the dma state machine lockup for the IDENTIFY DEVICE PIO mode
>>>>     command).
>
>
>>> [...]
>
>
>>>>     Signed-off-by: Suman Tripathi <stripathi at apm.com <mailto:stripathi at apm.com>>
>>>>     Reported-by:   Mark Langsdorf <mlangsdo at redhat.com
>>>>     <mailto:mlangsdo at redhat.com>>
>>>>
>
> MBR, Sergei
>
> On Tue, Feb 3, 2015 at 1:14 AM, Sergei Shtylyov
> <sergei.shtylyov at cogentembedded.com> wrote:
>> On 02/02/2015 10:37 PM, Suman Tripathi wrote:
>>
>>    Ugh, please avoid using HTML when posting to the lists hosted on
>> vger.kernel.org -- it's configured to ignore such mails AFAIK.
>>
>>>>>     This patch addresses the issue with ATA_CMD_SMART pio mode
>>>>>     command for enumeration and device detection with ATA devices.
>>>>>     The X-Gene AHCI controller has an errata in which it cannot clear
>>>>>     the BSY bit after the PIO setup FIS. The dma state machine enters
>>
>>
>>>>     Hum, if this happens after every PIO command (PIO setup FISes are not
>>>> specific to the command, right?), perhaps it would make more sense to
>>>> record
>>>> the *protocol* used by the last command?
>>
>>
>>> No it happens for IDENTIFY DEVICE, ATA_CMD_PACKET and ATA_CMD_SMART
>>> commands .
>>> It is actually the commands associated with a BSY bit clearing.
>>
>>
>>    I don't understand that -- BSY bit is cleared for *every* command, either
>> at the end of it, or along with setting the DRQ bit for PIO data transfer.
>>
>>>>>     CMFatalErrorUpdate state and locks up. It is the same issue as
>>>>>     in the commit 2a0bdff6b958d1b2523d2754b6cd5e__0ea4053016
>>>>> (ahci-xgene:
>>>>>     fix the dma state machine lockup for the IDENTIFY DEVICE PIO mode
>>>>>     command).
>>
>>
>>>> [...]
>>
>>
>>>>>     Signed-off-by: Suman Tripathi <stripathi at apm.com
>>>>> <mailto:stripathi at apm.com>>
>>>>>     Reported-by:   Mark Langsdorf <mlangsdo at redhat.com
>>>>>     <mailto:mlangsdo at redhat.com>>
>>>>>
>>
>> MBR, Sergei
>>
>
>
>
> --
> Thanks,
> with regards,
> Suman Tripathi



-- 
Thanks,
with regards,
Suman Tripathi



More information about the linux-arm-kernel mailing list