[PATCH] drm/i915/gvt: Set up-limit of BB size to 2GB.

Colin Xu colin.xu at intel.com
Mon Jun 3 06:47:44 UTC 2019


Set default maximum batch buffer size to 2GB to prevent overflow.

Signed-off-by: Colin Xu <colin.xu at intel.com>
---
 drivers/gpu/drm/i915/gvt/cmd_parser.c | 6 ++++++
 drivers/gpu/drm/i915/gvt/gvt.h        | 2 ++
 2 files changed, 8 insertions(+)

diff --git a/drivers/gpu/drm/i915/gvt/cmd_parser.c b/drivers/gpu/drm/i915/gvt/cmd_parser.c
index 7c7b711942cd..02cedb34b859 100644
--- a/drivers/gpu/drm/i915/gvt/cmd_parser.c
+++ b/drivers/gpu/drm/i915/gvt/cmd_parser.c
@@ -1710,6 +1710,12 @@ static int find_bb_size(struct parser_exec_state *s, unsigned long *bb_size)
 		}
 		cmd_len = get_cmd_length(info, cmd) << 2;
 		*bb_size += cmd_len;
+		if (*bb_size > INTEL_GVT_MAX_BB_LENGTH_DEFAULT) {
+			gvt_vgpu_err("BB len exceeds max limit 0x%llx\n",
+				     INTEL_GVT_MAX_BB_LENGTH_DEFAULT);
+			*bb_size = 0;
+			return -EOVERFLOW;
+		}
 		gma += cmd_len;
 	} while (!bb_end);
 
diff --git a/drivers/gpu/drm/i915/gvt/gvt.h b/drivers/gpu/drm/i915/gvt/gvt.h
index b54f2bdc13a4..a5e3ec97993b 100644
--- a/drivers/gpu/drm/i915/gvt/gvt.h
+++ b/drivers/gpu/drm/i915/gvt/gvt.h
@@ -231,6 +231,8 @@ struct intel_vgpu {
 	u32 scan_nonprivbb;
 };
 
+#define INTEL_GVT_MAX_BB_LENGTH_DEFAULT	0x80000000
+
 /* validating GM healthy status*/
 #define vgpu_is_vm_unhealthy(ret_val) \
 	(((ret_val) == -EBADRQC) || ((ret_val) == -EFAULT))
-- 
2.21.0



More information about the intel-gvt-dev mailing list