Hi , I have checked below code and it seems we are calling debug_object_free twice, ideally we should deactivate and later we have to destroy. 1st call -> percpu_counter_destroy->debug_percpu_counter_deactivate -> debug_object_free 2nd call -> debug_object_free static bool percpu_counter_fixup_free(void *addr, enum debug_obj_state state) { struct percpu_counter *fbc = addr; switch (state) { case ODEBUG_STATE_ACTIVE: percpu_counter_destroy(fbc); -> first call debug_object_free(fbc, &percpu_counter_debug_descr); 2nd call return true; default: return false; } } We are seeing one issue, where one list contain garbage data in obj_hash, just before element of that is percpu_counter but still not sure as it is very difficult to reproduce. Can some one please review above code or can we remove one instance of debug_object_free from above code. Regards Gaurav -- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, a Linux Foundation Collaborative Project. -- To unsubscribe from this list: send the line "unsubscribe linux-arm-msm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html