linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] memfd_test: Make it work on 32-bit systems
@ 2014-09-01 17:08 Pranith Kumar
  2014-09-03  5:53 ` David Herrmann
  0 siblings, 1 reply; 3+ messages in thread
From: Pranith Kumar @ 2014-09-01 17:08 UTC (permalink / raw)
  To: Hugh Dickins, Andrew Morton, David Herrmann, open list

This test currently fails on 32-bit systems since we use u64 type to pass the
flags to fcntl.

This commit changes this to use 'unsigned int' type for flags to fcntl making it
work on 32-bit systems.

Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
---
v2: use 'unsigned int' instead of u32

 tools/testing/selftests/memfd/memfd_test.c | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)

diff --git a/tools/testing/selftests/memfd/memfd_test.c b/tools/testing/selftests/memfd/memfd_test.c
index 3634c90..6f1385a 100644
--- a/tools/testing/selftests/memfd/memfd_test.c
+++ b/tools/testing/selftests/memfd/memfd_test.c
@@ -59,9 +59,9 @@ static void mfd_fail_new(const char *name, unsigned int flags)
 	}
 }
 
-static __u64 mfd_assert_get_seals(int fd)
+static int mfd_assert_get_seals(int fd)
 {
-	long r;
+	int r;
 
 	r = fcntl(fd, F_GET_SEALS);
 	if (r < 0) {
@@ -72,36 +72,34 @@ static __u64 mfd_assert_get_seals(int fd)
 	return r;
 }
 
-static void mfd_assert_has_seals(int fd, __u64 seals)
+static void mfd_assert_has_seals(int fd, unsigned int seals)
 {
-	__u64 s;
+	int s;
 
 	s = mfd_assert_get_seals(fd);
 	if (s != seals) {
-		printf("%llu != %llu = GET_SEALS(%d)\n",
-		       (unsigned long long)seals, (unsigned long long)s, fd);
+		printf("%u != %u = GET_SEALS(%d)\n",
+				seals, (unsigned int)s, fd);
 		abort();
 	}
 }
 
-static void mfd_assert_add_seals(int fd, __u64 seals)
+static void mfd_assert_add_seals(int fd, unsigned int seals)
 {
-	long r;
-	__u64 s;
+	int r, s;
 
 	s = mfd_assert_get_seals(fd);
 	r = fcntl(fd, F_ADD_SEALS, seals);
 	if (r < 0) {
-		printf("ADD_SEALS(%d, %llu -> %llu) failed: %m\n",
-		       fd, (unsigned long long)s, (unsigned long long)seals);
+		printf("ADD_SEALS(%d, %u -> %u) failed: %m\n",
+				fd, (unsigned int)s, seals);
 		abort();
 	}
 }
 
-static void mfd_fail_add_seals(int fd, __u64 seals)
+static void mfd_fail_add_seals(int fd, unsigned int seals)
 {
-	long r;
-	__u64 s;
+	int r, s;
 
 	r = fcntl(fd, F_GET_SEALS);
 	if (r < 0)
@@ -111,8 +109,8 @@ static void mfd_fail_add_seals(int fd, __u64 seals)
 
 	r = fcntl(fd, F_ADD_SEALS, seals);
 	if (r >= 0) {
-		printf("ADD_SEALS(%d, %llu -> %llu) didn't fail as expected\n",
-		       fd, (unsigned long long)s, (unsigned long long)seals);
+		printf("ADD_SEALS(%d, %u -> %u) didn't fail as expected\n",
+				fd, (unsigned int)s, seals);
 		abort();
 	}
 }
-- 
2.1.0


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

* Re: [PATCH v2] memfd_test: Make it work on 32-bit systems
  2014-09-01 17:08 [PATCH v2] memfd_test: Make it work on 32-bit systems Pranith Kumar
@ 2014-09-03  5:53 ` David Herrmann
  2014-09-03 14:30   ` Pranith Kumar
  0 siblings, 1 reply; 3+ messages in thread
From: David Herrmann @ 2014-09-03  5:53 UTC (permalink / raw)
  To: Pranith Kumar; +Cc: Hugh Dickins, Andrew Morton, open list

Hi

On Mon, Sep 1, 2014 at 7:08 PM, Pranith Kumar <bobby.prani@gmail.com> wrote:
> This test currently fails on 32-bit systems since we use u64 type to pass the
> flags to fcntl.
>
> This commit changes this to use 'unsigned int' type for flags to fcntl making it
> work on 32-bit systems.
>
> Signed-off-by: Pranith Kumar <bobby.prani@gmail.com>
> ---
> v2: use 'unsigned int' instead of u32
>
>  tools/testing/selftests/memfd/memfd_test.c | 30 ++++++++++++++----------------
>  1 file changed, 14 insertions(+), 16 deletions(-)
>
> diff --git a/tools/testing/selftests/memfd/memfd_test.c b/tools/testing/selftests/memfd/memfd_test.c
> index 3634c90..6f1385a 100644
> --- a/tools/testing/selftests/memfd/memfd_test.c
> +++ b/tools/testing/selftests/memfd/memfd_test.c
> @@ -59,9 +59,9 @@ static void mfd_fail_new(const char *name, unsigned int flags)
>         }
>  }
>
> -static __u64 mfd_assert_get_seals(int fd)
> +static int mfd_assert_get_seals(int fd)
>  {
> -       long r;
> +       int r;

This function can be declared as returning "unsigned int", but keep
"r" as int. negative return codes cause an abort(), so we're fine.

>
>         r = fcntl(fd, F_GET_SEALS);
>         if (r < 0) {
> @@ -72,36 +72,34 @@ static __u64 mfd_assert_get_seals(int fd)
>         return r;
>  }
>
> -static void mfd_assert_has_seals(int fd, __u64 seals)
> +static void mfd_assert_has_seals(int fd, unsigned int seals)
>  {
> -       __u64 s;
> +       int s;
>
>         s = mfd_assert_get_seals(fd);
>         if (s != seals) {
> -               printf("%llu != %llu = GET_SEALS(%d)\n",
> -                      (unsigned long long)seals, (unsigned long long)s, fd);
> +               printf("%u != %u = GET_SEALS(%d)\n",
> +                               seals, (unsigned int)s, fd);

By making mfd_assert_get_seals() return "unsigned int", you can
declare 's' as unsigned, too, and drop this cast.

>                 abort();
>         }
>  }
>
> -static void mfd_assert_add_seals(int fd, __u64 seals)
> +static void mfd_assert_add_seals(int fd, unsigned int seals)
>  {
> -       long r;
> -       __u64 s;
> +       int r, s;
>
>         s = mfd_assert_get_seals(fd);
>         r = fcntl(fd, F_ADD_SEALS, seals);
>         if (r < 0) {
> -               printf("ADD_SEALS(%d, %llu -> %llu) failed: %m\n",
> -                      fd, (unsigned long long)s, (unsigned long long)seals);
> +               printf("ADD_SEALS(%d, %u -> %u) failed: %m\n",
> +                               fd, (unsigned int)s, seals);

same here

>                 abort();
>         }
>  }
>
> -static void mfd_fail_add_seals(int fd, __u64 seals)
> +static void mfd_fail_add_seals(int fd, unsigned int seals)
>  {
> -       long r;
> -       __u64 s;
> +       int r, s;
>
>         r = fcntl(fd, F_GET_SEALS);
>         if (r < 0)
> @@ -111,8 +109,8 @@ static void mfd_fail_add_seals(int fd, __u64 seals)
>
>         r = fcntl(fd, F_ADD_SEALS, seals);
>         if (r >= 0) {
> -               printf("ADD_SEALS(%d, %llu -> %llu) didn't fail as expected\n",
> -                      fd, (unsigned long long)s, (unsigned long long)seals);
> +               printf("ADD_SEALS(%d, %u -> %u) didn't fail as expected\n",
> +                               fd, (unsigned int)s, seals);

same here

Sorry for the bike-shedding. Patch looks good, otherwise. With, or
without, this changed, this is:

Reviewed-by: David Herrmann <dh.herrmann@gmail.com>

Thanks
David

>                 abort();
>         }
>  }
> --
> 2.1.0
>

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

* Re: [PATCH v2] memfd_test: Make it work on 32-bit systems
  2014-09-03  5:53 ` David Herrmann
@ 2014-09-03 14:30   ` Pranith Kumar
  0 siblings, 0 replies; 3+ messages in thread
From: Pranith Kumar @ 2014-09-03 14:30 UTC (permalink / raw)
  To: David Herrmann; +Cc: Hugh Dickins, Andrew Morton, open list

On Wed, Sep 3, 2014 at 1:53 AM, David Herrmann <dh.herrmann@gmail.com> wrote:

> Sorry for the bike-shedding. Patch looks good, otherwise. With, or
> without, this changed, this is:
>
> Reviewed-by: David Herrmann <dh.herrmann@gmail.com>
>

Thank you for the review David. I will send in a new patch with your
suggested changes.

-- 
Pranith

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

end of thread, other threads:[~2014-09-03 14:30 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-01 17:08 [PATCH v2] memfd_test: Make it work on 32-bit systems Pranith Kumar
2014-09-03  5:53 ` David Herrmann
2014-09-03 14:30   ` Pranith Kumar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).