Message ID | 20250514062637.3287779-4-shivankg@amd.com |
---|---|
State | New |
Headers | show |
Series | None | expand |
On 5/14/2025 1:26 PM, Ingo Molnar wrote: > > * Shivank Garg <shivankg@amd.com> wrote: > >> Building the kernel with W=1 generates the following warning: >> >> arch/x86/kernel/apic/apic.c:2140: warning: Function parameter or struct member 'spurious_interrupt' not described in 'DEFINE_IDTENTRY_IRQ' >> arch/x86/kernel/apic/apic.c:2140: warning: expecting prototype for spurious_interrupt(). Prototype was for DEFINE_IDTENTRY_IRQ() instead >> >> Fix the description format to fix the warning. >> >> Signed-off-by: Shivank Garg <shivankg@amd.com> >> --- >> arch/x86/kernel/apic/apic.c | 7 ++++--- >> 1 file changed, 4 insertions(+), 3 deletions(-) >> >> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c >> index 62584a347931..f888a28d400f 100644 >> --- a/arch/x86/kernel/apic/apic.c >> +++ b/arch/x86/kernel/apic/apic.c >> @@ -2128,9 +2128,10 @@ static noinline void handle_spurious_interrupt(u8 vector) >> } >> >> /** >> - * spurious_interrupt - Catch all for interrupts raised on unused vectors >> - * @regs: Pointer to pt_regs on stack >> - * @vector: The vector number >> + * DEFINE_IDTENTRY_IRQ - Handler for spurious interrupts >> + * @spurious_interrupt: Catch all for interrupts raised on unused vectors >> + * regs: Pointer to pt_regs on stack >> + * vector: The vector number > > 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? Thanks, Shivank
* Shivank Garg <shivankg@amd.com> wrote: > > > On 5/14/2025 1:26 PM, Ingo Molnar wrote: > > > > * Shivank Garg <shivankg@amd.com> wrote: > > > >> Building the kernel with W=1 generates the following warning: > >> > >> arch/x86/kernel/apic/apic.c:2140: warning: Function parameter or struct member 'spurious_interrupt' not described in 'DEFINE_IDTENTRY_IRQ' > >> arch/x86/kernel/apic/apic.c:2140: warning: expecting prototype for spurious_interrupt(). Prototype was for DEFINE_IDTENTRY_IRQ() instead > >> > >> Fix the description format to fix the warning. > >> > >> Signed-off-by: Shivank Garg <shivankg@amd.com> > >> --- > >> arch/x86/kernel/apic/apic.c | 7 ++++--- > >> 1 file changed, 4 insertions(+), 3 deletions(-) > >> > >> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c > >> index 62584a347931..f888a28d400f 100644 > >> --- a/arch/x86/kernel/apic/apic.c > >> +++ b/arch/x86/kernel/apic/apic.c > >> @@ -2128,9 +2128,10 @@ static noinline void handle_spurious_interrupt(u8 vector) > >> } > >> > >> /** > >> - * spurious_interrupt - Catch all for interrupts raised on unused vectors > >> - * @regs: Pointer to pt_regs on stack > >> - * @vector: The vector number > >> + * DEFINE_IDTENTRY_IRQ - Handler for spurious interrupts > >> + * @spurious_interrupt: Catch all for interrupts raised on unused vectors > >> + * regs: Pointer to pt_regs on stack > >> + * vector: The vector number > > > > 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. Then we should not document that function in a misleading fashion, just to work around kernel-doc limitations. > Can I change it to a normal comment instead? Yeah, I think that's fine. Thanks, Ingo
* Shivank Garg <shivankg@amd.com> wrote: > > > On 5/14/2025 1:26 PM, Ingo Molnar wrote: > > > > * Shivank Garg <shivankg@amd.com> wrote: > > > >> Building the kernel with W=1 generates the following warning: > >> > >> arch/x86/kernel/apic/apic.c:2140: warning: Function parameter or struct member 'spurious_interrupt' not described in 'DEFINE_IDTENTRY_IRQ' > >> arch/x86/kernel/apic/apic.c:2140: warning: expecting prototype for spurious_interrupt(). Prototype was for DEFINE_IDTENTRY_IRQ() instead > >> > >> Fix the description format to fix the warning. > >> > >> Signed-off-by: Shivank Garg <shivankg@amd.com> > >> --- > >> arch/x86/kernel/apic/apic.c | 7 ++++--- > >> 1 file changed, 4 insertions(+), 3 deletions(-) > >> > >> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c > >> index 62584a347931..f888a28d400f 100644 > >> --- a/arch/x86/kernel/apic/apic.c > >> +++ b/arch/x86/kernel/apic/apic.c > >> @@ -2128,9 +2128,10 @@ static noinline void handle_spurious_interrupt(u8 vector) > >> } > >> > >> /** > >> - * spurious_interrupt - Catch all for interrupts raised on unused vectors > >> - * @regs: Pointer to pt_regs on stack > >> - * @vector: The vector number > >> + * DEFINE_IDTENTRY_IRQ - Handler for spurious interrupts > >> + * @spurious_interrupt: Catch all for interrupts raised on unused vectors > >> + * regs: Pointer to pt_regs on stack > >> + * vector: The vector number > > > > 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? BTW., kernel-doc could be fixed/extended to work better with macros, but I'm not sure it's the right approach in this case: this x86 macro *is* obfuscating the real function signature. We could, perhaps, if the kernel-doc documentation has value, just have an additional prototype for the resulting function, right before the definition, and document it via kernel-doc. Something like: /** * <kernel-doc annotation> */ static void __spurious_interrupt(struct pt_regs *regs, u32 vector); DEFINE_IDTENTRY_IRQ(spurious_interrupt) { ... would be the most intuitive outcome IMO, as the trailing part of the DEFINE_IDTENTRY_IRQ() definition defines the __spurious_interrupt() function. BTW., note how your kernel-doc annotation has another inaccuracy: the function that has the 'vector' parameter which you documented is not spurious_interrupt(), but __spurious_interrupt(). The resulting spurious_interrupt() function, which is the main entry to the spurious interrupts vector, has the following signature: extern __visible noinstr void spurious_interrupt(struct pt_regs *regs, unsigned long error_code); Thanks, Ingo
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.
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c index 62584a347931..f888a28d400f 100644 --- a/arch/x86/kernel/apic/apic.c +++ b/arch/x86/kernel/apic/apic.c @@ -2128,9 +2128,10 @@ static noinline void handle_spurious_interrupt(u8 vector) } /** - * spurious_interrupt - Catch all for interrupts raised on unused vectors - * @regs: Pointer to pt_regs on stack - * @vector: The vector number + * DEFINE_IDTENTRY_IRQ - Handler for spurious interrupts + * @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
Building the kernel with W=1 generates the following warning: arch/x86/kernel/apic/apic.c:2140: warning: Function parameter or struct member 'spurious_interrupt' not described in 'DEFINE_IDTENTRY_IRQ' arch/x86/kernel/apic/apic.c:2140: warning: expecting prototype for spurious_interrupt(). Prototype was for DEFINE_IDTENTRY_IRQ() instead Fix the description format to fix the warning. Signed-off-by: Shivank Garg <shivankg@amd.com> --- arch/x86/kernel/apic/apic.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-)