/* The processor must either be the current processor and the thread pinned to the current processor or a processor that is not online.  */
static void drain_pages(unsigned int cpu)
/* The processor must either be the current processor and the thread pinned to the current processor or a processor that is not online.  */
static void drain_pages(unsigned int cpu)
{
	unsigned long flags;
	struct zone *zone;
	for_each_populated_zone(zone) {
		struct per_cpu_pageset *pset;
		struct per_cpu_pages *pcp;
		pset = zone_pcp(zone, cpu);
		pcp = &pset->pcp;
		local_irq_save(flags);
		free_pcppages_bulk(zone, pcp->count, pcp);
		pcp->count = 0;
		local_irq_restore(flags);
	}
}