lkml.org 
[lkml]   [2023]   [Mar]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
SubjectRE: [PATCH 1/1] x86/vdso: use the right GDT_ENTRY_CPUNODE for 32-bit getcpu() on 64-bit kernel
Date
> > I think I'd much rather if we define all of the GDT_ENTRY_* macros in
> > *one* place, then make that *one* place depend on BUILD_VDSO32_64.
>
> Sounds a better way, let me try.

Hi Dave,

I tried the following patch, and it works:

diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
index 794f69625780..9d6411c65920 100644
--- a/arch/x86/include/asm/segment.h
+++ b/arch/x86/include/asm/segment.h
@@ -56,7 +56,7 @@

#define GDT_ENTRY_INVALID_SEG 0

-#ifdef CONFIG_X86_32
+#if defined(CONFIG_X86_32) && !defined(BUILD_VDSO32_64)
/*
* The layout of the per-CPU GDT under Linux:
*


It's simpler and looks reasonable to me. Is it what you suggested?

Thanks!
Xin


>
> > Also, about the *silent* failure... Do we not have a selftest for this
> somewhere?
>
> When lsl is used, we should check ZF which indicates whether the segment limit is
> loaded successfully. Seems we need to refactor vdso_read_cpunode() a bit.
>
> Xin

\
 
 \ /
  Last update: 2023-03-27 01:06    [W:0.747 / U:0.004 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site