lkml.org 
[lkml]   [2008]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2.6.28-rc2] sata_promise: add ATA engine reset to reset ops
Mikael Pettersson wrote:
> Promise ATA engines need to be reset when errors occur.
> That's currently done for errors detected by sata_promise itself,
> but it's not done for errors like timeouts detected outside of
> the low-level driver.
>
> The effect of this omission is that a timeout tends to result
> in a sequence of failed COMRESETs after which libata EH gives
> up and disables the port. At that point the port's ATA engine
> hangs and even reloading the driver will not resume it.
>
> To fix this, make sata_promise override ->hardreset on SATA
> ports with code which calls pdc_reset_port() on the port in
> question before calling libata's hardreset. PATA ports don't
> use ->hardreset, so for those we override ->softreset instead.
>
> Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
> ---
> Updated to add pdc_reset_port() to ->softreset not ->hardreset
> on PATA ports. Patch title adjusted accordingly.
>
> This should also go into the 2.6.27 and 2.6.26 stable branches.
> In older branches libata EH is different and I'm seeing different
> behaviour on timeouts, so I don't think this should go in as-is
> in 2.6.25 and older.
>
> drivers/ata/sata_promise.c | 20 ++++++++++++++++++++
> 1 file changed, 20 insertions(+)

applied




\
 
 \ /
  Last update: 2008-11-04 07:17    [from the cache]
©2003-2011 Jasper Spaans