From 1c1008ad6cda8d7ead26ee1c7fe8e19a9e57ca5a Mon Sep 17 00:00:00 2001 From: xxm Date: Tue, 24 Jun 2014 16:42:20 +0800 Subject: [PATCH] rockchip:midgard:1,katom->fence NULL workaround 2,version to 4 --- drivers/gpu/arm/midgard/mali_kbase_core_linux.c | 2 +- drivers/gpu/arm/midgard/mali_kbase_softjobs.c | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/arm/midgard/mali_kbase_core_linux.c b/drivers/gpu/arm/midgard/mali_kbase_core_linux.c index 89f1d0c4aa01..77c5c3cb4f4e 100755 --- a/drivers/gpu/arm/midgard/mali_kbase_core_linux.c +++ b/drivers/gpu/arm/midgard/mali_kbase_core_linux.c @@ -85,7 +85,7 @@ EXPORT_SYMBOL(shared_kernel_test_data); #endif /* MALI_UNIT_TEST */ #define KBASE_DRV_NAME "mali" -#define ROCKCHIP_VERSION 3 +#define ROCKCHIP_VERSION 4 static const char kbase_drv_name[] = KBASE_DRV_NAME; static int kbase_dev_nr; diff --git a/drivers/gpu/arm/midgard/mali_kbase_softjobs.c b/drivers/gpu/arm/midgard/mali_kbase_softjobs.c index 785ed205a5ba..b52d23bc912a 100755 --- a/drivers/gpu/arm/midgard/mali_kbase_softjobs.c +++ b/drivers/gpu/arm/midgard/mali_kbase_softjobs.c @@ -256,6 +256,11 @@ static int kbase_fence_wait(kbase_jd_atom *katom) static void kbase_fence_cancel_wait(kbase_jd_atom *katom) { + if(!katom || !katom->fence) + { + pr_info("%s,katom or katom->fence NULL\n",__func__); + return; + } if (sync_fence_cancel_async(katom->fence, &katom->sync_waiter) != 0) { /* The wait wasn't cancelled - leave the cleanup for kbase_fence_wait_callback */ @@ -389,8 +394,10 @@ void kbase_finish_soft_job(kbase_jd_atom *katom) break; case BASE_JD_REQ_SOFT_FENCE_WAIT: /* Release the reference to the fence object */ - sync_fence_put(katom->fence); - katom->fence = NULL; + if(katom->fence){ + sync_fence_put(katom->fence); + katom->fence = NULL; + } break; #endif /* CONFIG_SYNC */ } -- 2.34.1