Re: [PATCH liburing] src/nolibc: Fix `malloc()` alignment

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 10/11/21 12:49 AM, Ammar Faizi wrote:
> Add `__attribute__((__aligned__))` to the `user_p` to guarantee
> pointer returned by the `malloc()` is properly aligned for user.
> 
> This attribute asks the compiler to align a type to the maximum
> useful alignment for the target machine we are compiling for,
> which is often, but by no means always, 8 or 16 bytes [1].
> 
> Link: https://gcc.gnu.org/onlinedocs/gcc-11.2.0/gcc/Common-Variable-Attributes.html#Common-Variable-Attributes [1]
> Fixes: https://github.com/axboe/liburing/issues/454
> Reported-by: Louvian Lyndal <louvianlyndal@xxxxxxxxx>
> Signed-off-by: Ammar Faizi <ammar.faizi@xxxxxxxxxxxxxxxxxxxxx>
> ---
>  src/nolibc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/nolibc.c b/src/nolibc.c
> index 5582ca0..251780b 100644
> --- a/src/nolibc.c
> +++ b/src/nolibc.c
> @@ -20,7 +20,7 @@ void *memset(void *s, int c, size_t n)
>  
>  struct uring_heap {
>  	size_t		len;
> -	char		user_p[];
> +	char		user_p[] __attribute__((__aligned__));
>  };

This seems to over-align for me, at 16 bytes where 8 bytes would be fine.
What guarantees does malloc() give?

-- 
Jens Axboe




[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux