static struct cpufreq_driver acpi_cpufreq_driver;
 
 static unsigned int acpi_pstate_strict;
-static struct msr __percpu *msrs;
 
 static bool boost_state(unsigned int cpu)
 {
        return false;
 }
 
-static void boost_set_msrs(bool enable, const struct cpumask *cpumask)
+static int boost_set_msr(bool enable)
 {
-       u32 cpu;
        u32 msr_addr;
-       u64 msr_mask;
+       u64 msr_mask, val;
 
        switch (boot_cpu_data.x86_vendor) {
        case X86_VENDOR_INTEL:
                msr_mask = MSR_K7_HWCR_CPB_DIS;
                break;
        default:
-               return;
+               return -EINVAL;
        }
 
-       rdmsr_on_cpus(cpumask, msr_addr, msrs);
+       rdmsrl(msr_addr, val);
 
-       for_each_cpu(cpu, cpumask) {
-               struct msr *reg = per_cpu_ptr(msrs, cpu);
-               if (enable)
-                       reg->q &= ~msr_mask;
-               else
-                       reg->q |= msr_mask;
-       }
+       if (enable)
+               val &= ~msr_mask;
+       else
+               val |= msr_mask;
 
-       wrmsr_on_cpus(cpumask, msr_addr, msrs);
+       wrmsrl(msr_addr, val);
+       return 0;
+}
+
+static void boost_set_msr_each(void *p_en)
+{
+       bool enable = (bool) p_en;
+
+       boost_set_msr(enable);
 }
 
 static int set_boost(int val)
 {
        get_online_cpus();
-       boost_set_msrs(val, cpu_online_mask);
+       on_each_cpu(boost_set_msr_each, (void *)(long)val, 1);
        put_online_cpus();
        pr_debug("Core Boosting %sabled.\n", val ? "en" : "dis");
 
 
 static int cpufreq_boost_online(unsigned int cpu)
 {
-       const struct cpumask *cpumask;
-
-       cpumask = get_cpu_mask(cpu);
        /*
         * On the CPU_UP path we simply keep the boost-disable flag
         * in sync with the current global state.
         */
-       boost_set_msrs(acpi_cpufreq_driver.boost_enabled, cpumask);
-       return 0;
+       return boost_set_msr(acpi_cpufreq_driver.boost_enabled);
 }
 
 static int cpufreq_boost_down_prep(unsigned int cpu)
 {
-       const struct cpumask *cpumask;
-
-       cpumask = get_cpu_mask(cpu);
-
        /*
         * Clear the boost-disable bit on the CPU_DOWN path so that
         * this cpu cannot block the remaining ones from boosting.
         */
-       boost_set_msrs(1, cpumask);
-       return 0;
+       return boost_set_msr(1);
 }
 
 /*
        if (!(boot_cpu_has(X86_FEATURE_CPB) || boot_cpu_has(X86_FEATURE_IDA)))
                return;
 
-       msrs = msrs_alloc();
-
-       if (!msrs)
-               return;
-
        acpi_cpufreq_driver.set_boost = set_boost;
        acpi_cpufreq_driver.boost_enabled = boost_state(0);
 
                                cpufreq_boost_online, cpufreq_boost_down_prep);
        if (ret < 0) {
                pr_err("acpi_cpufreq: failed to register hotplug callbacks\n");
-               msrs_free(msrs);
-               msrs = NULL;
                return;
        }
        acpi_cpufreq_online = ret;
 
 static void acpi_cpufreq_boost_exit(void)
 {
-       if (!msrs)
-               return;
-
        if (acpi_cpufreq_online >= 0)
                cpuhp_remove_state_nocalls(acpi_cpufreq_online);
-
-       msrs_free(msrs);
-       msrs = NULL;
 }
 
 static int __init acpi_cpufreq_init(void)