linux/drivers/mtd/ubi
Zhihao Cheng 6afdcb2857 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-14 19:54:08 +01:00
..
attach.c ubi: fastmap: Fix duplicate slab cache names while attaching 2024-12-14 19:54:08 +01:00
block.c ubi: block: Fix typos in comments 2022-09-21 11:32:27 +02:00
build.c ubi: Refuse attaching if mtd's erasesize is 0 2023-10-10 22:00:39 +02:00
cdev.c ubi: fastmap: Add fastmap control support for 'UBI_IOCATT' ioctl 2022-09-21 18:29:18 +02:00
debug.c treewide: use prandom_u32_max() when possible, part 1 2022-10-11 17:42:55 -06:00
debug.h treewide: use prandom_u32_max() when possible, part 1 2022-10-11 17:42:55 -06:00
eba.c ubi: eba: properly rollback inside self_check_eba 2024-08-03 08:49:38 +02:00
fastmap-wl.c ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty 2024-12-14 19:54:07 +01:00
fastmap.c ubi: correct the calculation of fastmap size 2024-04-03 15:19:27 +02:00
gluebi.c mtd: ubi: gluebi: Fix misnamed function parameter documentation 2020-11-20 12:37:32 +01:00
io.c ubi: Fix repeated words in comments 2022-09-21 11:32:27 +02:00
kapi.c mtd: ubi: kapi: Correct documentation for 'ubi_leb_read_sg's 'sgl' parameter 2020-11-20 12:37:31 +01:00
Kconfig treewide: Add SPDX license identifier - Makefile/Kconfig 2019-05-21 10:50:46 +02:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
misc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
ubi-media.h ubi: ubi-media.h: Fix comment typo 2022-09-21 11:12:18 +02:00
ubi.h ubi: fastmap: Add fastmap control support for 'UBI_IOCATT' ioctl 2022-09-21 18:29:18 +02:00
upd.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
vmt.c ubi: Fix possible null-ptr-deref in ubi_free_volume() 2023-03-11 13:55:20 +01:00
vtbl.c ubi: Check for too small LEB size in VTBL code 2024-04-03 15:19:27 +02:00
wl.c ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty 2024-12-14 19:54:07 +01:00
wl.h ubi: fastmap: wl: Schedule fm_work if wear-leveling pool is empty 2024-12-14 19:54:07 +01:00