Message ID | 20230412072741.2116-1-wangdeming@inspur.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | selftests/mm: Replace obsolete memalign() with posix_memalign() | expand |
On 12.04.23 09:27, Deming Wang wrote: > memalign() is obsolete according to its manpage. > > Replace memalign() with posix_memalign() and remove malloc.h include > that was there for memalign(). > > As a pointer is passed into posix_memalign(), initialize *p to NULL > to silence a warning about the function's return value being used as > uninitialized (which is not valid anyway because the error is properly > checked before p is returned). I don't follow how that comment here applies to the patch. What is p? Where is it initialized to NULL? > > Signed-off-by: Deming Wang <wangdeming@inspur.com> > --- > tools/testing/selftests/mm/soft-dirty.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/tools/testing/selftests/mm/soft-dirty.c b/tools/testing/selftests/mm/soft-dirty.c > index 21d8830c5f24..4bb7421141a2 100644 > --- a/tools/testing/selftests/mm/soft-dirty.c > +++ b/tools/testing/selftests/mm/soft-dirty.c > @@ -80,8 +80,8 @@ static void test_hugepage(int pagemap_fd, int pagesize) > int i, ret; > size_t hpage_len = read_pmd_pagesize(); > > - map = memalign(hpage_len, hpage_len); > - if (!map) > + ret = posix_memalign((void *)(&map), hpage_len, hpage_len); posix_memalign expects an "void **memptr", casting to "void *" looks weird. Further, you can drop the parentheses around &map. ret = posix_memalign((void **)&map, hpage_len, hpage_len); > + if (ret < 0) > ksft_exit_fail_msg("memalign failed\n"); Better adjust the comment to "posix_memalign() failed\n"
diff --git a/tools/testing/selftests/mm/soft-dirty.c b/tools/testing/selftests/mm/soft-dirty.c index 21d8830c5f24..4bb7421141a2 100644 --- a/tools/testing/selftests/mm/soft-dirty.c +++ b/tools/testing/selftests/mm/soft-dirty.c @@ -80,8 +80,8 @@ static void test_hugepage(int pagemap_fd, int pagesize) int i, ret; size_t hpage_len = read_pmd_pagesize(); - map = memalign(hpage_len, hpage_len); - if (!map) + ret = posix_memalign((void *)(&map), hpage_len, hpage_len); + if (ret < 0) ksft_exit_fail_msg("memalign failed\n"); ret = madvise(map, hpage_len, MADV_HUGEPAGE);
memalign() is obsolete according to its manpage. Replace memalign() with posix_memalign() and remove malloc.h include that was there for memalign(). As a pointer is passed into posix_memalign(), initialize *p to NULL to silence a warning about the function's return value being used as uninitialized (which is not valid anyway because the error is properly checked before p is returned). Signed-off-by: Deming Wang <wangdeming@inspur.com> --- tools/testing/selftests/mm/soft-dirty.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)