aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJani Nikula <jani.nikula@intel.com>2018-01-08 06:30:08 -0500
committerJani Nikula <jani.nikula@intel.com>2018-01-08 06:30:09 -0500
commit67c3f3fc028eb1cf35ba4d45b1a4916dc39fd59e (patch)
tree069121a47462b0f9e42b2bb378072ca3173a4374
parentb2cd1df66037e7c4697c7e40496bf7e4a5e16a2d (diff)
parent65e7439204b57b7a7f6e4694f9e2a9adde5e77ed (diff)
Merge tag 'gvt-fixes-2018-01-08' of https://github.com/intel/gvt-linux into drm-intel-fixes
gvt-fixes-2018-01-08 - clear shadow entry for post-sync (Zhi) - fix stack out-of-bound warning in cmd parser (Changbin) Signed-off-by: Jani Nikula <jani.nikula@intel.com> Link: https://patchwork.freedesktop.org/patch/msgid/20180108061130.ucwtumhpbfbu4psu@zhen-hp.sh.intel.com
-rw-r--r--drivers/gpu/drm/i915/gvt/cmd_parser.c4
-rw-r--r--drivers/gpu/drm/i915/gvt/gtt.c5
2 files changed, 6 insertions, 3 deletions
diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
index 85d4c57870fb..49af94627c8a 100644
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -2777,12 +2777,12 @@ int intel_gvt_scan_and_shadow_wa_ctx(struct intel_shadow_wa_ctx *wa_ctx)
2777} 2777}
2778 2778
2779static struct cmd_info *find_cmd_entry_any_ring(struct intel_gvt *gvt, 2779static struct cmd_info *find_cmd_entry_any_ring(struct intel_gvt *gvt,
2780 unsigned int opcode, int rings) 2780 unsigned int opcode, unsigned long rings)
2781{ 2781{
2782 struct cmd_info *info = NULL; 2782 struct cmd_info *info = NULL;
2783 unsigned int ring; 2783 unsigned int ring;
2784 2784
2785 for_each_set_bit(ring, (unsigned long *)&rings, I915_NUM_ENGINES) { 2785 for_each_set_bit(ring, &rings, I915_NUM_ENGINES) {
2786 info = find_cmd_entry(gvt, opcode, ring); 2786 info = find_cmd_entry(gvt, opcode, ring);
2787 if (info) 2787 if (info)
2788 break; 2788 break;
diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index 8e331142badb..64d67ff9bf08 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -1359,12 +1359,15 @@ static int ppgtt_handle_guest_write_page_table_bytes(void *gp,
1359 return ret; 1359 return ret;
1360 } else { 1360 } else {
1361 if (!test_bit(index, spt->post_shadow_bitmap)) { 1361 if (!test_bit(index, spt->post_shadow_bitmap)) {
1362 int type = spt->shadow_page.type;
1363
1362 ppgtt_get_shadow_entry(spt, &se, index); 1364 ppgtt_get_shadow_entry(spt, &se, index);
1363 ret = ppgtt_handle_guest_entry_removal(gpt, &se, index); 1365 ret = ppgtt_handle_guest_entry_removal(gpt, &se, index);
1364 if (ret) 1366 if (ret)
1365 return ret; 1367 return ret;
1368 ops->set_pfn(&se, vgpu->gtt.scratch_pt[type].page_mfn);
1369 ppgtt_set_shadow_entry(spt, &se, index);
1366 } 1370 }
1367
1368 ppgtt_set_post_shadow(spt, index); 1371 ppgtt_set_post_shadow(spt, index);
1369 } 1372 }
1370 1373