Re: PATA DMA problem leading to kernel panic on reading movie DVDs

From: Martin Lottermoser
Date: Tue May 19 2009 - 17:12:52 EST


Hi,

On Tue, May 19, 2009 at 09:30:59PM +0200, Bartlomiej Zolnierkiewicz wrote:
> Incremental patch fixing it:
>
> diff -u b/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
> --- b/drivers/ide/ide-iops.c
> +++ b/drivers/ide/ide-iops.c
> @@ -255,7 +255,7 @@
> if (ivb) {
> const char *model = (char *)&id[ATA_ID_PROD];
>
> - if (strcmp("TSSTcorp CDDVDW SH-S202", model) == 0) {
> + if (strstr("TSSTcorp CDDVDW SH-S202", model)) {
> /*
> * These ATAPI devices always report 80c cable
> * so we have to depend on the host in this case.
>

I applied that, recompiled, installed, rebooted, and checked the syslog.
The message was still

hdc: UDMA/66 mode selected

and hdparm also showed "udma4" as being selected. I therefore didn't test
with a DVD.

However, after twice reading the POSIX definition of strstr() I reversed
the order of the arguments to

if (strstr(model, "TSSTcorp CDDVDW SH-S202")) {

and that did it. Syslog now contained:

hdc: host side 80-wire cable detection failed, limiting max speed to UDMA33
hdc: UDMA/33 mode selected

hdparm showed "udma2", and playing movie DVDs worked without DMA being
disabled. :-)

That seems to be it, then. Many thanks for your help, and in particular for
the explanations.

Regards,
Martin Lottermoser
--
Martin Lottermoser Martin.Lottermoser at _REMOVE_t-online.de
Greifswaldstrasse 28
38124 Braunschweig http://home.vrweb.de/martin.lottermoser
Germany
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/