if (us2e_freq_table) { kfree(us2e_freq_table); us2e_freq_table = NULL; } 
kfree(us2e_freq_table); us2e_freq_table = NULL; 
static int __init us2e_freq_init(void){	unsigned long manuf, impl, ver;	int ret;	__asm__("rdpr %%ver, %0" : "=r" (ver));	manuf = ((ver >> 48) & 0xffff);	impl  = ((ver >> 32) & 0xffff);	if (manuf == 0x17 && impl == 0x13) {		struct cpufreq_driver *driver;		ret = -ENOMEM;		driver = kmalloc(sizeof(struct cpufreq_driver), GFP_KERNEL);		if (!driver)			goto err_out;		memset(driver, 0, sizeof(*driver));		us2e_freq_table = kmalloc(			(NR_CPUS * sizeof(struct us2e_freq_percpu_info)),			GFP_KERNEL);		if (!us2e_freq_table)			goto err_out;		memset(us2e_freq_table, 0,		       (NR_CPUS * sizeof(struct us2e_freq_percpu_info)));		driver->init = us2e_freq_cpu_init;		driver->verify = us2e_freq_verify;		driver->target = us2e_freq_target;		driver->get = us2e_freq_get;		driver->exit = us2e_freq_cpu_exit;		driver->owner = THIS_MODULE,		strcpy(driver->name, "UltraSPARC-IIe");		cpufreq_us2e_driver = driver;		ret = cpufreq_register_driver(driver);		if (ret)			goto err_out;		return 0;err_out:		if (driver) {			kfree(driver);			cpufreq_us2e_driver = NULL;		}		if (us2e_freq_table) {			kfree(us2e_freq_table);			us2e_freq_table = NULL;		}		return ret;	}	return -ENODEV;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/b2325fe1b7e5654fac9e9419423aa2c58a3dbd83/us2e_cpufreq.c/clean/arch/sparc64/kernel/us2e_cpufreq.c