]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
drm/i915/gvt: add a NULL pointer check to avoid kernel panic
authorChuanxiao Dong <chuanxiao.dong@intel.com>
Fri, 17 Feb 2017 11:29:52 +0000 (19:29 +0800)
committerZhenyu Wang <zhenyuw@linux.intel.com>
Thu, 23 Feb 2017 09:32:13 +0000 (17:32 +0800)
Due to the request replay, context switch interrupt may come after
gvt free the workload thus can cause a kernel NULL pointer kernel
panic. This patch will add a simple check to avoid this for a short
term.

From long term, gvt workload lifecycle doesn't match with i915 request
and need to find a proper way to manage this.

v4: simplify the NULL pointer check.
v5: add unlikely to optimize.

Signed-off-by: Chuanxiao Dong <chuanxiao.dong@intel.com>
Signed-off-by: Zhenyu Wang <zhenyuw@linux.intel.com>
drivers/gpu/drm/i915/gvt/scheduler.c

index d6b6d0efdd1aeef15463e9504a4054ff3f2c3f8f..e355a82ccabd64dcc94e643aae77bdf6b03d6a42 100644 (file)
@@ -139,6 +139,9 @@ static int shadow_context_status_change(struct notifier_block *nb,
        struct intel_vgpu_workload *workload =
                scheduler->current_workload[req->engine->id];
 
+       if (unlikely(!workload))
+               return NOTIFY_OK;
+
        switch (action) {
        case INTEL_CONTEXT_SCHEDULE_IN:
                intel_gvt_load_render_mmio(workload->vgpu,