Patch 2:
Disable trying to flush TLBs on other processors while they're frozen.
(Local TLBs are flushed on exit from the processor-freezer).
Regards,
Nigel
diff -ruN linux-2.6.9-rc1/mm/highmem.c software-suspend-linux-2.6.9-rc1-rev3/mm/highmem.c
--- linux-2.6.9-rc1/mm/highmem.c 2004-09-07 21:59:01.000000000 +1000
+++ software-suspend-linux-2.6.9-rc1-rev3/mm/highmem.c 2004-09-09 19:36:24.000000000 +1000
@@ -26,6 +26,7 @@
#include <linux/init.h>
#include <linux/hash.h>
#include <linux/highmem.h>
+#include <linux/suspend.h>
#include <asm/tlbflush.h>
static mempool_t *page_pool, *isa_page_pool;
@@ -94,7 +95,12 @@
set_page_address(page, NULL);
}
- flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP));
+#ifdef CONFIG_PM
+ if (software_suspend_state & SOFTWARE_SUSPEND_FREEZE_SMP)
+ __flush_tlb();
+ else
+#endif
+ flush_tlb_kernel_range(PKMAP_ADDR(0), PKMAP_ADDR(LAST_PKMAP));
}
static inline unsigned long map_new_virtual(struct page *page)
--
Nigel Cunningham
Pastoral Worker
Christian Reformed Church of Tuggeranong
PO Box 1004, Tuggeranong, ACT 2901
Many today claim to be tolerant. True tolerance, however, can cope with others
being intolerant.