Weinan Li
a1ac5f0943
drm/i915/gvt: request srcu_read_lock before checking if one gfn is valid
Fix the suspicious RCU usage issue in intel_vgpu_emulate_mmio_write.
Here need to request the srcu read lock of kvm->srcu before doing
gfn_to_memslot(). The detailed log is as below:
[ 218.710688] =============================
[ 218.710690] WARNING: suspicious RCU usage
[ 218.710693] 4.14.15-dd+ #314 Tainted: G U
[ 218.710695] -----------------------------
[ 218.710697] ./include/linux/kvm_host.h:575 suspicious rcu_dereference_check() usage!
[ 218.710699]
other info that might help us debug this:
[ 218.710702]
rcu_scheduler_active = 2, debug_locks = 1
[ 218.710704] 1 lock held by qemu-system-x86/2144:
[ 218.710706] #0: (&gvt->lock){+.+.}, at: [<ffffffff816a1eea>] intel_vgpu_emulate_mmio_write+0x5a/0x2d0
[ 218.710721]
stack backtrace:
[ 218.710724] CPU: 0 PID: 2144 Comm: qemu-system-x86 Tainted: G U 4.14.15-dd+ #314
[ 218.710727] Hardware name: Dell Inc. OptiPlex 7040/0Y7WYT, BIOS 1.1.1 10/07/2015
[ 218.710729] Call Trace:
[ 218.710734] dump_stack+0x7c/0xb3
[ 218.710739] gfn_to_memslot+0x15f/0x170
[ 218.710743] kvm_is_visible_gfn+0xa/0x30
[ 218.710746] intel_vgpu_emulate_gtt_mmio_write+0x267/0x3c0
[ 218.710751] ? __mutex_unlock_slowpath+0x3b/0x260
[ 218.710754] intel_vgpu_emulate_mmio_write+0x182/0x2d0
[ 218.710759] intel_vgpu_rw+0xba/0x170 [kvmgt]
[ 218.710763] intel_vgpu_write+0x14d/0x1a0 [kvmgt]
[ 218.710767] __vfs_write+0x23/0x130
[ 218.710770] vfs_write+0xb0/0x1b0
[ 218.710774] SyS_pwrite64+0x73/0x90
[ 218.710777] entry_SYSCALL_64_fastpath+0x25/0x9c
[ 218.710780] RIP: 0033:0x7f33e8a91da3
[ 218.710783] RSP: 002b:00007f33dddc8700 EFLAGS: 00000293
v2: add 'Fixes' tag, refine log format.(Zhenyu)
Fixes: cc753fbe1a ("drm/i915/gvt: validate gfn before set shadow page")
Reviewed-by: Zhenyu Wang <zhenyuw@linux.intel.com>
Signed-off-by: Weinan Li <weinan.z.li@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
2018-09-18 10:37:55 +08:00
..
2018-08-25 18:13:10 -07:00
2018-08-08 11:05:47 +02:00
2018-08-24 13:20:33 -07:00
2018-08-18 11:04:51 -07:00
2018-08-18 11:44:53 -07:00
2018-08-26 11:48:42 -07:00
2018-08-13 15:59:39 +02:00
2018-08-23 13:52:46 -07:00
2018-08-20 16:30:27 -07:00
2018-08-23 13:52:46 -07:00
2018-08-19 09:56:38 -07:00
2018-08-23 13:52:46 -07:00
2018-08-22 07:42:36 -07:00
2018-08-23 19:20:12 -07:00
2018-08-25 18:43:59 -07:00
2018-08-18 11:04:51 -07:00
2018-08-26 11:48:42 -07:00
2018-08-17 15:13:34 +02:00
2018-08-17 16:20:27 -07:00
2018-08-23 15:44:58 -07:00
2018-08-08 15:44:47 +10:00
2018-08-20 15:38:44 -07:00
2018-09-18 10:37:55 +08:00
2018-08-20 15:59:01 -07:00
2018-08-23 13:52:46 -07:00
2018-08-23 18:48:43 -07:00
2018-08-24 17:26:43 +02:00
2018-08-22 07:40:33 -07:00
2018-08-23 18:48:43 -07:00
2018-08-23 15:34:48 -07:00
2018-08-23 13:44:43 -07:00
2018-08-25 14:12:36 -07:00
2018-08-26 09:55:28 -07:00
2018-08-16 12:26:24 -07:00
2018-08-24 14:42:42 +02:00
2018-08-15 09:53:07 +05:30
2018-08-25 18:13:10 -07:00
2018-08-26 11:48:42 -07:00
2018-08-23 13:52:46 -07:00
2018-08-21 17:40:46 -07:00
2018-08-26 11:48:42 -07:00
2018-08-09 14:47:05 +01:00
2018-08-23 15:58:04 -07:00
2018-08-23 13:44:43 -07:00
2018-08-25 18:43:59 -07:00
2018-08-16 14:21:29 -06:00
2018-08-15 15:04:25 -07:00
2018-08-18 11:04:51 -07:00
2018-08-22 12:34:08 -07:00
2018-08-18 12:30:42 -07:00
2018-08-18 11:04:51 -07:00
2018-08-20 15:38:44 -07:00
2018-08-22 14:14:15 -07:00
2018-08-23 18:48:43 -07:00
2018-08-18 11:04:51 -07:00
2018-08-20 11:36:07 +02:00
2018-08-22 10:52:51 -07:00
2018-08-20 15:38:44 -07:00
2018-08-16 17:39:55 -07:00
2018-08-25 14:12:36 -07:00
2018-08-20 16:30:27 -07:00
2018-08-25 18:13:10 -07:00
2018-08-26 11:48:42 -07:00
2018-08-23 14:02:22 -07:00
2018-08-18 16:45:27 -07:00
2018-08-09 18:47:47 +03:00
2018-08-23 13:52:46 -07:00
2018-08-26 11:48:42 -07:00
2018-08-23 13:52:46 -07:00
2018-08-24 13:03:51 -07:00
2018-08-24 09:34:23 -07:00
2018-08-19 09:30:44 -07:00
2018-08-23 13:52:46 -07:00
2018-08-17 11:32:50 -07:00
2018-08-24 08:45:19 -07:00
2018-08-23 15:44:58 -07:00
2018-08-24 08:45:19 -07:00
2018-08-21 18:06:27 -07:00
2018-08-22 17:31:34 -07:00
2018-08-23 14:52:23 -07:00
2018-08-18 11:04:51 -07:00