diff options
author | Changbin Du <changbin.du@intel.com> | 2016-12-27 00:24:52 -0500 |
---|---|---|
committer | Zhenyu Wang <zhenyuw@linux.intel.com> | 2017-01-08 22:05:56 -0500 |
commit | a12010534d0984f91bc5bdcf9e27bd55e20d82da (patch) | |
tree | 4d2c31974badb72ac329e9e6afc2e1c1264932d7 | |
parent | 3e70c5d6ea510e38f612d07fa0fd7487277b7087 (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.c | 6 |
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, | |||
1367 | static int gvt_reg_tlb_control_handler(struct intel_vgpu *vgpu, | 1367 | static 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 | ||
1401 | static int ring_reset_ctl_write(struct intel_vgpu *vgpu, | 1399 | static int ring_reset_ctl_write(struct intel_vgpu *vgpu, |