ppc64 build failure.

Benjamin Herrenschmidt benh at kernel.crashing.org
Tue Oct 19 11:03:29 EST 2004


On Tue, 2004-10-19 at 09:33, Benjamin Herrenschmidt wrote:
> On Tue, 2004-10-19 at 09:05, Dave Jones wrote:
> > Ignore previous mail, this should fix it.
> >
> > .../...
> 
> What about this one instead ? io_page_mask is set to 0 by default,
> so iSeries would automatically get _IO_IS_VALID(*) == 0 if it doesn't
> initialize it...

OK, since nobody seem to really know what IO cycles are on iSeries,
let's allow them rather than mask them, thus falling back to the former
behaviour...

===== include/asm-ppc64/eeh.h 1.20 vs edited =====
--- 1.20/include/asm-ppc64/eeh.h	2004-10-06 16:05:23 +10:00
+++ edited/include/asm-ppc64/eeh.h	2004-10-19 09:31:54 +10:00
@@ -256,10 +256,6 @@
 
 #undef EEH_CHECK_ALIGN
 
-#define MAX_ISA_PORT 0x10000
-extern unsigned long io_page_mask;
-#define _IO_IS_VALID(port) ((port) >= MAX_ISA_PORT || (1 << (port>>PAGE_SHIFT)) & io_page_mask)
-
 static inline u8 eeh_inb(unsigned long port) {
 	u8 val;
 	if (!_IO_IS_VALID(port))
===== include/asm-ppc64/io.h 1.22 vs edited =====
--- 1.22/include/asm-ppc64/io.h	2004-09-21 19:14:10 +10:00
+++ edited/include/asm-ppc64/io.h	2004-10-19 09:32:20 +10:00
@@ -33,6 +33,12 @@
 
 extern unsigned long isa_io_base;
 extern unsigned long pci_io_base;
+extern unsigned long io_page_mask;
+
+#define MAX_ISA_PORT 0x10000
+
+#define _IO_IS_VALID(port) ((port) >= MAX_ISA_PORT || (1 << (port>>PAGE_SHIFT)) \
+			    & io_page_mask)
 
 #ifdef CONFIG_PPC_ISERIES
 /* __raw_* accessors aren't supported on iSeries */
===== arch/ppc64/kernel/iSeries_pci.c 1.24 vs edited =====
--- 1.24/arch/ppc64/kernel/iSeries_pci.c	2004-09-11 15:50:12 +10:00
+++ edited/arch/ppc64/kernel/iSeries_pci.c	2004-10-19 11:02:20 +10:00
@@ -55,6 +55,7 @@
 extern unsigned long iSeries_Base_Io_Memory;    
 
 extern struct iommu_table *tceTables[256];
+extern unsigned long io_page_mask;
 
 extern void iSeries_MmIoTest(void);
 
@@ -196,6 +197,7 @@
 	PPCDBG(PPCDBG_BUSWALK, "iSeries_pcibios_init Entry.\n"); 
 	iSeries_IoMmTable_Initialize();
 	find_and_init_phbs();
+	io_page_mask = -1;
 	/* pci_assign_all_busses = 0;		SFRXXX*/
 	PPCDBG(PPCDBG_BUSWALK, "iSeries_pcibios_init Exit.\n"); 
 }





More information about the Linuxppc64-dev mailing list