• Andreas Herrmann's avatar
    cpufreq / powernow-k8: Remove usage of smp_processor_id() in preemptible code · e4df1cbc
    Andreas Herrmann authored
    Commit 6889125b
    (cpufreq/powernow-k8: workqueue user shouldn't migrate the kworker to another CPU)
    causes powernow-k8 to trigger a preempt warning, e.g.:
    
      BUG: using smp_processor_id() in preemptible [00000000] code: cpufreq/3776
      caller is powernowk8_target+0x20/0x49
      Pid: 3776, comm: cpufreq Not tainted 3.6.0 #9
      Call Trace:
       [<ffffffff8125b447>] debug_smp_processor_id+0xc7/0xe0
       [<ffffffff814877e7>] powernowk8_target+0x20/0x49
       [<ffffffff81482b02>] __cpufreq_driver_target+0x82/0x8a
       [<ffffffff81484fc6>] cpufreq_governor_performance+0x4e/0x54
       [<ffffffff81482c50>] __cpufreq_governor+0x8c/0xc9
       [<ffffffff81482e6f>] __cpufreq_set_policy+0x1a9/0x21e
       [<ffffffff814839af>] store_scaling_governor+0x16f/0x19b
       [<ffffffff81484f16>] ? cpufreq_update_policy+0x124/0x124
       [<ffffffff8162b4a5>] ? _raw_spin_unlock_irqrestore+0x2c/0x49
       [<ffffffff81483640>] store+0x60/0x88
       [<ffffffff811708c0>] sysfs_write_file+0xf4/0x130
       [<ffffffff8111243b>] vfs_write+0xb5/0x151
       [<ffffffff811126e0>] sys_write+0x4a/0x71
       [<ffffffff816319a9>] system_call_fastpath+0x16/0x1b
    
    Fix this by by always using work_on_cpu().
    Signed-off-by: default avatarAndreas Herrmann <andreas.herrmann3@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
    e4df1cbc
powernow-k8.c 32.5 KB