unlock_cpu_hotplug(); 
int mtrr_del_page(int reg, unsigned long base, unsigned long size){	int i, max;	mtrr_type ltype;	unsigned long lbase;	unsigned int lsize;	int error = -EINVAL;	if (!mtrr_if)		return -ENXIO;	max = num_var_ranges;	down(&main_lock);	if (reg < 0) {		/*  Search for existing MTRR  */		for (i = 0; i < max; ++i) {			mtrr_if->get(i, &lbase, &lsize, &ltype);			if (lbase == base && lsize == size) {				reg = i;				break;			}		}		if (reg < 0) {			printk(KERN_DEBUG "mtrr: no MTRR for %lx000,%lx000 found\n", base,			       size);			goto out;		}	}	if (reg >= max) {		printk(KERN_WARNING "mtrr: register: %d too big\n", reg);		goto out;	}	if (is_cpu(CYRIX) && !use_intel()) {		if ((reg == 3) && arr3_protected) {			printk(KERN_WARNING "mtrr: ARR3 cannot be changed\n");			goto out;		}	}	mtrr_if->get(reg, &lbase, &lsize, &ltype);	if (lsize < 1) {		printk(KERN_WARNING "mtrr: MTRR %d not used\n", reg);		goto out;	}	if (usage_table[reg] < 1) {		printk(KERN_WARNING "mtrr: reg: %d has count=0\n", reg);		goto out;	}	if (--usage_table[reg] < 1)		set_mtrr(reg, 0, 0, 0);	error = reg; out:	up(&main_lock);	return error;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3b520b238e018ef0e9d11c9115d5e7d9419c4ef9/main.c/clean/arch/i386/kernel/cpu/mtrr/main.c