diff options
author | Matt Mackall <mpm@selenic.com> | 2006-01-08 04:05:26 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-08 23:14:11 -0500 |
commit | 64ca9004b819ab87648dbfc78f3ef49ee491343e (patch) | |
tree | 9b5daef5280800a0006343a17f63072658d91a1d /arch/i386 | |
parent | 708e9a794cf8822b760edaccd9053edb07c34d19 (diff) |
[PATCH] Make vm86 support optional
This adds an option to remove vm86 support under CONFIG_EMBEDDED. Saves
about 5k.
This version eliminates most of the #ifdefs of the previous version and
instead uses function stubs in vm86.h. Also, release_vm86_irqs is moved
from asm-i386/irq.h to a more appropriate home in vm86.h so that the stubs
can live together.
$ size vmlinux-baseline vmlinux-novm86
text data bss dec hex filename
2920821 523232 190652 3634705 377611 vmlinux-baseline
2916268 523100 190492 3629860 376324 vmlinux-novm86
Signed-off-by: Matt Mackall <mpm@selenic.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/i386')
-rw-r--r-- | arch/i386/kernel/Makefile | 3 | ||||
-rw-r--r-- | arch/i386/kernel/entry.S | 2 | ||||
-rw-r--r-- | arch/i386/kernel/process.c | 1 |
3 files changed, 5 insertions, 1 deletions
diff --git a/arch/i386/kernel/Makefile b/arch/i386/kernel/Makefile index 4f40589e179c..be1880bb75b4 100644 --- a/arch/i386/kernel/Makefile +++ b/arch/i386/kernel/Makefile | |||
@@ -4,7 +4,7 @@ | |||
4 | 4 | ||
5 | extra-y := head.o init_task.o vmlinux.lds | 5 | extra-y := head.o init_task.o vmlinux.lds |
6 | 6 | ||
7 | obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o vm86.o \ | 7 | obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \ |
8 | ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \ | 8 | ptrace.o time.o ioport.o ldt.o setup.o i8259.o sys_i386.o \ |
9 | pci-dma.o i386_ksyms.o i387.o dmi_scan.o bootflag.o \ | 9 | pci-dma.o i386_ksyms.o i387.o dmi_scan.o bootflag.o \ |
10 | quirks.o i8237.o | 10 | quirks.o i8237.o |
@@ -34,6 +34,7 @@ obj-$(CONFIG_ACPI_SRAT) += srat.o | |||
34 | obj-$(CONFIG_HPET_TIMER) += time_hpet.o | 34 | obj-$(CONFIG_HPET_TIMER) += time_hpet.o |
35 | obj-$(CONFIG_EFI) += efi.o efi_stub.o | 35 | obj-$(CONFIG_EFI) += efi.o efi_stub.o |
36 | obj-$(CONFIG_DOUBLEFAULT) += doublefault.o | 36 | obj-$(CONFIG_DOUBLEFAULT) += doublefault.o |
37 | obj-$(CONFIG_VM86) += vm86.o | ||
37 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o | 38 | obj-$(CONFIG_EARLY_PRINTK) += early_printk.o |
38 | 39 | ||
39 | EXTRA_AFLAGS := -traditional | 40 | EXTRA_AFLAGS := -traditional |
diff --git a/arch/i386/kernel/entry.S b/arch/i386/kernel/entry.S index 607c06007508..4d704724b2f5 100644 --- a/arch/i386/kernel/entry.S +++ b/arch/i386/kernel/entry.S | |||
@@ -323,6 +323,7 @@ work_notifysig: # deal with pending signals and | |||
323 | 323 | ||
324 | ALIGN | 324 | ALIGN |
325 | work_notifysig_v86: | 325 | work_notifysig_v86: |
326 | #ifdef CONFIG_VM86 | ||
326 | pushl %ecx # save ti_flags for do_notify_resume | 327 | pushl %ecx # save ti_flags for do_notify_resume |
327 | call save_v86_state # %eax contains pt_regs pointer | 328 | call save_v86_state # %eax contains pt_regs pointer |
328 | popl %ecx | 329 | popl %ecx |
@@ -330,6 +331,7 @@ work_notifysig_v86: | |||
330 | xorl %edx, %edx | 331 | xorl %edx, %edx |
331 | call do_notify_resume | 332 | call do_notify_resume |
332 | jmp resume_userspace | 333 | jmp resume_userspace |
334 | #endif | ||
333 | 335 | ||
334 | # perform syscall exit tracing | 336 | # perform syscall exit tracing |
335 | ALIGN | 337 | ALIGN |
diff --git a/arch/i386/kernel/process.c b/arch/i386/kernel/process.c index 45e7f0ac4b04..035928f3f6c1 100644 --- a/arch/i386/kernel/process.c +++ b/arch/i386/kernel/process.c | |||
@@ -48,6 +48,7 @@ | |||
48 | #include <asm/processor.h> | 48 | #include <asm/processor.h> |
49 | #include <asm/i387.h> | 49 | #include <asm/i387.h> |
50 | #include <asm/desc.h> | 50 | #include <asm/desc.h> |
51 | #include <asm/vm86.h> | ||
51 | #ifdef CONFIG_MATH_EMULATION | 52 | #ifdef CONFIG_MATH_EMULATION |
52 | #include <asm/math_emu.h> | 53 | #include <asm/math_emu.h> |
53 | #endif | 54 | #endif |