Skip to content

Commit ecccd12

Browse files
Zlatko Calusictorvalds
authored andcommitted
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 <zliu@redhat.com> Reported-and-tested-by: Sedat 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: Zlatko Calusic <zlatko.calusic@iskon.hr> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent 101e5c7 commit ecccd12

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

mm/vmscan.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2775,7 +2775,7 @@ static unsigned long balance_pgdat(pg_data_t *pgdat, int order,
27752775
if (total_scanned && (sc.priority < DEF_PRIORITY - 2)) {
27762776
if (has_under_min_watermark_zone)
27772777
count_vm_event(KSWAPD_SKIP_CONGESTION_WAIT);
2778-
else
2778+
else if (unbalanced_zone)
27792779
wait_iff_congested(unbalanced_zone, BLK_RW_ASYNC, HZ/10);
27802780
}
27812781

0 commit comments

Comments
 (0)