All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] selftests/vm: silence uninitialized variable warning
@ 2022-07-19  9:42 Dan Carpenter
  2022-07-21  1:08 ` Souptick Joarder
  2022-07-21 17:52 ` Mike Kravetz
  0 siblings, 2 replies; 5+ messages in thread
From: Dan Carpenter @ 2022-07-19  9:42 UTC (permalink / raw)
  To: Andrew Morton, Mike Kravetz
  Cc: Shuah Khan, linux-mm, linux-kselftest, kernel-janitors

This code just reads from memory without caring about the data itself.
However static checkers complain that "tmp" is never properly
initialized.  Initialize it to zero and change the name to "dummy" to
show that we don't care about the value stored in it.

Fixes: c4b6cb884011 ("selftests/vm: add hugetlb madvise MADV_DONTNEED MADV_REMOVE test")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
---
 tools/testing/selftests/vm/hugetlb-madvise.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/vm/hugetlb-madvise.c b/tools/testing/selftests/vm/hugetlb-madvise.c
index 6c6af40f5747..3c9943131881 100644
--- a/tools/testing/selftests/vm/hugetlb-madvise.c
+++ b/tools/testing/selftests/vm/hugetlb-madvise.c
@@ -89,10 +89,11 @@ void write_fault_pages(void *addr, unsigned long nr_pages)
 
 void read_fault_pages(void *addr, unsigned long nr_pages)
 {
-	unsigned long i, tmp;
+	unsigned long dummy = 0;
+	unsigned long i;
 
 	for (i = 0; i < nr_pages; i++)
-		tmp += *((unsigned long *)(addr + (i * huge_page_size)));
+		dummy += *((unsigned long *)(addr + (i * huge_page_size)));
 }
 
 int main(int argc, char **argv)
-- 
2.35.1


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

* Re: [PATCH] selftests/vm: silence uninitialized variable warning
  2022-07-19  9:42 [PATCH] selftests/vm: silence uninitialized variable warning Dan Carpenter
@ 2022-07-21  1:08 ` Souptick Joarder
  2022-07-21  6:30   ` Dan Carpenter
  2022-07-21 17:52 ` Mike Kravetz
  1 sibling, 1 reply; 5+ messages in thread
From: Souptick Joarder @ 2022-07-21  1:08 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Andrew Morton, Mike Kravetz, Shuah Khan, Linux-MM,
	linux-kselftest, kernel-janitors

On Tue, Jul 19, 2022 at 3:13 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
>
> This code just reads from memory without caring about the data itself.

The caller has put an attempt to at least validate the address read
from mmap() before
passing it to read_fault_pages() which looks correct. I think this
line is not needed.

> However static checkers complain that "tmp" is never properly
> initialized.  Initialize it to zero and change the name to "dummy" to
> show that we don't care about the value stored in it.
>
> Fixes: c4b6cb884011 ("selftests/vm: add hugetlb madvise MADV_DONTNEED MADV_REMOVE test")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>

Acked-by: Souptick Joarder (HPE) <jrdr.linux@gmail.com>

> ---
>  tools/testing/selftests/vm/hugetlb-madvise.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/tools/testing/selftests/vm/hugetlb-madvise.c b/tools/testing/selftests/vm/hugetlb-madvise.c
> index 6c6af40f5747..3c9943131881 100644
> --- a/tools/testing/selftests/vm/hugetlb-madvise.c
> +++ b/tools/testing/selftests/vm/hugetlb-madvise.c
> @@ -89,10 +89,11 @@ void write_fault_pages(void *addr, unsigned long nr_pages)
>
>  void read_fault_pages(void *addr, unsigned long nr_pages)
>  {
> -       unsigned long i, tmp;
> +       unsigned long dummy = 0;
> +       unsigned long i;
>
>         for (i = 0; i < nr_pages; i++)
> -               tmp += *((unsigned long *)(addr + (i * huge_page_size)));
> +               dummy += *((unsigned long *)(addr + (i * huge_page_size)));
>  }
>
>  int main(int argc, char **argv)
> --
> 2.35.1
>
>

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

* Re: [PATCH] selftests/vm: silence uninitialized variable warning
  2022-07-21  1:08 ` Souptick Joarder
@ 2022-07-21  6:30   ` Dan Carpenter
  0 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2022-07-21  6:30 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: Andrew Morton, Mike Kravetz, Shuah Khan, Linux-MM,
	linux-kselftest, kernel-janitors

On Thu, Jul 21, 2022 at 06:38:59AM +0530, Souptick Joarder wrote:
> On Tue, Jul 19, 2022 at 3:13 PM Dan Carpenter <dan.carpenter@oracle.com> wrote:
> >
> > This code just reads from memory without caring about the data itself.
> 
> The caller has put an attempt to at least validate the address read
> from mmap() before
> passing it to read_fault_pages() which looks correct. I think this
> line is not needed.

What I mean is, the value of "tmp" was always nonsense but it doesn't
matter because we don't care.  In other words, we're just reading but we
don't care about the actual data.

regards,
dan carpenter

> 
> > However static checkers complain that "tmp" is never properly
> > initialized.  Initialize it to zero and change the name to "dummy" to
> > show that we don't care about the value stored in it.
> >
> > Fixes: c4b6cb884011 ("selftests/vm: add hugetlb madvise MADV_DONTNEED MADV_REMOVE test")
> > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> 
> Acked-by: Souptick Joarder (HPE) <jrdr.linux@gmail.com>
> 
> > ---
> >  tools/testing/selftests/vm/hugetlb-madvise.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> >
> > diff --git a/tools/testing/selftests/vm/hugetlb-madvise.c b/tools/testing/selftests/vm/hugetlb-madvise.c
> > index 6c6af40f5747..3c9943131881 100644
> > --- a/tools/testing/selftests/vm/hugetlb-madvise.c
> > +++ b/tools/testing/selftests/vm/hugetlb-madvise.c
> > @@ -89,10 +89,11 @@ void write_fault_pages(void *addr, unsigned long nr_pages)
> >
> >  void read_fault_pages(void *addr, unsigned long nr_pages)
> >  {
> > -       unsigned long i, tmp;
> > +       unsigned long dummy = 0;
> > +       unsigned long i;
> >
> >         for (i = 0; i < nr_pages; i++)
> > -               tmp += *((unsigned long *)(addr + (i * huge_page_size)));
> > +               dummy += *((unsigned long *)(addr + (i * huge_page_size)));
> >  }
> >
> >  int main(int argc, char **argv)
> > --
> > 2.35.1
> >
> >

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

* Re: [PATCH] selftests/vm: silence uninitialized variable warning
  2022-07-19  9:42 [PATCH] selftests/vm: silence uninitialized variable warning Dan Carpenter
  2022-07-21  1:08 ` Souptick Joarder
@ 2022-07-21 17:52 ` Mike Kravetz
  2022-07-22  5:50   ` Dan Carpenter
  1 sibling, 1 reply; 5+ messages in thread
From: Mike Kravetz @ 2022-07-21 17:52 UTC (permalink / raw)
  To: Dan Carpenter
  Cc: Andrew Morton, Shuah Khan, linux-mm, linux-kselftest, kernel-janitors

On 07/19/22 12:42, Dan Carpenter wrote:
> This code just reads from memory without caring about the data itself.
> However static checkers complain that "tmp" is never properly
> initialized.  Initialize it to zero and change the name to "dummy" to
> show that we don't care about the value stored in it.
> 
> Fixes: c4b6cb884011 ("selftests/vm: add hugetlb madvise MADV_DONTNEED MADV_REMOVE test")
> Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
> ---
>  tools/testing/selftests/vm/hugetlb-madvise.c | 5 +++--
>  1 file changed, 3 insertions(+), 2 deletions(-)

Thanks Dan!

Your analysis is correct.  We do not care about the value returned, and
just want to trigger a read fault.

Reviewed-by: Mike Kravetz <mike.kravetz@oracle.com>

> 
> diff --git a/tools/testing/selftests/vm/hugetlb-madvise.c b/tools/testing/selftests/vm/hugetlb-madvise.c
> index 6c6af40f5747..3c9943131881 100644
> --- a/tools/testing/selftests/vm/hugetlb-madvise.c
> +++ b/tools/testing/selftests/vm/hugetlb-madvise.c
> @@ -89,10 +89,11 @@ void write_fault_pages(void *addr, unsigned long nr_pages)
>  
>  void read_fault_pages(void *addr, unsigned long nr_pages)
>  {
> -	unsigned long i, tmp;
> +	unsigned long dummy = 0;
> +	unsigned long i;
>  
>  	for (i = 0; i < nr_pages; i++)
> -		tmp += *((unsigned long *)(addr + (i * huge_page_size)));

When I originally wrote this, something must have complained if written as:

	tmp = *((unsigned long *)(addr + (i * huge_page_size)));

changing to += eliminated that complaint, but caused this one.  Happy
with your changes, but if there is an even better way to write this, I am
happy to change it.

-- 
Mike Kravetz

> +		dummy += *((unsigned long *)(addr + (i * huge_page_size)));
>  }
>  
>  int main(int argc, char **argv)
> -- 
> 2.35.1
> 

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

* Re: [PATCH] selftests/vm: silence uninitialized variable warning
  2022-07-21 17:52 ` Mike Kravetz
@ 2022-07-22  5:50   ` Dan Carpenter
  0 siblings, 0 replies; 5+ messages in thread
From: Dan Carpenter @ 2022-07-22  5:50 UTC (permalink / raw)
  To: Mike Kravetz
  Cc: Andrew Morton, Shuah Khan, linux-mm, linux-kselftest, kernel-janitors

On Thu, Jul 21, 2022 at 10:52:54AM -0700, Mike Kravetz wrote:
> > diff --git a/tools/testing/selftests/vm/hugetlb-madvise.c b/tools/testing/selftests/vm/hugetlb-madvise.c
> > index 6c6af40f5747..3c9943131881 100644
> > --- a/tools/testing/selftests/vm/hugetlb-madvise.c
> > +++ b/tools/testing/selftests/vm/hugetlb-madvise.c
> > @@ -89,10 +89,11 @@ void write_fault_pages(void *addr, unsigned long nr_pages)
> >  
> >  void read_fault_pages(void *addr, unsigned long nr_pages)
> >  {
> > -	unsigned long i, tmp;
> > +	unsigned long dummy = 0;
> > +	unsigned long i;
> >  
> >  	for (i = 0; i < nr_pages; i++)
> > -		tmp += *((unsigned long *)(addr + (i * huge_page_size)));
> 
> When I originally wrote this, something must have complained if written as:
> 
> 	tmp = *((unsigned long *)(addr + (i * huge_page_size)));
> 
> changing to += eliminated that complaint, but caused this one.  Happy
> with your changes, but if there is an even better way to write this, I am
> happy to change it.

These days compilers don't like when you read something and then don't
use it.  It's possible they might just start optimizing parts of that
away?  I think we've now tricked the compiler into doing what we want.

regards,
dan carpenter


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

end of thread, other threads:[~2022-07-22  5:51 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-19  9:42 [PATCH] selftests/vm: silence uninitialized variable warning Dan Carpenter
2022-07-21  1:08 ` Souptick Joarder
2022-07-21  6:30   ` Dan Carpenter
2022-07-21 17:52 ` Mike Kravetz
2022-07-22  5:50   ` Dan Carpenter

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.