printk(KERN_INFO PFX "MP systems not supported by PSB BIOS structure\n"); 
printk(KERN_ERR PFX "MP systems not supported by PSB BIOS structure\n"); 
static int __init powernowk8_cpu_init(struct cpufreq_policy *pol){	struct powernow_k8_data *data;	cpumask_t oldmask = CPU_MASK_ALL;	int rc;	if (!check_supported_cpu(pol->cpu))		return -ENODEV;	data = kmalloc(sizeof(struct powernow_k8_data), GFP_KERNEL);	if (!data) {		printk(KERN_ERR PFX "unable to alloc powernow_k8_data");		return -ENOMEM;	}	memset(data,0,sizeof(struct powernow_k8_data));	data->cpu = pol->cpu;	if (powernow_k8_cpu_init_acpi(data)) {		/*		 * Use the PSB BIOS structure. This is only availabe on		 * an UP version, and is deprecated by AMD.		 */		if ((num_online_cpus() != 1) || (num_possible_cpus() != 1)) {			printk(KERN_INFO PFX "MP systems not supported by PSB BIOS structure\n");			kfree(data);			return -ENODEV;		}		if (pol->cpu != 0) {			printk(KERN_ERR PFX "init not cpu 0\n");			kfree(data);			return -ENODEV;		}		rc = find_psb_table(data);		if (rc) {			kfree(data);			return -ENODEV;		}	}	/* only run on specific CPU from here on */	oldmask = current->cpus_allowed;	set_cpus_allowed(current, cpumask_of_cpu(pol->cpu));	schedule();	if (smp_processor_id() != pol->cpu) {		printk(KERN_ERR "limiting to cpu %u failed\n", pol->cpu);		goto err_out;	}	if (pending_bit_stuck()) {		printk(KERN_ERR PFX "failing init, change pending bit set\n");		goto err_out;	}	if (query_current_values_with_pending_wait(data))		goto err_out;	fidvid_msr_init();	/* run on any CPU again */	set_cpus_allowed(current, oldmask);	schedule();	pol->governor = CPUFREQ_DEFAULT_GOVERNOR;	/* Take a crude guess here. 	 * That guess was in microseconds, so multiply with 1000 */	pol->cpuinfo.transition_latency = (((data->rvo + 8) * data->vstable * VST_UNITS_20US)	    + (3 * (1 << data->irt) * 10)) * 1000;	pol->cur = find_khz_freq_from_fid(data->currfid);	dprintk("policy current frequency %d kHz\n", pol->cur);	/* min/max the cpu is capable of */	if (cpufreq_frequency_table_cpuinfo(pol, data->powernow_table)) {		printk(KERN_ERR PFX "invalid powernow_table\n");		powernow_k8_cpu_exit_acpi(data);		kfree(data->powernow_table);		kfree(data);		return -EINVAL;	}	cpufreq_frequency_table_get_attr(data->powernow_table, pol->cpu);	printk("cpu_init done, current fid 0x%x, vid 0x%x\n",	       data->currfid, data->currvid);	powernow_data[pol->cpu] = data;	return 0;err_out:	set_cpus_allowed(current, oldmask);	schedule();	powernow_k8_cpu_exit_acpi(data);	kfree(data);	return -ENODEV;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/065b807ca1f5bdbeb081e3cf75ac8de9be8ac212/powernow-k8.c/clean/arch/i386/kernel/cpu/cpufreq/powernow-k8.c