Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 944d2647 authored by Andi Kleen's avatar Andi Kleen Committed by Linus Torvalds
Browse files

[PATCH] x86_64: Drop global bit from early low mappings



Drop global bit from early low mappings

Suggested by Linus, originally also proposed by Suresh.

This fixes a race condition with early start of udev, originally
tracked down by Suresh B. Siddha. The problem was that switching
to the user space VM would not clear the global low mappings
for the beginning of memory, which lead to memory corruption.

Drop the global bits.

The kernel mapping stays global because it should stay constant.

Signed-off-by: default avatarAndi Kleen <ak@suse.de>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f6e63cfb
Loading
Loading
Loading
Loading
+20 −20
Original line number Diff line number Diff line
@@ -270,26 +270,26 @@ ENTRY(level3_kernel_pgt)
.org 0x4000
ENTRY(level2_ident_pgt)
	/* 40MB for bootup. 	*/
	.quad	0x0000000000000183
	.quad	0x0000000000200183
	.quad	0x0000000000400183
	.quad	0x0000000000600183
	.quad	0x0000000000800183
	.quad	0x0000000000A00183
	.quad	0x0000000000C00183
	.quad	0x0000000000E00183
	.quad	0x0000000001000183
	.quad	0x0000000001200183
	.quad	0x0000000001400183
	.quad	0x0000000001600183
	.quad	0x0000000001800183
	.quad	0x0000000001A00183
	.quad	0x0000000001C00183
	.quad	0x0000000001E00183
	.quad	0x0000000002000183
	.quad	0x0000000002200183
	.quad	0x0000000002400183
	.quad	0x0000000002600183
	.quad	0x0000000000000083
	.quad	0x0000000000200083
	.quad	0x0000000000400083
	.quad	0x0000000000600083
	.quad	0x0000000000800083
	.quad	0x0000000000A00083
	.quad	0x0000000000C00083
	.quad	0x0000000000E00083
	.quad	0x0000000001000083
	.quad	0x0000000001200083
	.quad	0x0000000001400083
	.quad	0x0000000001600083
	.quad	0x0000000001800083
	.quad	0x0000000001A00083
	.quad	0x0000000001C00083
	.quad	0x0000000001E00083
	.quad	0x0000000002000083
	.quad	0x0000000002200083
	.quad	0x0000000002400083
	.quad	0x0000000002600083
	/* Temporary mappings for the super early allocator in arch/x86_64/mm/init.c */
	.globl temp_boot_pmds
temp_boot_pmds: