]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commit
x86/oprofile/ppro: Do not use __this_cpu*() in preemptible context
authorBorislav Petkov <bp@suse.de>
Tue, 7 Nov 2017 17:53:07 +0000 (18:53 +0100)
committerThadeu Lima de Souza Cascardo <cascardo@canonical.com>
Thu, 16 Nov 2017 21:05:41 +0000 (19:05 -0200)
commiteb72e606c792098801043fe226b0a59944ac1485
tree3dd1115d64d7699b58ef24d7cca1787b9a66c8a9
parenta55b5204f67cb0ebf8a47865d7f93b2a02bb58ca
x86/oprofile/ppro: Do not use __this_cpu*() in preemptible context

BugLink: http://bugs.launchpad.net/bugs/1732726
commit a743bbeef27b9176987ec0cb7f906ab0ab52d1da upstream.

The warning below says it all:

  BUG: using __this_cpu_read() in preemptible [00000000] code: swapper/0/1
  caller is __this_cpu_preempt_check
  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.0-rc8 #4
  Call Trace:
   dump_stack
   check_preemption_disabled
   ? do_early_param
   __this_cpu_preempt_check
   arch_perfmon_init
   op_nmi_init
   ? alloc_pci_root_info
   oprofile_arch_init
   oprofile_init
   do_one_initcall
   ...

These accessors should not have been used in the first place: it is PPro so
no mixed silicon revisions and thus it can simply use boot_cpu_data.

Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Tested-by: Fengguang Wu <fengguang.wu@intel.com>
Fix-creation-mandated-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Robert Richter <rric@kernel.org>
Cc: x86@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@canonical.com>
arch/x86/oprofile/op_model_ppro.c