linux/include/asm-i386
Christoph Lameter b5637e65ee i386: use page allocator to allocate thread_info structure
i386 uses kmalloc to allocate the threadinfo structure assuming that the
allocations result in a page sized aligned allocation.  That has worked so
far because SLAB exempts page sized slabs from debugging and aligns them in
special ways that goes beyond the restrictions imposed by
KMALLOC_ARCH_MINALIGN valid for other slabs in the kmalloc array.

SLUB also works fine without debugging since page sized allocations neatly
align at page boundaries.  However, if debugging is switched on then SLUB
will extend the slab with debug information.  The resulting slab is not
longer of page size.  It will only be aligned following the requirements
imposed by KMALLOC_ARCH_MINALIGN.  As a result the threadinfo structure may
not be page aligned which makes i386 fail to boot with SLUB debug on.

Replace the calls to kmalloc with calls into the page allocator.

An alternate solution may be to create a custom slab cache where the
alignment is set to PAGE_SIZE.  That would allow slub debugging to be
applied to the threadinfo structure.

Signed-off-by: Christoph Lameter <clameter@sgi.com>
Cc: William Lee Irwin III <wli@holomorphy.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-05-07 12:12:53 -07:00
..
mach-bigsmp [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
mach-default [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
mach-es7000 [PATCH] i386: modpost apic related warning fixes 2007-05-02 19:27:08 +02:00
mach-generic [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
mach-numaq [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
mach-summit [PATCH] x86: Log reason why TSC was marked unstable 2007-05-02 19:27:08 +02:00
mach-visws [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
mach-voyager [PATCH] clockevents: i386 drivers 2007-02-16 08:13:59 -08:00
8253pit.h
Kbuild [PATCH] x86: Clean up x86 control register and MSR macros (corrected) 2007-05-02 19:27:12 +02:00
a.out.h
acpi.h ACPI: cleanup: make disable_acpi() valid w/o CONFIG_ACPI 2007-02-13 00:09:13 -05:00
agp.h [AGPGART] Move [un]map_page_into_agp into asm/agp.h 2007-04-26 14:22:50 -04:00
alternative-asm.i Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
alternative.h [PATCH] i386: Implement alternative_io for i386 2007-05-02 19:27:20 +02:00
apic.h [PATCH] i386: safe_apic_wait_icr_idle - i386 2007-05-02 19:27:17 +02:00
apicdef.h x86_64: Remove stale lapic definition from apicdef.h 2006-04-01 22:50:03 -05:00
arch_hooks.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
atomic.h [PATCH] Numerous fixes to kernel-doc info in source files. 2007-02-11 10:51:32 -08:00
auxvec.h
bitops.h [PATCH] Numerous fixes to kernel-doc info in source files. 2007-02-11 10:51:32 -08:00
boot.h [PATCH] i386: Restore CONFIG_PHYSICAL_START option 2007-01-05 23:55:23 -08:00
bug.h [PATCH] Generic BUG for i386 2006-12-08 08:28:39 -08:00
bugs.h [PATCH] x86: update for i386 and x86-64 check_bugs 2007-05-02 19:27:16 +02:00
byteorder.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
cache.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
cacheflush.h [PATCH] Optimize D-cache alias handling on fork 2006-12-13 09:27:08 -08:00
checksum.h [NET]: I386 checksum annotations and cleanups. 2006-12-02 21:23:19 -08:00
cpu.h [PATCH] i386: introduce the mechanism of disabling cpu hotplug control 2006-12-07 02:14:10 +01:00
cpufeature.h [PATCH] i386: Add X86_FEATURE_RDTSCP 2007-05-02 19:27:20 +02:00
cputime.h
current.h [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
debugreg.h
delay.h [PATCH] vmi: paravirt drop udelay op 2007-03-05 07:57:52 -08:00
desc.h [PATCH] i386: Page-align the GDT 2007-05-02 19:27:15 +02:00
device.h ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
div64.h [NET]: div64_64 consolidate (rev3) 2007-04-25 22:23:33 -07:00
dma-mapping.h [PATCH] Pass struct dev pointer to dma_cache_sync() 2006-12-07 08:39:41 -08:00
dma.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
dmi.h [PATCH] x86_64: Implement early DMI scanning 2006-03-25 09:10:55 -08:00
dwarf2.h [PATCH] i386/x86-64: Work around gcc bug with noreturn functions in unwinder 2006-09-26 10:52:41 +02:00
e820.h [PATCH] x86: fix amd64-agp aperture validation 2007-05-02 19:27:11 +02:00
edac.h [PATCH] EDAC: core EDAC support code 2006-01-18 19:20:31 -08:00
elf.h [PATCH] i386: Relocate VDSO ELF headers to match mapped location with COMPAT_VDSO 2007-05-02 19:27:12 +02:00
emergency-restart.h
errno.h
fcntl.h
fixmap.h [PATCH] i386: PARAVIRT: Allocate a fixmap slot 2007-05-02 19:27:13 +02:00
floppy.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
frame.i Remove all inclusions of <linux/config.h> 2006-10-04 03:38:54 -04:00
futex.h [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
genapic.h [PATCH] x86: default to physical mode on hotplug CPU kernels 2007-05-02 19:27:04 +02:00
hardirq.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
highmem.h [PATCH] i386: PARAVIRT: add kmap_atomic_pte for mapping highpte pages 2007-05-02 19:27:15 +02:00
hpet.h [PATCH] x86: adjust inclusion of asm/fixmap.h 2007-05-02 19:27:04 +02:00
hw_irq.h [PATCH] i386/x86_64: Remove global IO_APIC_VECTOR 2006-10-08 12:24:02 -07:00
hypertransport.h [PATCH] Initial generic hypertransport interrupt support 2006-10-04 07:55:29 -07:00
i387.h [PATCH] i386: avoid redundant preempt_disable in __unlazy_fpu 2007-05-02 19:27:21 +02:00
i8253.h [PATCH] clockevents: i386 drivers 2007-02-16 08:13:59 -08:00
i8259.h
ide.h [PATCH] ide: more conversion to pci_get APIs 2006-12-08 08:29:03 -08:00
intel_arch_perfmon.h [PATCH] x86: i386/x86-64 Add nmi watchdog support for new Intel CPUs 2006-09-26 10:52:27 +02:00
io.h [PATCH] i386: rationalize paravirt wrappers 2007-05-02 19:27:10 +02:00
io_apic.h [PATCH] io_apic.h needs apicdef.h 2007-03-05 07:57:50 -08:00
ioctl.h
ioctls.h
ipc.h
ipcbuf.h
irq.h [PATCH] x86: revert x86_64-mm-fix-the-irqbalance-quirk-for-e7320-e7520-e7525 2007-05-02 19:27:04 +02:00
irq_regs.h [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
irqflags.h [PATCH] i386: Use X86_EFLAGS_IF in irqflags.h. 2007-05-02 19:27:10 +02:00
ist.h
k8.h [PATCH] x86_64: Clean and enhance up K8 northbridge access code 2006-06-26 10:48:15 -07:00
kdebug.h [PATCH] Notify page fault call chain for i386 2006-06-26 09:58:22 -07:00
kexec.h [PATCH] i386: Allow i386 crash kernels to handle x86_64 dumps 2007-05-02 19:27:09 +02:00
kmap_types.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
kprobes.h [PATCH] IA64: kprobe invalidate icache of jump buffer 2006-07-31 13:28:38 -07:00
ldt.h
linkage.h
local.h i386: improve and correct inline asm memory constraints 2006-07-08 15:24:18 -07:00
math_emu.h [PATCH] i386: PDA: Fix math emulator for new pt_regs 2006-12-07 02:14:03 +01:00
mc146818rtc.h
mca.h
mca_dma.h [PATCH] kernel-doc for kernel/dma.c 2006-10-03 08:03:41 -07:00
mce.h [PATCH] i386: Move mce_disabled to asm/mce.h 2007-02-13 13:26:26 +01:00
mman.h [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
mmu.h [PATCH] vdso: randomize the i386 vDSO by moving it into a vma 2006-06-27 17:32:38 -07:00
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmx.h
mmzone.h [PATCH] silence unused pgdat warning from alloc_bootmem_node and friends 2006-12-07 08:39:23 -08:00
module.h [PATCH] i386: Add an option for the VIA C7 which sets appropriate L1 cache 2007-05-02 19:27:05 +02:00
mpspec.h [PATCH] clockevents: i386 drivers 2007-02-16 08:13:59 -08:00
mpspec_def.h [PATCH] x86-64: remove remaining pc98 code 2006-12-07 02:14:19 +01:00
msgbuf.h
msidef.h [PATCH] genirq: i386 irq: Move msi message composition into io_apic.c 2006-10-04 07:55:28 -07:00
msr-index.h [PATCH] i386: Enable support for fixed-range IORRs to keep RdMem & WrMem in sync 2007-05-02 19:27:17 +02:00
msr.h [PATCH] x86: Clean up x86 control register and MSR macros (corrected) 2007-05-02 19:27:12 +02:00
mtrr.h [PATCH] x86: Save the MTRRs of the BSP before booting an AP 2007-05-02 19:27:17 +02:00
mutex.h [PATCH] i386: Remove lock section support in mutex.h 2006-09-26 10:52:31 +02:00
namei.h
nmi.h [PATCH] i386: Clean up NMI watchdog code 2007-05-02 19:27:20 +02:00
numa.h
numaq.h
page.h [PATCH] i386: PARAVIRT: Add pagetable accessors to pack and unpack pagetable entries 2007-05-02 19:27:13 +02:00
param.h [PATCH] cleanup asm/setup.h userspace visibility 2006-12-07 08:39:46 -08:00
paravirt.h [PATCH] i386: PARAVIRT: drop unused ptep_get_and_clear 2007-05-02 19:27:15 +02:00
parport.h
pci-direct.h
pci.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
percpu.h [PATCH] i386: Define per_cpu_offset 2007-05-02 19:27:16 +02:00
pgalloc.h [PATCH] x86: adjust inclusion of asm/fixmap.h 2007-05-02 19:27:04 +02:00
pgtable-2level-defs.h [PATCH] i386: PARAVIRT: Allow paravirt backend to choose kernel PMD sharing 2007-05-02 19:27:13 +02:00
pgtable-2level.h [PATCH] i386: pte simplify ops 2007-05-02 19:27:19 +02:00
pgtable-3level-defs.h [PATCH] i386: PARAVIRT: Allow paravirt backend to choose kernel PMD sharing 2007-05-02 19:27:13 +02:00
pgtable-3level.h [PATCH] i386: pte simplify ops 2007-05-02 19:27:19 +02:00
pgtable.h i386: use pte_update_defer in ptep_test_and_clear_{dirty,young} 2007-05-07 12:12:52 -07:00
poll.h [PATCH] POLLRDHUP/EPOLLRDHUP handling for half-closed devices notifications 2006-03-25 08:22:56 -08:00
posix_types.h i386: improve and correct inline asm memory constraints 2006-07-08 15:24:18 -07:00
processor-flags.h [PATCH] x86: Clean up x86 control register and MSR macros (corrected) 2007-05-02 19:27:12 +02:00
processor.h [PATCH] i386: Fix UP gdt bugs 2007-05-02 19:27:16 +02:00
ptrace-abi.h [PATCH] Split i386 and x86_64 ptrace.h 2006-09-26 08:49:10 -07:00
ptrace.h [PATCH] i386: Profile pc badness 2007-02-13 13:26:21 +01:00
reboot.h [PATCH] i386: Add machine_ops interface to abstract halting and rebooting 2007-05-02 19:27:11 +02:00
reboot_fixups.h [PATCH] i386: clean up mach_reboot_fixups 2007-05-02 19:27:06 +02:00
required-features.h [PATCH] i386: Verify important CPUID bits in real mode 2007-05-02 19:27:20 +02:00
resource.h
rtc.h
rwlock.h [PATCH] i386: Clean up spin/rwlocks 2006-09-26 10:52:32 +02:00
rwsem.h [PATCH] lockdep: name some old style locks 2006-12-07 08:39:36 -08:00
scatterlist.h PCI: scatterlist.h needs types.h 2007-05-02 19:02:34 -07:00
seccomp.h
sections.h
segment.h [PATCH] i386: Fix UP gdt bugs 2007-05-02 19:27:16 +02:00
semaphore.h [PATCH] i386: Use early clobbers for semaphores now 2006-09-27 14:39:51 -07:00
sembuf.h
serial.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
setup.h [PATCH] i386: Remove extern declaration from mm/discontig.c, put in header. 2007-02-13 13:26:26 +01:00
shmbuf.h
shmparam.h
sigcontext.h
siginfo.h
signal.h [PATCH] headers_check: move inclusion of <linux/linkage.h> in <asm-i386/signal.h> 2006-09-13 07:32:15 -07:00
smp.h [PATCH] i386: Convert PDA into the percpu section 2007-05-02 19:27:16 +02:00
socket.h [NET]: Adding SO_TIMESTAMPNS / SCM_TIMESTAMPNS support 2007-04-25 22:24:21 -07:00
sockios.h [NET]: Introduce SIOCGSTAMPNS ioctl to get timestamps with nanosec resolution 2007-04-25 22:24:04 -07:00
sparsemem.h
spinlock.h [PATCH] paravirt: Patch inline replacements for paravirt intercepts 2006-12-07 02:14:08 +01:00
spinlock_types.h [PATCH] Remove 'volatile' from spinlock_types 2006-12-06 14:39:53 -08:00
srat.h
stacktrace.h [PATCH] i386: Do stacktracer conversion too 2006-09-26 10:52:34 +02:00
stat.h [PATCH] 2TB files: st_blocks is invalid when calling stat64 2006-03-26 08:57:00 -08:00
statfs.h
string.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
suspend.h Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6 2006-12-07 08:59:11 -08:00
sync_bitops.h [PATCH] i386: fix typo in sync_constant_test_bit()'s name 2007-03-16 19:25:07 -07:00
system.h [PATCH] i386: rationalize paravirt wrappers 2007-05-02 19:27:10 +02:00
termbits.h [PATCH] tty: minor merge correction 2007-03-27 09:05:15 -07:00
termios.h [PATCH] consolidate line discipline number definitions 2007-02-11 10:51:26 -08:00
therm_throt.h [PATCH] x86: Add a cumulative thermal throttle event counter. 2006-09-26 10:52:42 +02:00
thread_info.h i386: use page allocator to allocate thread_info structure 2007-05-07 12:12:53 -07:00
time.h [PATCH] vmi: pit override 2007-03-05 07:57:52 -08:00
timer.h [PATCH] i386: pit_latch_buggy has no effect 2007-05-02 19:27:05 +02:00
timex.h [PATCH] Time: i386 Conversion - part 2: Rework TSC Support 2006-06-26 09:58:21 -07:00
tlb.h
tlbflush.h [PATCH] i386: PARAVIRT: add flush_tlb_others paravirt_op 2007-05-02 19:27:15 +02:00
topology.h [PATCH] sched: remove SMT nice 2007-03-05 07:57:51 -08:00
tsc.h [PATCH] x86: Use RDTSCP for synchronous get_cycles if possible 2007-05-02 19:27:21 +02:00
types.h [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
uaccess.h [PATCH] i386: Update __copy_to_user_inatomic linuxdoc description 2007-05-02 19:27:06 +02:00
ucontext.h
unaligned.h
unistd.h [PATCH] remove kernel syscalls 2006-12-07 08:39:37 -08:00
unwind.h Remove stack unwinder for now 2006-12-15 08:47:51 -08:00
user.h
vga.h [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
vic.h [VOYAGER] fix up ptregs removal mess 2006-10-12 22:25:03 -05:00
vm86.h [PATCH] i386: Update sys_vm86 to cope with changed pt_regs and %gs usage 2006-12-07 02:14:03 +01:00
vmi.h [PATCH] vmi: apic ops 2007-03-05 07:57:52 -08:00
vmi_time.h [PATCH] i386: Convert VMI timer to use clock events 2007-05-02 19:27:16 +02:00
voyager.h [VOYAGER] Convert the monitor thread to use the kthread API 2007-05-01 10:09:29 -05:00
xor.h