* Jeremy Fitzhardinge <jeremy@xxxxxxxx> wrote:
This isn't correct, because it will set _PAGE_GLOBAL on 32-bit unconditionally. It needs to be something like:
hm, why is that a problem? Ah, the VDSO page must not be global-mapped, right? It's getting late here, i should stop modifying the kernel ;)
+#define GLOBAL_PGPROT(prot) __pgprot(prot | _PAGE_GLOBAL)
+
+#define PAGE_KERNEL GLOBAL_PGPROT(__PAGE_KERNEL)
+#define PAGE_KERNEL_RO GLOBAL_PGPROT(__PAGE_KERNEL_RO)
+#define PAGE_KERNEL_EXEC GLOBAL_PGPROT(__PAGE_KERNEL_EXEC)
+#define PAGE_KERNEL_RX GLOBAL_PGPROT(__PAGE_KERNEL_RX)
+#define PAGE_KERNEL_NOCACHE GLOBAL_PGPROT(__PAGE_KERNEL_NOCACHE)
+#define PAGE_KERNEL_LARGE GLOBAL_PGPROT(__PAGE_KERNEL_LARGE)
+#define PAGE_KERNEL_LARGE_EXEC GLOBAL_PGPROT(__PAGE_KERNEL_LARGE_EXEC)
+#define PAGE_KERNEL_VSYSCALL GLOBAL_PGPROT(__PAGE_KERNEL_VSYSCALL)
+#define PAGE_KERNEL_VSYSCALL_NOCACHE GLOBAL_PGPROT(__PAGE_KERNEL_VSYSCALL_NOCACHE)
i suspect you wanted to make GLOBAL_PGPROT a NOP on 32-bit?
but i think it would be better to just do this distinction for the PAGE_KERNEL_VSYSCALL?