[lkml]   [2008]   [Nov]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    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 <>
    > ---
    > 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(+)


     \ /
      Last update: 2008-11-04 07:17    [W:0.025 / U:4.632 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site