1
linux/arch/x86
Jeremy Fitzhardinge 457da70ec0 x86/paravirt: groundwork for 64-bit Xen support, fix
Ingo Molnar wrote:
> * Jeremy Fitzhardinge <jeremy@goop.org> wrote:
>
>
>>> It quickly broke the build in testing:
>>>
>>>  include/asm/pgalloc.h: In function ‘paravirt_pgd_free':
>>>  include/asm/pgalloc.h:14: error: parameter name omitted
>>>  arch/x86/kernel/entry_64.S: In file included from
>>> arch/x86/kernel/traps_64.c:51:include/asm/pgalloc.h: In function
>>> ‘paravirt_pgd_free':
>>>  include/asm/pgalloc.h:14: error: parameter name omitted
>>>
>>>
>> No, looks like my fault.  The non-PARAVIRT version of
>> paravirt_pgd_free() is:
>>
>> static inline void paravirt_pgd_free(struct mm_struct *mm, pgd_t *) {}
>>
>> but C doesn't like missing parameter names, even if unused.
>>
>> This should fix it:
>>
>
> that fixed the build but now we've got a boot crash with this config:
>
>  time.c: Detected 2010.304 MHz processor.
>  spurious 8259A interrupt: IRQ7.
>  BUG: unable to handle kernel NULL pointer dereference at  0000000000000000
>  IP: [<0000000000000000>]
>  PGD 0
>  Thread overran stack, or stack corrupted
>  Oops: 0010 [1] SMP
>  CPU 0
>
> with:
>
>   http://redhat.com/~mingo/misc/config-Thu_Jun_26_12_46_46_CEST_2008.bad
>

Use SWAPGS_UNSAFE_STACK in ia32entry.S in the places where the active
stack is the usermode stack.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Cc: xen-devel <xen-devel@lists.xensource.com>
Cc: Stephen Tweedie <sct@redhat.com>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Mark McLoughlin <markmc@redhat.com>
Cc: Vegard Nossum <vegard.nossum@gmail.com>
Cc: Nick Piggin <npiggin@suse.de>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2008-07-08 13:16:02 +02:00
..
boot Merge branch 'x86/mpparse' into x86/devel 2008-07-08 11:14:58 +02:00
configs
crypto
ia32 x86/paravirt: groundwork for 64-bit Xen support, fix 2008-07-08 13:16:02 +02:00
kernel x86: move fix mapping page table range early 2008-07-08 13:16:01 +02:00
kvm KVM: Make kvm host use the paravirt clocksource structs 2008-06-24 21:02:32 +03:00
lguest x86: rename two e820 related functions 2008-07-08 10:37:01 +02:00
lib Merge branch 'linus' into x86/delay 2008-06-25 12:30:10 +02:00
mach-default x86: merge setup_memory_map with e820 2008-07-08 10:38:25 +02:00
mach-es7000 x86: make generic arch support NUMAQ 2008-06-10 11:34:42 +02:00
mach-generic x86: make generic arch support NUMAQ, fix 2008-07-08 10:35:45 +02:00
mach-rdc321x
mach-visws Merge branch 'x86/mpparse' into x86/devel 2008-07-08 11:14:58 +02:00
mach-voyager x86: cleanup machine_specific_memory_setup, v2 2008-07-08 10:39:01 +02:00
math-emu x86: coding style fixes to arch/x86/math-emu/reg_constant 2008-06-18 15:00:13 +02:00
mm x86: move fix mapping page table range early 2008-07-08 13:16:01 +02:00
oprofile x86/oprofile: disable preemption in nmi_shutdown 2008-06-24 13:48:29 +02:00
pci Merge branch 'x86/numa' into x86/devel 2008-07-08 11:59:23 +02:00
power x86: remove end_pfn in 64bit 2008-07-08 13:10:38 +02:00
vdso Merge branches 'x86/numa-fixes', 'x86/apic', 'x86/apm', 'x86/bitops', 'x86/build', 'x86/cleanups', 'x86/cpa', 'x86/cpu', 'x86/defconfig', 'x86/gart', 'x86/i8259', 'x86/intel', 'x86/irqstats', 'x86/kconfig', 'x86/ldt', 'x86/mce', 'x86/memtest', 'x86/pat', 'x86/ptemask', 'x86/resumetrace', 'x86/threadinfo', 'x86/timers', 'x86/vdso' and 'x86/xen' into x86/devel 2008-07-08 09:16:56 +02:00
video
xen x86/paravirt, 64-bit: add adjust_exception_frame 2008-07-08 13:15:57 +02:00
Kconfig x86/paravirt: add debugging for missing operations 2008-07-08 13:11:03 +02:00
Kconfig.cpu
Kconfig.debug Merge branch 'x86/numa' into x86/devel 2008-07-08 11:59:23 +02:00
Makefile Merge branch 'x86/mpparse' into x86/devel 2008-07-08 11:14:58 +02:00
Makefile_32.cpu