diff --git a/drivers/gpu/msm/kgsl.c b/drivers/gpu/msm/kgsl.c index 36dab33e4a8..710720df4ff 100644 --- a/drivers/gpu/msm/kgsl.c +++ b/drivers/gpu/msm/kgsl.c @@ -903,10 +903,15 @@ kgsl_get_process_private(struct kgsl_device_private *cur_dev_priv) mutex_lock(&private->process_private_mutex); - if (!private->mem_rb.rb_node) { - private->mem_rb = RB_ROOT; - idr_init(&private->mem_idr); - } + /* + * If debug root initialized then it means the rest of the fields + * are also initialized + */ + if (private->debug_root) + goto done; + + private->mem_rb = RB_ROOT; + idr_init(&private->mem_idr); if ((!private->pagetable) && kgsl_mmu_enabled()) { unsigned long pt_name; @@ -921,11 +926,10 @@ kgsl_get_process_private(struct kgsl_device_private *cur_dev_priv) } } - if (!private->kobj.parent) - kgsl_process_init_sysfs(private); - if (!private->debug_root) - kgsl_process_init_debugfs(private); + kgsl_process_init_sysfs(private); + kgsl_process_init_debugfs(private); +done: mutex_unlock(&private->process_private_mutex); return private;