OpenCloudOS-Kernel/arch
Thomas Petazzoni 03ae5768b6 x86: use ELF section to list CPU vendor specific code
Replace the hardcoded list of initialization functions for each CPU
vendor by a list in an ELF section, which is read at initialization in
arch/x86/kernel/cpu/cpu.c to fill the cpu_devs[] array. The ELF
section, named .x86cpuvendor.init, is reclaimed after boot, and
contains entries of type "struct cpu_vendor_dev" which associates a
vendor number with a pointer to a "struct cpu_dev" structure.

This first modification allows to remove all the VENDOR_init_cpu()
functions.

This patch also removes the hardcoded calls to early_init_amd() and
early_init_intel(). Instead, we add a "c_early_init" member to the
cpu_dev structure, which is then called if not NULL by the generic CPU
initialization code. Unfortunately, in early_cpu_detect(), this_cpu is
not yet set, so we have to use the cpu_devs[] array directly.

This patch is part of the Linux Tiny project, and is needed for
further patch that will allow to disable compilation of unused CPU
support code.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
2008-04-17 17:40:47 +02:00
..
alpha alpha: fix ALSA DMA mmap crash 2008-04-02 15:28:19 -07:00
arm [ARM] 4873/1: Fix ITE 8152 interrupt demux 2008-03-28 15:07:46 +00:00
avr32 avr32 mustn't select HAVE_IDE 2008-04-17 01:14:32 +02:00
blackfin [Blackfin] arch: fix atomic and32/xor32 comments and ENDPROC markings 2008-03-03 17:44:14 -07:00
cris cris: correct usage of __user for copy to and from user space in lib/usercopy and uaccess.h 2008-03-04 16:35:16 -08:00
frv FRV: Correctly determine the address of an illegal instruction 2008-04-14 07:55:15 -07:00
h8300 h8300: defconfig update 2008-02-23 17:12:16 -08:00
ia64 acpi: unneccessary to scan the PCI bus already scanned 2008-04-15 19:35:41 -07:00
m32r ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
m68k m68k: update defconfigs for 2.6.25 2008-04-04 14:42:30 -07:00
m68knommu m68k{,nommu}: Wire up new timerfd syscalls 2008-03-04 08:04:11 -08:00
mips Pb1200/DBAu1200: fix bad IDE resource size 2008-04-17 01:14:33 +02:00
mn10300 MN10300: define HZ as a config option 2008-02-23 17:12:13 -08:00
parisc [PARISC] fix signal trampoline cache flushing 2008-04-15 15:51:36 -07:00
powerpc [POWERPC] Fix MPC5200 (not B!) device tree so FEC ethernet works 2008-04-03 22:11:12 +11:00
ppc [PPC] 8xx: swap bug-fix 2008-03-07 16:56:54 -06:00
s390 [S390] futex: let futex_atomic_cmpxchg_pt survive early functional tests. 2008-03-20 17:33:46 +01:00
sh sh: export empty_zero_page 2008-04-16 02:21:47 +09:00
sparc [SPARC]: Fix several regset and ptrace bugs. 2008-04-09 19:39:25 -07:00
sparc64 [SPARC]: Fix several regset and ptrace bugs. 2008-04-09 19:39:25 -07:00
um [UML]: uml-net: don't set IFF_ALLMULTI in set_multicast_list 2008-03-26 00:16:29 -07:00
v850 ide: introduce HAVE_IDE 2008-02-09 10:46:40 +01:00
x86 x86: use ELF section to list CPU vendor specific code 2008-04-17 17:40:47 +02:00
xtensa [XTENSA] Allow debugger to modify the WINDOWBASE register. 2008-02-13 17:45:36 -08:00
.gitignore arch: Ignore arch/i386 and arch/x86_64 2008-01-19 21:29:39 -08:00
Kconfig Kprobes: indicate kretprobe support in Kconfig 2008-03-04 16:35:11 -08:00