free_block(cachep, ccold->entry, ccold->avail); 
free_block(cachep, ccold->entry, ccold->avail, cpu_to_node(i)); 
static int do_tune_cpucache(kmem_cache_t *cachep, int limit, int batchcount,				int shared){	struct ccupdate_struct new;	int i, err;	memset(&new.new,0,sizeof(new.new));	for_each_online_cpu(i) {		new.new[i] = alloc_arraycache(cpu_to_node(i), limit, batchcount);		if (!new.new[i]) {			for (i--; i >= 0; i--) kfree(new.new[i]);			return -ENOMEM;		}	}	new.cachep = cachep;	smp_call_function_all_cpus(do_ccupdate_local, (void *)&new);	check_irq_on();	spin_lock_irq(&cachep->spinlock);	cachep->batchcount = batchcount;	cachep->limit = limit;	cachep->shared = shared;	spin_unlock_irq(&cachep->spinlock);	for_each_online_cpu(i) {		struct array_cache *ccold = new.new[i];		if (!ccold)			continue;		spin_lock_irq(&cachep->nodelists[cpu_to_node(i)]->list_lock);		free_block(cachep, ccold->entry, ccold->avail);		spin_unlock_irq(&cachep->nodelists[cpu_to_node(i)]->list_lock);		kfree(ccold);	}	err = alloc_kmemlist(cachep);	if (err) {		printk(KERN_ERR "alloc_kmemlist failed for %s, error %d.\n",				cachep->name, -err);		BUG();	}	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/ff69416e6323fe9d38c42a06ebdefeb58bbe9336/slab.c/buggy/mm/slab.c