Re: [PATCH v2] m68k: Avoid -Wunused-but-set-parameter in clear_user_page()

Andrew Morton <[email protected]>
Newsgroups org.kernel.vger.linux-m68k,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
On Mon, 25 May 2026 10:33:52 +0200 Thomas Weißschuh <[email protected]> wrote:

> The loop in clear_user_pages() iterates over all pages and calls
> clear_user_page() for each of them. During the loop "vaddr" is modified.
> However on m68k clear_user() is a macro which does not use "vaddr".
> The compiler sees a variable which is modified but never used and emits
> a warning for that:
> 
> include/linux/highmem.h: In function 'clear_user_pages':
> include/linux/highmem.h:234:63: warning: parameter 'vaddr' set but not used [-Wunused-but-set-parameter=]
>     static inline void clear_user_pages(void *addr, unsigned long vaddr,
> 
> Other architectures use an inline function for clear_user_page() which
> avoids the warning. This is not possible on m68k, as dlush_dcache_page()
> is another macro which is not yet defined where clear_user_page() is
> defined. Including cacheflush_mm.h will trigger recursive and lots of
> other issues.
> 
> So hide the warning with a cast to (void) instead.
> 
> While we are here, do the same for copy_user_page().
> 

As with sparc, can this be addressed by converting these macros into
static inline C functions?

> --- a/arch/m68k/include/asm/page_mm.h
> +++ b/arch/m68k/include/asm/page_mm.h
> @@ -55,10 +55,12 @@ static inline void clear_page(void *page)
>  #define clear_user_page(addr, vaddr, page)	\
>  	do {	clear_page(addr);		\
>  		flush_dcache_page(page);	\
> +		(void)(vaddr);			\
>  	} while (0)
>  #define copy_user_page(to, from, vaddr, page)	\
>  	do {	copy_page(to, from);		\
>  		flush_dcache_page(page);	\
> +		(void)(vaddr);			\
>  	} while (0)
>  
>  extern unsigned long m68k_memoffset;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.