Problem with pci_fixups in drivers/pci/probe.c
From: alan
Date: Thu Jan 05 2006 - 18:45:19 EST
I have an HP zv5200z laptop running a x86_64 kernel.
In order to get cardbus devices to work, I had to patch the kernel to get
the cardbus to actually see those devices. (We will call this patch
"cardbus.patch".)
I went to patch the current FC5T1 kernel and found that the patch no
longer applied. On further investigation I found that the patch had been
added to the kernel, but some helpful soul had added a subroutine that
made it absolutely worthless to anyone on x86 architecture.
in drivers/pci/probe.c at line 408 there is the following code:
/* Attempts to fix that up are really dangerous unless
we're going to re-assign all bus numbers. */
if (!pcibios_assign_all_busses())
return;
The problem with this is that for x86 and x86_64 this function is defined
as 0.
include/asm-x86_64/pci.h:18:#define pcibios_assign_all_busses() 0
include/asm-i386/pci.h:14:extern unsigned int pcibios_assign_all_busses(void);
include/asm-i386/pci.h:16:#define pcibios_assign_all_busses() 0
include/asm-ia64/pci.h:18:#define pcibios_assign_all_busses() 0
This "fix" makes the patch absolutely useless to me.
Is there a way to get this to only run the fixup where needed or to make
this patch less problematic or just remove the test entirely?
My cardbus devices will thank you.
--
"George W. Bush -- Bringing back the Sixties one Nixon at a time."
-
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/