]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/gvt: Refine error handling for perform_bb_shadow
authorfred gao <fred.gao@intel.com>
Fri, 18 Aug 2017 07:41:11 +0000 (15:41 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Fri, 8 Sep 2017 06:21:15 +0000 (14:21 +0800)
fix the wrong return type and return error once the unknown
command is scanned.

v2:
- separate this error handle from healthy rating code. (Zhenyu)

Signed-off-by: fred gao <fred.gao@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/cmd_parser.c

index e53efc0524f454b9da4bce1dbf000f02f3aa6a86..23a9bbbb65650749f949cbde224769f35a73fc67 100644 (file)
@@ -1576,11 +1576,11 @@ static int batch_buffer_needs_scan(struct parser_exec_state *s)
        return 1;
 }
 
-static uint32_t find_bb_size(struct parser_exec_state *s)
+static int find_bb_size(struct parser_exec_state *s)
 {
        unsigned long gma = 0;
        struct cmd_info *info;
-       uint32_t bb_size = 0;
+       int bb_size = 0;
        uint32_t cmd_len = 0;
        bool met_bb_end = false;
        struct intel_vgpu *vgpu = s->vgpu;
@@ -1637,6 +1637,8 @@ static int perform_bb_shadow(struct parser_exec_state *s)
 
        /* get the size of the batch buffer */
        bb_size = find_bb_size(s);
+       if (bb_size < 0)
+               return -EINVAL;
 
        /* allocate shadow batch buffer */
        entry_obj = kmalloc(sizeof(*entry_obj), GFP_KERNEL);