On Thu, 2016-09-29 at 15:04 +0800, Hillf Danton wrote: > On Wednesday, September 28, 2016 1:19 AM Tim Chen wrote > [...] > > > > + > > +static int alloc_swap_slot_cache(int cpu) > > +{ > > + struct swap_slots_cache *cache; > > + > > + cache = &per_cpu(swp_slots, cpu); > > + mutex_init(&cache->alloc_lock); > > + spin_lock_init(&cache->free_lock); > > + cache->nr = 0; > > + cache->cur = 0; > > + cache->n_ret = 0; > > + cache->slots = vzalloc(sizeof(swp_entry_t) * SWAP_SLOTS_CACHE_SIZE); > > + if (!cache->slots) { > > + swap_slot_cache_enabled = false; > > + return -ENOMEM; > > + } > > + cache->slots_ret = vzalloc(sizeof(swp_entry_t) * SWAP_SLOTS_CACHE_SIZE); > > + if (!cache->slots_ret) { > > + vfree(cache->slots); > > + swap_slot_cache_enabled = false; > > + return -ENOMEM; > > + } > > + return 0; > > +} > > + > [...] > > > > + > > +static void free_slot_cache(int cpu) > > +{ > > + struct swap_slots_cache *cache; > > + > > + mutex_lock(&swap_slots_cache_mutex); > > + drain_slots_cache_cpu(cpu, SLOTS_CACHE | SLOTS_CACHE_RET); > > + cache = &per_cpu(swp_slots, cpu); > > + cache->nr = 0; > > + cache->cur = 0; > > + cache->n_ret = 0; > > + vfree(cache->slots); > Also free cache->slots_ret? Good point. Should free cache->slots_ret here. Tim > > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>