aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChangbin Du <changbin.du@intel.com>2016-12-27 00:24:52 -0500
committerZhenyu Wang <zhenyuw@linux.intel.com>2017-01-08 22:05:56 -0500
commita12010534d0984f91bc5bdcf9e27bd55e20d82da (patch)
tree4d2c31974badb72ac329e9e6afc2e1c1264932d7
parent3e70c5d6ea510e38f612d07fa0fd7487277b7087 (diff)
drm/i915/gvt: fix error handing of tlb_control emulation
Return ealier for a invalid access, else it would false set tlb flag for RCS. Signed-off-by: Changbin Du <changbin.du@intel.com> Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
-rw-r--r--drivers/gpu/drm/i915/gvt/handlers.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/drivers/gpu/drm/i915/gvt/handlers.c b/drivers/gpu/drm/i915/gvt/handlers.c
index 052e57124c0a..e06d5f37bb92 100644
--- a/drivers/gpu/drm/i915/gvt/handlers.c
+++ b/drivers/gpu/drm/i915/gvt/handlers.c
@@ -1367,7 +1367,6 @@ static int ring_mode_mmio_write(struct intel_vgpu *vgpu, unsigned int offset,
1367static int gvt_reg_tlb_control_handler(struct intel_vgpu *vgpu, 1367static int gvt_reg_tlb_control_handler(struct intel_vgpu *vgpu,
1368 unsigned int offset, void *p_data, unsigned int bytes) 1368 unsigned int offset, void *p_data, unsigned int bytes)
1369{ 1369{
1370 int rc = 0;
1371 unsigned int id = 0; 1370 unsigned int id = 0;
1372 1371
1373 write_vreg(vgpu, offset, p_data, bytes); 1372 write_vreg(vgpu, offset, p_data, bytes);
@@ -1390,12 +1389,11 @@ static int gvt_reg_tlb_control_handler(struct intel_vgpu *vgpu,
1390 id = VECS; 1389 id = VECS;
1391 break; 1390 break;
1392 default: 1391 default:
1393 rc = -EINVAL; 1392 return -EINVAL;
1394 break;
1395 } 1393 }
1396 set_bit(id, (void *)vgpu->tlb_handle_pending); 1394 set_bit(id, (void *)vgpu->tlb_handle_pending);
1397 1395
1398 return rc; 1396 return 0;
1399} 1397}
1400 1398
1401static int ring_reset_ctl_write(struct intel_vgpu *vgpu, 1399static int ring_reset_ctl_write(struct intel_vgpu *vgpu,