Hello, The 1st patch moves module_put() to release handler of klp_patch kobject. The 2nd patch changes to free klp_patch and other kobjects without klp_mutex. The 3rd patch switches to synchronous kobject release for klp_patch. V3: - one line fix on check of list_empty() in enabled_store(), 3/3 V2: - remove enabled attribute before deleting this klp_patch kobject, for avoiding deadlock in deleting me Ming Lei (3): livepatch: remove 'struct completion finish' from klp_patch livepatch: free klp_patch object without holding klp_mutex livepatch: free klp_patch object synchronously include/linux/livepatch.h | 2 -- kernel/livepatch/core.c | 67 ++++++++++++++++------------------- kernel/livepatch/core.h | 3 +- kernel/livepatch/transition.c | 23 ++++++++---- kernel/livepatch/transition.h | 2 +- 5 files changed, 50 insertions(+), 47 deletions(-) -- 2.31.1