Skip to contentSkip to conversation

Suspend2 Merge: Supress various actions/errors while suspending [2/5]

PATCH New Nigel Cunningham 1 participant 1 message Sep 16, 2004

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

PATCH 1/1 Suspend2 Merge: Supress various actions/errors while suspending [2/5]

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

mm/highmem.c +7 -1
diff -ruN linux-2.6.9-rc1/mm/highmem.c software-suspend-linux-2.6.9-rc1-rev3/mm/highmem.c
@@ -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)
Signature · 7 lines
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.