Re: [PATCH] livepatch: Enforce reliable stack trace as config dependency

From: Jiri Kosina
Date: Tue Apr 16 2019 - 07:47:45 EST


On Tue, 12 Feb 2019, Petr Mladek wrote:

> > I think I'd rather go in the opposite direction: allow the patches to be
> > loaded. Then they can be forced, if needed. That enables both compile
> > and runtime testing. That way we don't make any backward progress,
> > until such arches get reliable stacktraces.
>
> Do you mean to convert the error into warning?
>
> For example, the change below. Note that I did not mention
> the possibility to force the transition by intention. It is risky
> and people should not get used to it.
>
> Heh, I think that this was the main reason why it was the error.
> We did not want to get people used to forcing livepatches.
>
>
> diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c
> index d1af69e9f0e3..8d9bce251516 100644
> --- a/kernel/livepatch/core.c
> +++ b/kernel/livepatch/core.c
> @@ -1035,11 +1035,10 @@ int klp_enable_patch(struct klp_patch *patch)
> return -ENODEV;
>
> if (!klp_have_reliable_stack()) {
> - pr_err("This architecture doesn't have support for the livepatch consistency model.\n");
> - return -EOPNOTSUPP;
> + pr_warn("This architecture doesn't have support for the livepatch consistency model.\n");
> + pr_warn("Only one livepatch can be installed.\n");
> }
>
> -

This seems to have been lost.

I think we should take this aproach before Miroslav is ready with
realiable stack traces for s390. At the same time, I'd suggest issuing a
proper WARN() there instead of just pr_warn(). The kernel might be in a
potentially funky state, so let's at least get the 'W' taint in place.

--
Jiri Kosina
SUSE Labs