Linus,
The PCI code for NUMA-Q machines has been broken for a while... The kernel
currently can't find PCI busses on quad's other than the first. This patch
fixes that problem. Please apply.
Cheers!
-Matt
diff -Nur linux-2.5.15-vanilla/arch/i386/pci/direct.c linux-2.5.15-patched/arch/i386/pci/direct.c
--- linux-2.5.15-vanilla/arch/i386/pci/direct.c Thu May 9 15:22:49 2002
+++ linux-2.5.15-patched/arch/i386/pci/direct.c Thu Aug 8 10:27:11 2002
@@ -6,6 +6,10 @@
#include <linux/init.h>
#include "pci.h"
+/* Ensure the correct pci_conf1_{read|write} functions are compiled in */
+#ifndef CONFIG_MULTIQUAD
+
+
/*
* Functions for accessing PCI configuration space with type 1 accesses
*/
@@ -72,6 +76,11 @@
#undef PCI_CONF1_ADDRESS
+#else /* CONFIG_MULTIQUAD */
+extern int pci_conf1_read (int seg, int bus, int dev, int fn, int reg, int len, u32 *value);
+extern int pci_conf1_write (int seg, int bus, int dev, int fn, int reg, int len, u32 value);
+#endif /* !CONFIG_MULTIQUAD */
+
static int pci_conf1_read_config_byte(struct pci_dev *dev, int where, u8 *value)
{
int result;
diff -Nur linux-2.5.15-vanilla/arch/i386/pci/numa.c linux-2.5.15-patched/arch/i386/pci/numa.c
--- linux-2.5.15-vanilla/arch/i386/pci/numa.c Thu May 9 15:22:46 2002
+++ linux-2.5.15-patched/arch/i386/pci/numa.c Thu Aug 8 10:52:24 2002
@@ -1,19 +1,23 @@
/*
* numa.c - Low-level PCI access for NUMA-Q machines
*/
+
#include <linux/pci.h>
#include <linux/init.h>
-
#include "pci.h"
#define BUS2QUAD(global) (mp_bus_id_to_node[global])
#define BUS2LOCAL(global) (mp_bus_id_to_local[global])
#define QUADLOCAL2BUS(quad,local) (quad_local_to_mp_bus_id[quad][local])
+/*
+ * Functions for accessing PCI configuration space with type 1 accesses on NUMA-Q
+ */
+
#define PCI_CONF1_ADDRESS(bus, dev, fn, reg) \
(0x80000000 | (BUS2LOCAL(bus) << 16) | (dev << 11) | (fn << 8) | (reg & ~3))
-static int pci_conf1_read (int seg, int bus, int dev, int fn, int reg, int len, u32 *value)
+int pci_conf1_read (int seg, int bus, int dev, int fn, int reg, int len, u32 *value)
{
unsigned long flags;
@@ -41,7 +45,7 @@
return 0;
}
-static int pci_conf1_write (int seg, int bus, int dev, int fn, int reg, int len, u32 value)
+int pci_conf1_write (int seg, int bus, int dev, int fn, int reg, int len, u32 value)
{
unsigned long flags;
-
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 : Thu Aug 15 2002 - 22:00:18 EST