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 |
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; > }
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.
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 --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; }
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(-)