[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <490FE750.50405@pobox.com>
Date: Tue, 04 Nov 2008 01:10:24 -0500
From: Jeff Garzik <jgarzik@...ox.com>
To: Mikael Pettersson <mikpe@...uu.se>
CC: linux-ide@...r.kernel.org, linux-kernel@...r.kernel.org,
stable@...nel.org
Subject: Re: [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@...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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists