Subject: [PATCH 0/2] two ide fixes for -rc4


patch #1 fixes old bug in sis5513 (uncovered by 2.6.30 device probing
changes but it could be also triggered in earlier kernels on warm-plug
operation)

patch #2 reverts the recent incorrect revert


2009-10-06 22:36:13

by Linus Torvalds

[permalink] [raw]
Subject: Re: [PATCH 0/2] two ide fixes for -rc4


David, can you test these on the sis5513 system that had problems with the
original pio0 mode setting?

Thanks,
Linus

On Wed, 7 Oct 2009, Bartlomiej Zolnierkiewicz wrote:
>
> patch #1 fixes old bug in sis5513 (uncovered by 2.6.30 device probing
> changes but it could be also triggered in earlier kernels on warm-plug
> operation)
>
> patch #2 reverts the recent incorrect revert
>

Subject: Re: [PATCH 0/2] two ide fixes for -rc4

On Wednesday 07 October 2009 00:35:24 Linus Torvalds wrote:
>
> David, can you test these on the sis5513 system that had problems with the
> original pio0 mode setting?
>
> Thanks,
> Linus
>
> On Wed, 7 Oct 2009, Bartlomiej Zolnierkiewicz wrote:
> >
> > patch #1 fixes old bug in sis5513 (uncovered by 2.6.30 device probing
> > changes but it could be also triggered in earlier kernels on warm-plug
> > operation)

patch #1 contained a stupid mistake preventing it from working (thanks to
David Fries for letting me know quickly), I guess that is what one gets for
the late night hacking..

The corrected version below, David please try it instead:

From: Bartlomiej Zolnierkiewicz <[email protected]>
Subject: [PATCH take 2] sis5513: fix PIO setup for ATAPI devices

Clear prefetch setting before potentially (re-)enabling it in
config_drive_art_rwp() so the transition of the device type on
the port from ATA to ATAPI (i.e. during warm-plug operation)
is handled correctly.

This is a really old bug (it probably goes back to very early
days of the driver) but it was only affecting warm-plug operation
until the recent "ide: try to use PIO Mode 0 during probe if
possible" change (commit 6029336426a2b43e4bc6f4a84be8789a047d139e).

Signed-off-by: Bartlomiej Zolnierkiewicz <[email protected]>
Cc: David S. Miller <[email protected]>
Cc: Joao Ramos <[email protected]>
Cc: David Fries <[email protected]>
Cc: [email protected]
Cc: [email protected]
---
drivers/ide/sis5513.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

Index: b/drivers/ide/sis5513.c
===================================================================
--- a/drivers/ide/sis5513.c
+++ b/drivers/ide/sis5513.c
@@ -2,7 +2,7 @@
* Copyright (C) 1999-2000 Andre Hedrick <[email protected]>
* Copyright (C) 2002 Lionel Bouton <[email protected]>, Maintainer
* Copyright (C) 2003 Vojtech Pavlik <[email protected]>
- * Copyright (C) 2007 Bartlomiej Zolnierkiewicz
+ * Copyright (C) 2007-2009 Bartlomiej Zolnierkiewicz
*
* May be copied or modified under the terms of the GNU General Public License
*
@@ -281,11 +281,13 @@ static void config_drive_art_rwp(ide_dri

pci_read_config_byte(dev, 0x4b, &reg4bh);

+ rw_prefetch = reg4bh & ~(0x11 << drive->dn);
+
if (drive->media == ide_disk)
- rw_prefetch = 0x11 << drive->dn;
+ rw_prefetch |= 0x11 << drive->dn;

- if ((reg4bh & (0x11 << drive->dn)) != rw_prefetch)
- pci_write_config_byte(dev, 0x4b, reg4bh|rw_prefetch);
+ if (reg4bh != rw_prefetch)
+ pci_write_config_byte(dev, 0x4b, rw_prefetch);
}

static void sis_set_pio_mode(ide_drive_t *drive, const u8 pio)

2009-10-07 03:31:04

by David Fries

[permalink] [raw]
Subject: Re: [PATCH 0/2] two ide fixes for -rc4

On Wed, Oct 07, 2009 at 02:46:05AM +0200, Bartlomiej Zolnierkiewicz wrote:
> On Wednesday 07 October 2009 00:35:24 Linus Torvalds wrote:
> >
> > David, can you test these on the sis5513 system that had problems with the
> > original pio0 mode setting?
> >
> > Thanks,
> > Linus
> >
> > On Wed, 7 Oct 2009, Bartlomiej Zolnierkiewicz wrote:
> > >
> > > patch #1 fixes old bug in sis5513 (uncovered by 2.6.30 device probing
> > > changes but it could be also triggered in earlier kernels on warm-plug
> > > operation)
>
> patch #1 contained a stupid mistake preventing it from working (thanks to
> David Fries for letting me know quickly), I guess that is what one gets for
> the late night hacking..
>
> The corrected version below, David please try it instead:
>
> From: Bartlomiej Zolnierkiewicz <[email protected]>
> Subject: [PATCH take 2] sis5513: fix PIO setup for ATAPI devices

2.6.31 plus this patch fixed the hang on IDE initialization with the
SIS5513.

That's with my testing mode, I'm rebuilding a kernel and will try some
benchmarks tomorrow. I've been testing by hibernating to disk,
booting the test kernel with a bad root and resume partition (so if it
worked it wouldn't modify the suspended image), then rebooting to
resume from disk with the good kernel. That let me more quickly
bisect and test kernels, I just haven't ran this kernel much past the
initialization is all.

--
David Fries <[email protected]>
http://fries.net/~david/ (PGP encryption key available)

2009-10-07 11:07:04

by David Miller

[permalink] [raw]
Subject: Re: [PATCH 0/2] two ide fixes for -rc4

From: David Fries <[email protected]>
Date: Tue, 6 Oct 2009 22:30:06 -0500

> On Wed, Oct 07, 2009 at 02:46:05AM +0200, Bartlomiej Zolnierkiewicz wrote:
>> The corrected version below, David please try it instead:
>>
>> From: Bartlomiej Zolnierkiewicz <[email protected]>
>> Subject: [PATCH take 2] sis5513: fix PIO setup for ATAPI devices
>
> 2.6.31 plus this patch fixed the hang on IDE initialization with the
> SIS5513.
>
> That's with my testing mode, I'm rebuilding a kernel and will try some
> benchmarks tomorrow. I've been testing by hibernating to disk,
> booting the test kernel with a bad root and resume partition (so if it
> worked it wouldn't modify the suspended image), then rebooting to
> resume from disk with the good kernel. That let me more quickly
> bisect and test kernels, I just haven't ran this kernel much past the
> initialization is all.

All applied, thanks everyone.

2009-10-10 17:55:27

by -

[permalink] [raw]
Subject: Re: [PATCH 0/2] two ide fixes for -rc4

This latest patch (modifying only the SIS 5513 driver) WORKS FOR ME. :-)
- D. Stussy.

--- On Tue, 10/6/09, Bartlomiej Zolnierkiewicz <[email protected]> wrote:
> ...
> --- a/drivers/ide/sis5513.c
> +++ b/drivers/ide/sis5513.c
> @@ -281,11 +281,13 @@ static void config_drive_art_rwp(ide_dri
>
> ??? pci_read_config_byte(dev, 0x4b, &reg4bh);
>
> +??? rw_prefetch = reg4bh & ~(0x11 << drive->dn);
> +
> ??? if (drive->media == ide_disk)
> -??? ??? rw_prefetch = 0x11 << drive->dn;
> +??? ??? rw_prefetch |= 0x11 << drive->dn;
>
> -??? if ((reg4bh & (0x11 << drive->dn)) != rw_prefetch)
> -??? ??? pci_write_config_byte(dev, 0x4b, reg4bh|rw_prefetch);
> +??? if (reg4bh != rw_prefetch)
> +??? ??? pci_write_config_byte(dev, 0x4b, rw_prefetch);
> }
>
> static void sis_set_pio_mode(ide_drive_t *drive, const u8 pio)
>