|
@@ -1257,15 +1257,11 @@ static int rmqueue_bulk(struct zone *zone, unsigned int order,
|
|
|
void drain_zone_pages(struct zone *zone, struct per_cpu_pages *pcp)
|
|
|
{
|
|
|
unsigned long flags;
|
|
|
- int to_drain;
|
|
|
- unsigned long batch;
|
|
|
+ int to_drain, batch;
|
|
|
|
|
|
local_irq_save(flags);
|
|
|
batch = ACCESS_ONCE(pcp->batch);
|
|
|
- if (pcp->count >= batch)
|
|
|
- to_drain = batch;
|
|
|
- else
|
|
|
- to_drain = pcp->count;
|
|
|
+ to_drain = min(pcp->count, batch);
|
|
|
if (to_drain > 0) {
|
|
|
free_pcppages_bulk(zone, to_drain, pcp);
|
|
|
pcp->count -= to_drain;
|