linux/include/asm-x86_64
Muli Ben-Yehuda 73c59afc65 finish i386 and x86-64 sysdata conversion
This patch finishes the i386 and x86-64 ->sysdata conversion and hopefully
also fixes Riku's and Andy's observed bugs.  It is based on Yinghai Lu's
and Andy Whitcroft's patches (thanks!) with some changes:

- introduce pci_scan_bus_with_sysdata() and use it instead of
  pci_scan_bus() where appropriate. pci_scan_bus_with_sysdata() will
  allocate the sysdata structure and then call pci_scan_bus().
- always allocate pci_sysdata dynamically. The whole point of this
  sysdata work is to make it easy to do root-bus specific things
  (e.g., support PCI domains and IOMMU's). I dislike using a default
  struct pci_sysdata in some places and a dynamically allocated
  pci_sysdata elsewhere - the potential for someone indavertantly
  changing the default structure is too high.
- this patch only makes the minimal changes necessary, i.e., the NUMA node is
  always initialized to -1. Patches to do the right thing with regards
  to the NUMA node can build on top of this (either add a 'node'
  parameter to pci_scan_bus_with_sysdata() or just update the node
  when it becomes known).

The patch was compile tested with various configurations (e.g., NUMAQ,
VISWS) and run-time tested on i386 and x86-64.  Unfortunately none of my
machines exhibited the bugs so caveat emptor.

Andy, could you please see if this fixes the NUMA issues you've seen?
Riku, does this fix "pci=noacpi" on your laptop?

Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
Cc: Yinghai Lu <yhlu.kernel@gmail.com>
Cc: Andi Kleen <ak@suse.de>
Cc: Chuck Ebbert <cebbert@redhat.com>
Cc: <riku.seppala@kymp.net>
Cc: Andy Whitcroft <apw@shadowen.org>
Cc: Jeff Garzik <jeff@garzik.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-08-11 15:47:42 -07:00
..
8253pit.h
a.out.h arch: personality independent stack top 2007-07-19 10:04:45 -07:00
acpi.h ACPI: Kconfig: remove CONFIG_ACPI_SLEEP from source 2007-07-25 01:29:39 -04: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 x86: Fix alternatives and kprobes to remap write-protected kernel text 2007-07-22 11:03:37 -07:00
apic.h x86_64: Fix APIC typo 2007-07-21 18:37:09 -07:00
apicdef.h x86_64: Remove stale lapic definition from apicdef.h 2006-04-01 22:50:03 -05:00
atomic.h x86: create asm/cmpxchg.h 2007-05-08 11:15:20 -07:00
auxvec.h x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
bitops.h [PATCH] x86-64: Fix wrong gcc check in bitops.h 2007-02-13 13:26:25 +01:00
boot.h Make struct boot_params a real structure, and remove obsolete fields 2007-07-12 10:55:54 -07:00
bootparam.h Make struct boot_params a real structure, and remove obsolete fields 2007-07-12 10:55:54 -07:00
bootsetup.h [PATCH] Dynamic kernel command-line: x86_64 2007-02-12 09:48:39 -08:00
bug.h [PATCH] Generic BUG for x86-64 2006-12-08 08:28:39 -08:00
bugs.h [PATCH] x86-64: Clean up asm-x86_64/bugs.h 2007-05-02 19:27:12 +02:00
byteorder.h
cache.h fix file specification in comments 2006-10-03 23:01:26 +02:00
cacheflush.h [PATCH] Optimize D-cache alias handling on fork 2006-12-13 09:27:08 -08:00
calgary.h x86_64: make dump_error_regs a chip op 2007-07-21 18:37:11 -07:00
calling.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
checksum.h [NET]: X86_64 checksum annotations and cleanups. 2006-12-02 21:23:14 -08:00
cmpxchg.h x86_64: x86_64 - Use non locked version for local_cmpxchg() 2007-07-22 11:03:38 -07:00
compat.h Introduce compat_u64 and compat_s64 types 2007-07-16 09:05:48 -07:00
cpu.h
cpufeature.h Unify the CPU features vectors between i386 and x86-64 2007-07-12 10:55:54 -07:00
cputime.h
current.h kbuild: alpha,x86_64 use generic asm-offsets.h support 2005-09-09 21:28:48 +02:00
debugreg.h
delay.h [PATCH] x86: comment magic constants in delay.h 2006-12-07 02:14:07 +01:00
desc_defs.h [PATCH] x86-64: Extract segment descriptor definitions for use outside 2006-12-07 02:14:04 +01:00
desc.h [PATCH] x86-64: Introduce load_TLS to the "for" loop. 2007-05-02 19:27:09 +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
dma-mapping.h [PATCH] x86-64: dma_ops as const 2007-05-02 19:27:06 +02:00
dma.h [PATCH] x86_64: Remove long obsolete CVS 2006-06-26 10:48:16 -07:00
dmi.h x86_64: remove extra extern declaring about dmi_ioremap 2007-07-21 18:37:08 -07: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 Make definitions for struct e820entry and struct e820map consistent 2007-07-12 10:55:54 -07:00
edac.h [PATCH] EDAC: core EDAC support code 2006-01-18 19:20:31 -08:00
elf.h x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
emergency-restart.h
errno.h
fb.h fbdev: detect primary display device 2007-07-17 10:23:11 -07:00
fcntl.h [PATCH] Clean up struct flock definitions 2005-09-07 16:57:38 -07:00
fixmap.h x86_64: fix wrong comment regarding set_fixmap() 2007-07-21 18:37:12 -07:00
floppy.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
fpu32.h
futex.h [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
genapic.h [PATCH] x86-64: always use physical delivery mode on > 8 CPUs 2007-05-02 19:27:04 +02:00
hardirq.h [PATCH] genirq: irq: generalize the check for HARDIRQ_BITS 2006-10-04 07:55:28 -07:00
hpet.h x86: share hpet.h with i386 2007-07-21 18:37:09 -07:00
hw_irq.h x86_64: Move functions declarations to header file 2007-07-21 18:37:12 -07:00
hypertransport.h x86_64: Share msidef.h and hypertransport.h includes with i386 2007-07-22 11:03:38 -07:00
i387.h [PATCH] Add __must_check to copy_*_user 2006-09-26 10:52:39 +02:00
i8253.h x86_64: use the global PIT lock 2007-07-21 18:37:12 -07:00
ia32_unistd.h [PATCH] x86_64: Remove most of ia32_unistd.h 2006-06-26 10:48:15 -07:00
ia32.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ide.h
idle.h [PATCH] x86_64: Add idle notifiers 2006-01-11 19:04:55 -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_apic.h [PATCH] io_apic.h needs apicdef.h 2007-03-05 07:57:50 -08:00
io.h serial: convert early_uart to earlycon for 8250 2007-07-16 09:05:35 -07:00
ioctl.h [PATCH] Generic ioctl.h 2006-01-10 08:01:34 -08:00
ioctls.h [PATCH] termios: Enable new style termios ioctls on x86-64 2006-12-08 08:28:57 -08:00
iommu.h x86_64: move iommu declaration from proto to iommu.h 2007-07-21 18:37:14 -07:00
ipcbuf.h
ipi.h [PATCH] x86-64: Use safe_apic_wait_icr_idle in __send_IPI_dest_field - x86_64 2007-05-02 19:27:18 +02:00
irq_regs.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
irq.h [PATCH] genirq: x86_64 irq: make vector_irq per cpu 2006-10-04 07:55:29 -07:00
irqflags.h [PATCH] x86-64: Use X86_EFLAGS_IF in x86-64/irqflags.h. 2007-05-02 19:27:11 +02:00
ist.h [x86 setup] Make struct ist_info cross-architecture, and use in setup code 2007-07-25 12:02:21 -07:00
k8.h [PATCH] x86_64: Clean and enhance up K8 northbridge access code 2006-06-26 10:48:15 -07:00
Kbuild consolidate asm/const.h to linux/const.h 2007-05-08 11:15:13 -07:00
kdebug.h Revert "ipmi: add new IPMI nmi watchdog handling" 2007-05-14 15:24:24 -07:00
kexec.h kdump/kexec: calculate note size at compile time 2007-05-08 11:15:07 -07:00
kmap_types.h
kprobes.h jprobes: remove JPROBE_ENTRY() 2007-07-19 10:04:44 -07:00
ldt.h
linkage.h [PATCH] Add proper alignment to ENTRY 2006-09-26 10:52:29 +02:00
local.h local_t: x86_64 extension 2007-05-08 11:15:20 -07:00
mach_apic.h [PATCH] x86_64 irq: Allocate a vector across all cpus for genapic_flat. 2006-10-08 12:24:02 -07:00
mc146818rtc.h
mce.h x86: Stop MCEs and NMIs during code patching 2007-07-22 11:03:37 -07:00
mman.h [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
mmsegment.h
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmu.h x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
mmzone.h [PATCH] x86-64: configurable fake numa node sizes 2007-05-02 19:27:09 +02:00
module.h
mpspec.h [PATCH] Replace mp bus array with bitmap for bus not pci 2006-09-26 10:52:30 +02:00
msgbuf.h
msidef.h x86_64: Share msidef.h and hypertransport.h includes with i386 2007-07-22 11:03:38 -07:00
msr-index.h [PATCH] x86: Clean up x86 control register and MSR macros (corrected) 2007-05-02 19:27:12 +02:00
msr.h i386: Add safe variants of rdmsr_on_cpu and wrmsr_on_cpu 2007-05-08 17:22:01 +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] x86-64: Remove fastcall references in x86_64 code 2007-02-13 13:26:22 +01:00
namei.h
nmi.h x86: Stop MCEs and NMIs during code patching 2007-07-22 11:03:37 -07:00
node.h
numa.h [PATCH] Unify pxm_to_node() and node_to_pxm() 2006-06-23 07:42:48 -07:00
page.h Add __GFP_MOVABLE for callers to flag allocations from high memory that may be migrated 2007-07-17 10:22:59 -07:00
param.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
parport.h
pci-direct.h [PATCH] x86: add write_pci_config_byte() to direct PCI access routines 2006-12-07 02:14:10 +01:00
pci.h finish i386 and x86-64 sysdata conversion 2007-08-11 15:47:42 -07:00
pda.h [PATCH] x86-64: Fix race in exit_idle 2006-11-14 16:57:46 +01:00
percpu.h define new percpu interface for shared data 2007-07-19 10:04:44 -07:00
pgalloc.h x86_64: Quicklist support for x86_64 2007-07-21 18:37:09 -07:00
pgtable.h x86: Fix alternatives and kprobes to remap write-protected kernel text 2007-07-22 11:03:37 -07:00
poll.h Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
posix_types.h
prctl.h
processor-flags.h [PATCH] x86: Clean up x86 control register and MSR macros (corrected) 2007-05-02 19:27:12 +02:00
processor.h x86: Replace NSC/Cyrix specific chipset access macros by inlined functions. 2007-07-22 11:03:38 -07:00
proto.h x86: i386-show-unhandled-signals-v3 2007-07-22 11:03:37 -07:00
ptrace-abi.h [PATCH] Split i386 and x86_64 ptrace.h 2006-09-26 08:49:10 -07:00
ptrace.h x86_64: asm/ptrace.h needs linux/compiler.h 2007-07-21 18:37:07 -07:00
required-features.h Use a new CPU feature word to cover features that are spread around 2007-07-12 10:55:54 -07:00
resource.h
resume-trace.h x86: PM_TRACE support 2007-07-21 18:37:10 -07:00
rio.h [PATCH] Calgary: check BBAR ioremap success when ioremapping 2006-12-07 02:14:06 +01:00
rtc.h
rwlock.h [PATCH] Clean up spin/rwlocks 2006-09-26 10:52:32 +02:00
scatterlist.h PCI: scatterlist.h needs types.h 2007-05-02 19:02:34 -07:00
seccomp.h
sections.h
segment.h x86-64: add symbolic constants for the boot segment selectors 2007-07-12 10:55:54 -07:00
semaphore.h [PATCH] Use early clobber in semaphores 2006-09-30 01:47:55 +02:00
sembuf.h
serial.h revert "x86, serial: convert legacy COM ports to platform devices" 2007-07-31 15:39:38 -07:00
setup.h [PATCH] x86_64: 2048-byte command line 2007-02-12 09:48:39 -08:00
shmbuf.h
shmparam.h
sigcontext32.h
sigcontext.h
siginfo.h
signal.h [PATCH] Add TIF_RESTORE_SIGMASK 2006-09-26 10:52:26 +02:00
smp.h Use the APIC to determine the hardware processor id - x86_64 2007-05-09 12:30:48 -07: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_types.h [PATCH] Remove 'volatile' from spinlock_types 2006-12-06 14:39:53 -08:00
spinlock.h [PATCH] x86-64: Don't keep interrupts disabled while spinning in spinlocks 2006-12-07 02:14:00 +01:00
stacktrace.h [PATCH] x86: add sysctl for kstack_depth_to_print 2006-12-07 02:14:11 +01:00
stat.h
statfs.h
string.h x86_64: Always use builtin memcpy on gcc 4.3 2007-07-21 18:37:08 -07:00
suspend.h ACPI: Kconfig: remove CONFIG_ACPI_SLEEP from source 2007-07-25 01:29:39 -04:00
swiotlb.h Revert "[IA64] swiotlb abstraction (e.g. for Xen)" 2007-03-06 13:31:45 -08:00
system.h x86_64: Use read and write crX in .c files 2007-07-22 11:03:37 -07:00
tce.h x86-64: Calgary: fix section mismatch warnings in tce 2007-07-31 15:39:37 -07:00
termbits.h tty: i386/x86_64 arbitary speed support 2007-05-08 11:15:03 -07:00
termios.h [PATCH] consolidate line discipline number definitions 2007-02-11 10:51:26 -08:00
therm_throt.h [PATCH] x86: Refactor thermal throttle processing 2006-09-26 10:52:42 +02:00
thread_info.h remove unused TIF_NOTIFY_RESUME flag 2007-07-31 15:39:38 -07:00
timex.h x86_64: Untangle asm/hpet.h from asm/timex.h 2007-07-21 18:37:08 -07:00
tlb.h
tlbflush.h x86_64: flush_tlb_kernel_range() warning fix 2007-07-21 18:37:13 -07:00
topology.h x86-64: introduce struct pci_sysdata to facilitate sharing of ->sysdata 2007-07-21 18:37:14 -07:00
tsc.h [PATCH] i386: make x86_64 tsc header require i386 rather than vice-versa 2007-03-06 09:30:24 -08:00
types.h [PATCH] Centralise definitions of sector_t and blkcnt_t 2006-12-04 19:41:15 -08:00
uaccess.h amd64: fix get_user() on bitwise 2007-07-26 11:11:57 -07:00
ucontext.h
unaligned.h
unistd.h sys_fallocate() implementation on i386, x86_64 and powerpc 2007-07-17 21:42:44 -04:00
unwind.h Remove stack unwinder for now 2006-12-15 08:47:51 -08:00
user32.h
user.h
vga.h [PATCH] vgacon: make VGA_MAP_MEM take size, remove extra use 2006-06-22 15:05:58 -07:00
vgtod.h x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
vsyscall32.h
vsyscall.h x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
xor.h