Check for the entire kernel range for temporarily cleared PMD entries.

From: Jan Beulich <JBeulich@novell.com>
Signed-off-by: Christian Limpach <Christian.Limpach@cl.cam.ac.uk>
This commit is contained in:
cl349@firebug.cl.cam.ac.uk committed 2006-02-16 11:30:44 +00:00
1 parent 3d77bc4d6b
commit 668fe87cad
1 file changed
+4 -4
@@ -366,12 +366,12 @@ asmlinkage void __kprobes do_page_fault(struct pt_regs *regs,
*/
if (unlikely(address >= TASK_SIZE64)) {
/*
* Don't check for the module range here: its PML4
* is always initialized because it's shared with the main
* kernel text. Only vmalloc may need PML4 syncups.
* Must check for the entire kernel range here: with writable
* page tables the hypervisor may temporarily clear PMD
* entries.
*/
if (!(error_code & (PF_RSVD|PF_USER|PF_PROT)) &&
((address >= VMALLOC_START && address < VMALLOC_END))) {
address >= PAGE_OFFSET) {
if (vmalloc_fault(address) < 0)
goto bad_area_nosemaphore;
return;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.