Qian Cai
f9c47a0cc5
vfio/pci: fix memory leaks of eventfd ctx
[ Upstream commit 1518ac272e ]
Finished a qemu-kvm (-device vfio-pci,host=0001:01:00.0) triggers a few
memory leaks after a while because vfio_pci_set_ctx_trigger_single()
calls eventfd_ctx_fdget() without the matching eventfd_ctx_put() later.
Fix it by calling eventfd_ctx_put() for those memory in
vfio_pci_release() before vfio_device_release().
unreferenced object 0xebff008981cc2b00 (size 128):
comm "qemu-kvm", pid 4043, jiffies 4294994816 (age 9796.310s)
hex dump (first 32 bytes):
01 00 00 00 6b 6b 6b 6b 00 00 00 00 ad 4e ad de ....kkkk.....N..
ff ff ff ff 6b 6b 6b 6b ff ff ff ff ff ff ff ff ....kkkk........
backtrace:
[<00000000917e8f8d>] slab_post_alloc_hook+0x74/0x9c
[<00000000df0f2aa2>] kmem_cache_alloc_trace+0x2b4/0x3d4
[<000000005fcec025>] do_eventfd+0x54/0x1ac
[<0000000082791a69>] __arm64_sys_eventfd2+0x34/0x44
[<00000000b819758c>] do_el0_svc+0x128/0x1dc
[<00000000b244e810>] el0_sync_handler+0xd0/0x268
[<00000000d495ef94>] el0_sync+0x164/0x180
unreferenced object 0x29ff008981cc4180 (size 128):
comm "qemu-kvm", pid 4043, jiffies 4294994818 (age 9796.290s)
hex dump (first 32 bytes):
01 00 00 00 6b 6b 6b 6b 00 00 00 00 ad 4e ad de ....kkkk.....N..
ff ff ff ff 6b 6b 6b 6b ff ff ff ff ff ff ff ff ....kkkk........
backtrace:
[<00000000917e8f8d>] slab_post_alloc_hook+0x74/0x9c
[<00000000df0f2aa2>] kmem_cache_alloc_trace+0x2b4/0x3d4
[<000000005fcec025>] do_eventfd+0x54/0x1ac
[<0000000082791a69>] __arm64_sys_eventfd2+0x34/0x44
[<00000000b819758c>] do_el0_svc+0x128/0x1dc
[<00000000b244e810>] el0_sync_handler+0xd0/0x268
[<00000000d495ef94>] el0_sync+0x164/0x180
Signed-off-by: Qian Cai <cai@lca.pw>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-10-01 13:18:05 +02:00
..
2020-10-01 13:17:27 +02:00
2019-10-23 06:26:33 -04:00
2020-08-11 15:33:35 +02:00
2020-09-09 19:12:34 +02:00
2020-09-17 13:47:45 +02:00
2019-09-17 16:22:26 -07:00
2020-10-01 13:17:40 +02:00
2019-09-13 16:44:49 +03:00
2020-09-17 13:47:53 +02:00
2020-10-01 13:17:29 +02:00
2020-10-01 13:17:37 +02:00
2020-01-04 19:18:25 +01:00
2020-10-01 13:18:01 +02:00
2020-10-01 13:17:40 +02:00
2020-07-22 09:32:51 +02:00
2020-05-02 08:48:44 +02:00
2020-10-01 13:17:47 +02:00
2020-09-09 19:12:21 +02:00
2020-10-01 13:17:33 +02:00
2020-10-01 13:17:15 +02:00
2020-10-01 13:17:14 +02:00
2020-10-01 13:17:36 +02:00
2020-10-01 13:17:11 +02:00
2020-09-03 11:26:53 +02:00
2020-06-24 17:50:36 +02:00
2020-01-09 10:20:06 +01:00
2020-10-01 13:17:37 +02:00
2020-07-29 10:18:31 +02:00
2019-12-31 16:45:09 +01:00
2020-06-22 09:31:20 +02:00
2020-10-01 13:18:04 +02:00
2020-10-01 13:18:04 +02:00
2020-09-17 13:47:48 +02:00
2019-09-22 12:02:21 -07:00
2020-09-23 12:40:40 +02:00
2020-09-09 19:12:20 +02:00
2020-10-01 13:18:02 +02:00
2020-10-01 13:17:59 +02:00
2020-02-24 08:36:53 +01:00
2020-09-17 13:47:51 +02:00
2020-10-01 13:17:50 +02:00
2020-09-23 12:40:45 +02:00
2019-12-17 19:55:39 +01:00
2020-09-26 18:03:15 +02:00
2020-05-27 17:46:47 +02:00
2020-09-03 11:27:06 +02:00
2019-10-28 13:33:41 -07:00
2020-10-01 13:17:14 +02:00
2019-09-05 13:17:01 -06:00
2020-08-19 08:16:15 +02:00
2020-06-24 17:50:36 +02:00
2020-10-01 13:17:18 +02:00
2020-10-01 13:17:58 +02:00
2020-01-17 19:48:59 +01:00
2019-10-09 11:08:03 +02:00
2020-07-16 08:16:36 +02:00
2020-10-01 13:17:17 +02:00
2020-09-09 19:12:21 +02:00
2020-10-01 13:17:20 +02:00
2020-10-01 13:17:19 +02:00
2020-10-01 13:18:03 +02:00
2020-09-17 13:47:45 +02:00
2020-06-24 17:50:41 +02:00
2020-08-21 13:05:35 +02:00
2020-10-01 13:17:54 +02:00
2020-06-10 20:24:57 +02:00
2020-07-22 09:32:55 +02:00
2020-10-01 13:17:26 +02:00
2020-08-19 08:16:26 +02:00
2019-12-31 16:45:25 +01:00
2020-10-01 13:17:52 +02:00
2019-09-28 08:14:15 -07:00
2020-07-29 10:18:40 +02:00
2020-10-01 13:17:59 +02:00
2020-08-21 13:05:29 +02:00
2020-08-21 13:05:30 +02:00
2020-10-01 13:17:59 +02:00
2020-01-14 20:08:18 +01:00
2020-01-23 08:22:51 +01:00
2020-08-21 13:05:34 +02:00
2020-09-23 12:40:36 +02:00
2020-09-23 12:40:35 +02:00
2020-08-21 13:05:29 +02:00
2020-02-24 08:36:41 +01:00
2020-01-14 20:08:37 +01:00
2020-10-01 13:17:43 +02:00
2020-10-01 13:17:40 +02:00
2020-10-01 13:18:02 +02:00
2020-07-22 09:33:08 +02:00
2020-08-19 08:15:59 +02:00
2020-10-01 13:17:36 +02:00
2020-09-23 12:40:38 +02:00
2020-02-19 19:53:07 +01:00
2019-09-13 17:23:18 +03:00
2020-10-01 13:17:57 +02:00
2020-09-17 13:47:53 +02:00
2020-02-05 21:22:49 +00:00
2020-10-01 13:17:44 +02:00
2020-02-28 17:22:13 +01:00
2020-10-01 13:18:00 +02:00
2020-07-22 09:33:13 +02:00
2020-10-01 13:18:04 +02:00
2020-10-01 13:18:05 +02:00
2020-08-05 09:59:42 +02:00
2020-09-23 12:40:41 +02:00
2020-07-22 09:33:11 +02:00
2020-08-26 10:40:57 +02:00
2020-02-24 08:36:47 +01:00
2020-02-24 08:36:48 +01:00
2020-06-22 09:31:26 +02:00
2020-08-21 13:05:36 +02:00
2020-09-09 19:12:22 +02:00
2019-09-18 11:05:34 -07:00
2019-09-18 11:05:34 -07:00