All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h
@ 2022-04-18 17:56 Fabio M. De Francesco
  2022-04-19 12:44 ` Matthew Wilcox
  2022-04-21 17:50 ` Fabio M. De Francesco
  0 siblings, 2 replies; 7+ messages in thread
From: Fabio M. De Francesco @ 2022-04-18 17:56 UTC (permalink / raw)
  To: Ira Weiny, Andrew Morton, Catalin Marinas,
	Matthew Wilcox (Oracle),
	Will Deacon, Peter Collingbourne, Vlastimil Babka,
	Sebastian Andrzej Siewior, Mike Rapoport, linux-kernel,
	outreachy
  Cc: Fabio M. De Francesco

`scripts/kernel-doc -none include/linux/highmem*` reports the following
warnings:

include/linux/highmem.h:160: warning: expecting prototype for kunmap_atomic(). Prototype was for nr_free_highpages() instead
include/linux/highmem-internal.h:256: warning: Function parameter or member '__addr' not described in 'kunmap_atomic'
include/linux/highmem-internal.h:256: warning: Excess function parameter 'addr' description in 'kunmap_atomic'

Fix these warnings by (1) move the kernel-doc comments from highmem.h to
highmem-internal.h (which is the file were the kunmap_atomic() macro is
actually defined), (2) merge it with the comment which already was in
highmem-internal.h, and (3) use correct parameter names.

Acked-by: Mike Rapoport <rppt@linux.ibm.com>
Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
---

v1->v2: Re-word the last sentence of the commit message and add a missing
	number to the second entry in the fixes list. Add Mike Rapoport's
	"Acked-by:" tag (thanks!).

 include/linux/highmem-internal.h | 14 +++++++++++---
 include/linux/highmem.h          | 13 +------------
 2 files changed, 12 insertions(+), 15 deletions(-)

diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-internal.h
index a77be5630209..7307de391288 100644
--- a/include/linux/highmem-internal.h
+++ b/include/linux/highmem-internal.h
@@ -236,9 +236,17 @@ static inline unsigned long totalhigh_pages(void) { return 0UL; }
 
 #endif /* CONFIG_HIGHMEM */
 
-/*
- * Prevent people trying to call kunmap_atomic() as if it were kunmap()
- * kunmap_atomic() should get the return value of kmap_atomic, not the page.
+/**
+ * kunmap_atomic - Unmap the virtual address mapped by kmap_atomic()
+ * @__addr:       Virtual address to be unmapped
+ *
+ * Counterpart to kmap_atomic().
+ *
+ * Effectively a wrapper around kunmap_local() which additionally undoes
+ * the side effects of kmap_atomic(), i.e. reenabling pagefaults and
+ * preemption. Prevent people trying to call kunmap_atomic() as if it
+ * were kunmap() because kunmap_atomic() should get the return value of
+ * kmap_atomic(), not its argument which is a pointer to struct page.
  */
 #define kunmap_atomic(__addr)					\
 do {								\
diff --git a/include/linux/highmem.h b/include/linux/highmem.h
index 39bb9b47fa9c..0a7a89721e5d 100644
--- a/include/linux/highmem.h
+++ b/include/linux/highmem.h
@@ -37,7 +37,7 @@ static inline void *kmap(struct page *page);
 
 /**
  * kunmap - Unmap the virtual address mapped by kmap()
- * @addr:	Virtual address to be unmapped
+ * @page:	Virtual address to be unmapped
  *
  * Counterpart to kmap(). A NOOP for CONFIG_HIGHMEM=n and for mappings of
  * pages in the low memory area.
@@ -145,17 +145,6 @@ static inline void *kmap_local_folio(struct folio *folio, size_t offset);
  */
 static inline void *kmap_atomic(struct page *page);
 
-/**
- * kunmap_atomic - Unmap the virtual address mapped by kmap_atomic()
- * @addr:	Virtual address to be unmapped
- *
- * Counterpart to kmap_atomic().
- *
- * Effectively a wrapper around kunmap_local() which additionally undoes
- * the side effects of kmap_atomic(), i.e. reenabling pagefaults and
- * preemption.
- */
-
 /* Highmem related interfaces for management code */
 static inline unsigned int nr_free_highpages(void);
 static inline unsigned long totalhigh_pages(void);
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h
  2022-04-18 17:56 [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h Fabio M. De Francesco
@ 2022-04-19 12:44 ` Matthew Wilcox
  2022-04-19 13:25   ` Fabio M. De Francesco
  2022-04-21 17:50 ` Fabio M. De Francesco
  1 sibling, 1 reply; 7+ messages in thread
From: Matthew Wilcox @ 2022-04-19 12:44 UTC (permalink / raw)
  To: Fabio M. De Francesco
  Cc: Ira Weiny, Andrew Morton, Catalin Marinas, Will Deacon,
	Peter Collingbourne, Vlastimil Babka, Sebastian Andrzej Siewior,
	Mike Rapoport, linux-kernel, outreachy

On Mon, Apr 18, 2022 at 07:56:38PM +0200, Fabio M. De Francesco wrote:
> +/**
> + * kunmap_atomic - Unmap the virtual address mapped by kmap_atomic()
> + * @__addr:       Virtual address to be unmapped
> + *
> + * Counterpart to kmap_atomic().

I don't think this is a terribly useful paragraph?

> + * Effectively a wrapper around kunmap_local() which additionally undoes
> + * the side effects of kmap_atomic(), i.e. reenabling pagefaults and
> + * preemption. Prevent people trying to call kunmap_atomic() as if it
> + * were kunmap() because kunmap_atomic() should get the return value of
> + * kmap_atomic(), not its argument which is a pointer to struct page.

I'd rather this were useful advice to the caller than documentation of
how it works.  How about:

 * Unmap an address previously mapped by kmap_atomic().  Mappings
 * should be unmapped in the reverse order that they were mapped.
 * See kmap_local_page() for details.  @__addr can be any address within
 * the mapped page, so there is no need to subtract any offset that has
 * been added.  In contrast to kunmap(), this function takes the address
 * returned from kmap_atomic(), not the page passed to kmap_atomic().
 * The compiler will warn you if you pass the page.


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h
  2022-04-19 12:44 ` Matthew Wilcox
@ 2022-04-19 13:25   ` Fabio M. De Francesco
  2022-04-19 14:52     ` Ira Weiny
  0 siblings, 1 reply; 7+ messages in thread
From: Fabio M. De Francesco @ 2022-04-19 13:25 UTC (permalink / raw)
  To: Matthew Wilcox
  Cc: Ira Weiny, Andrew Morton, Catalin Marinas, Will Deacon,
	Peter Collingbourne, Vlastimil Babka, Sebastian Andrzej Siewior,
	Mike Rapoport, linux-kernel, outreachy

On martedì 19 aprile 2022 14:44:14 CEST Matthew Wilcox wrote:
> On Mon, Apr 18, 2022 at 07:56:38PM +0200, Fabio M. De Francesco wrote:
> > +/**
> > + * kunmap_atomic - Unmap the virtual address mapped by kmap_atomic()
> > + * @__addr:       Virtual address to be unmapped
> > + *
> > + * Counterpart to kmap_atomic().
> 
> I don't think this is a terribly useful paragraph?

I agree but let me remind you that this patch is _only_ about fixing 
kernel-doc warnings. This warning was simply fixed by moving kdoc comment 
from highmem.h to highmem-internal.h (which is the file where the 
definition of kunmap_atomic() resides) and merging the text with few lines 
that already were in highmem-internal.h.

Furthermore, I've already had an "Acked-by:" tag from Mike Rapoport. I 
suppose that if I changed the paragraph here I could not forward his ack to 
the next version.

> > + * Effectively a wrapper around kunmap_local() which additionally 
undoes
> > + * the side effects of kmap_atomic(), i.e. reenabling pagefaults and
> > + * preemption. Prevent people trying to call kunmap_atomic() as if it
> > + * were kunmap() because kunmap_atomic() should get the return value 
of
> > + * kmap_atomic(), not its argument which is a pointer to struct page.
> 
> I'd rather this were useful advice to the caller than documentation of
> how it works.  How about:
> 
>  * Unmap an address previously mapped by kmap_atomic().  Mappings
>  * should be unmapped in the reverse order that they were mapped.
>  * See kmap_local_page() for details.  @__addr can be any address within
>  * the mapped page, so there is no need to subtract any offset that has
>  * been added.  In contrast to kunmap(), this function takes the address
>  * returned from kmap_atomic(), not the page passed to kmap_atomic().
>  * The compiler will warn you if you pass the page.

A change like this should go to a separate patch and indeed I'll send it 
ASAP. Probably, when I'll rework this text in a separate patch, I'll also 
copy-paste the paragraph you wrote as-is (too easy!).

However, since the rework of the text in paragraph can only be applied on 
top of this patch, I'm not sure if I should either (1) make a series with 
two patches or (2) make a separate patch with a warning to Maintainers that 
the changes in the new patch can only be applied on top of this patch.

Actually, I don't yet know how the Community wants tasks like these to be 
carried out. Any suggestion?

Thanks for your review and for suggesting a better suited text for the next 
patch.

Fabio M. De Francesco



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h
  2022-04-19 13:25   ` Fabio M. De Francesco
@ 2022-04-19 14:52     ` Ira Weiny
  2022-04-19 15:09       ` Fabio M. De Francesco
  0 siblings, 1 reply; 7+ messages in thread
From: Ira Weiny @ 2022-04-19 14:52 UTC (permalink / raw)
  To: Fabio M. De Francesco
  Cc: Matthew Wilcox, Andrew Morton, Catalin Marinas, Will Deacon,
	Peter Collingbourne, Vlastimil Babka, Sebastian Andrzej Siewior,
	Mike Rapoport, linux-kernel, outreachy

On Tue, Apr 19, 2022 at 03:25:16PM +0200, Fabio M. De Francesco wrote:
> On martedì 19 aprile 2022 14:44:14 CEST Matthew Wilcox wrote:
> > On Mon, Apr 18, 2022 at 07:56:38PM +0200, Fabio M. De Francesco wrote:
> > > +/**
> > > + * kunmap_atomic - Unmap the virtual address mapped by kmap_atomic()
> > > + * @__addr:       Virtual address to be unmapped
> > > + *
> > > + * Counterpart to kmap_atomic().
> > 
> > I don't think this is a terribly useful paragraph?
> 
> I agree but let me remind you that this patch is _only_ about fixing 
> kernel-doc warnings. This warning was simply fixed by moving kdoc comment 
> from highmem.h to highmem-internal.h (which is the file where the 
> definition of kunmap_atomic() resides) and merging the text with few lines 
> that already were in highmem-internal.h.
> 
> Furthermore, I've already had an "Acked-by:" tag from Mike Rapoport. I 
> suppose that if I changed the paragraph here I could not forward his ack to 
> the next version.

No drop the ack for now.

> 
> > > + * Effectively a wrapper around kunmap_local() which additionally 
> undoes
> > > + * the side effects of kmap_atomic(), i.e. reenabling pagefaults and
> > > + * preemption. Prevent people trying to call kunmap_atomic() as if it
> > > + * were kunmap() because kunmap_atomic() should get the return value 
> of
> > > + * kmap_atomic(), not its argument which is a pointer to struct page.
> > 
> > I'd rather this were useful advice to the caller than documentation of
> > how it works.  How about:
> > 
> >  * Unmap an address previously mapped by kmap_atomic().  Mappings
> >  * should be unmapped in the reverse order that they were mapped.
> >  * See kmap_local_page() for details.  @__addr can be any address within
> >  * the mapped page, so there is no need to subtract any offset that has
> >  * been added.  In contrast to kunmap(), this function takes the address
> >  * returned from kmap_atomic(), not the page passed to kmap_atomic().
> >  * The compiler will warn you if you pass the page.
> 
> A change like this should go to a separate patch and indeed I'll send it 
> ASAP. Probably, when I'll rework this text in a separate patch, I'll also 
> copy-paste the paragraph you wrote as-is (too easy!).
> 
> However, since the rework of the text in paragraph can only be applied on 
> top of this patch, I'm not sure if I should either (1) make a series with 
> two patches or (2) make a separate patch with a warning to Maintainers that 
> the changes in the new patch can only be applied on top of this patch.
> 
> Actually, I don't yet know how the Community wants tasks like these to be 
> carried out. Any suggestion?
> 
> Thanks for your review and for suggesting a better suited text for the next 
> patch.

I think you should gather all these patches together into a series and submit.
If I am following correctly there are at least 4 patches now?  But I'm unsure
of which ones are stand alone.

It would be easier to see what changes are being made along the way as well as
the final result of the fixes.

Ira

> 
> Fabio M. De Francesco
> 
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h
  2022-04-19 14:52     ` Ira Weiny
@ 2022-04-19 15:09       ` Fabio M. De Francesco
  2022-04-19 17:13         ` Fabio M. De Francesco
  0 siblings, 1 reply; 7+ messages in thread
From: Fabio M. De Francesco @ 2022-04-19 15:09 UTC (permalink / raw)
  To: Ira Weiny
  Cc: Matthew Wilcox, Andrew Morton, Catalin Marinas, Will Deacon,
	Peter Collingbourne, Vlastimil Babka, Sebastian Andrzej Siewior,
	Mike Rapoport, linux-kernel, outreachy

On martedì 19 aprile 2022 16:52:22 CEST Ira Weiny wrote:
> On Tue, Apr 19, 2022 at 03:25:16PM +0200, Fabio M. De Francesco wrote:
>
> [snip]
> 
> I think you should gather all these patches together into a series and 
submit.
> If I am following correctly there are at least 4 patches now?  But I'm 
unsure
> of which ones are stand alone.
> 
> It would be easier to see what changes are being made along the way as 
well as
> the final result of the fixes.
> 
> Ira

Yes, this is perfectly reasonable. There are only three patches (this patch 
plus two more in a series). Since they are all related in some way, it is 
best to bring them together into one series which I will rework taking into 
account both yours and Matthew's suggestions.

Thanks,

Fabio



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h
  2022-04-19 15:09       ` Fabio M. De Francesco
@ 2022-04-19 17:13         ` Fabio M. De Francesco
  0 siblings, 0 replies; 7+ messages in thread
From: Fabio M. De Francesco @ 2022-04-19 17:13 UTC (permalink / raw)
  To: Ira Weiny
  Cc: Matthew Wilcox, Andrew Morton, Catalin Marinas, Will Deacon,
	Peter Collingbourne, Vlastimil Babka, Sebastian Andrzej Siewior,
	Mike Rapoport, linux-kernel, outreachy

On martedì 19 aprile 2022 17:09:04 CEST Fabio M. De Francesco wrote:
> On martedì 19 aprile 2022 16:52:22 CEST Ira Weiny wrote:
> > On Tue, Apr 19, 2022 at 03:25:16PM +0200, Fabio M. De Francesco wrote:
> >
> > [snip]
> > 
> > I think you should gather all these patches together into a series and 
> submit.
> > If I am following correctly there are at least 4 patches now?  But I'm 
> unsure
> > of which ones are stand alone.
> > 
> > It would be easier to see what changes are being made along the way as 
> well as
> > the final result of the fixes.
> > 
> > Ira
> 
> Yes, this is perfectly reasonable. There are only three patches (this 
patch 
> plus two more in a series). 

No, you are right. There are 4 patches in my queue for Highmem related 
files. I think I'm at a point where I'm starting to lose sight of the tasks 
due :(

> Since they are all related in some way, it is 
> best to bring them together into one series which I will rework taking 
into 
> account both yours and Matthew's suggestions.

The collection of all these patches in one series is confirmed for all 4.

Thanks,

Fabio




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h
  2022-04-18 17:56 [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h Fabio M. De Francesco
  2022-04-19 12:44 ` Matthew Wilcox
@ 2022-04-21 17:50 ` Fabio M. De Francesco
  1 sibling, 0 replies; 7+ messages in thread
From: Fabio M. De Francesco @ 2022-04-21 17:50 UTC (permalink / raw)
  To: Ira Weiny, Andrew Morton, Catalin Marinas,
	Matthew Wilcox (Oracle),
	Will Deacon, Peter Collingbourne, Vlastimil Babka,
	Sebastian Andrzej Siewior, Mike Rapoport, linux-kernel,
	outreachy

On lunedì 18 aprile 2022 19:56:38 CEST Fabio M. De Francesco wrote:
> `scripts/kernel-doc -none include/linux/highmem*` reports the following
> warnings:
> 
> include/linux/highmem.h:160: warning: expecting prototype for 
kunmap_atomic(). Prototype was for nr_free_highpages() instead
> include/linux/highmem-internal.h:256: warning: Function parameter or 
member '__addr' not described in 'kunmap_atomic'
> include/linux/highmem-internal.h:256: warning: Excess function parameter 
'addr' description in 'kunmap_atomic'
> 
> Fix these warnings by (1) move the kernel-doc comments from highmem.h to
> highmem-internal.h (which is the file were the kunmap_atomic() macro is
> actually defined), (2) merge it with the comment which already was in
> highmem-internal.h, and (3) use correct parameter names.
> 
> Acked-by: Mike Rapoport <rppt@linux.ibm.com>
> Signed-off-by: Fabio M. De Francesco <fmdefrancesco@gmail.com>
> ---
> 
> v1->v2: Re-word the last sentence of the commit message and add a missing
> 	number to the second entry in the fixes list. Add Mike Rapoport's
> 	"Acked-by:" tag (thanks!).
> 
>  include/linux/highmem-internal.h | 14 +++++++++++---
>  include/linux/highmem.h          | 13 +------------
>  2 files changed, 12 insertions(+), 15 deletions(-)
> 
> diff --git a/include/linux/highmem-internal.h b/include/linux/highmem-
internal.h
> index a77be5630209..7307de391288 100644
> --- a/include/linux/highmem-internal.h
> +++ b/include/linux/highmem-internal.h
> @@ -236,9 +236,17 @@ static inline unsigned long totalhigh_pages(void) { 
return 0UL; }
>  
>  #endif /* CONFIG_HIGHMEM */
>  
> -/*
> - * Prevent people trying to call kunmap_atomic() as if it were kunmap()
> - * kunmap_atomic() should get the return value of kmap_atomic, not the 
page.
> +/**
> + * kunmap_atomic - Unmap the virtual address mapped by kmap_atomic()
> + * @__addr:       Virtual address to be unmapped
> + *
> + * Counterpart to kmap_atomic().
> + *
> + * Effectively a wrapper around kunmap_local() which additionally undoes
> + * the side effects of kmap_atomic(), i.e. reenabling pagefaults and
> + * preemption. Prevent people trying to call kunmap_atomic() as if it
> + * were kunmap() because kunmap_atomic() should get the return value of
> + * kmap_atomic(), not its argument which is a pointer to struct page.
>   */
>  #define kunmap_atomic(__addr)					
\
>  do {								
\
> diff --git a/include/linux/highmem.h b/include/linux/highmem.h
> index 39bb9b47fa9c..0a7a89721e5d 100644
> --- a/include/linux/highmem.h
> +++ b/include/linux/highmem.h
> @@ -37,7 +37,7 @@ static inline void *kmap(struct page *page);
>  
>  /**
>   * kunmap - Unmap the virtual address mapped by kmap()
> - * @addr:	Virtual address to be unmapped
> + * @page:	Virtual address to be unmapped
>   *
>   * Counterpart to kmap(). A NOOP for CONFIG_HIGHMEM=n and for mappings 
of
>   * pages in the low memory area.
> @@ -145,17 +145,6 @@ static inline void *kmap_local_folio(struct folio 
*folio, size_t offset);
>   */
>  static inline void *kmap_atomic(struct page *page);
>  
> -/**
> - * kunmap_atomic - Unmap the virtual address mapped by kmap_atomic()
> - * @addr:	Virtual address to be unmapped
> - *
> - * Counterpart to kmap_atomic().
> - *
> - * Effectively a wrapper around kunmap_local() which additionally undoes
> - * the side effects of kmap_atomic(), i.e. reenabling pagefaults and
> - * preemption.
> - */
> -
>  /* Highmem related interfaces for management code */
>  static inline unsigned int nr_free_highpages(void);
>  static inline unsigned long totalhigh_pages(void);
> -- 
> 2.34.1
> 
Dear Maintainers,

Please drop this patch because it has been reworked and inserted as part of 
a new series whose subject is "Extend and reorganize Highmem's 
documentation" and which is about to be submitted.

Thanks,

Fabio M. De Francesco





^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-04-21 17:51 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-18 17:56 [PATCH v2] mm/highmem: Fix kernel-doc warnings in highmem*.h Fabio M. De Francesco
2022-04-19 12:44 ` Matthew Wilcox
2022-04-19 13:25   ` Fabio M. De Francesco
2022-04-19 14:52     ` Ira Weiny
2022-04-19 15:09       ` Fabio M. De Francesco
2022-04-19 17:13         ` Fabio M. De Francesco
2022-04-21 17:50 ` Fabio M. De Francesco

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.