ACK: [PATCH] lib: fwts_alloc: use plain old mmap on 32 bit machines (LP: #1204065)

Alex Hung alex.hung at canonical.com
Mon Jul 29 08:18:06 UTC 2013


On 07/26/2013 11:15 PM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> For 32 bit machines, we know that we're going to get a 32 bit mmap'd
> address, so there is no need to lark about with forcing a low 32 bit
> allocation.  We only really need to fret about this for 64 bit systems.
> So, just do a normal mmap for 32 bit.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/lib/src/fwts_alloc.c | 11 ++++++++---
>   1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/src/lib/src/fwts_alloc.c b/src/lib/src/fwts_alloc.c
> index 5ea759a..667e8fd 100644
> --- a/src/lib/src/fwts_alloc.c
> +++ b/src/lib/src/fwts_alloc.c
> @@ -122,10 +122,15 @@ void *fwts_low_calloc(const size_t nmemb, const size_t size)
>   	ret = mmap(NULL, n, PROT_READ | PROT_WRITE,
>   		MAP_PRIVATE | MAP_ANONYMOUS | MAP_32BIT, -1, 0);
>   #else
> -	/* We don't have a native MAP_32BIT, so bodge our own */
> -	ret = fwts_low_mmap(n);
> +	if (sizeof(void *) == 4) {
> +		/* 32 bit mmap by default */
> +		ret = mmap(NULL, n, PROT_READ | PROT_WRITE,
> +			MAP_PRIVATE | MAP_ANONYMOUS, -1, 0);
> +	} else {
> +		/* We don't have a native MAP_32BIT, so bodge our own */
> +		ret = fwts_low_mmap(n);
> +	}
>   #endif
> -
>   	if (ret == MAP_FAILED)
>   		return NULL;
>
>

Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list