mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-14 00:26:50 +07:00
c99a2be790
If a task sleeps in a set of patched functions uninterruptedly, it could block the whole transition indefinitely. Thus it may be useful to clear its TIF_PATCH_PENDING to allow the process to finish. Admin can do that now by writing to force sysfs attribute in livepatch sysfs directory. TIF_PATCH_PENDING is then cleared for all tasks and the transition can finish successfully. Important note! Administrator should not use this feature without a clearance from a patch distributor. It must be checked that by doing so the consistency model guarantees are not violated. Removal (rmmod) of patch modules is permanently disabled when the feature is used. It cannot be guaranteed there is no task sleeping in such module. Signed-off-by: Miroslav Benes <mbenes@suse.cz> Acked-by: Josh Poimboeuf <jpoimboe@redhat.com> Reviewed-by: Petr Mladek <pmladek@suse.com> Signed-off-by: Jiri Kosina <jkosina@suse.cz>
18 lines
486 B
C
18 lines
486 B
C
/* SPDX-License-Identifier: GPL-2.0 */
|
|
#ifndef _LIVEPATCH_TRANSITION_H
|
|
#define _LIVEPATCH_TRANSITION_H
|
|
|
|
#include <linux/livepatch.h>
|
|
|
|
extern struct klp_patch *klp_transition_patch;
|
|
|
|
void klp_init_transition(struct klp_patch *patch, int state);
|
|
void klp_cancel_transition(void);
|
|
void klp_start_transition(void);
|
|
void klp_try_complete_transition(void);
|
|
void klp_reverse_transition(void);
|
|
void klp_send_signals(void);
|
|
void klp_force_transition(void);
|
|
|
|
#endif /* _LIVEPATCH_TRANSITION_H */
|