From: David S. Miller Date: Mon, 11 Aug 2014 22:38:46 +0000 (-0700) Subject: sparc64: Fix pcr_ops initialization and usage bugs. X-Git-Tag: omap-for-v3.17/fixes-against-rc2~77^2 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8bccf5b313180faefce38e0d1140f76e0f327d28;p=pandora-kernel.git sparc64: Fix pcr_ops initialization and usage bugs. Christopher reports that perf_event_print_debug() can crash in uniprocessor builds. The crash is due to pcr_ops being NULL. This happens because pcr_arch_init() is only invoked by smp_cpus_done() which only executes in SMP builds. init_hw_perf_events() is closely intertwined with pcr_ops being setup properly, therefore: 1) Call pcr_arch_init() early on from init_hw_perf_events(), instead of from smp_cpus_done(). 2) Do not hook up a PMU type if pcr_ops is NULL after pcr_arch_init(). 3) Move init_hw_perf_events to a later initcall so that it we will be sure to invoke pcr_arch_init() after all cpus are brought up. Finally, guard the one naked sequence of pcr_ops dereferences in __global_pmu_self() with an appropriate NULL check. Reported-by: Christopher Alexander Tobias Schulze Signed-off-by: David S. Miller --- Reading git-diff-tree failed