All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] objpool: fix minimum alignment of 'struct objpool_slot'
@ 2026-02-10 10:35 Arnd Bergmann
  2026-02-11 21:07 ` Yury Norov
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Arnd Bergmann @ 2026-02-10 10:35 UTC (permalink / raw)
  To: Matt Wu; +Cc: Arnd Bergmann, Yury Norov, linux-kernel

From: Arnd Bergmann <arnd@arndb.de>

Members of objpool_slot get passed into try_cmpxchg_release(),
which does not work on most architectures unless they are
naturally aligned. Marking the structure as packed makes it
only byte-aligned, as shown by this (normally disabled) warning:

include/linux/objpool.h:156:56: warning: taking address of packed member of 'struct objpool_slot' may result in an unaligned pointer value [-Waddress-of-packed-member]
  156 |                 if (try_cmpxchg_release(&slot->head, &head, head + 1))
      |                                                       ~^~~~~~~~~~~~

As the struct members are all tightly packed on all architectures,
Just remove the '__packed annotation to give it the required
alignment of the native word size.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 include/linux/objpool.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/include/linux/objpool.h b/include/linux/objpool.h
index b713a1fe7521..f678b35b20b1 100644
--- a/include/linux/objpool.h
+++ b/include/linux/objpool.h
@@ -56,7 +56,7 @@ struct objpool_slot {
 	uint32_t            last;
 	uint32_t            mask;
 	void               *entries[];
-} __packed;
+};
 
 struct objpool_head;
 
-- 
2.39.5


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] objpool: fix minimum alignment of 'struct objpool_slot'
  2026-02-10 10:35 [PATCH] objpool: fix minimum alignment of 'struct objpool_slot' Arnd Bergmann
@ 2026-02-11 21:07 ` Yury Norov
  2026-02-13  2:15 ` wuqiang.matt
  2026-02-13 18:12 ` Yury Norov
  2 siblings, 0 replies; 4+ messages in thread
From: Yury Norov @ 2026-02-11 21:07 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Matt Wu, Arnd Bergmann, Yury Norov, linux-kernel

On Tue, Feb 10, 2026 at 11:35:24AM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Members of objpool_slot get passed into try_cmpxchg_release(),
> which does not work on most architectures unless they are
> naturally aligned. Marking the structure as packed makes it
> only byte-aligned, as shown by this (normally disabled) warning:
> 
> include/linux/objpool.h:156:56: warning: taking address of packed member of 'struct objpool_slot' may result in an unaligned pointer value [-Waddress-of-packed-member]
>   156 |                 if (try_cmpxchg_release(&slot->head, &head, head + 1))
>       |                                                       ~^~~~~~~~~~~~
> 
> As the struct members are all tightly packed on all architectures,
> Just remove the '__packed annotation to give it the required
> alignment of the native word size.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Reviewed-by: Yury Norov <ynorov@nvidia.com>

> ---
>  include/linux/objpool.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/objpool.h b/include/linux/objpool.h
> index b713a1fe7521..f678b35b20b1 100644
> --- a/include/linux/objpool.h
> +++ b/include/linux/objpool.h
> @@ -56,7 +56,7 @@ struct objpool_slot {
>  	uint32_t            last;
>  	uint32_t            mask;
>  	void               *entries[];
> -} __packed;
> +};
>  
>  struct objpool_head;
>  
> -- 
> 2.39.5

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] objpool: fix minimum alignment of 'struct objpool_slot'
  2026-02-10 10:35 [PATCH] objpool: fix minimum alignment of 'struct objpool_slot' Arnd Bergmann
  2026-02-11 21:07 ` Yury Norov
@ 2026-02-13  2:15 ` wuqiang.matt
  2026-02-13 18:12 ` Yury Norov
  2 siblings, 0 replies; 4+ messages in thread
From: wuqiang.matt @ 2026-02-13  2:15 UTC (permalink / raw)
  To: Arnd Bergmann, Masami Hiramatsu
  Cc: Arnd Bergmann, Yury Norov, linux-kernel, linux-trace-kernel

On 2026/2/10 18:35, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Members of objpool_slot get passed into try_cmpxchg_release(),
> which does not work on most architectures unless they are
> naturally aligned. Marking the structure as packed makes it
> only byte-aligned, as shown by this (normally disabled) warning:
> 
> include/linux/objpool.h:156:56: warning: taking address of packed member of 'struct objpool_slot' may result in an unaligned pointer value [-Waddress-of-packed-member]
>    156 |                 if (try_cmpxchg_release(&slot->head, &head, head + 1))
>        |                                                       ~^~~~~~~~~~~~
> 
> As the struct members are all tightly packed on all architectures,
> Just remove the '__packed annotation to give it the required
> alignment of the native word size.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>   include/linux/objpool.h | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/objpool.h b/include/linux/objpool.h
> index b713a1fe7521..f678b35b20b1 100644
> --- a/include/linux/objpool.h
> +++ b/include/linux/objpool.h
> @@ -56,7 +56,7 @@ struct objpool_slot {
>   	uint32_t            last;
>   	uint32_t            mask;
>   	void               *entries[];
> -} __packed;
> +};
>   
>   struct objpool_head;
>   

Reviewed-by: wuqiang.matt <wuqiang.matt@bytedance.com>

Regards,
Matt Wu

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] objpool: fix minimum alignment of 'struct objpool_slot'
  2026-02-10 10:35 [PATCH] objpool: fix minimum alignment of 'struct objpool_slot' Arnd Bergmann
  2026-02-11 21:07 ` Yury Norov
  2026-02-13  2:15 ` wuqiang.matt
@ 2026-02-13 18:12 ` Yury Norov
  2 siblings, 0 replies; 4+ messages in thread
From: Yury Norov @ 2026-02-13 18:12 UTC (permalink / raw)
  To: Arnd Bergmann; +Cc: Matt Wu, Arnd Bergmann, Yury Norov, linux-kernel

Hi Arnd,

Would you like me to route this with my branch? Please let me know if
anything needed on my side.

Thanks,
Yury

On Tue, Feb 10, 2026 at 11:35:24AM +0100, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Members of objpool_slot get passed into try_cmpxchg_release(),
> which does not work on most architectures unless they are
> naturally aligned. Marking the structure as packed makes it
> only byte-aligned, as shown by this (normally disabled) warning:
> 
> include/linux/objpool.h:156:56: warning: taking address of packed member of 'struct objpool_slot' may result in an unaligned pointer value [-Waddress-of-packed-member]
>   156 |                 if (try_cmpxchg_release(&slot->head, &head, head + 1))
>       |                                                       ~^~~~~~~~~~~~
> 
> As the struct members are all tightly packed on all architectures,
> Just remove the '__packed annotation to give it the required
> alignment of the native word size.
> 
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  include/linux/objpool.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/linux/objpool.h b/include/linux/objpool.h
> index b713a1fe7521..f678b35b20b1 100644
> --- a/include/linux/objpool.h
> +++ b/include/linux/objpool.h
> @@ -56,7 +56,7 @@ struct objpool_slot {
>  	uint32_t            last;
>  	uint32_t            mask;
>  	void               *entries[];
> -} __packed;
> +};
>  
>  struct objpool_head;
>  
> -- 
> 2.39.5

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-02-13 18:21 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10 10:35 [PATCH] objpool: fix minimum alignment of 'struct objpool_slot' Arnd Bergmann
2026-02-11 21:07 ` Yury Norov
2026-02-13  2:15 ` wuqiang.matt
2026-02-13 18:12 ` Yury Norov

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.