Browse files

mm: fix null pointer dereference in wait_iff_congested()

An unintended consequence of commit 4ae0a48 ("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: [<ffffffff811542d9>] 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 <>
  • Loading branch information...
1 parent 101e5c7 commit ecccd1248d6e6986130ffcc3b0d003cb46a485c0 Zlatko Calusic committed with Dec 28, 2012
Showing with 1 addition and 1 deletion.
  1. +1 −1 mm/vmscan.c
@@ -2775,7 +2775,7 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order,
if (total_scanned && (sc.priority < DEF_PRIORITY - 2)) {
if (has_under_min_watermark_zone)
- else
+ else if (unbalanced_zone)
wait_iff_congested(unbalanced_zone, BLK_RW_ASYNC, HZ/10);

0 comments on commit ecccd12

Please sign in to comment.