From: Arnd Bergmann <arnd@kernel.org>
To: x86@kernel.org
Cc: Arnd Bergmann <arnd@arndb.de>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Andy Lutomirski <luto@kernel.org>,
Steven Rostedt <rostedt@goodmis.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Mark Rutland <mark.rutland@arm.com>,
Juergen Gross <jgross@suse.com>,
"Srivatsa S. Bhat (VMware)" <srivatsa@csail.mit.edu>,
Alexey Makhalov <amakhalov@vmware.com>,
VMware PV-Drivers Reviewers <pv-drivers@vmware.com>,
Peter Zijlstra <peterz@infradead.org>,
Darren Hart <dvhart@infradead.org>,
Andy Shevchenko <andy@infradead.org>,
Boris Ostrovsky <boris.ostrovsky@oracle.com>,
"Rafael J. Wysocki" <rafael@kernel.org>,
linux-kernel@vger.kernel.org, linux-trace-kernel@vger.kernel.org,
virtualization@lists.linux-foundation.org,
linux-pci@vger.kernel.org, platform-driver-x86@vger.kernel.org,
xen-devel@lists.xenproject.org, linux-pm@vger.kernel.org,
linux-mm@kvack.org
Subject: [PATCH 12/20] x86: qspinlock-paravirt: fix mising-prototype warnings
Date: Tue, 16 May 2023 21:35:41 +0200 [thread overview]
Message-ID: <20230516193549.544673-13-arnd@kernel.org> (raw)
In-Reply-To: <20230516193549.544673-1-arnd@kernel.org>
From: Arnd Bergmann <arnd@arndb.de>
__pv_queued_spin_unlock_slowpath is defined in a header file as a global
function, and designed to be called from an inline asm, but there is
no prototype visible in the definition:
kernel/locking/qspinlock_paravirt.h:493:1: error: no previous prototype for '__pv_queued_spin_unlock_slowpath' [-Werror=missing-prototypes]
Add this to the x86 header that contains the inline asm calling it,
and ensure this gets included before the definition, rather than
after it.
The native_pv_lock_init function in turn is only declared in SMP
builds but can be left out in UP to avoid another warning:
arch/x86/kernel/paravirt.c:76:13: error: no previous prototype for 'native_pv_lock_init' [-Werror=missing-prototypes]
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
arch/x86/include/asm/qspinlock_paravirt.h | 2 ++
arch/x86/kernel/paravirt.c | 2 ++
kernel/locking/qspinlock_paravirt.h | 20 ++++++++++----------
3 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/arch/x86/include/asm/qspinlock_paravirt.h b/arch/x86/include/asm/qspinlock_paravirt.h
index 42b17cf10b10..85b6e3609cb9 100644
--- a/arch/x86/include/asm/qspinlock_paravirt.h
+++ b/arch/x86/include/asm/qspinlock_paravirt.h
@@ -4,6 +4,8 @@
#include <asm/ibt.h>
+void __lockfunc __pv_queued_spin_unlock_slowpath(struct qspinlock *lock, u8 locked);
+
/*
* For x86-64, PV_CALLEE_SAVE_REGS_THUNK() saves and restores 8 64-bit
* registers. For i386, however, only 1 32-bit register needs to be saved
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index ac10b46c5832..eb67aa4cc5ef 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -73,11 +73,13 @@ DEFINE_PARAVIRT_ASM(pv_native_read_cr2, "mov %cr2, %rax", .noinstr.text);
DEFINE_STATIC_KEY_TRUE(virt_spin_lock_key);
+#ifdef CONFIG_SMP
void __init native_pv_lock_init(void)
{
if (!boot_cpu_has(X86_FEATURE_HYPERVISOR))
static_branch_disable(&virt_spin_lock_key);
}
+#endif
unsigned int paravirt_patch(u8 type, void *insn_buff, unsigned long addr,
unsigned int len)
diff --git a/kernel/locking/qspinlock_paravirt.h b/kernel/locking/qspinlock_paravirt.h
index 6afc249ce697..6a0184e9c234 100644
--- a/kernel/locking/qspinlock_paravirt.h
+++ b/kernel/locking/qspinlock_paravirt.h
@@ -485,6 +485,16 @@ pv_wait_head_or_lock(struct qspinlock *lock, struct mcs_spinlock *node)
return (u32)(atomic_read(&lock->val) | _Q_LOCKED_VAL);
}
+/*
+ * Include the architecture specific callee-save thunk of the
+ * __pv_queued_spin_unlock(). This thunk is put together with
+ * __pv_queued_spin_unlock() to make the callee-save thunk and the real unlock
+ * function close to each other sharing consecutive instruction cachelines.
+ * Alternatively, architecture specific version of __pv_queued_spin_unlock()
+ * can be defined.
+ */
+#include <asm/qspinlock_paravirt.h>
+
/*
* PV versions of the unlock fastpath and slowpath functions to be used
* instead of queued_spin_unlock().
@@ -533,16 +543,6 @@ __pv_queued_spin_unlock_slowpath(struct qspinlock *lock, u8 locked)
pv_kick(node->cpu);
}
-/*
- * Include the architecture specific callee-save thunk of the
- * __pv_queued_spin_unlock(). This thunk is put together with
- * __pv_queued_spin_unlock() to make the callee-save thunk and the real unlock
- * function close to each other sharing consecutive instruction cachelines.
- * Alternatively, architecture specific version of __pv_queued_spin_unlock()
- * can be defined.
- */
-#include <asm/qspinlock_paravirt.h>
-
#ifndef __pv_queued_spin_unlock
__visible __lockfunc void __pv_queued_spin_unlock(struct qspinlock *lock)
{
--
2.39.2
next prev parent reply other threads:[~2023-05-16 19:38 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-05-16 19:35 [PATCH 00/20] x86: address -Wmissing-prototype warnings Arnd Bergmann
2023-05-16 19:35 ` [PATCH 01/20] x86: move prepare_ftrace_return prototype to header Arnd Bergmann
2023-05-16 21:44 ` Steven Rostedt
2023-05-16 21:44 ` Steven Rostedt
2023-05-16 19:35 ` [PATCH 02/20] x86: ce4100: Mark local functions as 'static' Arnd Bergmann
2023-05-16 19:35 ` [PATCH 03/20] x86: apic: hide unused safe_smp_processor_id on UP Arnd Bergmann
2023-05-16 19:35 ` [PATCH 04/20] x86: avoid unneeded __div64_32 function definition Arnd Bergmann
2023-05-16 19:35 ` [PATCH 05/20] x86: head: add dummy prototype for mk_early_pgtbl_32 Arnd Bergmann
2023-05-18 16:52 ` Alexander Lobakin
2023-05-16 19:35 ` [PATCH 06/20] x86: math-emu: include asm/fpu/regset.h Arnd Bergmann
2023-05-16 19:35 ` [PATCH 07/20] x86: doublefault: avoid missing-prototype warnings Arnd Bergmann
2023-05-16 19:35 ` [PATCH 08/20] x86: highmem: include asm/numa.h for set_highmem_pages_init Arnd Bergmann
2023-05-16 19:35 ` [PATCH 09/20] x86: platform_quirks: include linux/pnp.h for arch_pnpbios_disabled Arnd Bergmann
2023-05-16 19:35 ` [PATCH 10/20] x86: xen: add missing prototypes Arnd Bergmann
2023-05-18 17:28 ` Dave Hansen
2023-05-18 17:28 ` Dave Hansen
2023-05-19 11:04 ` Arnd Bergmann
2023-05-19 11:04 ` Arnd Bergmann
2023-05-16 19:35 ` [PATCH 11/20] x86: entry: add do_SYSENTER_32() prototype Arnd Bergmann
2023-05-16 19:35 ` Arnd Bergmann [this message]
2023-05-16 19:35 ` [PATCH 13/20] x86: hibernate: declare global functions in suspend.h Arnd Bergmann
2023-05-16 19:35 ` [PATCH 14/20] x86: fbdev: include asm/fb.h as needed Arnd Bergmann
2023-05-16 19:35 ` [PATCH 15/20] x86: mce: add copy_mc_fragile_handle_tail prototype Arnd Bergmann
2023-05-16 19:35 ` [PATCH 16/20] x86: vdso: include vdso/processor.h Arnd Bergmann
2023-05-16 19:35 ` [PATCH 17/20] x86: usercopy: include arch_wb_cache_pmem declaration Arnd Bergmann
2023-05-16 19:35 ` [PATCH 18/20] x86: ioremap: add early_memremap_pgprot_adjust prototype Arnd Bergmann
2023-05-16 19:35 ` [PATCH 19/20] x86: purgatory: include header for warn() declaration Arnd Bergmann
2023-05-16 19:35 ` [PATCH 20/20] x86: olpc: avoid missing-prototype warnings Arnd Bergmann
2023-05-18 17:31 ` [PATCH 00/20] x86: address -Wmissing-prototype warnings Dave Hansen
2023-05-18 17:31 ` Dave Hansen
2023-05-18 21:56 ` Dave Hansen
2023-05-18 21:56 ` Dave Hansen
2023-05-19 9:51 ` Andy Shevchenko
2023-05-19 9:51 ` Andy Shevchenko
2023-05-19 12:09 ` Arnd Bergmann
2023-05-19 12:09 ` Arnd Bergmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230516193549.544673-13-arnd@kernel.org \
--to=arnd@kernel.org \
--cc=amakhalov@vmware.com \
--cc=andy@infradead.org \
--cc=arnd@arndb.de \
--cc=boris.ostrovsky@oracle.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=dvhart@infradead.org \
--cc=hpa@zytor.com \
--cc=jgross@suse.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mark.rutland@arm.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=peterz@infradead.org \
--cc=platform-driver-x86@vger.kernel.org \
--cc=pv-drivers@vmware.com \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.org \
--cc=srivatsa@csail.mit.edu \
--cc=tglx@linutronix.de \
--cc=virtualization@lists.linux-foundation.org \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.