2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:43 +02:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2025-12-14 16:51:56 -08:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:53 +02:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
2019-04-25 15:59:51 +02:00
|
|
|
|
2019-04-25 15:59:42 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:16 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
2020-03-26 11:37:17 -07:00
|
|
|
|
2020-09-18 21:11:02 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-26 11:37:17 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-26 11:37:15 -07:00
|
|
|
|
2020-03-26 11:37:17 -07:00
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-26 11:37:15 -07:00
|
|
|
|
|
|
|
|
|
2020-09-18 21:11:02 +02:00
|
|
|
|
2020-03-26 11:37:17 -07:00
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
2020-03-26 11:37:15 -07:00
|
|
|
|
2020-03-26 11:37:14 -07:00
|
|
|
|
|
|
|
|
|
2020-03-30 18:27:02 -05:00
|
|
|
|
2020-03-26 11:37:14 -07:00
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
2020-03-26 11:37:09 -07:00
|
|
|
|
2020-03-26 11:37:15 -07:00
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-15 10:30:41 +00:00
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-07-11 11:52:26 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-15 10:30:41 +00:00
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -08:00
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-10-30 16:15:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-10-30 16:15:04 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:14 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
|
|
|
|
|
2020-02-01 16:43:22 +00:00
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2019-04-25 15:59:52 +02:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2020-02-01 16:43:30 +00:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:52 +02:00
|
|
|
|
2022-10-26 09:46:42 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
2020-09-25 13:46:08 -07:00
|
|
|
|
|
|
|
|
|
2025-07-22 11:19:45 +02:00
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-18 18:50:35 -08:00
|
|
|
|
|
|
|
|
|
netdevsim: fix panic in nsim_dev_take_snapshot_write()
nsim_dev_take_snapshot_write() uses nsim_dev and nsim_dev->dummy_region.
So, during this function, these data shouldn't be removed.
But there is no protecting stuff in this function.
There are two similar cases.
1. reload case
reload could be called during nsim_dev_take_snapshot_write().
When reload is being executed, nsim_dev_reload_down() is called and it
calls nsim_dev_reload_destroy(). nsim_dev_reload_destroy() calls
devlink_region_destroy() to destroy nsim_dev->dummy_region.
So, during nsim_dev_take_snapshot_write(), nsim_dev->dummy_region()
would be removed.
At this point, snapshot_write() would access freed pointer.
In order to fix this case, take_snapshot file will be removed before
devlink_region_destroy().
The take_snapshot file will be re-created by ->reload_up().
2. del_device_store case
del_device_store() also could call nsim_dev_reload_destroy()
during nsim_dev_take_snapshot_write(). If so, panic would occur.
This problem is actually the same problem with the first case.
So, this problem will be fixed by the first case's solution.
Test commands:
modprobe netdevsim
while :
do
echo 1 > /sys/bus/netdevsim/new_device &
echo 1 > /sys/bus/netdevsim/del_device &
devlink dev reload netdevsim/netdevsim1 &
echo 1 > /sys/kernel/debug/netdevsim/netdevsim1/take_snapshot &
done
Splat looks like:
[ 45.564513][ T975] general protection fault, probably for non-canonical address 0xdffffc000000003a: 0000 [#1] SMP DEI
[ 45.566131][ T975] KASAN: null-ptr-deref in range [0x00000000000001d0-0x00000000000001d7]
[ 45.566135][ T975] CPU: 1 PID: 975 Comm: bash Not tainted 5.5.0+ #322
[ 45.569020][ T975] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
[ 45.569026][ T975] RIP: 0010:__mutex_lock+0x10a/0x14b0
[ 45.570518][ T975] Code: 08 84 d2 0f 85 7f 12 00 00 44 8b 0d 10 23 65 02 45 85 c9 75 29 49 8d 7f 68 48 b8 00 00 00 0f
[ 45.570522][ T975] RSP: 0018:ffff888046ccfbf0 EFLAGS: 00010206
[ 45.572305][ T975] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
[ 45.572308][ T975] RDX: 000000000000003a RSI: ffffffffac926440 RDI: 00000000000001d0
[ 45.576843][ T975] RBP: ffff888046ccfd70 R08: ffffffffab610645 R09: 0000000000000000
[ 45.576847][ T975] R10: ffff888046ccfd90 R11: ffffed100d6360ad R12: 0000000000000000
[ 45.578471][ T975] R13: dffffc0000000000 R14: ffffffffae1976c0 R15: 0000000000000168
[ 45.578475][ T975] FS: 00007f614d6e7740(0000) GS:ffff88806c400000(0000) knlGS:0000000000000000
[ 45.581492][ T975] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 45.582942][ T975] CR2: 00005618677d1cf0 CR3: 000000005fb9c002 CR4: 00000000000606e0
[ 45.584543][ T975] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 45.586633][ T975] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 45.589889][ T975] Call Trace:
[ 45.591445][ T975] ? devlink_region_snapshot_create+0x55/0x4a0
[ 45.601250][ T975] ? mutex_lock_io_nested+0x1380/0x1380
[ 45.602817][ T975] ? mutex_lock_io_nested+0x1380/0x1380
[ 45.603875][ T975] ? mark_held_locks+0xa5/0xe0
[ 45.604769][ T975] ? _raw_spin_unlock_irqrestore+0x2d/0x50
[ 45.606147][ T975] ? __mutex_unlock_slowpath+0xd0/0x670
[ 45.607723][ T975] ? crng_backtrack_protect+0x80/0x80
[ 45.613530][ T975] ? wait_for_completion+0x390/0x390
[ 45.615152][ T975] ? devlink_region_snapshot_create+0x55/0x4a0
[ 45.616834][ T975] devlink_region_snapshot_create+0x55/0x4a0
[ ... ]
Fixes: 4418f862d675 ("netdevsim: implement support for devlink region and snapshots")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-02-01 16:43:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-06 08:30:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-10-28 14:17:53 -07:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-10-28 14:17:53 -07:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:42 +08:00
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
2021-06-17 14:36:32 +03:00
|
|
|
|
2021-06-14 16:01:14 +03:00
|
|
|
|
2021-06-17 14:36:32 +03:00
|
|
|
|
2020-07-09 17:42:48 -07:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
2022-10-26 09:46:42 +08:00
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
2022-10-26 09:46:42 +08:00
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
2019-04-25 15:59:52 +02:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:53 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:53 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
2019-04-25 15:59:53 +02:00
|
|
|
|
|
|
|
|
|
2020-02-01 16:43:30 +00:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:53 +02:00
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
2019-04-25 15:59:53 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:43 +02:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2018-04-05 22:13:21 +02:00
|
|
|
|
2020-11-04 15:30:37 +02:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-11-04 15:30:37 +02:00
|
|
|
|
2022-10-26 09:46:41 +08:00
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-18 18:50:35 -08:00
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
2025-11-18 18:50:35 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-11-18 18:50:35 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-26 08:58:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
2023-01-26 08:58:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-26 08:58:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
2023-01-26 08:58:35 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
2020-03-26 11:37:08 -07:00
|
|
|
|
|
|
|
|
|
2020-03-26 11:37:09 -07:00
|
|
|
|
2020-03-26 11:37:17 -07:00
|
|
|
|
2020-03-26 11:37:08 -07:00
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
|
|
|
|
|
2025-07-10 13:18:33 +02:00
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2025-07-10 13:18:33 +02:00
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:44 -07:00
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:44 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
2021-06-14 16:01:14 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:21 +03:00
|
|
|
|
2020-01-09 14:46:22 -08:00
|
|
|
|
2019-08-17 16:28:21 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-22 20:48:30 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
2020-03-22 20:48:30 +02:00
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
2020-03-22 20:48:30 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2020-05-29 21:36:44 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-22 20:48:30 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-22 20:48:28 +02:00
|
|
|
|
2020-03-30 22:38:21 +03:00
|
|
|
|
|
|
|
|
|
2020-05-29 21:36:38 +03:00
|
|
|
|
2020-03-30 22:38:21 +03:00
|
|
|
|
|
|
|
|
|
2020-05-29 21:36:44 +03:00
|
|
|
|
2020-03-22 20:48:28 +02:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-29 21:36:38 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-29 21:36:44 +03:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-15 09:46:35 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-09-15 09:46:35 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-20 22:14:46 +08:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2019-09-15 09:46:35 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2025-09-18 16:24:25 +02:00
|
|
|
|
2024-10-12 09:42:30 +00:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-02-01 17:53:24 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-10-12 09:42:30 +00:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2025-09-18 16:24:25 +02:00
|
|
|
|
2024-10-12 09:42:30 +00:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-21 16:37:42 -08:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -08:00
|
|
|
|
Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses
Conversion performed via this Coccinelle script:
// SPDX-License-Identifier: GPL-2.0-only
// Options: --include-headers-for-types --all-includes --include-headers --keep-comments
virtual patch
@gfp depends on patch && !(file in "tools") && !(file in "samples")@
identifier ALLOC = {kmalloc_obj,kmalloc_objs,kmalloc_flex,
kzalloc_obj,kzalloc_objs,kzalloc_flex,
kvmalloc_obj,kvmalloc_objs,kvmalloc_flex,
kvzalloc_obj,kvzalloc_objs,kvzalloc_flex};
@@
ALLOC(...
- , GFP_KERNEL
)
$ make coccicheck MODE=patch COCCI=gfp.cocci
Build and boot tested x86_64 with Fedora 42's GCC and Clang:
Linux version 6.19.0+ (user@host) (gcc (GCC) 15.2.1 20260123 (Red Hat 15.2.1-7), GNU ld version 2.44-12.fc42) #1 SMP PREEMPT_DYNAMIC 1970-01-01
Linux version 6.19.0+ (user@host) (clang version 20.1.8 (Fedora 20.1.8-4.fc42), LLD 20.1.8) #1 SMP PREEMPT_DYNAMIC 1970-01-01
Signed-off-by: Kees Cook <kees@kernel.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2026-02-21 23:46:04 -08:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
2020-03-22 20:48:28 +02:00
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
2020-03-22 20:48:28 +02:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2020-03-22 20:48:28 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-09-18 16:24:25 +02:00
|
|
|
|
2024-10-12 09:42:30 +00:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-22 20:48:28 +02:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:39 +02:00
|
|
|
|
2020-10-07 09:00:44 +03:00
|
|
|
|
|
|
|
|
|
2019-09-12 10:49:45 +02:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
2019-10-06 08:30:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-08 09:17:47 +01:00
|
|
|
|
2019-10-06 08:30:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
2019-09-12 10:49:45 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-07 09:00:43 +03:00
|
|
|
|
2020-10-07 09:00:44 +03:00
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-10-03 11:49:26 +02:00
|
|
|
|
2021-08-05 17:34:28 +03:00
|
|
|
|
2019-10-06 08:30:01 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-10-07 09:00:43 +03:00
|
|
|
|
2022-08-31 15:43:29 +00:00
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2019-10-07 10:27:08 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-08-24 14:20:10 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-07 10:27:08 +02:00
|
|
|
|
|
|
|
|
|
2025-07-22 11:19:45 +02:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
2025-07-22 11:19:45 +02:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
2020-09-25 13:46:06 -07:00
|
|
|
|
|
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-25 13:46:08 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-25 13:46:06 -07:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-25 13:46:06 -07:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
2025-07-22 11:19:45 +02:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-25 13:46:06 -07:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
2020-09-17 18:13:25 -07:00
|
|
|
|
2020-09-25 13:46:06 -07:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
2020-09-25 13:46:06 -07:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-03 19:11:34 +03:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-08-03 19:11:34 +03:00
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-05-21 14:46:16 +03:00
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2026-02-21 16:37:42 -08:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-09 12:56:45 +03:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-14 16:01:14 +03:00
|
|
|
|
2021-06-17 14:36:32 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-14 16:01:14 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-17 14:36:32 +03:00
|
|
|
|
2021-06-14 16:01:14 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:43 +02:00
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
|
|
|
|
|
2022-08-24 14:20:11 +02:00
|
|
|
|
2020-10-07 09:00:43 +03:00
|
|
|
|
2019-09-12 10:49:45 +02:00
|
|
|
|
|
|
|
|
|
2019-10-07 10:27:08 +02:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
2020-03-30 22:38:23 +03:00
|
|
|
|
2020-03-30 22:38:20 +03:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:23 +03:00
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
2025-06-29 17:21:33 +03:00
|
|
|
|
2021-06-02 15:17:26 +03:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:29 +03:00
|
|
|
|
|
|
|
|
|
2021-06-17 14:36:32 +03:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:16 +03:00
|
|
|
|
2025-07-10 13:18:33 +02:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
2020-07-09 16:18:16 +03:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2021-06-02 15:17:17 +03:00
|
|
|
|
|
|
|
|
|
2026-02-21 16:37:42 -08:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:16 +03:00
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:17 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-07-09 16:18:16 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-10 13:18:33 +02:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:20 +03:00
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2022-11-15 11:48:19 +01:00
|
|
|
|
2021-06-02 15:17:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:20 +03:00
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:20 +03:00
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-07-10 13:18:33 +02:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2020-09-25 13:46:08 -07:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-10 15:18:50 +02:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
2021-03-14 14:19:32 +02:00
|
|
|
|
2019-10-10 15:18:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-14 15:01:15 +01:00
|
|
|
|
2021-03-14 14:19:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-14 15:01:15 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
netdevsim: fix panic in nsim_dev_take_snapshot_write()
nsim_dev_take_snapshot_write() uses nsim_dev and nsim_dev->dummy_region.
So, during this function, these data shouldn't be removed.
But there is no protecting stuff in this function.
There are two similar cases.
1. reload case
reload could be called during nsim_dev_take_snapshot_write().
When reload is being executed, nsim_dev_reload_down() is called and it
calls nsim_dev_reload_destroy(). nsim_dev_reload_destroy() calls
devlink_region_destroy() to destroy nsim_dev->dummy_region.
So, during nsim_dev_take_snapshot_write(), nsim_dev->dummy_region()
would be removed.
At this point, snapshot_write() would access freed pointer.
In order to fix this case, take_snapshot file will be removed before
devlink_region_destroy().
The take_snapshot file will be re-created by ->reload_up().
2. del_device_store case
del_device_store() also could call nsim_dev_reload_destroy()
during nsim_dev_take_snapshot_write(). If so, panic would occur.
This problem is actually the same problem with the first case.
So, this problem will be fixed by the first case's solution.
Test commands:
modprobe netdevsim
while :
do
echo 1 > /sys/bus/netdevsim/new_device &
echo 1 > /sys/bus/netdevsim/del_device &
devlink dev reload netdevsim/netdevsim1 &
echo 1 > /sys/kernel/debug/netdevsim/netdevsim1/take_snapshot &
done
Splat looks like:
[ 45.564513][ T975] general protection fault, probably for non-canonical address 0xdffffc000000003a: 0000 [#1] SMP DEI
[ 45.566131][ T975] KASAN: null-ptr-deref in range [0x00000000000001d0-0x00000000000001d7]
[ 45.566135][ T975] CPU: 1 PID: 975 Comm: bash Not tainted 5.5.0+ #322
[ 45.569020][ T975] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
[ 45.569026][ T975] RIP: 0010:__mutex_lock+0x10a/0x14b0
[ 45.570518][ T975] Code: 08 84 d2 0f 85 7f 12 00 00 44 8b 0d 10 23 65 02 45 85 c9 75 29 49 8d 7f 68 48 b8 00 00 00 0f
[ 45.570522][ T975] RSP: 0018:ffff888046ccfbf0 EFLAGS: 00010206
[ 45.572305][ T975] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
[ 45.572308][ T975] RDX: 000000000000003a RSI: ffffffffac926440 RDI: 00000000000001d0
[ 45.576843][ T975] RBP: ffff888046ccfd70 R08: ffffffffab610645 R09: 0000000000000000
[ 45.576847][ T975] R10: ffff888046ccfd90 R11: ffffed100d6360ad R12: 0000000000000000
[ 45.578471][ T975] R13: dffffc0000000000 R14: ffffffffae1976c0 R15: 0000000000000168
[ 45.578475][ T975] FS: 00007f614d6e7740(0000) GS:ffff88806c400000(0000) knlGS:0000000000000000
[ 45.581492][ T975] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 45.582942][ T975] CR2: 00005618677d1cf0 CR3: 000000005fb9c002 CR4: 00000000000606e0
[ 45.584543][ T975] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 45.586633][ T975] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 45.589889][ T975] Call Trace:
[ 45.591445][ T975] ? devlink_region_snapshot_create+0x55/0x4a0
[ 45.601250][ T975] ? mutex_lock_io_nested+0x1380/0x1380
[ 45.602817][ T975] ? mutex_lock_io_nested+0x1380/0x1380
[ 45.603875][ T975] ? mark_held_locks+0xa5/0xe0
[ 45.604769][ T975] ? _raw_spin_unlock_irqrestore+0x2d/0x50
[ 45.606147][ T975] ? __mutex_unlock_slowpath+0xd0/0x670
[ 45.607723][ T975] ? crng_backtrack_protect+0x80/0x80
[ 45.613530][ T975] ? wait_for_completion+0x390/0x390
[ 45.615152][ T975] ? devlink_region_snapshot_create+0x55/0x4a0
[ 45.616834][ T975] devlink_region_snapshot_create+0x55/0x4a0
[ ... ]
Fixes: 4418f862d675 ("netdevsim: implement support for devlink region and snapshots")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-02-01 16:43:13 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
2022-03-14 15:01:15 +01:00
|
|
|
|
|
|
|
|
|
2021-03-14 14:19:32 +02:00
|
|
|
|
|
|
|
|
|
2019-10-10 15:18:50 +02:00
|
|
|
|
|
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:05 -07:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-04-25 15:59:43 +02:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2018-03-30 09:28:51 -07:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2021-07-29 20:19:25 +03:00
|
|
|
|
2021-08-08 21:57:43 +03:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-11-05 13:26:11 -08:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2019-04-25 15:59:43 +02:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2019-04-25 15:59:51 +02:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:53 +02:00
|
|
|
|
2019-06-04 15:40:43 +02:00
|
|
|
|
2020-09-25 13:46:08 -07:00
|
|
|
|
2025-07-22 11:19:45 +02:00
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
2025-11-18 18:50:35 -08:00
|
|
|
|
2020-02-25 11:45:26 +01:00
|
|
|
|
2026-01-16 17:53:08 +08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-11-05 13:26:11 -08:00
|
|
|
|
|
|
|
|
|
treewide: Replace kmalloc with kmalloc_obj for non-scalar types
This is the result of running the Coccinelle script from
scripts/coccinelle/api/kmalloc_objs.cocci. The script is designed to
avoid scalar types (which need careful case-by-case checking), and
instead replace kmalloc-family calls that allocate struct or union
object instances:
Single allocations: kmalloc(sizeof(TYPE), ...)
are replaced with: kmalloc_obj(TYPE, ...)
Array allocations: kmalloc_array(COUNT, sizeof(TYPE), ...)
are replaced with: kmalloc_objs(TYPE, COUNT, ...)
Flex array allocations: kmalloc(struct_size(PTR, FAM, COUNT), ...)
are replaced with: kmalloc_flex(*PTR, FAM, COUNT, ...)
(where TYPE may also be *VAR)
The resulting allocations no longer return "void *", instead returning
"TYPE *".
Signed-off-by: Kees Cook <kees@kernel.org>
2026-02-20 23:49:23 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
|
|
|
|
|
2023-01-05 22:34:02 -08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2023-01-05 22:34:02 -08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-26 08:58:35 +01:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2023-01-05 22:34:01 -08:00
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-10-10 15:18:50 +02:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2019-10-10 15:18:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-03-14 14:19:32 +02:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-14 15:01:15 +01:00
|
|
|
|
2021-03-14 14:19:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-14 15:01:15 +01:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:18 +03:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2019-11-05 13:26:11 -08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2022-03-14 15:01:15 +01:00
|
|
|
|
|
|
|
|
|
2021-03-14 14:19:32 +02:00
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
|
|
|
|
|
2019-10-10 15:18:50 +02:00
|
|
|
|
|
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
|
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
|
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
|
|
|
|
|
2019-08-09 13:05:12 +02:00
|
|
|
|
2023-01-26 08:58:35 +01:00
|
|
|
|
|
|
|
|
|
2023-01-05 22:34:01 -08:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2023-01-05 22:34:02 -08:00
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
|
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2019-11-05 13:26:11 -08:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
|
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-04-25 15:59:49 +02:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
netdevsim: fix panic in nsim_dev_take_snapshot_write()
nsim_dev_take_snapshot_write() uses nsim_dev and nsim_dev->dummy_region.
So, during this function, these data shouldn't be removed.
But there is no protecting stuff in this function.
There are two similar cases.
1. reload case
reload could be called during nsim_dev_take_snapshot_write().
When reload is being executed, nsim_dev_reload_down() is called and it
calls nsim_dev_reload_destroy(). nsim_dev_reload_destroy() calls
devlink_region_destroy() to destroy nsim_dev->dummy_region.
So, during nsim_dev_take_snapshot_write(), nsim_dev->dummy_region()
would be removed.
At this point, snapshot_write() would access freed pointer.
In order to fix this case, take_snapshot file will be removed before
devlink_region_destroy().
The take_snapshot file will be re-created by ->reload_up().
2. del_device_store case
del_device_store() also could call nsim_dev_reload_destroy()
during nsim_dev_take_snapshot_write(). If so, panic would occur.
This problem is actually the same problem with the first case.
So, this problem will be fixed by the first case's solution.
Test commands:
modprobe netdevsim
while :
do
echo 1 > /sys/bus/netdevsim/new_device &
echo 1 > /sys/bus/netdevsim/del_device &
devlink dev reload netdevsim/netdevsim1 &
echo 1 > /sys/kernel/debug/netdevsim/netdevsim1/take_snapshot &
done
Splat looks like:
[ 45.564513][ T975] general protection fault, probably for non-canonical address 0xdffffc000000003a: 0000 [#1] SMP DEI
[ 45.566131][ T975] KASAN: null-ptr-deref in range [0x00000000000001d0-0x00000000000001d7]
[ 45.566135][ T975] CPU: 1 PID: 975 Comm: bash Not tainted 5.5.0+ #322
[ 45.569020][ T975] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
[ 45.569026][ T975] RIP: 0010:__mutex_lock+0x10a/0x14b0
[ 45.570518][ T975] Code: 08 84 d2 0f 85 7f 12 00 00 44 8b 0d 10 23 65 02 45 85 c9 75 29 49 8d 7f 68 48 b8 00 00 00 0f
[ 45.570522][ T975] RSP: 0018:ffff888046ccfbf0 EFLAGS: 00010206
[ 45.572305][ T975] RAX: dffffc0000000000 RBX: 0000000000000000 RCX: 0000000000000000
[ 45.572308][ T975] RDX: 000000000000003a RSI: ffffffffac926440 RDI: 00000000000001d0
[ 45.576843][ T975] RBP: ffff888046ccfd70 R08: ffffffffab610645 R09: 0000000000000000
[ 45.576847][ T975] R10: ffff888046ccfd90 R11: ffffed100d6360ad R12: 0000000000000000
[ 45.578471][ T975] R13: dffffc0000000000 R14: ffffffffae1976c0 R15: 0000000000000168
[ 45.578475][ T975] FS: 00007f614d6e7740(0000) GS:ffff88806c400000(0000) knlGS:0000000000000000
[ 45.581492][ T975] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 45.582942][ T975] CR2: 00005618677d1cf0 CR3: 000000005fb9c002 CR4: 00000000000606e0
[ 45.584543][ T975] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[ 45.586633][ T975] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[ 45.589889][ T975] Call Trace:
[ 45.591445][ T975] ? devlink_region_snapshot_create+0x55/0x4a0
[ 45.601250][ T975] ? mutex_lock_io_nested+0x1380/0x1380
[ 45.602817][ T975] ? mutex_lock_io_nested+0x1380/0x1380
[ 45.603875][ T975] ? mark_held_locks+0xa5/0xe0
[ 45.604769][ T975] ? _raw_spin_unlock_irqrestore+0x2d/0x50
[ 45.606147][ T975] ? __mutex_unlock_slowpath+0xd0/0x670
[ 45.607723][ T975] ? crng_backtrack_protect+0x80/0x80
[ 45.613530][ T975] ? wait_for_completion+0x390/0x390
[ 45.615152][ T975] ? devlink_region_snapshot_create+0x55/0x4a0
[ 45.616834][ T975] devlink_region_snapshot_create+0x55/0x4a0
[ ... ]
Fixes: 4418f862d675 ("netdevsim: implement support for devlink region and snapshots")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2020-02-01 16:43:13 +00:00
|
|
|
|
2021-06-02 15:17:15 +03:00
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:15 +03:00
|
|
|
|
2019-10-03 11:49:35 +02:00
|
|
|
|
2022-03-14 15:01:15 +01:00
|
|
|
|
2021-03-14 14:19:32 +02:00
|
|
|
|
2019-10-10 15:18:50 +02:00
|
|
|
|
2021-02-07 10:22:55 +02:00
|
|
|
|
2019-08-17 16:28:20 +03:00
|
|
|
|
2019-08-15 15:46:33 +02:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:05 -07:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
2019-11-05 13:26:11 -08:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2019-10-03 11:49:36 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2023-01-26 08:58:35 +01:00
|
|
|
|
|
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2023-01-05 22:34:02 -08:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2022-11-15 17:30:25 +08:00
|
|
|
|
2026-01-16 17:53:08 +08:00
|
|
|
|
2022-07-16 13:02:40 +02:00
|
|
|
|
2019-04-25 15:59:42 +02:00
|
|
|
|
2021-10-30 16:15:02 -07:00
|
|
|
|
2018-03-27 18:22:00 -07:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
2021-06-02 15:17:16 +03:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-06-02 15:17:16 +03:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:05 -07:00
|
|
|
|
2025-07-10 13:18:33 +02:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2021-06-02 15:17:16 +03:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
2025-07-10 13:18:33 +02:00
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:05 -07:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2021-06-02 15:17:16 +03:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:42 -07:00
|
|
|
|
2019-04-25 15:59:54 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-11-01 15:18:45 -07:00
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-11-01 15:18:45 -07:00
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2022-03-18 12:23:43 -07:00
|
|
|
|
2021-10-30 16:15:03 -07:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
|
|
|
|
|
2019-04-25 15:59:52 +02:00
|
|
|
|
2020-02-04 22:22:02 +08:00
|
|
|
|
2019-04-25 15:59:50 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|