Re: PATCH v6 5/6] livepatch: Support separate list for replaced patches.

From: Miroslav Benes
Date: Wed Jan 31 2018 - 11:19:22 EST


On Thu, 25 Jan 2018, Petr Mladek wrote:

> From: Jason Baron <jbaron@xxxxxxxxxx>
>
> We are going to add a feature called atomic replace. It will allow to
> create a patch that would replace all already registered patches.
>
> The replaced patches will stay registered because they are typically
> unregistered by some package uninstall scripts. But we will remove
> these patches from @klp_patches list to keep the enabled patch
> on the bottom of the stack. Otherwise, we would need to implement
> rather complex logic for moving the patches on the stack. Also
> it would complicate implementation of the atomic replace feature.
> It is not worth it.
>
> As a result, we will have patches that are registered but that
> are not longer usable. Let's get prepared for this and use
> a better descriptive name for klp_is_patch_registered() function.
>
> Also create separate list for the replaced patches and allow to
> unregister them. Alternative solution would be to add a flag
> into struct klp_patch. Note that patch->kobj.state_initialized
> is not safe because it can be cleared outside klp_mutex.
>
> This patch does not change the existing behavior.

Ok, why not. We could also unregister the patches right away and amend the
check in klp_unregister_patch() not to return error. Ever.

However, this seems better in the end.

Miroslav