Thread (106 messages) 106 messages, 18 authors, 2022-07-30

Re: [PATCH 31/36] cpuidle,acpi: Make noinstr clean

From: "Rafael J. Wysocki" <rafael@kernel.org>
Date: 2022-07-06 14:05:01
Also in: linux-acpi, linux-alpha, linux-arch, linux-arm-msm, linux-clk, linux-m68k, linux-mips, linux-omap, linux-perf-users, linux-pm, linux-riscv, linux-s390, linux-sh, linux-tegra, linux-um, lkml, rcu, sparclinux, virtualization, xen-devel

ieu.desnoyers@efficios.com>, Frederic Weisbecker [off-list ref], Len Brown [off-list ref], linux-xtensa@linux-xtensa.org, Sascha Hauer [off-list ref], Vasily Gorbik [off-list ref], linux-arm-msm [off-list ref], linux-alpha@vger.kernel.org, linux-m68k [off-list ref], Stafford Horne [off-list ref], Linux ARM [off-list ref], Chris Zankel [off-list ref], Stephen Boyd [off-list ref], dinguyen@kernel.org, Daniel Bristot de Oliveira [off-list ref], Alexander Shishkin [off-list ref], Lorenzo Pieralisi [off-list ref], Rasmus Villemoes [off-list ref], Joel Fernandes [off-list ref], Will Deacon [off-list ref], Boris Ostrovsky [off-list ref], Kevin Hilman [off-list ref], linux-csky@vger.kernel.org, pv-drivers@vmware.com, linux-snps-arc@lists.infradead.org, Mel Gorman [off-list ref], Jacob Pan <jacob.jun.pan@linux.inte
 l.com>, Arnd Bergmann [off-list ref], ulli.kroll@googlemail.com, vgupta@kernel.org, linux-clk [off-list ref], Josh Triplett [off-list ref], Steven Rostedt [off-list ref], rcu@vger.kernel.org, Borislav Petkov [off-list ref], bcain@quicinc.com, Thomas Bogendoerfer [off-list ref], Parisc List [off-list ref], Sudeep Holla [off-list ref], Shawn Guo [off-list ref], David Miller [off-list ref], Rich Felker [off-list ref], Tony Lindgren [off-list ref], amakhalov@vmware.com, Bjorn Andersson [off-list ref], "H. Peter Anvin" [off-list ref], sparclinux@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-riscv [off-list ref], anton.ivanov@cambridgegreys.com, jonas@southpole.se, Yury Norov [off-list ref], Richard Weinberger [off-list ref], the arch/x86 maintainers [off-list ref], Russell King - ARM Linux [off-list ref], Ingo Molnar [off-list ref], Al
 bert Ou [off-list ref], "Paul E. McKenney" <
paulmck@kernel.org>, Heiko Carstens [off-list ref], stefan.kristiansson@saunalahti.fi, openrisc@lists.librecores.org, Paul Walmsley [off-list ref], linux-tegra [off-list ref], namhyung@kernel.org, Andy Shevchenko [off-list ref], jpoimboe@kernel.org, Juergen Gross [off-list ref], Michal Simek [off-list ref], "open list:BROADCOM NVRAM DRIVER" [off-list ref], Palmer Dabbelt [off-list ref], Anup Patel [off-list ref], ink@jurassic.park.msu.ru, Johannes Berg [off-list ref], linuxppc-dev [off-list ref]
Errors-To: linuxppc-dev-bounces+linuxppc-dev=archiver.kernel.org@lists.ozlabs.org
Sender: "Linuxppc-dev" [off-list ref]

On Wed, Jun 8, 2022 at 4:47 PM Peter Zijlstra [off-list ref] wrote:
vmlinux.o: warning: objtool: io_idle+0xc: call to __inb.isra.0() leaves .noinstr.text section
vmlinux.o: warning: objtool: acpi_idle_enter+0xfe: call to num_online_cpus() leaves .noinstr.text section
vmlinux.o: warning: objtool: acpi_idle_enter+0x115: call to acpi_idle_fallback_to_c1.isra.0() leaves .noinstr.text section

Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Acked-by: Rafael J. Wysocki <redacted>
quoted hunk ↗ jump to hunk
---
 arch/x86/include/asm/shared/io.h |    4 ++--
 drivers/acpi/processor_idle.c    |    2 +-
 include/linux/cpumask.h          |    4 ++--
 3 files changed, 5 insertions(+), 5 deletions(-)
--- a/arch/x86/include/asm/shared/io.h
+++ b/arch/x86/include/asm/shared/io.h
@@ -5,13 +5,13 @@
 #include <linux/types.h>

 #define BUILDIO(bwl, bw, type)                                         \
-static inline void __out##bwl(type value, u16 port)                    \
+static __always_inline void __out##bwl(type value, u16 port)           \
 {                                                                      \
        asm volatile("out" #bwl " %" #bw "0, %w1"                       \
                     : : "a"(value), "Nd"(port));                       \
 }                                                                      \
                                                                        \
-static inline type __in##bwl(u16 port)                                 \
+static __always_inline type __in##bwl(u16 port)                                \
 {                                                                      \
        type value;                                                     \
        asm volatile("in" #bwl " %w1, %" #bw "0"                        \
--- a/drivers/acpi/processor_idle.c
+++ b/drivers/acpi/processor_idle.c
@@ -593,7 +593,7 @@ static int acpi_idle_play_dead(struct cp
        return 0;
 }

-static bool acpi_idle_fallback_to_c1(struct acpi_processor *pr)
+static __always_inline bool acpi_idle_fallback_to_c1(struct acpi_processor *pr)
 {
        return IS_ENABLED(CONFIG_HOTPLUG_CPU) && !pr->flags.has_cst &&
                !(acpi_gbl_FADT.flags & ACPI_FADT_C2_MP_SUPPORTED);
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -908,9 +908,9 @@ static inline const struct cpumask *get_
  * concurrent CPU hotplug operations unless invoked from a cpuhp_lock held
  * region.
  */
-static inline unsigned int num_online_cpus(void)
+static __always_inline unsigned int num_online_cpus(void)
 {
-       return atomic_read(&__num_online_cpus);
+       return arch_atomic_read(&__num_online_cpus);
 }
 #define num_possible_cpus()    cpumask_weight(cpu_possible_mask)
 #define num_present_cpus()     cpumask_weight(cpu_present_mask)
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help