Message ID | 20190712090455.266021-1-arnd@arndb.de |
---|---|
State | New |
Headers | show |
Series | slab: work around clang bug #42570 | expand |
On Fri, 12 Jul 2019, Arnd Bergmann wrote: > Clang gets rather confused about two variables in the same special > section when one of them is not initialized, leading to an assembler > warning later: > > /tmp/slab_common-18f869.s: Assembler messages: > /tmp/slab_common-18f869.s:7526: Warning: ignoring changed section attributes for .data..ro_after_init > > Adding an initialization to kmalloc_caches is rather silly here > but does avoid the issue. > > Link: https://bugs.llvm.org/show_bug.cgi?id=42570 > Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: David Rientjes <rientjes@google.com> Let me followup on the clang bug as well.
diff --git a/mm/slab_common.c b/mm/slab_common.c index 6c49dbb3769e..807490fe217a 100644 --- a/mm/slab_common.c +++ b/mm/slab_common.c @@ -1028,7 +1028,8 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, } struct kmem_cache * -kmalloc_caches[NR_KMALLOC_TYPES][KMALLOC_SHIFT_HIGH + 1] __ro_after_init; +kmalloc_caches[NR_KMALLOC_TYPES][KMALLOC_SHIFT_HIGH + 1] __ro_after_init = +{ /* initialization for https://bugs.llvm.org/show_bug.cgi?id=42570 */ }; EXPORT_SYMBOL(kmalloc_caches); /*
Clang gets rather confused about two variables in the same special section when one of them is not initialized, leading to an assembler warning later: /tmp/slab_common-18f869.s: Assembler messages: /tmp/slab_common-18f869.s:7526: Warning: ignoring changed section attributes for .data..ro_after_init Adding an initialization to kmalloc_caches is rather silly here but does avoid the issue. Link: https://bugs.llvm.org/show_bug.cgi?id=42570 Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- We might decide to wait until this is fixed in clang, but so far all versions targetting x86 seem to be affected. --- mm/slab_common.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) -- 2.20.0