On Fri, 12 Feb 2021 at 18:49, Richard Henderson
<richard.hender...@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.mayd...@linaro.org>
> Signed-off-by: Richard Henderson <richard.hender...@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

Reply via email to