diff mbox series

[v3,08/21] bsd-user: Tidy VERIFY_READ/VERIFY_WRITE

Message ID 20210115224645.1196742-9-richard.henderson@linaro.org (mailing list archive)
State New, archived
Headers show
Series target-arm: Implement ARMv8.5-MemTag, user mode | expand

Commit Message

Richard Henderson Jan. 15, 2021, 10:46 p.m. UTC
These constants are only ever used with access_ok, and friends.
Rather than translating them to PAGE_* bits, let them equal
the PAGE_* bits to begin.

Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
 bsd-user/qemu.h | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

Comments

Warner Losh Jan. 16, 2021, 4:28 p.m. UTC | #1
On Fri, Jan 15, 2021 at 3:56 PM Richard Henderson <
richard.henderson@linaro.org> wrote:

> These constants are only ever used with access_ok, and friends.
> Rather than translating them to PAGE_* bits, let them equal
> the PAGE_* bits to begin.
>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
>

This looks OK to me.

Reviewed-by: Warner Losh <imp@bsdimp.com>


> ---
>  bsd-user/qemu.h | 9 ++++-----
>  1 file changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
> index f8bb1e5459..4076adabd0 100644
> --- a/bsd-user/qemu.h
> +++ b/bsd-user/qemu.h
> @@ -218,13 +218,12 @@ extern unsigned long x86_stack_size;
>
>  /* user access */
>
> -#define VERIFY_READ 0
> -#define VERIFY_WRITE 1 /* implies read access */
> +#define VERIFY_READ  PAGE_READ
> +#define VERIFY_WRITE (PAGE_READ | PAGE_WRITE)
>
> -static inline int access_ok(int type, abi_ulong addr, abi_ulong size)
> +static inline bool access_ok(int type, abi_ulong addr, abi_ulong size)
>  {
> -    return page_check_range((target_ulong)addr, size,
> -                            (type == VERIFY_READ) ? PAGE_READ :
> (PAGE_READ | PAGE_WRITE)) == 0;
> +    return page_check_range((target_ulong)addr, size, type) == 0;
>  }
>
>  /* NOTE __get_user and __put_user use host pointers and don't check
> access. */
> --
>
diff mbox series

Patch

diff --git a/bsd-user/qemu.h b/bsd-user/qemu.h
index f8bb1e5459..4076adabd0 100644
--- a/bsd-user/qemu.h
+++ b/bsd-user/qemu.h
@@ -218,13 +218,12 @@  extern unsigned long x86_stack_size;
 
 /* user access */
 
-#define VERIFY_READ 0
-#define VERIFY_WRITE 1 /* implies read access */
+#define VERIFY_READ  PAGE_READ
+#define VERIFY_WRITE (PAGE_READ | PAGE_WRITE)
 
-static inline int access_ok(int type, abi_ulong addr, abi_ulong size)
+static inline bool access_ok(int type, abi_ulong addr, abi_ulong size)
 {
-    return page_check_range((target_ulong)addr, size,
-                            (type == VERIFY_READ) ? PAGE_READ : (PAGE_READ | PAGE_WRITE)) == 0;
+    return page_check_range((target_ulong)addr, size, type) == 0;
 }
 
 /* NOTE __get_user and __put_user use host pointers and don't check access. */