[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