* [PATCH 2.6.33-rc3] sata_promise: don't classify overruns as HSM errors
@ 2010-01-09 22:32 Mikael Pettersson
2010-01-12 19:38 ` Jeff Garzik
0 siblings, 1 reply; 2+ messages in thread
From: Mikael Pettersson @ 2010-01-09 22:32 UTC (permalink / raw)
To: Jeff Garzik; +Cc: linux-ide, thomas schorpp
When sata_promise encounters an overrun or underrun error it
translates that to a libata AC_ERR_HSM, causing a hard reset.
Since over/under-runs were thought to be rare and transient,
this action seemed reasonable.
Unfortunately it turns out that the controller throws overrun
errors when e.g. hal polls a CD or DVD writer containing blank
media, causing long sequences of hard resets and retries before
EH finally gives up.
This patch updates sata_promise to classify over/under-runs as
AC_ERR_OTHER instead. This allows libata EH and upper layers to
retry or fail the operation as they see fit without the disruption
caused by repeated hard resets.
This fixes a problem using a DVD-RAM drive with sata_promise,
reported by Thomas Schorpp. I also tested it on a DVD-RW drive.
Signed-off-by: Mikael Pettersson <mikpe@it.uu.se>
Tested-by: thomas schorpp <thomas.schorpp@googlemail.com>
---
drivers/ata/sata_promise.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff -rupN linux-2.6.33-rc3/drivers/ata/sata_promise.c linux-2.6.33-rc3.sata_promise-overrun-not-hsm/drivers/ata/sata_promise.c
--- linux-2.6.33-rc3/drivers/ata/sata_promise.c 2009-12-03 12:38:32.000000000 +0100
+++ linux-2.6.33-rc3.sata_promise-overrun-not-hsm/drivers/ata/sata_promise.c 2010-01-09 16:19:29.000000000 +0100
@@ -862,7 +862,7 @@ static void pdc_error_intr(struct ata_po
if (port_status & PDC_DRIVE_ERR)
ac_err_mask |= AC_ERR_DEV;
if (port_status & (PDC_OVERRUN_ERR | PDC_UNDERRUN_ERR))
- ac_err_mask |= AC_ERR_HSM;
+ ac_err_mask |= AC_ERR_OTHER;
if (port_status & (PDC2_ATA_HBA_ERR | PDC2_ATA_DMA_CNT_ERR))
ac_err_mask |= AC_ERR_ATA_BUS;
if (port_status & (PDC_PH_ERR | PDC_SH_ERR | PDC_DH_ERR | PDC2_HTO_ERR
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH 2.6.33-rc3] sata_promise: don't classify overruns as HSM errors
2010-01-09 22:32 [PATCH 2.6.33-rc3] sata_promise: don't classify overruns as HSM errors Mikael Pettersson
@ 2010-01-12 19:38 ` Jeff Garzik
0 siblings, 0 replies; 2+ messages in thread
From: Jeff Garzik @ 2010-01-12 19:38 UTC (permalink / raw)
To: Mikael Pettersson; +Cc: linux-ide, thomas schorpp
On 01/09/2010 05:32 PM, Mikael Pettersson wrote:
> When sata_promise encounters an overrun or underrun error it
> translates that to a libata AC_ERR_HSM, causing a hard reset.
> Since over/under-runs were thought to be rare and transient,
> this action seemed reasonable.
>
> Unfortunately it turns out that the controller throws overrun
> errors when e.g. hal polls a CD or DVD writer containing blank
> media, causing long sequences of hard resets and retries before
> EH finally gives up.
>
> This patch updates sata_promise to classify over/under-runs as
> AC_ERR_OTHER instead. This allows libata EH and upper layers to
> retry or fail the operation as they see fit without the disruption
> caused by repeated hard resets.
>
> This fixes a problem using a DVD-RAM drive with sata_promise,
> reported by Thomas Schorpp. I also tested it on a DVD-RW drive.
>
> Signed-off-by: Mikael Pettersson<mikpe@it.uu.se>
> Tested-by: thomas schorpp<thomas.schorpp@googlemail.com>
> ---
> drivers/ata/sata_promise.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
applied
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-01-12 19:38 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-01-09 22:32 [PATCH 2.6.33-rc3] sata_promise: don't classify overruns as HSM errors Mikael Pettersson
2010-01-12 19:38 ` Jeff Garzik
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.