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: 22+ 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 8:07 ` [tip: x86/cleanups] " tip-bot2 for 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 8:07 ` [tip: x86/cleanups] " tip-bot2 for 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
2025-05-15 15:11 ` [tip: x86/core] x86/mm: Fix kernel-doc descriptions of various pgtable methods tip-bot2 for 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 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.