[U-Boot] [PATCH v9 09/18] sandbox: Align RAM buffer to the machine page size

Alexander Graf agraf at suse.de
Sun Aug 26 17:01:02 UTC 2018



On 08.08.18 11:54, Simon Glass wrote:
> At present the sandbox RAM buffer is not aligned to any particular
> address boundary. This makes the internal pointers somewhat random with
> respect to the associated RAM buffer addresses.
> 
> Align the buffer to the page size of the machine to help with this.

Please describe in the patch description that you pad the cookie that
os_malloc writes to a page boundary. It's pretty hard to grasp that from
the current patch description :)


Alex

> 
> Signed-off-by: Simon Glass <sjg at chromium.org>
> ---
> 
> Changes in v9: None
> Changes in v8: None
> Changes in v7: None
> Changes in v6: None
> Changes in v5: None
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
> 
>  arch/sandbox/cpu/os.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c
> index 5839932b005..a1a982af2de 100644
> --- a/arch/sandbox/cpu/os.c
> +++ b/arch/sandbox/cpu/os.c
> @@ -143,14 +143,15 @@ void os_tty_raw(int fd, bool allow_sigs)
>  void *os_malloc(size_t length)
>  {
>  	struct os_mem_hdr *hdr;
> +	int page_size = getpagesize();
>  
> -	hdr = mmap(NULL, length + sizeof(*hdr), PROT_READ | PROT_WRITE,
> -		   MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> +	hdr = mmap(NULL, length + page_size,
> +		   PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
>  	if (hdr == MAP_FAILED)
>  		return NULL;
>  	hdr->length = length;
>  
> -	return hdr + 1;
> +	return (void *)hdr + page_size;
>  }
>  
>  void os_free(void *ptr)
> 


More information about the U-Boot mailing list