lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250903195947.97af912dc103f8a055e73537@linux-foundation.org>
Date: Wed, 3 Sep 2025 19:59:47 -0700
From: Andrew Morton <akpm@...ux-foundation.org>
To: Stephen Rothwell <sfr@...b.auug.org.au>
Cc: Max Kellermann <max.kellermann@...os.com>, Linux Kernel Mailing List
 <linux-kernel@...r.kernel.org>, Linux Next Mailing List
 <linux-next@...r.kernel.org>, Lorenzo Stoakes <lorenzo.stoakes@...cle.com>,
 David Hildenbrand <david@...hat.com>, Vlastimil Babka <vbabka@...e.cz>,
 Mike Rapoport <rppt@...nel.org>, Matthew Wilcox <willy@...radead.org>
Subject: Re: linux-next: build warning after merge of the mm-unstable tree

On Thu, 4 Sep 2025 12:14:38 +1000 Stephen Rothwell <sfr@...b.auug.org.au> wrote:

> After merging the mm-unstable tree, today's linux-next build (arm
> multi_v7_defconfig) produced this warning:
> 
> In file included from include/linux/highmem.h:14,
>                  from include/linux/bvec.h:10,
>                  from include/linux/blk_types.h:10,
>                  from include/linux/writeback.h:13,
>                  from include/linux/memcontrol.h:23,
>                  from include/linux/swap.h:9,
>                  from include/linux/suspend.h:5,
>                  from arch/arm/mach-highbank/pm.c:9:
> include/linux/highmem-internal.h: In function 'kmap_local_folio':
> include/linux/highmem-internal.h:86:46: warning: passing argument 1 of 'folio_page' discards 'const' qualifier from pointer target type [-Wdiscarded-qualifiers]
>    86 |         const struct page *page = folio_page(folio, offset / PAGE_SIZE);
>       |                                              ^~~~~
> In file included from include/linux/mmzone.h:23,
>                  from include/linux/swap.h:7:
> include/linux/page-flags.h:319:53: note: expected 'struct folio *' but argument is of type 'const struct folio *'
>   319 | static inline struct page *folio_page(struct folio *folio, unsigned long n)


Yeah, thanks, folio_page() is a problem.  I'll do the below nasty for
now, but nasty.

--- a/include/linux/page-flags.h~mm-constify-highmem-related-functions-for-improved-const-correctness-fix
+++ a/include/linux/page-flags.h
@@ -316,9 +316,9 @@ static __always_inline unsigned long _co
  * check that the page number lies within @folio; the caller is presumed
  * to have a reference to the page.
  */
-static inline struct page *folio_page(struct folio *folio, unsigned long n)
+static inline struct page *folio_page(const struct folio *folio, unsigned long n)
 {
-	return &folio->page + n;
+	return (struct page *)(&folio->page + n);
 }
 
 static __always_inline int PageTail(const struct page *page)
_


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ