Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2a13515c authored by KOSAKI Motohiro's avatar KOSAKI Motohiro Committed by Linus Torvalds
Browse files

mm: clear pages_scanned only if draining a pcp adds pages to the buddy allocator again



commit 2ff754fa ("mm: clear pages_scanned only if draining a pcp adds
pages to the buddy allocator again") fixed one free_pcppages_bulk()
misuse.  But two another miuse still exist.

This patch fixes it.

Signed-off-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: default avatarDavid Rientjes <rientjes@google.com>
Acked-by: default avatarMel Gorman <mel@csn.ul.ie>
Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Reviewed-by: default avatarMinchan Kim <minchan@kernel.org>
Cc: Wu Fengguang <fengguang.wu@intel.com>
Reviewed-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Cc: Rik van Riel <riel@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent 3d3727cd
Loading
Loading
Loading
Loading
+6 −3
Original line number Original line Diff line number Diff line
@@ -1158,8 +1158,10 @@ void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
		to_drain = pcp->batch;
		to_drain = pcp->batch;
	else
	else
		to_drain = pcp->count;
		to_drain = pcp->count;
	if (to_drain > 0) {
		free_pcppages_bulk(zone, to_drain, pcp);
		free_pcppages_bulk(zone, to_drain, pcp);
		pcp->count -= to_drain;
		pcp->count -= to_drain;
	}
	local_irq_restore(flags);
	local_irq_restore(flags);
}
}
#endif
#endif
@@ -3915,6 +3917,7 @@ static int __zone_pcp_update(void *data)
		pcp = &pset->pcp;
		pcp = &pset->pcp;


		local_irq_save(flags);
		local_irq_save(flags);
		if (pcp->count > 0)
			free_pcppages_bulk(zone, pcp->count, pcp);
			free_pcppages_bulk(zone, pcp->count, pcp);
		setup_pageset(pset, batch);
		setup_pageset(pset, batch);
		local_irq_restore(flags);
		local_irq_restore(flags);