--- initial
+++ final
@@ -1,66 +1,65 @@
 static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy) {
   unsigned int i;
   unsigned int cpu = policy->cpu;
   struct cpufreq_acpi_io *data;
   unsigned int result = 0;
   pr_debug("acpi_cpufreq_cpu_init\n");
   data = kzalloc(sizeof(*data), GFP_KERNEL);
   if (!data) return (-ENOMEM);
   acpi_io_data[cpu] = data;
   result = acpi_processor_register_performance(&data->acpi_data, cpu);
   if (result) goto err_free;
   /* capability check */
   if (data->acpi_data.state_count <= 1) {
     pr_debug("No P-States\n");
     result = -ENODEV;
     goto err_unreg;
   }
   if ((data->acpi_data.control_register.space_id != ACPI_ADR_SPACE_FIXED_HARDWARE) || (data->acpi_data.status_register.space_id != ACPI_ADR_SPACE_FIXED_HARDWARE)) {
     pr_debug("Unsupported address space [%d, %d]\n", (u32)(data->acpi_data.control_register.space_id), (u32)(data->acpi_data.status_register.space_id));
     result = -ENODEV;
     goto err_unreg;
   }
   /* alloc freq_table */
   data->freq_table = kmalloc(sizeof(*data->freq_table) * (data->acpi_data.state_count + 1), GFP_KERNEL);
   if (!data->freq_table) {
     result = -ENOMEM;
     goto err_unreg;
   }
   /* detect transition latency */
   policy->cpuinfo.transition_latency = 0;
   for (i = 0; i < data->acpi_data.state_count; i++) {
     if ((data->acpi_data.states[i].transition_latency * 1000) > policy->cpuinfo.transition_latency) { policy->cpuinfo.transition_latency = data->acpi_data.states[i].transition_latency * 1000; }
   }
   policy->cur = processor_get_freq(data, policy->cpu);
   /* table init */
   for (i = 0; i <= data->acpi_data.state_count; i++) {
     data->freq_table[i].driver_data = i;
     if (i < data->acpi_data.state_count) {
       data->freq_table[i].frequency = data->acpi_data.states[i].core_frequency * 1000;
     } else {
       data->freq_table[i].frequency = CPUFREQ_TABLE_END;
     }
   }
-  result = cpufreq_frequency_table_cpuinfo(policy, data->freq_table);
+  result = cpufreq_table_validate_and_show(policy, data->freq_table);
   if (result) { goto err_freqfree; }
   /* notify BIOS that we exist */
   acpi_processor_notify_smm(THIS_MODULE);
   printk(KERN_INFO "acpi-cpufreq: CPU%u - ACPI performance management "
                    "activated.\n",
          cpu);
   for (i = 0; i < data->acpi_data.state_count; i++)
     pr_debug("     %cP%d: %d MHz, %d mW, %d uS, %d uS, 0x%x 0x%x\n", (i == data->acpi_data.state ? '*' : ' '), i, (u32)data->acpi_data.states[i].core_frequency, (u32)data->acpi_data.states[i].power, (u32)data->acpi_data.states[i].transition_latency, (u32)data->acpi_data.states[i].bus_master_latency, (u32)data->acpi_data.states[i].status, (u32)data->acpi_data.states[i].control);
-  cpufreq_frequency_table_get_attr(data->freq_table, policy->cpu);
   /* the first call to ->target() should result in us actually
    * writing something to the appropriate registers. */
   data->resume = 1;
   return (result);
 err_freqfree:
   kfree(data->freq_table);
 err_unreg:
   acpi_processor_unregister_performance(&data->acpi_data, cpu);
 err_free:
   kfree(data);
   acpi_io_data[cpu] = NULL;
   return (result);
 }<sep>@@
expression policy,table;
@@

-       cpufreq_frequency_table_cpuinfo
+       cpufreq_table_validate_and_show
		(policy, table)
...
-       cpufreq_frequency_table_get_attr(table, policy->cpu);