[next] x86: fs/hugetlbfs/inode.c:673:16: error: variable 'm_index' is uninitialized when used here [-Werror,-Wuninitialized]

2 views
Skip to first unread message

Naresh Kamboju

unread,
Aug 25, 2022, 6:43:43 AM8/25/22
to Mike Kravetz, linux-mm, Andrew Morton, open list, regre...@lists.linux.dev, Nathan Chancellor, clang-built-linux, Muchun Song, Andrea Arcangeli, Aneesh Kumar K.V, Axel Rasmussen, David Hildenbrand, Davidlohr Bueso, James Houghton, Kirill A. Shutemov, Miaohe Lin, Michal Hocko, Mina Almasry, Naoya Horiguchi, Pasha Tatashin, Peter Xu, Prakash Sangappa
The x86_64 and i386 clang builds failed due to these warnings / errors
on Linux next-20220825.

Reported-by: Linux Kernel Functional Testing <lk...@linaro.org>

fs/hugetlbfs/inode.c:673:16: error: variable 'm_index' is
uninitialized when used here [-Werror,-Wuninitialized]
m_start, m_index, truncate_op);
^~~~~~~
fs/hugetlbfs/inode.c:651:26: note: initialize the variable 'm_index'
to silence this warning
pgoff_t m_start, m_index;
^
= 0
1 error generated.
make[3]: *** [scripts/Makefile.build:250: fs/hugetlbfs/inode.o] Error 1
make[3]: Target '__build' not remade because of errors.
make[2]: *** [scripts/Makefile.build:525: fs/hugetlbfs] Error 2

Build link: https://builds.tuxbuild.com/2Dpvef6uVvzHMztbfQRmxJfPXZT/

Steps to reproduce:
-------------------
# To install tuxmake on your system globally:
# sudo pip3 install -U tuxmake

tuxmake --runtime podman --target-arch x86_64 --toolchain clang-14
--kconfig https://builds.tuxbuild.com/2Dpvef6uVvzHMztbfQRmxJfPXZT/config
LLVM=1 LLVM_IAS=1

--
Linaro LKFT
https://lkft.linaro.org

Nathan Chancellor

unread,
Aug 25, 2022, 12:10:11 PM8/25/22
to Naresh Kamboju, Mike Kravetz, linux-mm, Andrew Morton, open list, regre...@lists.linux.dev, clang-built-linux, Muchun Song, Andrea Arcangeli, Aneesh Kumar K.V, Axel Rasmussen, David Hildenbrand, Davidlohr Bueso, James Houghton, Kirill A. Shutemov, Miaohe Lin, Michal Hocko, Mina Almasry, Naoya Horiguchi, Pasha Tatashin, Peter Xu, Prakash Sangappa, ll...@lists.linux.dev
Hi Naresh,

On Thu, Aug 25, 2022 at 04:13:30PM +0530, Naresh Kamboju wrote:
> The x86_64 and i386 clang builds failed due to these warnings / errors
> on Linux next-20220825.
>
> Reported-by: Linux Kernel Functional Testing <lk...@linaro.org>
>
> fs/hugetlbfs/inode.c:673:16: error: variable 'm_index' is
> uninitialized when used here [-Werror,-Wuninitialized]
> m_start, m_index, truncate_op);
> ^~~~~~~
> fs/hugetlbfs/inode.c:651:26: note: initialize the variable 'm_index'
> to silence this warning
> pgoff_t m_start, m_index;
> ^
> = 0
> 1 error generated.

Thank you for the report! Commit fcc0d3d00d74 ("hugetlb: handle truncate
racing with page faults") introduced this warning; the Intel folks
caught this as well:

https://lore.kernel.org/202208251012...@intel.com/

As an aside, can you please update your contact for our mailing list to
ll...@lists.linux.dev? We do not use the Google Groups list anymore.

Cheers,
Nathan

Mike Kravetz

unread,
Aug 25, 2022, 12:56:26 PM8/25/22
to Naresh Kamboju, Andrew Morton, linux-mm, open list, regre...@lists.linux.dev, Nathan Chancellor, clang-built-linux, Muchun Song, Andrea Arcangeli, Aneesh Kumar K.V, Axel Rasmussen, David Hildenbrand, Davidlohr Bueso, James Houghton, Kirill A. Shutemov, Miaohe Lin, Michal Hocko, Mina Almasry, Naoya Horiguchi, Pasha Tatashin, Peter Xu, Prakash Sangappa
On 08/25/22 16:13, Naresh Kamboju wrote:
> The x86_64 and i386 clang builds failed due to these warnings / errors
> on Linux next-20220825.
>
> Reported-by: Linux Kernel Functional Testing <lk...@linaro.org>
>
> fs/hugetlbfs/inode.c:673:16: error: variable 'm_index' is
> uninitialized when used here [-Werror,-Wuninitialized]
> m_start, m_index, truncate_op);
> ^~~~~~~
> fs/hugetlbfs/inode.c:651:26: note: initialize the variable 'm_index'

Thanks! That really should be 'index' and not 'm_index'. The variable
m_index was used in a previous version of the code and should have been
deleted. Depending on the uninitialized value of m_index, this could
cause long delays as the called routine checks the range m_start to m_index.

Andrew, how would you like to address in your tree? The following patch
can be applied on top of the original (next commit fcc0d3d00d74 "hugetlb:
handle truncate racing with page faults"). Or, I could squash and
resend the original, or resend the entire series.


From 99aae359c3a744e6718045d2f24b55c84bed4d56 Mon Sep 17 00:00:00 2001
From: Mike Kravetz <mike.k...@oracle.com>
Date: Thu, 25 Aug 2022 09:49:08 -0700
Subject: [PATCH] hugetlb: fix/remove uninitialized variable in
remove_inode_hugepages

Code introduced for the routine remove_inode_hugepages by patch "hugetlb:
handle truncate racing with page faults", incorrectly uses a variable
m_index. This is a remnant from a previous version of the code when
under development. Use the correct variable 'index' and remove
'm_index' from the routine.

Signed-off-by: Mike Kravetz <mike.k...@oracle.com>
---
fs/hugetlbfs/inode.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
index 52d9b390389b..2f1d6da1bafb 100644
--- a/fs/hugetlbfs/inode.c
+++ b/fs/hugetlbfs/inode.c
@@ -648,7 +648,7 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
const pgoff_t start = lstart >> huge_page_shift(h);
const pgoff_t end = lend >> huge_page_shift(h);
pgoff_t m_end = lm_end >> huge_page_shift(h);
- pgoff_t m_start, m_index;
+ pgoff_t m_start;
struct folio_batch fbatch;
struct folio *folio;
pgoff_t next, index;
@@ -670,7 +670,7 @@ static void remove_inode_hugepages(struct inode *inode, loff_t lstart,
* due to a race with fault code.
*/
freed += fault_lock_inode_indicies(h, inode, mapping,
- m_start, m_index, truncate_op);
+ m_start, index, truncate_op);

/*
* Remove folio that was part of folio_batch.
--
2.37.1

Andrew Morton

unread,
Aug 25, 2022, 9:22:06 PM8/25/22
to Mike Kravetz, Naresh Kamboju, linux-mm, open list, regre...@lists.linux.dev, Nathan Chancellor, clang-built-linux, Muchun Song, Andrea Arcangeli, Aneesh Kumar K.V, Axel Rasmussen, David Hildenbrand, Davidlohr Bueso, James Houghton, Kirill A. Shutemov, Miaohe Lin, Michal Hocko, Mina Almasry, Naoya Horiguchi, Pasha Tatashin, Peter Xu, Prakash Sangappa
On Thu, 25 Aug 2022 09:56:15 -0700 Mike Kravetz <mike.k...@oracle.com> wrote:

> Andrew, how would you like to address in your tree? The following patch
> can be applied on top of the original (next commit fcc0d3d00d74 "hugetlb:
> handle truncate racing with page faults"). Or, I could squash and
> resend the original, or resend the entire series.

This little fixlet is great, thanks.
Reply all
Reply to author
Forward
0 new messages