diff mbox series

selftests/mm/cow: Fix the incorrect error handling

Message ID 20250311023730.56658-1-cyan.yang@sifive.com (mailing list archive)
State New
Headers show
Series selftests/mm/cow: Fix the incorrect error handling | expand

Commit Message

Cyan Yang March 11, 2025, 2:37 a.m. UTC
There are two error handlings did not check the correct return value.
This patch will fix them.

Fixes: f4b5fd6946e244cdedc3bbb9a1f24c8133b2077a ("selftests/vm: anon_cow: THP tests")
Signed-off-by: Cyan Yang <cyan.yang@sifive.com>
---
 tools/testing/selftests/mm/cow.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Dev Jain March 11, 2025, 4:53 a.m. UTC | #1
On 11/03/25 8:07 am, Cyan Yang wrote:
> There are two error handlings did not check the correct return value.
> This patch will fix them.
> 
> Fixes: f4b5fd6946e244cdedc3bbb9a1f24c8133b2077a ("selftests/vm: anon_cow: THP tests")
> Signed-off-by: Cyan Yang <cyan.yang@sifive.com>
> ---
>   tools/testing/selftests/mm/cow.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/cow.c
> index 9446673645eb..16fcadc090a4 100644
> --- a/tools/testing/selftests/mm/cow.c
> +++ b/tools/testing/selftests/mm/cow.c
> @@ -876,13 +876,13 @@ static void do_run_with_thp(test_fn fn, enum thp_run thp_run, size_t thpsize)
>   		mremap_size = thpsize / 2;
>   		mremap_mem = mmap(NULL, mremap_size, PROT_NONE,
>   				  MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> -		if (mem == MAP_FAILED) {
> +		if (mremap_mem == MAP_FAILED) {
>   			ksft_test_result_fail("mmap() failed\n");
>   			goto munmap;
>   		}
>   		tmp = mremap(mem + mremap_size, mremap_size, mremap_size,
>   			     MREMAP_MAYMOVE | MREMAP_FIXED, mremap_mem);
> -		if (tmp != mremap_mem) {

This is fine. We are checking whether we were able to mremap tmp to 
mremap_mem.

> +		if (tmp == MAP_FAILED) {
>   			ksft_test_result_fail("mremap() failed\n");
>   			goto munmap;
>   		}
David Hildenbrand March 11, 2025, 9:19 a.m. UTC | #2
On 11.03.25 03:37, Cyan Yang wrote:
> There are two error handlings did not check the correct return value.
> This patch will fix them.
> 
> Fixes: f4b5fd6946e244cdedc3bbb9a1f24c8133b2077a ("selftests/vm: anon_cow: THP tests")
> Signed-off-by: Cyan Yang <cyan.yang@sifive.com>
> ---
>   tools/testing/selftests/mm/cow.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/cow.c
> index 9446673645eb..16fcadc090a4 100644
> --- a/tools/testing/selftests/mm/cow.c
> +++ b/tools/testing/selftests/mm/cow.c
> @@ -876,13 +876,13 @@ static void do_run_with_thp(test_fn fn, enum thp_run thp_run, size_t thpsize)
>   		mremap_size = thpsize / 2;
>   		mremap_mem = mmap(NULL, mremap_size, PROT_NONE,
>   				  MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> -		if (mem == MAP_FAILED) {
> +		if (mremap_mem == MAP_FAILED) {
>   			ksft_test_result_fail("mmap() failed\n");
>   			goto munmap;
>   		}

Yes, that check is wrong.

>   		tmp = mremap(mem + mremap_size, mremap_size, mremap_size,
>   			     MREMAP_MAYMOVE | MREMAP_FIXED, mremap_mem);
> -		if (tmp != mremap_mem) {
> +		if (tmp == MAP_FAILED) {
>   			ksft_test_result_fail("mremap() failed\n");
>   			goto munmap;
>   		}

As Dev says, this one is just fine. Leave it as it is.
Cyan Yang March 11, 2025, 10:38 a.m. UTC | #3
On Tue, Mar 11, 2025 at 10:19:32AM +0100, David Hildenbrand wrote:
> On 11.03.25 03:37, Cyan Yang wrote:
> > There are two error handlings did not check the correct return value.
> > This patch will fix them.
> > 
> > Fixes: f4b5fd6946e244cdedc3bbb9a1f24c8133b2077a ("selftests/vm: anon_cow: THP tests")
> > Signed-off-by: Cyan Yang <cyan.yang@sifive.com>
> > ---
> >   tools/testing/selftests/mm/cow.c | 4 ++--
> >   1 file changed, 2 insertions(+), 2 deletions(-)
> > 
> > diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/cow.c
> > index 9446673645eb..16fcadc090a4 100644
> > --- a/tools/testing/selftests/mm/cow.c
> > +++ b/tools/testing/selftests/mm/cow.c
> > @@ -876,13 +876,13 @@ static void do_run_with_thp(test_fn fn, enum thp_run thp_run, size_t thpsize)
> >   		mremap_size = thpsize / 2;
> >   		mremap_mem = mmap(NULL, mremap_size, PROT_NONE,
> >   				  MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> > -		if (mem == MAP_FAILED) {
> > +		if (mremap_mem == MAP_FAILED) {
> >   			ksft_test_result_fail("mmap() failed\n");
> >   			goto munmap;
> >   		}
> 
> Yes, that check is wrong.
> 
> >   		tmp = mremap(mem + mremap_size, mremap_size, mremap_size,
> >   			     MREMAP_MAYMOVE | MREMAP_FIXED, mremap_mem);
> > -		if (tmp != mremap_mem) {
> > +		if (tmp == MAP_FAILED) {
> >   			ksft_test_result_fail("mremap() failed\n");
> >   			goto munmap;
> >   		}
> 
> As Dev says, this one is just fine. Leave it as it is.
> 

Thank you for the review.

I agree with you and Dev this is just fine. The reason I prefer to modify it is
- usually caller checks the return value directly and "tmp == mremap_mem"
should be determined by "mremap".

If you still prefer to leave it as it is, I will send out the v2 to remove it.

> -- 
> Cheers,
> 
> David / dhildenb
>
diff mbox series

Patch

diff --git a/tools/testing/selftests/mm/cow.c b/tools/testing/selftests/mm/cow.c
index 9446673645eb..16fcadc090a4 100644
--- a/tools/testing/selftests/mm/cow.c
+++ b/tools/testing/selftests/mm/cow.c
@@ -876,13 +876,13 @@  static void do_run_with_thp(test_fn fn, enum thp_run thp_run, size_t thpsize)
 		mremap_size = thpsize / 2;
 		mremap_mem = mmap(NULL, mremap_size, PROT_NONE,
 				  MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
-		if (mem == MAP_FAILED) {
+		if (mremap_mem == MAP_FAILED) {
 			ksft_test_result_fail("mmap() failed\n");
 			goto munmap;
 		}
 		tmp = mremap(mem + mremap_size, mremap_size, mremap_size,
 			     MREMAP_MAYMOVE | MREMAP_FIXED, mremap_mem);
-		if (tmp != mremap_mem) {
+		if (tmp == MAP_FAILED) {
 			ksft_test_result_fail("mremap() failed\n");
 			goto munmap;
 		}