2.4.20: ideN=... option stopped working

From: Richard Kettlewell (rjk@greenend.org.uk)
Date: Sat Dec 21 2002 - 13:50:55 EST


I have an inherited ancient PC with a weird IDE configuration that
requires ide1=0x170,0x376,14 specified on the kernel command line in
order to boot. This worked fine in 2.4.18 but not in 2.4.20. I
haven't checked 2.4.19.

After some investigation I found the relevant change and tried
reverting it. The resulting kernel works for me. Here's the diff:

========================================================================
--- drivers/ide/ide.c~ Thu Nov 28 23:53:13 2002
+++ drivers/ide/ide.c Sat Dec 21 18:25:59 2002
@@ -2456,7 +2456,6 @@
         memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->hw.io_ports));
         hwif->irq = hw->irq;
         hwif->noprobe = 0;
- hwif->chipset = hw->chipset;
 
         if (!initializing) {
                 ide_probe_module();
========================================================================

During my investigation I added some printk calls which make it
clearer what ide_setup objects to when it jumps to bad_option.
Perhaps these would be of more general use, diff below.

ttfn/rjk

========================================================================
--- drivers/ide/ide.c~ Thu Nov 28 23:53:13 2002
+++ drivers/ide/ide.c Sat Dec 21 18:25:59 2002
@@ -3427,12 +3426,16 @@
                  * Cryptic check to ensure chipset not already set for hwif:
                  */
                 if (i > 0 || i <= -11) { /* is parameter a chipset name? */
- if (hwif->chipset != ide_unknown)
+ if (hwif->chipset != ide_unknown) {
+ printk(" -- chipset already specified");
                                 goto bad_option; /* chipset already specified */
+ }
                         if (i <= -11 && i != -18 && hw != 0)
                                 goto bad_hwif; /* chipset drivers are for "ide0=" only */
- if (i <= -11 && i != -18 && ide_hwifs[hw+1].chipset != ide_unknown)
+ if (i <= -11 && i != -18 && ide_hwifs[hw+1].chipset != ide_unknown) {
+ printk(" -- chipset for 2nd port already specified");
                                 goto bad_option; /* chipset for 2nd port already specified */
+ }
                         printk("\n");
                 }
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Dec 23 2002 - 22:00:29 EST