From: Petr Mladek <[email protected]> The "data" pointer in "struct klp_state" is associated with the lifetime of the livepatch module, not the livepatch state. This means it's lost when a livepatch is replaced, even if the new livepatch supports the same state.
Shadow variables provide a more reliable way to attach data to a livepatch state. Their lifetime can be tied to the state's lifetime by: - Sharing the same "id" - Setting "is_shadow" in "struct klp_state" Removing the "data" pointer prevents potential issues once per-object callbacks are removed, as it cannot be used securely in that context. Signed-off-by: Petr Mladek <[email protected]> --- include/linux/livepatch.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/include/linux/livepatch.h b/include/linux/livepatch.h index be4584044cf4..340b04a0de83 100644 --- a/include/linux/livepatch.h +++ b/include/linux/livepatch.h @@ -152,14 +152,12 @@ struct klp_state_callbacks { * @callbacks: optional callbacks used when enabling or disabling the state * @is_shadow: the state handles lifetime of a shadow variable with * the same @id - * @data: custom data */ struct klp_state { unsigned long id; unsigned int version; struct klp_state_callbacks callbacks; bool is_shadow; - void *data; }; /** -- 2.47.3
