[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v7 17/31] linux-user: Move lock_user et al out of line
From: |
Peter Maydell |
Subject: |
Re: [PATCH v7 17/31] linux-user: Move lock_user et al out of line |
Date: |
Tue, 16 Feb 2021 12:57:50 +0000 |
On Fri, 12 Feb 2021 at 18:49, Richard Henderson
<richard.henderson@linaro.org> wrote:
>
> These functions are not small, except for unlock_user
> without debugging enabled. Move them out of line, and
> add missing braces on the way.
>
> Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> /* Lock an area of guest memory into the host. If copy is true then the
> host area will have the same contents as the guest. */
> -static inline void *lock_user(int type, abi_ulong guest_addr, long len, int
> copy)
> -{
> - if (!access_ok_untagged(type, guest_addr, len)) {
> - return NULL;
> - }
> -#ifdef DEBUG_REMAP
> - {
> - void *addr;
> - addr = g_malloc(len);
> - if (copy)
> - memcpy(addr, g2h(guest_addr), len);
> - else
> - memset(addr, 0, len);
> - return addr;
> - }
> -#else
> - return g2h_untagged(guest_addr);
> -#endif
> -}
> +void *lock_user(int type, abi_ulong guest_addr, long len, int copy);
>
> /* Unlock an area of guest memory. The first LEN bytes must be
> flushed back to guest memory. host_ptr = NULL is explicitly
> allowed and does nothing. */
> -static inline void unlock_user(void *host_ptr, abi_ulong guest_addr,
> - long len)
> -{
> -
> #ifdef DEBUG_REMAP
> - if (!host_ptr)
> - return;
> - if (host_ptr == g2h_untagged(guest_addr))
> - return;
> - if (len > 0)
> - memcpy(g2h_untagged(guest_addr), host_ptr, len);
> - g_free(host_ptr);
> +static inline void unlock_user(void *host_ptr, abi_ulong guest_addr, long
> len)
> +{ }
> +#else
> +void unlock_user(void *host_ptr, abi_ulong guest_addr, long len);
> #endif
This ifdef is the wrong way around, and causes the series to
fail to compile at this point. It gets silently fixed again
(by changing the ifdef to ifndef) in patch 18.
-- PMM
- [PATCH v7 12/31] exec: Use cpu_untagged_addr in g2h; split out g2h_untagged, (continued)
- [PATCH v7 12/31] exec: Use cpu_untagged_addr in g2h; split out g2h_untagged, Richard Henderson, 2021/02/12
- [PATCH v7 15/31] exec: Rename guest_{addr,range}_valid to *_untagged, Richard Henderson, 2021/02/12
- [PATCH v7 11/31] exec: Introduce cpu_untagged_addr, Richard Henderson, 2021/02/12
- [PATCH v7 10/31] linux-user: Fix guest_addr_valid vs reserved_va, Richard Henderson, 2021/02/12
- [PATCH v7 22/31] target/arm: Use the proper TBI settings for linux-user, Richard Henderson, 2021/02/12
- [PATCH v7 19/31] linux-user: Handle tags in lock_user/unlock_user, Richard Henderson, 2021/02/12
- [PATCH v7 06/31] linux-user: Check for overflow in access_ok, Richard Henderson, 2021/02/12
- [PATCH v7 16/31] linux-user: Use cpu_untagged_addr in access_ok; split out *_untagged, Richard Henderson, 2021/02/12
- [PATCH v7 17/31] linux-user: Move lock_user et al out of line, Richard Henderson, 2021/02/12
- [PATCH v7 14/31] linux-user: Use guest_range_valid in access_ok, Richard Henderson, 2021/02/12
- [PATCH v7 20/31] linux-user/aarch64: Implement PR_TAGGED_ADDR_ENABLE, Richard Henderson, 2021/02/12
- [PATCH v7 18/31] linux-user: Fix types in uaccess.c, Richard Henderson, 2021/02/12
- [PATCH v7 24/31] linux-user/aarch64: Implement PROT_MTE, Richard Henderson, 2021/02/12
- [PATCH v7 27/31] linux-user/aarch64: Signal SEGV_MTESERR for sync tag check fault, Richard Henderson, 2021/02/12
- [PATCH v7 28/31] linux-user/aarch64: Signal SEGV_MTEAERR for async tag check error, Richard Henderson, 2021/02/12
- [PATCH v7 23/31] linux-user/aarch64: Implement PR_MTE_TCF and PR_MTE_TAG, Richard Henderson, 2021/02/12
- [PATCH v7 25/31] target/arm: Split out syndrome.h from internals.h, Richard Henderson, 2021/02/12