Patch "drm/i915/kvmgt: fix suspicious rcu dereference usage" has been added to the 4.10-stable tree
This is a note to let you know that I've just added the patch titled
drm/i915/kvmgt: fix suspicious rcu dereference usage
to the 4.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
drm-i915-kvmgt-fix-suspicious-rcu-dereference-usage.patch
and it can be found in the queue-4.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
5180edc2421117766fcb9c2d2dc6bfaeefdeb709Mon Sep 17 00:00:00 2001
From: Changbin Du <[email protected]>
Date: Thu, 16 Mar 2017 09:45:09 +0800
Subject: drm/i915/kvmgt: fix suspicious rcu dereference usage
From: Changbin Du <[email protected]>
commit 5180edc2421117766fcb9c2d2dc6bfaeefdeb709 upstream.
The srcu read lock must be held while accessing kvm memslots. This patch fix below warning for function kvmgt_rw_gpa().
[ 165.345093] [ ERR: suspicious RCU usage. ] [ 165.416538] Call Trace: [ 165.418989] dump_stack+0x85/0xc2 [ 165.422310] lockdep_rcu_suspicious+0xd7/0x110 [ 165.426769] kvm_read_guest_page+0x195/0x1b0 [kvm] [ 165.431574] kvm_read_guest+0x50/0x90 [kvm] [ 165.440492] kvmgt_rw_gpa+0x43/0xa0 [kvmgt] [ 165.444683] kvmgt_read_gpa+0x11/0x20 [kvmgt] [ 165.449061] gtt_get_entry64+0x4d/0xc0 [i915] [ 165.453438] ppgtt_populate_shadow_page_by_guest_entry+0x380/0xdc0 [i915] [ 165.460254] shadow_mm+0xd1/0x460 [i915] [ 165.472488] intel_vgpu_create_mm+0x1ab/0x210 [i915] [ 165.477472] intel_vgpu_g2v_create_ppgtt_mm+0x5f/0xc0 [i915] [ 165.483154] pvinfo_mmio_write+0x19b/0x1d0 [i915] [ 165.499068] intel_vgpu_emulate_mmio_write+0x3f9/0x600 [i915] [ 165.504827] intel_vgpu_rw+0x114/0x150 [kvmgt] [ 165.509281] intel_vgpu_write+0x16f/0x1a0 [kvmgt] [ 165.513993] vfio_mdev_write+0x20/0x30 [vfio_mdev] [ 165.518793] vfio_device_fops_write+0x24/0x30 [vfio] [ 165.523770] __vfs_write+0x28/0x120 [ 165.540529] vfs_write+0xce/0x1f0
v2: fix Cc format for stable
--- drivers/gpu/drm/i915/gvt/kvmgt.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
drivers/gpu/drm/i915/gvt/kvmgt.c +3 -1
@@ -1422,7 +1422,7 @@ static int kvmgt_rw_gpa(unsigned long ha {struct kvmgt_guest_info *info;struct kvm *kvm; -int ret; +int idx, ret;bool kthread = current->mm ==NULL ;if (!handle_valid (handle))
@@ -1434,8 +1434,10 @@ static int kvmgt_rw_gpa(unsigned long haif (kthread)use_mm (kvm->mm); + idx =srcu_read_lock (&kvm->srcu); ret = write ?kvm_write_guest (kvm, gpa, buf, len) :kvm_read_guest (kvm, gpa, buf, len); +srcu_read_unlock (&kvm->srcu, idx);if (kthread)unuse_mm (kvm->mm);
Patches currently in stable-queue which might be from [email protected] are
queue-4.10/drm-i915-kvmgt-fix-suspicious-rcu-dereference-usage.patch