From: Ingo Molnar <mingo@kernel.org>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Shivank Garg <shivankg@amd.com>,
mingo@redhat.com, bp@alien8.de, dave.hansen@linux.intel.com,
x86@kernel.org, hpa@zytor.com, luto@kernel.org,
peterz@infradead.org, rafael@kernel.org, pavel@kernel.org,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org,
linux-pm@vger.kernel.org, sohil.mehta@intel.com,
rui.zhang@intel.com, yuntao.wang@linux.dev, kai.huang@intel.com,
xiaoyao.li@intel.com, peterx@redhat.com, sandipan.das@amd.com,
ak@linux.intel.com, rostedt@goodmis.org
Subject: [PATCH] x86/apic: Better document spurious_interrupt() and __spurious_interrupt()
Date: Thu, 15 May 2025 10:15:56 +0200 [thread overview]
Message-ID: <aCWivMggS9mektCu@gmail.com> (raw)
In-Reply-To: <87o6vuibnu.ffs@tglx>
* Thomas Gleixner <tglx@linutronix.de> wrote:
> On Thu, May 15 2025 at 12:03, Shivank Garg wrote:
> > On 5/14/2025 1:26 PM, Ingo Molnar wrote:
> >> This is incorrect and is based on a misunderstanding of what the code
> >> does:
> >>
> >> DEFINE_IDTENTRY_IRQ(spurious_interrupt)
> >> {
> >> handle_spurious_interrupt(vector);
> >> }
> >
> > The kernel-doc tool doesn't handle macros properly.
> > Can I change it to a normal comment instead?
> > or if a kernel-doc comment is required how should I make it correct?
>
> Fix the stupid tool and leave the comment alone.
Yeah, so the problem is that the kernel-doc tool is partially right to
complain about the status quo:
/**
* spurious_interrupt - Catch all for interrupts raised on unused vectors
* @regs: Pointer to pt_regs on stack
* @vector: The vector number
*
* This is invoked from ASM entry code to catch all interrupts which
* trigger on an entry which is routed to the common_spurious idtentry
* point.
*/
DEFINE_IDTENTRY_IRQ(spurious_interrupt)
{
handle_spurious_interrupt(vector);
}
This description is incorrect as-is: the parameters described are not
that of the main 'spurious_interrupt()' handler, which is:
extern __visible noinstr void spurious_interrupt(struct pt_regs *regs, unsigned long error_code);
Note that it has an 'error_code', not 'vector'. (Which, of course, are
the same actual numeric value in this case, but are in different
functions and different prototypes.)
But the description is that of the __spurious_interrupt() lower level
(sub-)handler function:
static void __spurious_interrupt(struct pt_regs *regs, u32 vector);
So yeah, this documention is arguably a bit messy, and not just because
kernel-doc is confused about macros.
So I'd fix it like this:
/*
* spurious_interrupt(): Catch all for interrupts raised on unused vectors
* @regs: Pointer to pt_regs on stack
* @error_code: Hardware exception/interrupt data
*
* The spurious_interrupt() high level function is invoked from ASM entry code
* to catch all interrupts which trigger on an entry which is routed to the
* common_spurious idtentry point.
*
* __spurious_interrupt(): Catch all for interrupts raised on unused vectors
* @regs: Pointer to pt_regs on stack
* @vector: The IRQ vector number
*
* This is the lower level spurious interrupts handler function.
*/
DEFINE_IDTENTRY_IRQ(spurious_interrupt)
{
handle_spurious_interrupt(vector);
}
... or so.
Which also moves it out of kernel-doc style, and should thus avoid
kernel-doc's confusion. Patch below.
Or we could:
s/spurious_interrupt
/__spurious_interrupt
and remove the kernel-doc trigger line.
Whichever your preference is.
Thanks,
Ingo
=============>
arch/x86/kernel/apic/apic.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index d73ba5a7b623..462dcdb3af85 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -2128,14 +2128,20 @@ static noinline void handle_spurious_interrupt(u8 vector)
trace_spurious_apic_exit(vector);
}
-/**
- * spurious_interrupt - Catch all for interrupts raised on unused vectors
+/*
+ * spurious_interrupt(): Catch all for interrupts raised on unused vectors
+ * @regs: Pointer to pt_regs on stack
+ * @error_code: Hardware exception/interrupt data
+ *
+ * The spurious_interrupt() high level function is invoked from ASM entry code
+ * to catch all interrupts which trigger on an entry which is routed to the
+ * common_spurious idtentry point.
+ *
+ * __spurious_interrupt(): Catch all for interrupts raised on unused vectors
* @regs: Pointer to pt_regs on stack
* @vector: The IRQ vector number
*
- * This is invoked from ASM entry code to catch all interrupts which
- * trigger on an entry which is routed to the common_spurious idtentry
- * point.
+ * This is the lower level spurious interrupts handler function.
*/
DEFINE_IDTENTRY_IRQ(spurious_interrupt)
{
next prev parent reply other threads:[~2025-05-15 8:16 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-05-14 6:26 [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings Shivank Garg
2025-05-14 6:26 ` [PATCH RESEND 2/4] x86/power: hibernate: " Shivank Garg
2025-05-14 6:26 ` [PATCH RESEND 3/4] x86/mm/pat: Fix W=1 build kernel-doc warning Shivank Garg
2025-05-14 6:26 ` [PATCH RESEND 4/4] x86/apic: " Shivank Garg
2025-05-14 7:56 ` Ingo Molnar
2025-05-15 6:33 ` Shivank Garg
2025-05-15 6:38 ` Ingo Molnar
2025-05-15 6:49 ` Ingo Molnar
2025-05-15 7:19 ` Thomas Gleixner
2025-05-15 8:15 ` Ingo Molnar [this message]
2025-05-14 7:54 ` [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings Ingo Molnar
2025-05-14 8:06 ` Shivank Garg
2025-05-14 8:27 ` Shivank Garg
2025-05-14 9:20 ` Ingo Molnar
2025-05-15 3:54 ` Shivank Garg
2025-05-15 6:54 ` Ingo Molnar
2025-05-15 9:57 ` Shivank Garg
2025-05-15 15:06 ` Ingo Molnar
2025-05-15 18:10 ` Shivank Garg
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=aCWivMggS9mektCu@gmail.com \
--to=mingo@kernel.org \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=kai.huang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=pavel@kernel.org \
--cc=peterx@redhat.com \
--cc=peterz@infradead.org \
--cc=rafael@kernel.org \
--cc=rostedt@goodmis.org \
--cc=rui.zhang@intel.com \
--cc=sandipan.das@amd.com \
--cc=shivankg@amd.com \
--cc=sohil.mehta@intel.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=xiaoyao.li@intel.com \
--cc=yuntao.wang@linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).