lkml.org 
[lkml]   [2015]   [Jul]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: [PATCH 4/8] x86/vm86: Use the normal pt_regs area for vm86

* Ingo Molnar <mingo@kernel.org> wrote:

>
> * Brian Gerst <brgerst@gmail.com> wrote:
>
> > --- a/arch/x86/include/asm/vm86.h
> > +++ b/arch/x86/include/asm/vm86.h
>
> > +static inline void save_v86_state(struct kernel_vm86_regs *, int) { }
> > +
>
> So this is not a valid inline function and the patches were clearly not built with
> !VM86 such as 64-bit defconfig:
>
> In file included from arch/x86/kernel/signal.c:34:0:
> ./arch/x86/include/asm/vm86.h: In function ‘save_v86_state’:
> ./arch/x86/include/asm/vm86.h:70:42: error: parameter name omitted
> static inline void save_v86_state(struct kernel_vm86_regs *, int) { }
> ./arch/x86/include/asm/vm86.h:70:42: error: parameter name omitted
>
> I fixed this up.

Another build fix was needed for:

arch/x86/mm/fault.c: In function ‘check_v8086_mode’:
arch/x86/mm/fault.c:319:39: error: ‘struct thread_struct’ has no member named ‘vm86’

that's on 32-bit defconfig.

Thanks,

Ingo

============>

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 714a52b79e69..eef44d9a3f77 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -302,6 +302,7 @@ static inline void
check_v8086_mode(struct pt_regs *regs, unsigned long address,
struct task_struct *tsk)
{
+#ifdef CONFIG_VM86
unsigned long bit;

if (!v8086_mode(regs) || !tsk->thread.vm86)
@@ -310,6 +311,7 @@ check_v8086_mode(struct pt_regs *regs, unsigned long address,
bit = (address - 0xA0000) >> PAGE_SHIFT;
if (bit < 32)
tsk->thread.vm86->screen_bitmap |= 1 << bit;
+#endif
}

static bool low_pfn(unsigned long pfn)

\
 
 \ /
  Last update: 2015-07-31 11:41    [W:0.245 / U:0.176 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site