Commit ecccd124 authored by Zlatko Calusic's avatar Zlatko Calusic Committed by Linus Torvalds

mm: fix null pointer dereference in wait_iff_congested()

An unintended consequence of commit 4ae0a48b ("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: default avatarZhouping Liu <zliu@redhat.com>
Reported-and-tested-by: default avatarSedat Dilek <sedat.dilek@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Hugh Dickins <hughd@google.com>
Signed-off-by: default avatarZlatko Calusic <zlatko.calusic@iskon.hr>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 101e5c74
......@@ -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);
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment