summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorBharat Nihalani <bnihalani@nvidia.com>2014-06-24 15:45:10 +0530
committerHarshada Kale <hkale@nvidia.com>2014-06-26 09:32:29 -0700
commit72988f78bb521e1c4cfe17c02271d2837a66bf04 (patch)
treee093814d0600d0e8acba06d9750ca9f2adf63069 /mm
parent8b0376e7bf00b8b5baad201097217b3b78b3313c (diff)
mm: Add NULL check before de-referencing vma
This prevents the following crash seen during boot-up: Unable to handle kernel NULL pointer dereference at virtual address 00000041 pgd = ffffffc037f68000 [00000041] *pgd=0000000000000000 Internal error: Oops: 96000005 [#1] PREEMPT SMP Modules linked in: inv_bmp180 inv_ak8975 inv_mpu CPU: 0 PID: 1457 Comm: IntentService[F Not tainted 3.10.40-g4abcb3f #1 task: ffffffc0393e0080 ti: ffffffc0393e8000 task.ti: ffffffc0393e8000 PC is at follow_page_mask+0x1c/0x378 LR is at __get_user_pages.part.88+0x124/0x700 pc : [<ffffffc00016c314>] lr : [<ffffffc00016e1d4>] pstate: 40000045 Bug 1525355 Change-Id: Ieed6942d7beb32964484f97d5cc671b42c4b60cb Signed-off-by: Bharat Nihalani <bnihalani@nvidia.com> Reviewed-on: http://git-master/r/427723 Tested-by: Vandana Salve <vsalve@nvidia.com> Reviewed-by: Krishna Reddy <vdumpa@nvidia.com>
Diffstat (limited to 'mm')
-rw-r--r--mm/memory.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/mm/memory.c b/mm/memory.c
index 8e101b74df71..07e1987979d9 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1485,7 +1485,12 @@ struct page *follow_page_mask(struct vm_area_struct *vma,
pte_t *ptep, pte;
spinlock_t *ptl;
struct page *page;
- struct mm_struct *mm = vma->vm_mm;
+ struct mm_struct *mm;
+
+ if (WARN_ON(!vma))
+ return NULL;
+
+ mm = vma->vm_mm;
*page_mask = 0;