[Crash-utility] [PATCH] x86_64: Fix check for __per_cpu_offset initialisation
lijiang
lijiang at redhat.com
Wed Aug 11 09:05:26 UTC 2021
>
> Date: Thu, 5 Aug 2021 15:19:37 +0200
> From: Philipp Rudo <prudo at redhat.com>
> To: crash-utility at redhat.com
> Subject: [Crash-utility] [PATCH] x86_64: Fix check for
> __per_cpu_offset initialisation
> Message-ID: <20210805131937.5051-1-prudo at redhat.com>
>
> Since at least kernel v2.6.30 the __per_cpu_offset gets initialized to
> __per_cpu_load. So first check if the __per_cpu_offset was set to a
> proper value before reading any per cpu variable to prevent potential
> bugs.
>
>
Hi, Philipp
Thank you for the patch. Can you help to describe more details about the
potential risks? and what conditions might trigger the potential bugs?
Did you mean that it's related to the crash live analysis issue(1978032)? I
tried to reproduce it, but so far I haven't reproduced it with the upstream
kernel.
Thanks.
Lianbo
> Signed-off-by: Philipp Rudo <prudo at redhat.com>
> ---
> x86_64.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/x86_64.c b/x86_64.c
> index 6eb7d67..0bb8705 100644
> --- a/x86_64.c
> +++ b/x86_64.c
> @@ -1327,6 +1327,8 @@ x86_64_per_cpu_init(void)
> ms->stkinfo.isize = 16384;
>
> for (i = cpus = 0; i < NR_CPUS; i++) {
> + if (kt->__per_cpu_offset[i] ==
> symbol_value("__per_cpu_load"))
> + break;
> if (!readmem(cpu_sp->value + kt->__per_cpu_offset[i],
> KVADDR, &cpunumber, sizeof(int),
> "cpu number (per_cpu)", QUIET|RETURN_ON_ERROR))
> @@ -5602,7 +5604,7 @@ x86_64_get_smp_cpus(void)
> return 1;
>
> for (i = cpus = 0; i < NR_CPUS; i++) {
> - if (kt->__per_cpu_offset[i] == 0)
> + if (kt->__per_cpu_offset[i] ==
> symbol_value("__per_cpu_load"))
> break;
> if (!readmem(sp->value + kt->__per_cpu_offset[i],
> KVADDR, &cpunumber, sizeof(int),
> --
> 2.31.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20210811/d60cd921/attachment.htm>
More information about the Crash-utility
mailing list