* [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
@ 2025-05-14 6:26 Shivank Garg
2025-05-14 6:26 ` [PATCH RESEND 2/4] x86/power: hibernate: " Shivank Garg
` (4 more replies)
0 siblings, 5 replies; 22+ messages in thread
From: Shivank Garg @ 2025-05-14 6:26 UTC (permalink / raw)
To: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm
Cc: linux-kernel, linux-pm, shivankg, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
Warnings generated with 'make W=1':
arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
... so on
Add missing parameter documentation in page table functions to
fix kernel-doc warnings.
Signed-off-by: Shivank Garg <shivankg@amd.com>
---
arch/x86/mm/pgtable.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index f7ae44d3dd9e..8a5bc4545ad3 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -614,7 +614,7 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
/**
* reserve_top_address - reserves a hole in the top of kernel address space
- * @reserve - size of hole to reserve
+ * @reserve: Size of hole to reserve.
*
* Can be used to relocate the fixmap area and poke a hole in the top
* of kernel address space to make room for a hypervisor.
@@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
#ifdef CONFIG_X86_5LEVEL
/**
* p4d_set_huge - setup kernel P4D mapping
+ * @p4d: Pointer to a p4d entry.
+ * @addr: Virtual Address associated with p4d.
+ * @prot: Protection bits to use.
*
* No 512GB pages yet -- always return 0
*/
@@ -675,8 +678,9 @@ int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
/**
* p4d_clear_huge - clear kernel P4D mapping when it is set
+ * @p4d: Pointer to the p4d entry to clear.
*
- * No 512GB pages yet -- always return 0
+ * No 512GB pages yet -- do nothing
*/
void p4d_clear_huge(p4d_t *p4d)
{
@@ -685,6 +689,9 @@ void p4d_clear_huge(p4d_t *p4d)
/**
* pud_set_huge - setup kernel PUD mapping
+ * @pud: Pointer to a pud entry.
+ * @addr: Virtual Address associated with pud.
+ * @prot: Protection bits to use.
*
* MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
* function sets up a huge page only if the complete range has the same MTRR
@@ -716,6 +723,9 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
/**
* pmd_set_huge - setup kernel PMD mapping
+ * @pmd: Pointer to a pmd entry.
+ * @addr: Virtual Address associated with pmd.
+ * @prot: Protection bits to use.
*
* See text over pud_set_huge() above.
*
@@ -745,6 +755,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
/**
* pud_clear_huge - clear kernel PUD mapping when it is set
+ * @pud: Pointer to the pud entry to clear.
*
* Returns 1 on success and 0 on failure (no PUD map is found).
*/
@@ -760,6 +771,7 @@ int pud_clear_huge(pud_t *pud)
/**
* pmd_clear_huge - clear kernel PMD mapping when it is set
+ * @pmd: Pointer to the pmd entry to clear.
*
* Returns 1 on success and 0 on failure (no PMD map is found).
*/
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH RESEND 2/4] x86/power: hibernate: Fix W=1 build kernel-doc warnings
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 ` 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
` (3 subsequent siblings)
4 siblings, 1 reply; 22+ messages in thread
From: Shivank Garg @ 2025-05-14 6:26 UTC (permalink / raw)
To: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm
Cc: linux-kernel, linux-pm, shivankg, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt, Rafael J . Wysocki
Warnings generated with 'make W=1':
arch/x86/power/hibernate.c:47: warning: Function parameter or struct member 'pfn' not described in 'pfn_is_nosave'
arch/x86/power/hibernate.c:92: warning: Function parameter or struct member 'max_size' not described in 'arch_hibernation_header_save'
Add missing parameter documentation in hibernate functions to
fix kernel-doc warnings.
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Shivank Garg <shivankg@amd.com>
---
arch/x86/power/hibernate.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/arch/x86/power/hibernate.c b/arch/x86/power/hibernate.c
index 5b81d19cd114..a7c23f2a58c9 100644
--- a/arch/x86/power/hibernate.c
+++ b/arch/x86/power/hibernate.c
@@ -42,6 +42,7 @@ unsigned long relocated_restore_code __visible;
/**
* pfn_is_nosave - check if given pfn is in the 'nosave' section
+ * @pfn: the page frame number to check.
*/
int pfn_is_nosave(unsigned long pfn)
{
@@ -86,7 +87,10 @@ static inline u32 compute_e820_crc32(struct e820_table *table)
/**
* arch_hibernation_header_save - populate the architecture specific part
* of a hibernation image header
- * @addr: address to save the data at
+ * @addr: address where architecture specific header data will be saved.
+ * @max_size: maximum size of architecture specific data in hibernation header.
+ *
+ * Return: 0 on success, -EOVERFLOW if max_size is insufficient.
*/
int arch_hibernation_header_save(void *addr, unsigned int max_size)
{
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH RESEND 3/4] x86/mm/pat: Fix W=1 build kernel-doc warning
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 ` 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
` (2 subsequent siblings)
4 siblings, 1 reply; 22+ messages in thread
From: Shivank Garg @ 2025-05-14 6:26 UTC (permalink / raw)
To: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm
Cc: linux-kernel, linux-pm, shivankg, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
Building the kernel with W=1 generates the following warning:
arch/x86/mm/pat/memtype.c:692: warning: Function parameter or struct member 'pfn' not described in 'pat_pfn_immune_to_uc_mtrr'
Add missing parameter documentation to fix the kernel-doc warning.
Signed-off-by: Shivank Garg <shivankg@amd.com>
---
arch/x86/mm/pat/memtype.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
index 72d8cbc61158..51635ae1eb7f 100644
--- a/arch/x86/mm/pat/memtype.c
+++ b/arch/x86/mm/pat/memtype.c
@@ -682,6 +682,7 @@ static enum page_cache_mode lookup_memtype(u64 paddr)
/**
* pat_pfn_immune_to_uc_mtrr - Check whether the PAT memory type
* of @pfn cannot be overridden by UC MTRR memory type.
+ * @pfn: The page frame number to check.
*
* Only to be called when PAT is enabled.
*
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [PATCH RESEND 4/4] x86/apic: Fix W=1 build kernel-doc warning
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 ` Shivank Garg
2025-05-14 7:56 ` Ingo Molnar
2025-05-14 7:54 ` [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings Ingo Molnar
2025-05-15 15:11 ` [tip: x86/core] x86/mm: Fix kernel-doc descriptions of various pgtable methods tip-bot2 for Shivank Garg
4 siblings, 1 reply; 22+ messages in thread
From: Shivank Garg @ 2025-05-14 6:26 UTC (permalink / raw)
To: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm
Cc: linux-kernel, linux-pm, shivankg, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
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 invoked from ASM entry code to catch all interrupts which
* trigger on an entry which is routed to the common_spurious idtentry
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
2025-05-14 6:26 [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings Shivank Garg
` (2 preceding siblings ...)
2025-05-14 6:26 ` [PATCH RESEND 4/4] x86/apic: " Shivank Garg
@ 2025-05-14 7:54 ` Ingo Molnar
2025-05-14 8:06 ` Shivank Garg
2025-05-14 8:27 ` 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
4 siblings, 2 replies; 22+ messages in thread
From: Ingo Molnar @ 2025-05-14 7:54 UTC (permalink / raw)
To: Shivank Garg
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
* Shivank Garg <shivankg@amd.com> wrote:
> Warnings generated with 'make W=1':
> arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
> arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
> arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
> ... so on
>
> Add missing parameter documentation in page table functions to
> fix kernel-doc warnings.
>
> Signed-off-by: Shivank Garg <shivankg@amd.com>
> ---
> arch/x86/mm/pgtable.c | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
> index f7ae44d3dd9e..8a5bc4545ad3 100644
> --- a/arch/x86/mm/pgtable.c
> +++ b/arch/x86/mm/pgtable.c
> @@ -614,7 +614,7 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
>
> /**
> * reserve_top_address - reserves a hole in the top of kernel address space
> - * @reserve - size of hole to reserve
> + * @reserve: Size of hole to reserve.
> *
> * Can be used to relocate the fixmap area and poke a hole in the top
> * of kernel address space to make room for a hypervisor.
> @@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
> #ifdef CONFIG_X86_5LEVEL
> /**
> * p4d_set_huge - setup kernel P4D mapping
> + * @p4d: Pointer to a p4d entry.
> + * @addr: Virtual Address associated with p4d.
> + * @prot: Protection bits to use.
How about using the same capitalization you already see in this
description?
> /**
> * p4d_clear_huge - clear kernel P4D mapping when it is set
> + * @p4d: Pointer to the p4d entry to clear.
Ditto.
> * pud_set_huge - setup kernel PUD mapping
> + * @pud: Pointer to a pud entry.
> + * @addr: Virtual Address associated with pud.
> + * @prot: Protection bits to use.
Ditto.
> * pmd_set_huge - setup kernel PMD mapping
> + * @pmd: Pointer to a pmd entry.
> + * @addr: Virtual Address associated with pmd.
> + * @prot: Protection bits to use.
Ditto.
> @@ -745,6 +755,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>
> /**
> * pud_clear_huge - clear kernel PUD mapping when it is set
> + * @pud: Pointer to the pud entry to clear.
Ditto.
> * Returns 1 on success and 0 on failure (no PUD map is found).
> */
> @@ -760,6 +771,7 @@ int pud_clear_huge(pud_t *pud)
>
> /**
> * pmd_clear_huge - clear kernel PMD mapping when it is set
> + * @pmd: Pointer to the pmd entry to clear.
Ditto.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 4/4] x86/apic: Fix W=1 build kernel-doc warning
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
0 siblings, 1 reply; 22+ messages in thread
From: Ingo Molnar @ 2025-05-14 7:56 UTC (permalink / raw)
To: Shivank Garg
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
* 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);
}
Thanks,
Ingo
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
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
1 sibling, 0 replies; 22+ messages in thread
From: Shivank Garg @ 2025-05-14 8:06 UTC (permalink / raw)
To: Ingo Molnar
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
On 5/14/2025 1:24 PM, Ingo Molnar wrote:
>
> * Shivank Garg <shivankg@amd.com> wrote:
>
>> Warnings generated with 'make W=1':
>> arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
>> arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
>> arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
>> ... so on
>>
>> Add missing parameter documentation in page table functions to
>> fix kernel-doc warnings.
>>
>> Signed-off-by: Shivank Garg <shivankg@amd.com>
>> ---
>> arch/x86/mm/pgtable.c | 16 ++++++++++++++--
>> 1 file changed, 14 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
>> index f7ae44d3dd9e..8a5bc4545ad3 100644
>> --- a/arch/x86/mm/pgtable.c
>> +++ b/arch/x86/mm/pgtable.c
>> @@ -614,7 +614,7 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
>>
>> /**
>> * reserve_top_address - reserves a hole in the top of kernel address space
>> - * @reserve - size of hole to reserve
>> + * @reserve: Size of hole to reserve.
>> *
>> * Can be used to relocate the fixmap area and poke a hole in the top
>> * of kernel address space to make room for a hypervisor.
>> @@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
>> #ifdef CONFIG_X86_5LEVEL
>> /**
>> * p4d_set_huge - setup kernel P4D mapping
>> + * @p4d: Pointer to a p4d entry.
>> + * @addr: Virtual Address associated with p4d.
>> + * @prot: Protection bits to use.
>
> How about using the same capitalization you already see in this
> description?
Sure, I'll keep the capitalization consistent with existing code.
>
>> /**
>> * p4d_clear_huge - clear kernel P4D mapping when it is set
>> + * @p4d: Pointer to the p4d entry to clear.
>
> Ditto.
>
>> * pud_set_huge - setup kernel PUD mapping
>> + * @pud: Pointer to a pud entry.
>> + * @addr: Virtual Address associated with pud.
>> + * @prot: Protection bits to use.
>
> Ditto.
>
>> * pmd_set_huge - setup kernel PMD mapping
>> + * @pmd: Pointer to a pmd entry.
>> + * @addr: Virtual Address associated with pmd.
>> + * @prot: Protection bits to use.
>
> Ditto.
>
>> @@ -745,6 +755,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>>
>> /**
>> * pud_clear_huge - clear kernel PUD mapping when it is set
>> + * @pud: Pointer to the pud entry to clear.
>
> Ditto.
>
>> * Returns 1 on success and 0 on failure (no PUD map is found).
>> */
>> @@ -760,6 +771,7 @@ int pud_clear_huge(pud_t *pud)
>>
>> /**
>> * pmd_clear_huge - clear kernel PMD mapping when it is set
>> + * @pmd: Pointer to the pmd entry to clear.
>
> Ditto.
Thanks for the feedback.
>
> Thanks,
>
> Ingo
^ permalink raw reply [flat|nested] 22+ messages in thread
* [tip: x86/cleanups] x86/power: hibernate: Fix W=1 build kernel-doc warnings
2025-05-14 6:26 ` [PATCH RESEND 2/4] x86/power: hibernate: " Shivank Garg
@ 2025-05-14 8:07 ` tip-bot2 for Shivank Garg
0 siblings, 0 replies; 22+ messages in thread
From: tip-bot2 for Shivank Garg @ 2025-05-14 8:07 UTC (permalink / raw)
To: linux-tip-commits
Cc: Shivank Garg, Ingo Molnar, Rafael J. Wysocki, x86, linux-kernel
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: f449bf98b7b63702e86155fe5fa3c853c3bf1fda
Gitweb: https://git.kernel.org/tip/f449bf98b7b63702e86155fe5fa3c853c3bf1fda
Author: Shivank Garg <shivankg@amd.com>
AuthorDate: Wed, 14 May 2025 06:26:38
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 14 May 2025 09:58:54 +02:00
x86/power: hibernate: Fix W=1 build kernel-doc warnings
Warnings generated with 'make W=1':
arch/x86/power/hibernate.c:47: warning: Function parameter or struct member 'pfn' not described in 'pfn_is_nosave'
arch/x86/power/hibernate.c:92: warning: Function parameter or struct member 'max_size' not described in 'arch_hibernation_header_save'
Add missing parameter documentation in hibernate functions to
fix kernel-doc warnings.
Signed-off-by: Shivank Garg <shivankg@amd.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://lore.kernel.org/r/20250514062637.3287779-2-shivankg@amd.com
---
arch/x86/power/hibernate.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/arch/x86/power/hibernate.c b/arch/x86/power/hibernate.c
index 5b81d19..a7c23f2 100644
--- a/arch/x86/power/hibernate.c
+++ b/arch/x86/power/hibernate.c
@@ -42,6 +42,7 @@ unsigned long relocated_restore_code __visible;
/**
* pfn_is_nosave - check if given pfn is in the 'nosave' section
+ * @pfn: the page frame number to check.
*/
int pfn_is_nosave(unsigned long pfn)
{
@@ -86,7 +87,10 @@ static inline u32 compute_e820_crc32(struct e820_table *table)
/**
* arch_hibernation_header_save - populate the architecture specific part
* of a hibernation image header
- * @addr: address to save the data at
+ * @addr: address where architecture specific header data will be saved.
+ * @max_size: maximum size of architecture specific data in hibernation header.
+ *
+ * Return: 0 on success, -EOVERFLOW if max_size is insufficient.
*/
int arch_hibernation_header_save(void *addr, unsigned int max_size)
{
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [tip: x86/cleanups] x86/mm/pat: Fix W=1 build kernel-doc warning
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-bot2 for Shivank Garg
0 siblings, 0 replies; 22+ messages in thread
From: tip-bot2 for Shivank Garg @ 2025-05-14 8:07 UTC (permalink / raw)
To: linux-tip-commits; +Cc: Shivank Garg, Ingo Molnar, x86, linux-kernel
The following commit has been merged into the x86/cleanups branch of tip:
Commit-ID: bd6afa43eee175ba146f6f9a27d6d24eeaab0a45
Gitweb: https://git.kernel.org/tip/bd6afa43eee175ba146f6f9a27d6d24eeaab0a45
Author: Shivank Garg <shivankg@amd.com>
AuthorDate: Wed, 14 May 2025 06:26:40
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Wed, 14 May 2025 09:58:53 +02:00
x86/mm/pat: Fix W=1 build kernel-doc warning
Building the kernel with W=1 generates the following warning:
arch/x86/mm/pat/memtype.c:692: warning: Function parameter or struct member 'pfn' not described in 'pat_pfn_immune_to_uc_mtrr'
Add missing parameter documentation to fix the kernel-doc warning.
Signed-off-by: Shivank Garg <shivankg@amd.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20250514062637.3287779-3-shivankg@amd.com
---
arch/x86/mm/pat/memtype.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/arch/x86/mm/pat/memtype.c b/arch/x86/mm/pat/memtype.c
index 72d8cbc..51635ae 100644
--- a/arch/x86/mm/pat/memtype.c
+++ b/arch/x86/mm/pat/memtype.c
@@ -682,6 +682,7 @@ static enum page_cache_mode lookup_memtype(u64 paddr)
/**
* pat_pfn_immune_to_uc_mtrr - Check whether the PAT memory type
* of @pfn cannot be overridden by UC MTRR memory type.
+ * @pfn: The page frame number to check.
*
* Only to be called when PAT is enabled.
*
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
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
1 sibling, 1 reply; 22+ messages in thread
From: Shivank Garg @ 2025-05-14 8:27 UTC (permalink / raw)
To: Ingo Molnar
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
[-- Attachment #1: Type: text/plain, Size: 2825 bytes --]
On 5/14/2025 1:24 PM, Ingo Molnar wrote:
>
> * Shivank Garg <shivankg@amd.com> wrote:
>
>> Warnings generated with 'make W=1':
>> arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
>> arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
>> arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
>> ... so on
>>
>> Add missing parameter documentation in page table functions to
>> fix kernel-doc warnings.
>>
>> Signed-off-by: Shivank Garg <shivankg@amd.com>
>> ---
>> arch/x86/mm/pgtable.c | 16 ++++++++++++++--
>> 1 file changed, 14 insertions(+), 2 deletions(-)
>>
>> diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
>> index f7ae44d3dd9e..8a5bc4545ad3 100644
>> --- a/arch/x86/mm/pgtable.c
>> +++ b/arch/x86/mm/pgtable.c
>> @@ -614,7 +614,7 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
>>
>> /**
>> * reserve_top_address - reserves a hole in the top of kernel address space
>> - * @reserve - size of hole to reserve
>> + * @reserve: Size of hole to reserve.
>> *
>> * Can be used to relocate the fixmap area and poke a hole in the top
>> * of kernel address space to make room for a hypervisor.
>> @@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
>> #ifdef CONFIG_X86_5LEVEL
>> /**
>> * p4d_set_huge - setup kernel P4D mapping
>> + * @p4d: Pointer to a p4d entry.
>> + * @addr: Virtual Address associated with p4d.
>> + * @prot: Protection bits to use.
>
> How about using the same capitalization you already see in this
> description?
>
>> /**
>> * p4d_clear_huge - clear kernel P4D mapping when it is set
>> + * @p4d: Pointer to the p4d entry to clear.
>
> Ditto.
>
>> * pud_set_huge - setup kernel PUD mapping
>> + * @pud: Pointer to a pud entry.
>> + * @addr: Virtual Address associated with pud.
>> + * @prot: Protection bits to use.
>
> Ditto.
>
>> * pmd_set_huge - setup kernel PMD mapping
>> + * @pmd: Pointer to a pmd entry.
>> + * @addr: Virtual Address associated with pmd.
>> + * @prot: Protection bits to use.
>
> Ditto.
>
>> @@ -745,6 +755,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
>>
>> /**
>> * pud_clear_huge - clear kernel PUD mapping when it is set
>> + * @pud: Pointer to the pud entry to clear.
>
> Ditto.
>
>> * Returns 1 on success and 0 on failure (no PUD map is found).
>> */
>> @@ -760,6 +771,7 @@ int pud_clear_huge(pud_t *pud)
>>
>> /**
>> * pmd_clear_huge - clear kernel PMD mapping when it is set
>> + * @pmd: Pointer to the pmd entry to clear.
>
> Ditto.
>
> Thanks,
>
> Ingo
Please review the revised patch with suggested changes.
Thanks,
Shivank
[-- Attachment #2: 0001-x86-mm-pgtable-Fix-W-1-build-kernel-doc-warnings.patch --]
[-- Type: text/plain, Size: 3236 bytes --]
From 44e0e7ce29dc0689db958230e0259a6243b4aed7 Mon Sep 17 00:00:00 2001
From: Shivank Garg <shivankg@amd.com>
Date: Wed, 30 Apr 2025 11:29:59 +0000
Subject: [PATCH] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
Sample warnings generated with 'make W=1':
arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
... so on
Add missing parameter documentation in page table functions to
fix kernel-doc warnings.
Signed-off-by: Shivank Garg <shivankg@amd.com>
---
arch/x86/mm/pgtable.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index f7ae44d3dd9e..0ee0198dfd54 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -614,7 +614,7 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
/**
* reserve_top_address - reserves a hole in the top of kernel address space
- * @reserve - size of hole to reserve
+ * @reserve: size of hole to reserve.
*
* Can be used to relocate the fixmap area and poke a hole in the top
* of kernel address space to make room for a hypervisor.
@@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
#ifdef CONFIG_X86_5LEVEL
/**
* p4d_set_huge - setup kernel P4D mapping
+ * @p4d: pointer to a p4d entry.
+ * @addr: virtual Address associated with p4d.
+ * @prot: protection bits to use.
*
* No 512GB pages yet -- always return 0
*/
@@ -675,8 +678,9 @@ int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
/**
* p4d_clear_huge - clear kernel P4D mapping when it is set
+ * @p4d: pointer to the p4d entry to clear.
*
- * No 512GB pages yet -- always return 0
+ * No 512GB pages yet -- do nothing
*/
void p4d_clear_huge(p4d_t *p4d)
{
@@ -685,6 +689,9 @@ void p4d_clear_huge(p4d_t *p4d)
/**
* pud_set_huge - setup kernel PUD mapping
+ * @pud: pointer to a pud entry.
+ * @addr: virtual Address associated with pud.
+ * @prot: protection bits to use.
*
* MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
* function sets up a huge page only if the complete range has the same MTRR
@@ -716,6 +723,9 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
/**
* pmd_set_huge - setup kernel PMD mapping
+ * @pmd: pointer to a pmd entry.
+ * @addr: virtual Address associated with pmd.
+ * @prot: protection bits to use.
*
* See text over pud_set_huge() above.
*
@@ -745,6 +755,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
/**
* pud_clear_huge - clear kernel PUD mapping when it is set
+ * @pud: pointer to the pud entry to clear.
*
* Returns 1 on success and 0 on failure (no PUD map is found).
*/
@@ -760,6 +771,7 @@ int pud_clear_huge(pud_t *pud)
/**
* pmd_clear_huge - clear kernel PMD mapping when it is set
+ * @pmd: pointer to the pmd entry to clear.
*
* Returns 1 on success and 0 on failure (no PMD map is found).
*/
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
2025-05-14 8:27 ` Shivank Garg
@ 2025-05-14 9:20 ` Ingo Molnar
2025-05-15 3:54 ` Shivank Garg
0 siblings, 1 reply; 22+ messages in thread
From: Ingo Molnar @ 2025-05-14 9:20 UTC (permalink / raw)
To: Shivank Garg
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
* Shivank Garg <shivankg@amd.com> wrote:
> >> @@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
> >> #ifdef CONFIG_X86_5LEVEL
> >> /**
> >> * p4d_set_huge - setup kernel P4D mapping
> >> + * @p4d: Pointer to a p4d entry.
> >> + * @addr: Virtual Address associated with p4d.
> >> + * @prot: Protection bits to use.
> >
> > How about using the same capitalization you already see in this
> > description?
> Please review the revised patch with suggested changes.
I think you misunderstood: why are you using 'p4d', while a line before
it's 'P4D'? It's an acronym, and only used lowercase when it's a local
variable. 'p4d is a pointer to a p4d entry' is doubly confusing in that
regard ...
Same for PMD/PUD etc.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
2025-05-14 9:20 ` Ingo Molnar
@ 2025-05-15 3:54 ` Shivank Garg
2025-05-15 6:54 ` Ingo Molnar
0 siblings, 1 reply; 22+ messages in thread
From: Shivank Garg @ 2025-05-15 3:54 UTC (permalink / raw)
To: Ingo Molnar
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
[-- Attachment #1: Type: text/plain, Size: 944 bytes --]
On 5/14/2025 2:50 PM, Ingo Molnar wrote:
>
> * Shivank Garg <shivankg@amd.com> wrote:
>
>>>> @@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
>>>> #ifdef CONFIG_X86_5LEVEL
>>>> /**
>>>> * p4d_set_huge - setup kernel P4D mapping
>>>> + * @p4d: Pointer to a p4d entry.
>>>> + * @addr: Virtual Address associated with p4d.
>>>> + * @prot: Protection bits to use.
>>>
>>> How about using the same capitalization you already see in this
>>> description?
>
>> Please review the revised patch with suggested changes.
>
> I think you misunderstood: why are you using 'p4d', while a line before
> it's 'P4D'? It's an acronym, and only used lowercase when it's a local
> variable. 'p4d is a pointer to a p4d entry' is doubly confusing in that
> regard ...
>
> Same for PMD/PUD etc.
>
Thank you for the clarification. I understand it now.
I hope the attached patch looks good now.
Best regards,
Shivank
[-- Attachment #2: 0001-x86-mm-pgtable-Fix-W-1-build-kernel-doc-warnings.patch --]
[-- Type: text/plain, Size: 3236 bytes --]
From 3f4fc2ccc73a2225d36b2a28118b434b5ca96a7c Mon Sep 17 00:00:00 2001
From: Shivank Garg <shivankg@amd.com>
Date: Wed, 30 Apr 2025 11:29:59 +0000
Subject: [PATCH] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
Sample warnings generated with 'make W=1':
arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
... so on
Add missing parameter documentation in page table functions to
fix kernel-doc warnings.
Signed-off-by: Shivank Garg <shivankg@amd.com>
---
arch/x86/mm/pgtable.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index f7ae44d3dd9e..e92bb61ec9d7 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -614,7 +614,7 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
/**
* reserve_top_address - reserves a hole in the top of kernel address space
- * @reserve - size of hole to reserve
+ * @reserve: size of hole to reserve.
*
* Can be used to relocate the fixmap area and poke a hole in the top
* of kernel address space to make room for a hypervisor.
@@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
#ifdef CONFIG_X86_5LEVEL
/**
* p4d_set_huge - setup kernel P4D mapping
+ * @p4d: pointer to a P4D entry.
+ * @addr: virtual Address associated with p4d.
+ * @prot: protection bits to use.
*
* No 512GB pages yet -- always return 0
*/
@@ -675,8 +678,9 @@ int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
/**
* p4d_clear_huge - clear kernel P4D mapping when it is set
+ * @p4d: pointer to the P4D entry to clear.
*
- * No 512GB pages yet -- always return 0
+ * No 512GB pages yet -- do nothing
*/
void p4d_clear_huge(p4d_t *p4d)
{
@@ -685,6 +689,9 @@ void p4d_clear_huge(p4d_t *p4d)
/**
* pud_set_huge - setup kernel PUD mapping
+ * @pud: pointer to a PUD entry.
+ * @addr: virtual Address associated with pud.
+ * @prot: protection bits to use.
*
* MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
* function sets up a huge page only if the complete range has the same MTRR
@@ -716,6 +723,9 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
/**
* pmd_set_huge - setup kernel PMD mapping
+ * @pmd: pointer to a PMD entry.
+ * @addr: virtual Address associated with pmd.
+ * @prot: protection bits to use.
*
* See text over pud_set_huge() above.
*
@@ -745,6 +755,7 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
/**
* pud_clear_huge - clear kernel PUD mapping when it is set
+ * @pud: pointer to the PUD entry to clear.
*
* Returns 1 on success and 0 on failure (no PUD map is found).
*/
@@ -760,6 +771,7 @@ int pud_clear_huge(pud_t *pud)
/**
* pmd_clear_huge - clear kernel PMD mapping when it is set
+ * @pmd: pointer to the PMD entry to clear.
*
* Returns 1 on success and 0 on failure (no PMD map is found).
*/
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 4/4] x86/apic: Fix W=1 build kernel-doc warning
2025-05-14 7:56 ` Ingo Molnar
@ 2025-05-15 6:33 ` Shivank Garg
2025-05-15 6:38 ` Ingo Molnar
` (2 more replies)
0 siblings, 3 replies; 22+ messages in thread
From: Shivank Garg @ 2025-05-15 6:33 UTC (permalink / raw)
To: Ingo Molnar
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
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
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 4/4] x86/apic: Fix W=1 build kernel-doc warning
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
2 siblings, 0 replies; 22+ messages in thread
From: Ingo Molnar @ 2025-05-15 6:38 UTC (permalink / raw)
To: Shivank Garg
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
* 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
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 4/4] x86/apic: Fix W=1 build kernel-doc warning
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
2 siblings, 0 replies; 22+ messages in thread
From: Ingo Molnar @ 2025-05-15 6:49 UTC (permalink / raw)
To: Shivank Garg
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
* 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
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
2025-05-15 3:54 ` Shivank Garg
@ 2025-05-15 6:54 ` Ingo Molnar
2025-05-15 9:57 ` Shivank Garg
0 siblings, 1 reply; 22+ messages in thread
From: Ingo Molnar @ 2025-05-15 6:54 UTC (permalink / raw)
To: Shivank Garg
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
* Shivank Garg <shivankg@amd.com> wrote:
>
>
> On 5/14/2025 2:50 PM, Ingo Molnar wrote:
> >
> > * Shivank Garg <shivankg@amd.com> wrote:
> >
> >>>> @@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
> >>>> #ifdef CONFIG_X86_5LEVEL
> >>>> /**
> >>>> * p4d_set_huge - setup kernel P4D mapping
> >>>> + * @p4d: Pointer to a p4d entry.
> >>>> + * @addr: Virtual Address associated with p4d.
> >>>> + * @prot: Protection bits to use.
> >>>
> >>> How about using the same capitalization you already see in this
> >>> description?
> >
> >> Please review the revised patch with suggested changes.
> >
> > I think you misunderstood: why are you using 'p4d', while a line before
> > it's 'P4D'? It's an acronym, and only used lowercase when it's a local
> > variable. 'p4d is a pointer to a p4d entry' is doubly confusing in that
> > regard ...
> >
> > Same for PMD/PUD etc.
> >
>
> Thank you for the clarification. I understand it now.
> I hope the attached patch looks good now.
No. Please re-read your patches and see whether you caught everything,
not just the things I pointed out ...
> /**
> * reserve_top_address - reserves a hole in the top of kernel address space
> - * @reserve - size of hole to reserve
> + * @reserve: size of hole to reserve.
And here the original capitalization in your -v1 patch was better.
> * p4d_set_huge - setup kernel P4D mapping
> + * @p4d: pointer to a P4D entry.
> + * @addr: virtual Address associated with p4d.
> + * @prot: protection bits to use.
Why is 'address' capitalized here?
> /**
> * pud_set_huge - setup kernel PUD mapping
> + * @pud: pointer to a PUD entry.
> + * @addr: virtual Address associated with pud.
> + * @prot: protection bits to use.
s/pud
/the PUD entry
Also, similar errors are elsewhere as well.
Thanks,
Ingo
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 4/4] x86/apic: Fix W=1 build kernel-doc warning
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 ` [PATCH] x86/apic: Better document spurious_interrupt() and __spurious_interrupt() Ingo Molnar
2 siblings, 1 reply; 22+ messages in thread
From: Thomas Gleixner @ 2025-05-15 7:19 UTC (permalink / raw)
To: Shivank Garg, Ingo Molnar
Cc: mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael, pavel,
akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang, yuntao.wang,
kai.huang, xiaoyao.li, peterx, sandipan.das, ak, rostedt
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.
^ permalink raw reply [flat|nested] 22+ messages in thread
* [PATCH] x86/apic: Better document spurious_interrupt() and __spurious_interrupt()
2025-05-15 7:19 ` Thomas Gleixner
@ 2025-05-15 8:15 ` Ingo Molnar
0 siblings, 0 replies; 22+ messages in thread
From: Ingo Molnar @ 2025-05-15 8:15 UTC (permalink / raw)
To: Thomas Gleixner
Cc: Shivank Garg, mingo, bp, dave.hansen, x86, hpa, luto, peterz,
rafael, pavel, akpm, linux-kernel, linux-pm, sohil.mehta,
rui.zhang, yuntao.wang, kai.huang, xiaoyao.li, peterx,
sandipan.das, ak, rostedt
* 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)
{
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
2025-05-15 6:54 ` Ingo Molnar
@ 2025-05-15 9:57 ` Shivank Garg
2025-05-15 15:06 ` Ingo Molnar
0 siblings, 1 reply; 22+ messages in thread
From: Shivank Garg @ 2025-05-15 9:57 UTC (permalink / raw)
To: Ingo Molnar
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
[-- Attachment #1: Type: text/plain, Size: 2457 bytes --]
On 5/15/2025 12:24 PM, Ingo Molnar wrote:
>
> * Shivank Garg <shivankg@amd.com> wrote:
>
>>
>>
>> On 5/14/2025 2:50 PM, Ingo Molnar wrote:
>>>
>>> * Shivank Garg <shivankg@amd.com> wrote:
>>>
>>>>>> @@ -665,6 +665,9 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
>>>>>> #ifdef CONFIG_X86_5LEVEL
>>>>>> /**
>>>>>> * p4d_set_huge - setup kernel P4D mapping
>>>>>> + * @p4d: Pointer to a p4d entry.
>>>>>> + * @addr: Virtual Address associated with p4d.
>>>>>> + * @prot: Protection bits to use.
>>>>>
>>>>> How about using the same capitalization you already see in this
>>>>> description?
>>>
>>>> Please review the revised patch with suggested changes.
>>>
>>> I think you misunderstood: why are you using 'p4d', while a line before
>>> it's 'P4D'? It's an acronym, and only used lowercase when it's a local
>>> variable. 'p4d is a pointer to a p4d entry' is doubly confusing in that
>>> regard ...
>>>
>>> Same for PMD/PUD etc.
>>>
>>
>> Thank you for the clarification. I understand it now.
>> I hope the attached patch looks good now.
>
> No. Please re-read your patches and see whether you caught everything,
> not just the things I pointed out ...
>
>> /**
>> * reserve_top_address - reserves a hole in the top of kernel address space
>> - * @reserve - size of hole to reserve
>> + * @reserve: size of hole to reserve.
>
> And here the original capitalization in your -v1 patch was better.
>
>> * p4d_set_huge - setup kernel P4D mapping
>> + * @p4d: pointer to a P4D entry.
>> + * @addr: virtual Address associated with p4d.
>> + * @prot: protection bits to use.
>
> Why is 'address' capitalized here?
>
>> /**
>> * pud_set_huge - setup kernel PUD mapping
>> + * @pud: pointer to a PUD entry.
>> + * @addr: virtual Address associated with pud.
>> + * @prot: protection bits to use.
>
> s/pud
> /the PUD entry
>
> Also, similar errors are elsewhere as well.
I'm sorry for missing these details in the previous revision.
I'm changing the first letter of variable description to capital.
https://docs.kernel.org/doc-guide/kernel-doc.html
/**
* function_name() - Brief description of function.
* @arg1: Describe the first argument.
* @arg2: Describe the second argument.
* One can provide multiple line descriptions
* for arguments.
Function description also starts with capital letter in the doc-guide
and other kernel places so this should make it consistent.
Thanks,
Shivank
[-- Attachment #2: 0001-x86-mm-pgtable-Fix-W-1-build-kernel-doc-warnings.patch --]
[-- Type: text/plain, Size: 3745 bytes --]
From c76dd45d2cc8221412d69cede4fd713ce775ee64 Mon Sep 17 00:00:00 2001
From: Shivank Garg <shivankg@amd.com>
Date: Wed, 30 Apr 2025 11:29:59 +0000
Subject: [PATCH] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
Sample warnings generated with 'make W=1':
arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
... so on
Add missing parameter documentation in page table functions to
fix kernel-doc warnings.
Signed-off-by: Shivank Garg <shivankg@amd.com>
---
arch/x86/mm/pgtable.c | 30 +++++++++++++++++++++---------
1 file changed, 21 insertions(+), 9 deletions(-)
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index f7ae44d3dd9e..dc55e4d4c226 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -613,8 +613,8 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
#endif
/**
- * reserve_top_address - reserves a hole in the top of kernel address space
- * @reserve - size of hole to reserve
+ * reserve_top_address - Reserves a hole in the top of kernel address space
+ * @reserve: Size of hole to reserve.
*
* Can be used to relocate the fixmap area and poke a hole in the top
* of kernel address space to make room for a hypervisor.
@@ -664,7 +664,10 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#ifdef CONFIG_X86_5LEVEL
/**
- * p4d_set_huge - setup kernel P4D mapping
+ * p4d_set_huge - Setup kernel P4D mapping
+ * @p4d: Pointer to the P4D entry.
+ * @addr: Virtual address associated with the P4D entry.
+ * @prot: Protection bits to use.
*
* No 512GB pages yet -- always return 0
*/
@@ -674,9 +677,10 @@ int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
}
/**
- * p4d_clear_huge - clear kernel P4D mapping when it is set
+ * p4d_clear_huge - Clear kernel P4D mapping when it is set
+ * @p4d: Pointer to the P4D entry to clear.
*
- * No 512GB pages yet -- always return 0
+ * No 512GB pages yet -- do nothing
*/
void p4d_clear_huge(p4d_t *p4d)
{
@@ -684,7 +688,10 @@ void p4d_clear_huge(p4d_t *p4d)
#endif
/**
- * pud_set_huge - setup kernel PUD mapping
+ * pud_set_huge - Setup kernel PUD mapping
+ * @pud: Pointer to the PUD entry.
+ * @addr: Virtual address associated with the PUD entry.
+ * @prot: Protection bits to use.
*
* MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
* function sets up a huge page only if the complete range has the same MTRR
@@ -715,7 +722,10 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
}
/**
- * pmd_set_huge - setup kernel PMD mapping
+ * pmd_set_huge - Setup kernel PMD mapping
+ * @pmd: Pointer to the PMD entry.
+ * @addr: Virtual address associated with the PMD entry.
+ * @prot: Protection bits to use.
*
* See text over pud_set_huge() above.
*
@@ -744,7 +754,8 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
}
/**
- * pud_clear_huge - clear kernel PUD mapping when it is set
+ * pud_clear_huge - Clear kernel PUD mapping when it is set
+ * @pud: Pointer to the PUD entry to clear.
*
* Returns 1 on success and 0 on failure (no PUD map is found).
*/
@@ -759,7 +770,8 @@ int pud_clear_huge(pud_t *pud)
}
/**
- * pmd_clear_huge - clear kernel PMD mapping when it is set
+ * pmd_clear_huge - Clear kernel PMD mapping when it is set
+ * @pmd: Pointer to the PMD entry to clear.
*
* Returns 1 on success and 0 on failure (no PMD map is found).
*/
--
2.34.1
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
2025-05-15 9:57 ` Shivank Garg
@ 2025-05-15 15:06 ` Ingo Molnar
2025-05-15 18:10 ` Shivank Garg
0 siblings, 1 reply; 22+ messages in thread
From: Ingo Molnar @ 2025-05-15 15:06 UTC (permalink / raw)
To: Shivank Garg
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
* Shivank Garg <shivankg@amd.com> wrote:
> > Also, similar errors are elsewhere as well.
>
> I'm sorry for missing these details in the previous revision.
> I'm changing the first letter of variable description to capital.
>
> https://docs.kernel.org/doc-guide/kernel-doc.html
> /**
> * function_name() - Brief description of function.
> * @arg1: Describe the first argument.
> * @arg2: Describe the second argument.
> * One can provide multiple line descriptions
> * for arguments.
>
> Function description also starts with capital letter in the doc-guide
> and other kernel places so this should make it consistent.
Thank you! This version is much more complete. There were a few other
things missing, quite a few of them pre-existing, which I fixed up in
the commit (see the delta patch below).
Note that I standardized on a kernel-doc style variant without full
stops for simple singular sentences. This is what most of the x86 code
and the core kernel is doing, and it's contrary to the kernel-doc.html
recommendation - but you couldn't really have known that.
Thanks,
Ingo
=====================>
arch/x86/mm/pgtable.c | 50 +++++++++++++++++++++++++-------------------------
1 file changed, 25 insertions(+), 25 deletions(-)
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 9aa3c60c6afa..59c42dec7076 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -543,11 +543,11 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
#endif
/**
- * reserve_top_address - Reserves a hole in the top of kernel address space
- * @reserve: Size of hole to reserve.
+ * reserve_top_address - Reserve a hole in the top of the kernel address space
+ * @reserve: Size of hole to reserve
*
* Can be used to relocate the fixmap area and poke a hole in the top
- * of kernel address space to make room for a hypervisor.
+ * of the kernel address space to make room for a hypervisor.
*/
void __init reserve_top_address(unsigned long reserve)
{
@@ -594,10 +594,10 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#ifdef CONFIG_X86_5LEVEL
/**
- * p4d_set_huge - Setup kernel P4D mapping
- * @p4d: Pointer to the P4D entry.
- * @addr: Virtual address associated with the P4D entry.
- * @prot: Protection bits to use.
+ * p4d_set_huge - Set up kernel P4D mapping
+ * @p4d: Pointer to the P4D entry
+ * @addr: Virtual address associated with the P4D entry
+ * @prot: Protection bits to use
*
* No 512GB pages yet -- always return 0
*/
@@ -608,7 +608,7 @@ int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
/**
* p4d_clear_huge - Clear kernel P4D mapping when it is set
- * @p4d: Pointer to the P4D entry to clear.
+ * @p4d: Pointer to the P4D entry to clear
*
* No 512GB pages yet -- do nothing
*/
@@ -618,10 +618,10 @@ void p4d_clear_huge(p4d_t *p4d)
#endif
/**
- * pud_set_huge - Setup kernel PUD mapping
- * @pud: Pointer to the PUD entry.
- * @addr: Virtual address associated with the PUD entry.
- * @prot: Protection bits to use.
+ * pud_set_huge - Set up kernel PUD mapping
+ * @pud: Pointer to the PUD entry
+ * @addr: Virtual address associated with the PUD entry
+ * @prot: Protection bits to use
*
* MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
* function sets up a huge page only if the complete range has the same MTRR
@@ -652,10 +652,10 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
}
/**
- * pmd_set_huge - Setup kernel PMD mapping
- * @pmd: Pointer to the PMD entry.
- * @addr: Virtual address associated with the PMD entry.
- * @prot: Protection bits to use.
+ * pmd_set_huge - Set up kernel PMD mapping
+ * @pmd: Pointer to the PMD entry
+ * @addr: Virtual address associated with the PMD entry
+ * @prot: Protection bits to use
*
* See text over pud_set_huge() above.
*
@@ -717,11 +717,11 @@ int pmd_clear_huge(pmd_t *pmd)
#ifdef CONFIG_X86_64
/**
- * pud_free_pmd_page - Clear pud entry and free pmd page.
- * @pud: Pointer to a PUD.
- * @addr: Virtual address associated with pud.
+ * pud_free_pmd_page - Clear PUD entry and free PMD page
+ * @pud: Pointer to a PUD
+ * @addr: Virtual address associated with PUD
*
- * Context: The pud range has been unmapped and TLB purged.
+ * Context: The PUD range has been unmapped and TLB purged.
* Return: 1 if clearing the entry succeeded. 0 otherwise.
*
* NOTE: Callers must allow a single page allocation.
@@ -764,11 +764,11 @@ int pud_free_pmd_page(pud_t *pud, unsigned long addr)
}
/**
- * pmd_free_pte_page - Clear pmd entry and free pte page.
- * @pmd: Pointer to a PMD.
- * @addr: Virtual address associated with pmd.
+ * pmd_free_pte_page - Clear PMD entry and free PTE page.
+ * @pmd: Pointer to the PMD
+ * @addr: Virtual address associated with PMD
*
- * Context: The pmd range has been unmapped and TLB purged.
+ * Context: The PMD range has been unmapped and TLB purged.
* Return: 1 if clearing the entry succeeded. 0 otherwise.
*/
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
@@ -790,7 +790,7 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
/*
* Disable free page handling on x86-PAE. This assures that ioremap()
- * does not update sync'd pmd entries. See vmalloc_sync_one().
+ * does not update sync'd PMD entries. See vmalloc_sync_one().
*/
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
{
^ permalink raw reply related [flat|nested] 22+ messages in thread
* [tip: x86/core] x86/mm: Fix kernel-doc descriptions of various pgtable methods
2025-05-14 6:26 [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings Shivank Garg
` (3 preceding siblings ...)
2025-05-14 7:54 ` [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings Ingo Molnar
@ 2025-05-15 15:11 ` tip-bot2 for Shivank Garg
4 siblings, 0 replies; 22+ messages in thread
From: tip-bot2 for Shivank Garg @ 2025-05-15 15:11 UTC (permalink / raw)
To: linux-tip-commits
Cc: Shivank Garg, Ingo Molnar, Dave Hansen, Andrew Cooper,
Andy Lutomirski, Brian Gerst, H. Peter Anvin, Juergen Gross,
Linus Torvalds, Peter Zijlstra, Rik van Riel, x86, linux-kernel
The following commit has been merged into the x86/core branch of tip:
Commit-ID: 1adf711919de7c9e1b281a4d9cd9e3a81f3a70f7
Gitweb: https://git.kernel.org/tip/1adf711919de7c9e1b281a4d9cd9e3a81f3a70f7
Author: Shivank Garg <shivankg@amd.com>
AuthorDate: Wed, 30 Apr 2025 11:29:59
Committer: Ingo Molnar <mingo@kernel.org>
CommitterDate: Thu, 15 May 2025 17:04:36 +02:00
x86/mm: Fix kernel-doc descriptions of various pgtable methods
So 'make W=1' complains about a couple of kernel-doc descriptions
in our MM primitives in pgtable.c:
arch/x86/mm/pgtable.c:623: warning: Function parameter or struct member 'reserve' not described in 'reserve_top_address'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'p4d' not described in 'p4d_set_huge'
arch/x86/mm/pgtable.c:672: warning: Function parameter or struct member 'addr' not described in 'p4d_set_huge'
... so on
Fix them all up, add missing parameter documentation, and fix various spelling
inconsistencies while at it.
[ mingo: Harmonize kernel-doc annotations some more. ]
Signed-off-by: Shivank Garg <shivankg@amd.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Juergen Gross <jgross@suse.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@surriel.com>
Link: https://lore.kernel.org/r/20250514062637.3287779-1-shivankg@amd.com
---
arch/x86/mm/pgtable.c | 50 ++++++++++++++++++++++++++----------------
1 file changed, 31 insertions(+), 19 deletions(-)
diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
index 7c253de..59c42de 100644
--- a/arch/x86/mm/pgtable.c
+++ b/arch/x86/mm/pgtable.c
@@ -543,11 +543,11 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
#endif
/**
- * reserve_top_address - reserves a hole in the top of kernel address space
- * @reserve - size of hole to reserve
+ * reserve_top_address - Reserve a hole in the top of the kernel address space
+ * @reserve: Size of hole to reserve
*
* Can be used to relocate the fixmap area and poke a hole in the top
- * of kernel address space to make room for a hypervisor.
+ * of the kernel address space to make room for a hypervisor.
*/
void __init reserve_top_address(unsigned long reserve)
{
@@ -594,7 +594,10 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
#ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
#ifdef CONFIG_X86_5LEVEL
/**
- * p4d_set_huge - setup kernel P4D mapping
+ * p4d_set_huge - Set up kernel P4D mapping
+ * @p4d: Pointer to the P4D entry
+ * @addr: Virtual address associated with the P4D entry
+ * @prot: Protection bits to use
*
* No 512GB pages yet -- always return 0
*/
@@ -604,9 +607,10 @@ int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
}
/**
- * p4d_clear_huge - clear kernel P4D mapping when it is set
+ * p4d_clear_huge - Clear kernel P4D mapping when it is set
+ * @p4d: Pointer to the P4D entry to clear
*
- * No 512GB pages yet -- always return 0
+ * No 512GB pages yet -- do nothing
*/
void p4d_clear_huge(p4d_t *p4d)
{
@@ -614,7 +618,10 @@ void p4d_clear_huge(p4d_t *p4d)
#endif
/**
- * pud_set_huge - setup kernel PUD mapping
+ * pud_set_huge - Set up kernel PUD mapping
+ * @pud: Pointer to the PUD entry
+ * @addr: Virtual address associated with the PUD entry
+ * @prot: Protection bits to use
*
* MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
* function sets up a huge page only if the complete range has the same MTRR
@@ -645,7 +652,10 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
}
/**
- * pmd_set_huge - setup kernel PMD mapping
+ * pmd_set_huge - Set up kernel PMD mapping
+ * @pmd: Pointer to the PMD entry
+ * @addr: Virtual address associated with the PMD entry
+ * @prot: Protection bits to use
*
* See text over pud_set_huge() above.
*
@@ -674,7 +684,8 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
}
/**
- * pud_clear_huge - clear kernel PUD mapping when it is set
+ * pud_clear_huge - Clear kernel PUD mapping when it is set
+ * @pud: Pointer to the PUD entry to clear.
*
* Returns 1 on success and 0 on failure (no PUD map is found).
*/
@@ -689,7 +700,8 @@ int pud_clear_huge(pud_t *pud)
}
/**
- * pmd_clear_huge - clear kernel PMD mapping when it is set
+ * pmd_clear_huge - Clear kernel PMD mapping when it is set
+ * @pmd: Pointer to the PMD entry to clear.
*
* Returns 1 on success and 0 on failure (no PMD map is found).
*/
@@ -705,11 +717,11 @@ int pmd_clear_huge(pmd_t *pmd)
#ifdef CONFIG_X86_64
/**
- * pud_free_pmd_page - Clear pud entry and free pmd page.
- * @pud: Pointer to a PUD.
- * @addr: Virtual address associated with pud.
+ * pud_free_pmd_page - Clear PUD entry and free PMD page
+ * @pud: Pointer to a PUD
+ * @addr: Virtual address associated with PUD
*
- * Context: The pud range has been unmapped and TLB purged.
+ * Context: The PUD range has been unmapped and TLB purged.
* Return: 1 if clearing the entry succeeded. 0 otherwise.
*
* NOTE: Callers must allow a single page allocation.
@@ -752,11 +764,11 @@ int pud_free_pmd_page(pud_t *pud, unsigned long addr)
}
/**
- * pmd_free_pte_page - Clear pmd entry and free pte page.
- * @pmd: Pointer to a PMD.
- * @addr: Virtual address associated with pmd.
+ * pmd_free_pte_page - Clear PMD entry and free PTE page.
+ * @pmd: Pointer to the PMD
+ * @addr: Virtual address associated with PMD
*
- * Context: The pmd range has been unmapped and TLB purged.
+ * Context: The PMD range has been unmapped and TLB purged.
* Return: 1 if clearing the entry succeeded. 0 otherwise.
*/
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
@@ -778,7 +790,7 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
/*
* Disable free page handling on x86-PAE. This assures that ioremap()
- * does not update sync'd pmd entries. See vmalloc_sync_one().
+ * does not update sync'd PMD entries. See vmalloc_sync_one().
*/
int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
{
^ permalink raw reply related [flat|nested] 22+ messages in thread
* Re: [PATCH RESEND 1/4] x86/mm: pgtable: Fix W=1 build kernel-doc warnings
2025-05-15 15:06 ` Ingo Molnar
@ 2025-05-15 18:10 ` Shivank Garg
0 siblings, 0 replies; 22+ messages in thread
From: Shivank Garg @ 2025-05-15 18:10 UTC (permalink / raw)
To: Ingo Molnar
Cc: tglx, mingo, bp, dave.hansen, x86, hpa, luto, peterz, rafael,
pavel, akpm, linux-kernel, linux-pm, sohil.mehta, rui.zhang,
yuntao.wang, kai.huang, xiaoyao.li, peterx, sandipan.das, ak,
rostedt
On 5/15/2025 8:36 PM, Ingo Molnar wrote:
>
> * Shivank Garg <shivankg@amd.com> wrote:
>
>>> Also, similar errors are elsewhere as well.
>>
>> I'm sorry for missing these details in the previous revision.
>> I'm changing the first letter of variable description to capital.
>>
>> https://docs.kernel.org/doc-guide/kernel-doc.html
>> /**
>> * function_name() - Brief description of function.
>> * @arg1: Describe the first argument.
>> * @arg2: Describe the second argument.
>> * One can provide multiple line descriptions
>> * for arguments.
>>
>> Function description also starts with capital letter in the doc-guide
>> and other kernel places so this should make it consistent.
>
> Thank you! This version is much more complete. There were a few other
> things missing, quite a few of them pre-existing, which I fixed up in
> the commit (see the delta patch below).
>
> Note that I standardized on a kernel-doc style variant without full
> stops for simple singular sentences. This is what most of the x86 code
> and the core kernel is doing, and it's contrary to the kernel-doc.html
> recommendation - but you couldn't really have known that.
>
Thank you for the detailed review and fixups.
Best Regards,
Shivank
> Thanks,
>
> Ingo
>
> =====================>
> arch/x86/mm/pgtable.c | 50 +++++++++++++++++++++++++-------------------------
> 1 file changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
> index 9aa3c60c6afa..59c42dec7076 100644
> --- a/arch/x86/mm/pgtable.c
> +++ b/arch/x86/mm/pgtable.c
> @@ -543,11 +543,11 @@ pud_t pudp_invalidate(struct vm_area_struct *vma, unsigned long address,
> #endif
>
> /**
> - * reserve_top_address - Reserves a hole in the top of kernel address space
> - * @reserve: Size of hole to reserve.
> + * reserve_top_address - Reserve a hole in the top of the kernel address space
> + * @reserve: Size of hole to reserve
> *
> * Can be used to relocate the fixmap area and poke a hole in the top
> - * of kernel address space to make room for a hypervisor.
> + * of the kernel address space to make room for a hypervisor.
> */
> void __init reserve_top_address(unsigned long reserve)
> {
> @@ -594,10 +594,10 @@ void native_set_fixmap(unsigned /* enum fixed_addresses */ idx,
> #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
> #ifdef CONFIG_X86_5LEVEL
> /**
> - * p4d_set_huge - Setup kernel P4D mapping
> - * @p4d: Pointer to the P4D entry.
> - * @addr: Virtual address associated with the P4D entry.
> - * @prot: Protection bits to use.
> + * p4d_set_huge - Set up kernel P4D mapping
> + * @p4d: Pointer to the P4D entry
> + * @addr: Virtual address associated with the P4D entry
> + * @prot: Protection bits to use
> *
> * No 512GB pages yet -- always return 0
> */
> @@ -608,7 +608,7 @@ int p4d_set_huge(p4d_t *p4d, phys_addr_t addr, pgprot_t prot)
>
> /**
> * p4d_clear_huge - Clear kernel P4D mapping when it is set
> - * @p4d: Pointer to the P4D entry to clear.
> + * @p4d: Pointer to the P4D entry to clear
> *
> * No 512GB pages yet -- do nothing
> */
> @@ -618,10 +618,10 @@ void p4d_clear_huge(p4d_t *p4d)
> #endif
>
> /**
> - * pud_set_huge - Setup kernel PUD mapping
> - * @pud: Pointer to the PUD entry.
> - * @addr: Virtual address associated with the PUD entry.
> - * @prot: Protection bits to use.
> + * pud_set_huge - Set up kernel PUD mapping
> + * @pud: Pointer to the PUD entry
> + * @addr: Virtual address associated with the PUD entry
> + * @prot: Protection bits to use
> *
> * MTRRs can override PAT memory types with 4KiB granularity. Therefore, this
> * function sets up a huge page only if the complete range has the same MTRR
> @@ -652,10 +652,10 @@ int pud_set_huge(pud_t *pud, phys_addr_t addr, pgprot_t prot)
> }
>
> /**
> - * pmd_set_huge - Setup kernel PMD mapping
> - * @pmd: Pointer to the PMD entry.
> - * @addr: Virtual address associated with the PMD entry.
> - * @prot: Protection bits to use.
> + * pmd_set_huge - Set up kernel PMD mapping
> + * @pmd: Pointer to the PMD entry
> + * @addr: Virtual address associated with the PMD entry
> + * @prot: Protection bits to use
> *
> * See text over pud_set_huge() above.
> *
> @@ -717,11 +717,11 @@ int pmd_clear_huge(pmd_t *pmd)
>
> #ifdef CONFIG_X86_64
> /**
> - * pud_free_pmd_page - Clear pud entry and free pmd page.
> - * @pud: Pointer to a PUD.
> - * @addr: Virtual address associated with pud.
> + * pud_free_pmd_page - Clear PUD entry and free PMD page
> + * @pud: Pointer to a PUD
> + * @addr: Virtual address associated with PUD
> *
> - * Context: The pud range has been unmapped and TLB purged.
> + * Context: The PUD range has been unmapped and TLB purged.
> * Return: 1 if clearing the entry succeeded. 0 otherwise.
> *
> * NOTE: Callers must allow a single page allocation.
> @@ -764,11 +764,11 @@ int pud_free_pmd_page(pud_t *pud, unsigned long addr)
> }
>
> /**
> - * pmd_free_pte_page - Clear pmd entry and free pte page.
> - * @pmd: Pointer to a PMD.
> - * @addr: Virtual address associated with pmd.
> + * pmd_free_pte_page - Clear PMD entry and free PTE page.
> + * @pmd: Pointer to the PMD
> + * @addr: Virtual address associated with PMD
> *
> - * Context: The pmd range has been unmapped and TLB purged.
> + * Context: The PMD range has been unmapped and TLB purged.
> * Return: 1 if clearing the entry succeeded. 0 otherwise.
> */
> int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
> @@ -790,7 +790,7 @@ int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
>
> /*
> * Disable free page handling on x86-PAE. This assures that ioremap()
> - * does not update sync'd pmd entries. See vmalloc_sync_one().
> + * does not update sync'd PMD entries. See vmalloc_sync_one().
> */
> int pmd_free_pte_page(pmd_t *pmd, unsigned long addr)
> {
^ permalink raw reply [flat|nested] 22+ messages in thread
end of thread, other threads:[~2025-05-15 18:10 UTC | newest]
Thread overview: 22+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH] x86/apic: Better document spurious_interrupt() and __spurious_interrupt() Ingo Molnar
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
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).