2023-04-13 01:32:59

by Deming Wang

[permalink] [raw]
Subject: [PATCH] selftests/mm: Replace obsolete memalign() with posix_memalign()

memalign() is obsolete according to its manpage.

Replace memalign() with posix_memalign().

As a pointer is passed into posix_memalign(),initialize *map 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 map is returned).

Signed-off-by: Deming Wang <[email protected]>
---
tools/testing/selftests/mm/soft-dirty.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/testing/selftests/mm/soft-dirty.c b/tools/testing/selftests/mm/soft-dirty.c
index 21d8830c5f24..c99350e110ec 100644
--- a/tools/testing/selftests/mm/soft-dirty.c
+++ b/tools/testing/selftests/mm/soft-dirty.c
@@ -80,9 +80,9 @@ 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)
- ksft_exit_fail_msg("memalign failed\n");
+ ret = posix_memalign((void **)(&map), hpage_len, hpage_len);
+ if (ret < 0)
+ ksft_exit_fail_msg("posix_memalign failed\n");

ret = madvise(map, hpage_len, MADV_HUGEPAGE);
if (ret)
--
2.27.0


2023-04-13 22:18:08

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] selftests/mm: Replace obsolete memalign() with posix_memalign()

On Wed, 12 Apr 2023 21:27:51 -0400 Deming Wang <[email protected]> wrote:

> memalign() is obsolete according to its manpage.
>
> Replace memalign() with posix_memalign().
>
> As a pointer is passed into posix_memalign(),initialize *map 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 map is returned).
>

The patch you sent doesn't do this?

> --- a/tools/testing/selftests/mm/soft-dirty.c
> +++ b/tools/testing/selftests/mm/soft-dirty.c
> @@ -80,9 +80,9 @@ 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)
> - ksft_exit_fail_msg("memalign failed\n");
> + ret = posix_memalign((void **)(&map), hpage_len, hpage_len);
> + if (ret < 0)
> + ksft_exit_fail_msg("posix_memalign failed\n");
>
> ret = madvise(map, hpage_len, MADV_HUGEPAGE);
> if (ret)