diff mbox series

mm/shmem: restore setting of page variable

Message ID 20220509123232.3428667-1-trix@redhat.com (mailing list archive)
State New
Headers show
Series mm/shmem: restore setting of page variable | expand

Commit Message

Tom Rix May 9, 2022, 12:32 p.m. UTC
The clang build fails with
mm/shmem.c:2337:8: error: variable 'page' is uninitialized when used here [-Werror,-Wuninitialized]
  if (!page)
       ^~~~

In the commit listed in the fixes, there was a change to the
from
  page = shmem_alloc_page(..);
to
  page = &shmem_alloc_folio(..)->page;
But in this case, instead of replacing, the setting of page was
deleted.  So restore page with its new api.

Fixes: b0bb08b2d5f3 ("mm/shmem: turn shmem_alloc_page() into shmem_alloc_folio()")
Signed-off-by: Tom Rix <trix@redhat.com>
---
 mm/shmem.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Andrew Morton May 9, 2022, 6:03 p.m. UTC | #1
On Mon,  9 May 2022 08:32:32 -0400 Tom Rix <trix@redhat.com> wrote:

> The clang build fails with
> mm/shmem.c:2337:8: error: variable 'page' is uninitialized when used here [-Werror,-Wuninitialized]
>   if (!page)
>        ^~~~
> 
> In the commit listed in the fixes, there was a change to the
> from
>   page = shmem_alloc_page(..);
> to
>   page = &shmem_alloc_folio(..)->page;
> But in this case, instead of replacing, the setting of page was
> deleted.  So restore page with its new api.
> 
> ...
>
> --- a/mm/shmem.c
> +++ b/mm/shmem.c
> @@ -2334,6 +2334,7 @@ int shmem_mfill_atomic_pte(struct mm_struct *dst_mm,
>  
>  	if (!*pagep) {
>  		ret = -ENOMEM;
> +		page = &shmem_alloc_folio(gfp, info, pgoff)->page;
>  		if (!page)
>  			goto out_unacct_blocks;
>  

Thanks, this is fixed in v2 of Matthew's "Folio patches for 5.19"
series.

I've just now pushed all that out to kernel.org so next linux-next
should be a happier place.
diff mbox series

Patch

diff --git a/mm/shmem.c b/mm/shmem.c
index 7faaa61ff7fa..a2234f19b711 100644
--- a/mm/shmem.c
+++ b/mm/shmem.c
@@ -2334,6 +2334,7 @@  int shmem_mfill_atomic_pte(struct mm_struct *dst_mm,
 
 	if (!*pagep) {
 		ret = -ENOMEM;
+		page = &shmem_alloc_folio(gfp, info, pgoff)->page;
 		if (!page)
 			goto out_unacct_blocks;