From: Zlatko Calusic Date: Fri, 28 Dec 2012 02:16:38 +0000 (+0100) Subject: mm: fix null pointer dereference in wait_iff_congested() X-Git-Url: https://openfabrics.org/gitweb/?a=commitdiff_plain;h=ecccd1248d6e6986130ffcc3b0d003cb46a485c0;p=~shefty%2Frdma-dev.git mm: fix null pointer dereference in wait_iff_congested() An unintended consequence of commit 4ae0a48b5efc ("mm: modify pgdat_balanced() so that it also handles order-0") is that wait_iff_congested() can now be called with NULL 'struct zone *' producing kernel oops like this: BUG: unable to handle kernel NULL pointer dereference IP: [] wait_iff_congested+0x59/0x140 This trivial patch fixes it. Reported-by: Zhouping Liu Reported-and-tested-by: Sedat Dilek Cc: Andrew Morton Cc: Mel Gorman Cc: Hugh Dickins Signed-off-by: Zlatko Calusic Signed-off-by: Linus Torvalds --- diff --git a/mm/vmscan.c b/mm/vmscan.c index 23291b9ae87..16b42af393a 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2775,7 +2775,7 @@ loop_again: if (total_scanned && (sc.priority < DEF_PRIORITY - 2)) { if (has_under_min_watermark_zone) count_vm_event(KSWAPD_SKIP_CONGESTION_WAIT); - else + else if (unbalanced_zone) wait_iff_congested(unbalanced_zone, BLK_RW_ASYNC, HZ/10); }