[Crash-utility] Re: [PATCH] x86_64: Mark #VC stack unavailable when CONFIG_AMD_MEM_ENCRYPT is not set

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Can you subscribe to the list?   We have a few people including Lianbo
to be the list moderator,  for msgs from people who did not subscribe
we need to approve your email manually for each of the replies,
sometimes if we miss it you will need to wait more time.

On Fri, 13 Dec 2024 at 16:14, Hou Wenlong <houwenlong.hwl@xxxxxxxxxxxx> wrote:
>
> On Fri, Dec 13, 2024 at 02:48:13PM +0800, lijiang wrote:
> > On Wed, Dec 11, 2024 at 10:22 AM <devel-request@xxxxxxxxxxxxxxxxxxxxxxxxxxx>
> > wrote:
> >
> > > Date: Tue, 10 Dec 2024 20:18:43 +0800
> > > From: "Hou Wenlong" <houwenlong.hwl@xxxxxxxxxxxx>
> > > Subject:  [PATCH] x86_64: Mark #VC stack unavailable
> > >         when CONFIG_AMD_MEM_ENCRYPT is not set
> > > To: devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx
> > > Cc: Hou Wenlong <houwenlong.hwl@xxxxxxxxxxxx>
> > > Message-ID: <f1fca9918841de9a48f428d498f50964f1dab543.1733831073.git.h
> > >         ouwenlong.hwl@xxxxxxxxxxxx>
> > >
> > > When 'CONFIG_AMD_MEM_ENCRYPT' is not set, the IDT handler for #VC is not
> > > registered, but the address of the #VC IST stack is still set in
> > > tss_setup_ist(). Therefore, the name of the associated exception stack
> > > is "UNKNOWN" instead of "VC". Although the base of the exception stack
> > > is not zero and is available, it is not accessible, which will cause the
> > > backtrace to fail when attempting to access the #VC stack. To fix this,
> > > remove the name check.
> > >
> > >
> > Thank you for the fix, Hou.
> >
> >
> > > Signe-off-by: Hou Wenlong <houwenlong.hwl@xxxxxxxxxxxx>
> > > ---
> > >  x86_64.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/x86_64.c b/x86_64.c
> > > index e7f8fe25b31f..ee12ba095e6e 100644
> > > --- a/x86_64.c
> > > +++ b/x86_64.c
> > > @@ -1540,7 +1540,7 @@ x86_64_ist_init(void)
> > >
> > >                                 ms->stkinfo.available[c][i] = TRUE;
> > >                                 /* VC stack can be unmapped if SEV-ES is
> > > disabled or not supported. */
> > > -                               if (STREQ(ms->stkinfo.exception_stacks[i],
> > > "VC") &&
> > > +                               if (ms->stkinfo.ebase[c][i] &&
> > >
> > Can you help double check if the above condition is redundant in your case?
> > Seems the check '!accessible(ms->stkinfo.ebase[c][i])'  should be enough.
> >
> Hi Lianbo,
>
> Yes, checking '!accessible(ms->stkinfo.ebase[c][i])' is sufficient. I
> added the extra check because I noticed that a value of 0 seems to be
> invalid for 'ms->stkinfo.ebase[c][i]', and there is a separate check for
> 'ms->stkinfo.ebase[c][i] != 0' before it is used in other places. If we
> remove the check, it could potentially be rewritten as:
>
> diff --git a/x86_64.c b/x86_64.c
> index e7f8fe25b31f..c254c6ec7576 100644
> --- a/x86_64.c
> +++ b/x86_64.c
> @@ -1538,11 +1538,8 @@ x86_64_ist_init(void)
>                                 if (ms->stkinfo.ebase[c][i])
>                                         ms->stkinfo.ebase[c][i] -=
> ms->stkinfo.esize[i];
>
> -                               ms->stkinfo.available[c][i] = TRUE;
>                                 /* VC stack can be unmapped if SEV-ES is
>  * disabled or not supported. */
> -                               if
>                                 (STREQ(ms->stkinfo.exception_stacks[i],
> "VC") &&
> -                                   !accessible(ms->stkinfo.ebase[c][i]))
> -                                       ms->stkinfo.available[c][i] =
>                                         FALSE;
> +                               ms->stkinfo.available[c][i] =
> accessible(ms->stkinfo.ebase[c][i]);
>                         }
>                 }
>
> Thanks!
>
> > Thanks
> > Lianbo
> >
> >                                     !accessible(ms->stkinfo.ebase[c][i]))
> > >                                         ms->stkinfo.available[c][i] =
> > > FALSE;
> > >                         }
> > >
> > > base-commit: f13853cef53f5c5463a51021edbc81977e2b1405
> > > --
> > > 2.31.1
> > >
> --
> Crash-utility mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx
> https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
> Contribution Guidelines: https://github.com/crash-utility/crash/wiki
--
Crash-utility mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki




[Index of Archives]     [Fedora Development]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]     [Fedora Tools]

 

Powered by Linux