Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / include / asm-i386 / ide.h
index 859ebf4..4544401 100644 (file)
@@ -41,13 +41,23 @@ static __inline__ int ide_default_irq(unsigned long base)
 
 static __inline__ unsigned long ide_default_io_base(int index)
 {
+       /*
+        *      If PCI is present then it is not safe to poke around
+        *      the other legacy IDE ports. Only 0x1f0 and 0x170 are
+        *      defined compatibility mode ports for PCI. A user can 
+        *      override this using ide= but we must default safe.
+        */
+       if (pci_find_device(PCI_ANY_ID, PCI_ANY_ID, NULL) == NULL) {
+               switch(index) {
+                       case 2: return 0x1e8;
+                       case 3: return 0x168;
+                       case 4: return 0x1e0;
+                       case 5: return 0x160;
+               }
+       }
        switch (index) {
                case 0: return 0x1f0;
                case 1: return 0x170;
-               case 2: return 0x1e8;
-               case 3: return 0x168;
-               case 4: return 0x1e0;
-               case 5: return 0x160;
                default:
                        return 0;
        }