mirror of
https://github.com/torvalds/linux.git
synced 2024-12-29 14:21:47 +00:00
0c8b0bf42c
The kunit tests discovered a sleeping in atomic bug. The allocations
in the regcache-rbtree code should use the map->alloc_flags instead of
GFP_KERNEL.
[ 5.005510] BUG: sleeping function called from invalid context at include/linux/sched/mm.h:306
[ 5.005960] in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 117, name: kunit_try_catch
[ 5.006219] preempt_count: 1, expected: 0
[ 5.006414] 1 lock held by kunit_try_catch/117:
[ 5.006590] #0: 833b9010 (regmap_kunit:86:(config)->lock){....}-{2:2}, at: regmap_lock_spinlock+0x14/0x1c
[ 5.007493] irq event stamp: 162
[ 5.007627] hardirqs last enabled at (161): [<80786738>] crng_make_state+0x1a0/0x294
[ 5.007871] hardirqs last disabled at (162): [<80c531ec>] _raw_spin_lock_irqsave+0x7c/0x80
[ 5.008119] softirqs last enabled at (0): [<801110ac>] copy_process+0x810/0x2138
[ 5.008356] softirqs last disabled at (0): [<00000000>] 0x0
[ 5.008688] CPU: 0 PID: 117 Comm: kunit_try_catch Tainted: G N 6.4.4-rc3-g0e8d2fdfb188 #1
[ 5.009011] Hardware name: Generic DT based system
[ 5.009277] unwind_backtrace from show_stack+0x18/0x1c
[ 5.009497] show_stack from dump_stack_lvl+0x38/0x5c
[ 5.009676] dump_stack_lvl from __might_resched+0x188/0x2d0
[ 5.009860] __might_resched from __kmem_cache_alloc_node+0x1dc/0x25c
[ 5.010061] __kmem_cache_alloc_node from kmalloc_trace+0x30/0xc8
[ 5.010254] kmalloc_trace from regcache_rbtree_write+0x26c/0x468
[ 5.010446] regcache_rbtree_write from _regmap_write+0x88/0x140
[ 5.010634] _regmap_write from regmap_write+0x44/0x68
[ 5.010803] regmap_write from basic_read_write+0x8c/0x270
[ 5.010980] basic_read_write from kunit_try_run_case+0x48/0xa0
Fixes:
|
||
---|---|---|
.. | ||
internal.h | ||
Kconfig | ||
Makefile | ||
regcache-flat.c | ||
regcache-maple.c | ||
regcache-rbtree.c | ||
regcache.c | ||
regmap-ac97.c | ||
regmap-debugfs.c | ||
regmap-fsi.c | ||
regmap-i2c.c | ||
regmap-i3c.c | ||
regmap-irq.c | ||
regmap-kunit.c | ||
regmap-mdio.c | ||
regmap-mmio.c | ||
regmap-ram.c | ||
regmap-raw-ram.c | ||
regmap-sccb.c | ||
regmap-sdw-mbq.c | ||
regmap-sdw.c | ||
regmap-slimbus.c | ||
regmap-spi-avmm.c | ||
regmap-spi.c | ||
regmap-spmi.c | ||
regmap-w1.c | ||
regmap.c | ||
trace.h |