Re: Linux 2.6.15-rc3

From: Michael Krufky
Date: Tue Nov 29 2005 - 03:24:21 EST


Nick Piggin wrote:

Michael Krufky wrote:

Unable to handle kernel NULL pointer dereference at virtual address

EFLAGS: 00010202 (2.6.15-rc3) EIP is at vm_normal_page+0x17/0x60

Process gdb (pid: 5628, threadinfo=f488e000 task=f7239a30)

[<c014a8f5>] get_user_pages+0x29f/0x309

The clues point to the following patch. Can you give it a test
please?

Thanks,
Nick

Nick-

Thank you, this patch fixed the oops, and it also fixed another bug that I didnt yet report:

2.6.15-rc3 would hang when rebooting, just after it says, "Sending all processes the TERM signal...."

Your patch below fixes this as well. I've noticed that akpm has already applied this to his tree. :-D

Cheers,

Michael Krufky

vm_normal_page can be called with a NULL vma. This can be replaced with
gate_vma, and no problem because none of the gate vmas use VM_PFNMAP
(if they did they would need to set vm_pgoff).

Signed-off-by: Nick Piggin <npiggin@xxxxxxx>

Index: linux-2.6/mm/memory.c
===================================================================
--- linux-2.6.orig/mm/memory.c
+++ linux-2.6/mm/memory.c
@@ -988,7 +988,8 @@ int get_user_pages(struct task_struct *t
return i ? : -EFAULT;
}
if (pages) {
- struct page *page = vm_normal_page(vma, start, *pte);
+ struct page *page;
+ page = vm_normal_page(gate_vma, start, *pte);
pages[i] = page;
if (page)
get_page(page);



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/