linux/drivers/mtd/ubi
Zhihao Cheng 7402c4bcb8 ubi: fastmap: Fix duplicate slab cache names while attaching
[ Upstream commit bcddf52b7a ]

Since commit 4c39529663 ("slab: Warn on duplicate cache names when
DEBUG_VM=y"), the duplicate slab cache names can be detected and a
kernel WARNING is thrown out.
In UBI fast attaching process, alloc_ai() could be invoked twice
with the same slab cache name 'ubi_aeb_slab_cache', which will trigger
following warning messages:
 kmem_cache of name 'ubi_aeb_slab_cache' already exists
 WARNING: CPU: 0 PID: 7519 at mm/slab_common.c:107
          __kmem_cache_create_args+0x100/0x5f0
 Modules linked in: ubi(+) nandsim [last unloaded: nandsim]
 CPU: 0 UID: 0 PID: 7519 Comm: modprobe Tainted: G 6.12.0-rc2
 RIP: 0010:__kmem_cache_create_args+0x100/0x5f0
 Call Trace:
   __kmem_cache_create_args+0x100/0x5f0
   alloc_ai+0x295/0x3f0 [ubi]
   ubi_attach+0x3c3/0xcc0 [ubi]
   ubi_attach_mtd_dev+0x17cf/0x3fa0 [ubi]
   ubi_init+0x3fb/0x800 [ubi]
   do_init_module+0x265/0x7d0
   __x64_sys_finit_module+0x7a/0xc0

The problem could be easily reproduced by loading UBI device by fastmap
with CONFIG_DEBUG_VM=y.
Fix it by using different slab names for alloc_ai() callers.

Fixes: d2158f69a7 ("UBI: Remove alloc_ai() slab name from parameter list")
Fixes: fdf10ed710 ("ubi: Rework Fastmap attach base code")
Signed-off-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2024-12-05 14:03:04 +01:00
..
attach.c ubi: fastmap: Fix duplicate slab cache names while attaching 2024-12-05 14:03:04 +01:00
block.c ubi: Fix ubi_init() ubiblock_exit() section mismatch 2024-07-28 20:08:25 +02:00
build.c mtd: ubi: Restore missing cleanup on ubi_init() failure path 2024-07-12 21:43:09 +02:00
cdev.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
debug.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
debug.h ubi: Add six fault injection type for testing 2024-01-06 23:41:40 +01:00
eba.c ubi: eba: properly rollback inside self_check_eba 2024-07-12 19:42:46 +02:00
fastmap-wl.c ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty 2024-12-05 14:03:04 +01:00
fastmap.c ubi: correct the calculation of fastmap size 2024-02-25 21:30:15 +01:00
gluebi.c mtd: ubi: gluebi: Fix misnamed function parameter documentation 2020-11-20 12:37:32 +01:00
io.c ubi: Add six fault injection type for testing 2024-01-06 23:41:40 +01:00
kapi.c mtd: ubi: introduce pre-removal notification for UBI volumes 2024-02-25 22:41:33 +01:00
Kconfig mtd: ubi: provide NVMEM layer over UBI volumes 2024-02-25 22:42:23 +01:00
Makefile mtd: ubi: provide NVMEM layer over UBI volumes 2024-02-25 22:42:23 +01:00
misc.c ubi: use correct names in function kernel-doc comments 2023-02-05 22:36:39 +01:00
nvmem.c mtd: ubi: avoid expensive do_div() on 32-bit machines 2024-07-12 19:46:21 +02:00
ubi-media.h ubi: ubi-media.h: Fix comment typo 2022-09-21 11:12:18 +02:00
ubi.h ubifs: correct UBIFS_DFS_DIR_LEN macro definition and improve code clarity 2024-07-12 21:52:24 +02:00
upd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
vmt.c mtd: ubi: fix unreleased fwnode_handle in find_volume_fwnode() 2024-12-05 14:02:54 +01:00
vtbl.c ubi: Check for too small LEB size in VTBL code 2024-02-25 21:19:42 +01:00
wl.c ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty 2024-12-05 14:03:04 +01:00
wl.h ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty 2024-12-05 14:03:04 +01:00