Skip to contentSkip to conversation

early ioremap not working with 2.4.19-pre1-aa1 ?

DISCUSSION Martin J. Bligh 2 participants 3 messages Mar 1, 2002 – Mar 7, 2002

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

I have code for the NUMA-Q systems that does an ioremap as the first thing in smp_boot_cpus (ia32 tree). This seems to work fine until I install the aa patches ... then it hangs in the ioremap.

Has anyone got any idea why this might be? I'd really like to test out the -aa vm patches on this box ... I can debug it some more - just looking for an easy answer ;-)

Thanks,

Martin.

#1 lore raw
Quoted 4 lines · Martin J. Bligh

I have code for the NUMA-Q systems that does an ioremap as the first thing in smp_boot_cpus (ia32 tree). This seems to work fine until I install the aa patches ... then it hangs in the ioremap.

this sounds like the same problem of the MXT patch. In short pte_alloc and in turn ioremap was usable only after the initcalls.

Does this incremental patch fix it? (untested)

include/linux/highmem.h renamed from include/linux/highmem.h.~1~ +2 -0
@@ -12,6 +12,7 @@
 
 /* declarations for linux/mm/highmem.c */
 unsigned int nr_free_highpages(void);
+extern void init_kmap(void);
 
 extern struct buffer_head *create_bounce(int rw, struct buffer_head * bh_orig);
 
@@ -64,6 +65,7 @@
 #else /* CONFIG_HIGHMEM */
 
 static inline unsigned int nr_free_highpages(void) { return 0; }
+#define init_kmap() do { } while(0)
 
 static inline void *kmap(struct page *page) { return page_address(page); }
 
init/main.c renamed from init/main.c.~1~ +1 -0
@@ -599,6 +599,7 @@
 	mem_init();
 	kmem_cache_sizes_init();
 	pgtable_cache_init();
+	init_kmap();
 
 #ifdef CONFIG_PERFMON
 	perfmon_init();
mm/highmem.c renamed from mm/highmem.c.~1~ +1 -2
@@ -45,7 +45,7 @@
 
 static wait_queue_head_t pkmap_map_wait[KM_NR_SERIES];
 
-static __init int init_kmap(void)
+void __init init_kmap(void)
 {
 	int i;
 
@@ -56,7 +56,6 @@
 #endif
 	return 0;
 }
-__initcall(init_kmap);
 
 static void flush_all_zero_pkmaps(void)
 {
Quoted 8 lines

Has anyone got any idea why this might be? I'd really like to test out the -aa vm patches on this box ... I can debug it some more - just looking for an easy answer ;-)

Thanks,

Martin.

Andrea

#2 lore raw
Quoted 9 lines
Quoted 4 lines

I have code for the NUMA-Q systems that does an ioremap as the first thing in smp_boot_cpus (ia32 tree). This seems to work fine until I install the aa patches ... then it hangs in the ioremap.

this sounds like the same problem of the MXT patch. In short pte_alloc and in turn ioremap was usable only after the initcalls.

Does this incremental patch fix it? (untested)

Sorry for the slow test cycle - this works just great ... will this make it back to your main tree?

Thanks very much for the patch,

Martin.