Skip to content

Commit

Permalink
mm: fix null pointer dereference in wait_iff_congested()
Browse files Browse the repository at this point in the history
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 <[email protected]>
Reported-and-tested-by: Sedat Dilek <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Hugh Dickins <[email protected]>
Signed-off-by: Zlatko Calusic <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Zlatko Calusic authored and torvalds committed Dec 28, 2012
1 parent 101e5c7 commit ecccd12
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion mm/vmscan.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
count_vm_event(KSWAPD_SKIP_CONGESTION_WAIT);
else
else if (unbalanced_zone)
wait_iff_congested(unbalanced_zone, BLK_RW_ASYNC, HZ/10);
}

Expand Down

0 comments on commit ecccd12

Please sign in to comment.