linux_dsm_epyc7002/arch/x86/include/asm
Srikar Dronamraju 2b14449835 uprobes, mm, x86: Add the ability to install and remove uprobes breakpoints
Add uprobes support to the core kernel, with x86 support.

This commit adds the kernel facilities, the actual uprobes
user-space ABI and perf probe support comes in later commits.

General design:

Uprobes are maintained in an rb-tree indexed by inode and offset
(the offset here is from the start of the mapping). For a unique
(inode, offset) tuple, there can be at most one uprobe in the
rb-tree.

Since the (inode, offset) tuple identifies a unique uprobe, more
than one user may be interested in the same uprobe. This provides
the ability to connect multiple 'consumers' to the same uprobe.

Each consumer defines a handler and a filter (optional). The
'handler' is run every time the uprobe is hit, if it matches the
'filter' criteria.

The first consumer of a uprobe causes the breakpoint to be
inserted at the specified address and subsequent consumers are
appended to this list.  On subsequent probes, the consumer gets
appended to the existing list of consumers. The breakpoint is
removed when the last consumer unregisters. For all other
unregisterations, the consumer is removed from the list of
consumers.

Given a inode, we get a list of the mms that have mapped the
inode. Do the actual registration if mm maps the page where a
probe needs to be inserted/removed.

We use a temporary list to walk through the vmas that map the
inode.

- The number of maps that map the inode, is not known before we
  walk the rmap and keeps changing.
- extending vm_area_struct wasn't recommended, it's a
  size-critical data structure.
- There can be more than one maps of the inode in the same mm.

We add callbacks to the mmap methods to keep an eye on text vmas
that are of interest to uprobes.  When a vma of interest is mapped,
we insert the breakpoint at the right address.

Uprobe works by replacing the instruction at the address defined
by (inode, offset) with the arch specific breakpoint
instruction. We save a copy of the original instruction at the
uprobed address.

This is needed for:

 a. executing the instruction out-of-line (xol).
 b. instruction analysis for any subsequent fixups.
 c. restoring the instruction back when the uprobe is unregistered.

We insert or delete a breakpoint instruction, and this
breakpoint instruction is assumed to be the smallest instruction
available on the platform. For fixed size instruction platforms
this is trivially true, for variable size instruction platforms
the breakpoint instruction is typically the smallest (often a
single byte).

Writing the instruction is done by COWing the page and changing
the instruction during the copy, this even though most platforms
allow atomic writes of the breakpoint instruction. This also
mirrors the behaviour of a ptrace() memory write to a PRIVATE
file map.

The core worker is derived from KSM's replace_page() logic.

In essence, similar to KSM:

 a. allocate a new page and copy over contents of the page that
    has the uprobed vaddr
 b. modify the copy and insert the breakpoint at the required
    address
 c. switch the original page with the copy containing the
    breakpoint
 d. flush page tables.

replace_page() is being replicated here because of some minor
changes in the type of pages and also because Hugh Dickins had
plans to improve replace_page() for KSM specific work.

Instruction analysis on x86 is based on instruction decoder and
determines if an instruction can be probed and determines the
necessary fixups after singlestep.  Instruction analysis is done
at probe insertion time so that we avoid having to repeat the
same analysis every time a probe is hit.

A lot of code here is due to the improvement/suggestions/inputs
from Peter Zijlstra.

Changelog:

(v10):
 - Add code to clear REX.B prefix as suggested by Denys Vlasenko
   and Masami Hiramatsu.

(v9):
 - Use insn_offset_modrm as suggested by Masami Hiramatsu.

(v7):

 Handle comments from Peter Zijlstra:

 - Dont take reference to inode. (expect inode to uprobe_register to be sane).
 - Use PTR_ERR to set the return value.
 - No need to take reference to inode.
 - use PTR_ERR to return error value.
 - register and uprobe_unregister share code.

(v5):

 - Modified del_consumer as per comments from Peter.
 - Drop reference to inode before dropping reference to uprobe.
 - Use i_size_read(inode) instead of inode->i_size.
 - Ensure uprobe->consumers is NULL, before __uprobe_unregister() is called.
 - Includes errno.h as recommended by Stephen Rothwell to fix a build issue
   on sparc defconfig
 - Remove restrictions while unregistering.
 - Earlier code leaked inode references under some conditions while
   registering/unregistering.
 - Continue the vma-rmap walk even if the intermediate vma doesnt
   meet the requirements.
 - Validate the vma found by find_vma before inserting/removing the
   breakpoint
 - Call del_consumer under mutex_lock.
 - Use hash locks.
 - Handle mremap.
 - Introduce find_least_offset_node() instead of close match logic in
   find_uprobe
 - Uprobes no more depends on MM_OWNER; No reference to task_structs
   while inserting/removing a probe.
 - Uses read_mapping_page instead of grab_cache_page so that the pages
   have valid content.
 - pass NULL to get_user_pages for the task parameter.
 - call SetPageUptodate on the new page allocated in write_opcode.
 - fix leaking a reference to the new page under certain conditions.
 - Include Instruction Decoder if Uprobes gets defined.
 - Remove const attributes for instruction prefix arrays.
 - Uses mm_context to know if the application is 32 bit.

Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Also-written-by: Jim Keniston <jkenisto@us.ibm.com>
Reviewed-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Roland McGrath <roland@hack.frob.com>
Cc: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Arnaldo Carvalho de Melo <acme@infradead.org>
Cc: Anton Arapov <anton@redhat.com>
Cc: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Denys Vlasenko <vda.linux@googlemail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Linux-mm <linux-mm@kvack.org>
Link: http://lkml.kernel.org/r/20120209092642.GE16600@linux.vnet.ibm.com
[ Made various small edits to the commit log ]
Signed-off-by: Ingo Molnar <mingo@elte.hu>
2012-02-17 10:00:01 +01:00
..
numachip x86: Add NumaChip support 2011-12-05 17:17:24 +01:00
uv x86/uv: Fix uv_gpa_to_soc_phys_ram() shift 2012-01-26 10:58:27 +01:00
visws x86: Move pci init function to x86_init 2010-02-19 16:12:29 -08:00
xen Merge branch 'upstream/xen-settime' of git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen 2011-11-06 20:15:05 -08:00
a.out-core.h hw-breakpoints: Fix broken a.out format dump 2009-11-10 11:23:05 +01:00
a.out.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
acpi.h Merge branch 'idle-release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-idle-2.6 2011-05-29 11:18:09 -07:00
aes.h crypto: aes - Export x86 AES encrypt/decrypt functions 2009-02-18 16:48:05 +08:00
agp.h agp: kill phys_to_gart() and gart_to_phys() 2009-08-03 09:05:00 +01:00
alternative-asm.h x86: Fix atomic64_xxx_cx8() functions 2012-01-04 15:01:56 +01:00
alternative.h asm alternatives: remove incorrect alignment notes 2011-09-15 13:28:33 -07:00
amd_nb.h x86/PCI: amd: factor out MMCONFIG discovery 2012-01-06 12:11:19 -08:00
apb_timer.h Merge branch 'timers-clocksource-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2011-07-23 10:34:47 -07:00
apic_flat_64.h x86: Make flat_init_apic_ldr() available 2011-12-05 17:17:07 +01:00
apic.h x86, x2apic: Allow "nox2apic" to disable x2apic mode setup by BIOS 2011-12-23 11:01:43 -08:00
apicdef.h x86, x2apic: Fallback to xapic when BIOS doesn't setup interrupt-remapping 2011-12-23 11:01:01 -08:00
apm.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
arch_hweight.h x86, hweight: Use a 32-bit popcnt for __arch_hweight32() 2010-05-17 15:17:16 -07:00
archrandom.h x86, random: Verify RDRAND functionality and allow it to be disabled 2011-07-31 14:02:19 -07:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h x86: Fix write lock scalability 64-bit issue 2011-07-21 09:03:36 +02:00
atomic64_32.h x86, atomic: atomic64_read() take a const pointer 2012-01-09 19:33:24 -08:00
atomic64_64.h x86: Use xadd helper more widely 2011-08-29 13:44:12 -07:00
atomic.h x86: Use xadd helper more widely 2011-08-29 13:44:12 -07:00
auxvec.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
bios_ebda.h x86: Better comments for get_bios_ebda() 2011-04-29 14:13:15 -07:00
bitops.h x86_64, asm: Optimise fls(), ffs() and fls64() 2011-12-15 15:16:49 -08:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
boot.h x86: support XZ-compressed kernel 2011-01-13 08:03:25 -08:00
bootparam.h x86: Add missing bzImage fields to struct setup_header 2011-12-09 17:35:33 -08:00
bug.h x86: Convert BUG() to use unreachable() 2009-12-05 09:10:12 -08:00
bugs.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h Rename .data.read_mostly to .data..read_mostly. 2010-03-03 11:26:00 +01:00
cacheflush.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
calgary.h x86, iommu: Make all IOMMU's detection routines return a value. 2010-08-26 15:13:13 -07:00
calling.h x86, asm: Flip RESTORE_ARGS arguments logic 2011-06-03 14:38:53 -07:00
ce4100.h x86: ce4100: Set pci ops via callback instead of module init 2011-03-14 15:13:23 +01:00
checksum_32.h x86: fix csum_ipv6_magic asm memory clobber 2009-10-01 16:11:12 -07:00
checksum_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
checksum.h
clocksource.h clocksource: Change __ARCH_HAS_CLOCKSOURCE_DATA to a CONFIG option 2011-07-21 13:34:05 -07:00
cmpxchg_32.h x86: Fix and improve cmpxchg_double{,_local}() 2012-01-04 15:01:54 +01:00
cmpxchg_64.h x86: Fix and improve cmpxchg_double{,_local}() 2012-01-04 15:01:54 +01:00
cmpxchg.h x86: Properly parenthesize cmpxchg() macro arguments 2012-01-26 21:18:29 +01:00
compat.h compat: sync compat_stats with statfs. 2011-10-28 14:58:53 +02:00
cpu.h x86: Fix mwait_usable section mismatch 2011-02-14 12:08:28 +01:00
cpufeature.h x86/amd: Add missing feature flag for fam15h models 10h-1fh processors 2012-01-26 12:06:38 +01:00
cpumask.h x86: unify cpu_callin_mask/cpu_callout_mask/cpu_initialized_mask/cpu_sibling_setup_mask 2009-03-13 14:49:54 +10:30
cputime.h
current.h x86, percpu: Add 'percpu_read_stable()' interface for cacheable accesses 2009-08-04 01:28:52 +09:00
debugreg.h x86: Add counter when debug stack is used with interrupts enabled 2011-12-21 15:38:56 -05:00
delay.h asm-generic: move archictures to common delay.h 2011-07-22 18:46:24 +02:00
desc_defs.h tree-wide: fix assorted typos all over the place 2009-12-04 15:39:55 +01:00
desc.h x86: Keep current stack in NMI breakpoints 2011-12-21 15:38:55 -05:00
device.h iommu: Rename the DMAR and INTR_REMAP config options 2011-09-21 10:22:03 +02:00
div64.h x86/div64: Add a micro-optimization shortcut if base is power of two 2011-12-05 18:16:11 +01:00
dma-mapping.h doc: fix broken references 2011-09-27 18:08:04 +02:00
dma.h x86, NUMA: Enable emulation on 32bit too 2011-05-02 17:24:48 +02:00
dmi.h x86/dmi: fix dmi_alloc() section mismatches 2009-03-23 17:20:50 +01:00
dwarf2.h x86-64: Fix CFI data for interrupt frames 2011-09-28 19:04:52 +02:00
e820.h Revert "x86, efi: Calling __pa() with an ioremap()ed address is invalid" 2011-12-12 18:25:56 +01:00
edac.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
efi.h Merge branch 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-01-11 19:12:33 -08:00
elf.h x86, amd: Avoid cache aliasing penalties on AMD family 15h 2011-08-05 12:26:44 -07:00
emergency-restart.h x86: attempt reboot via port CF9 if we have standard PCI ports 2008-11-11 16:19:48 -08:00
entry_arch.h x86, mce: Replace MCE_SELF_VECTOR by irq_work 2011-06-16 12:10:08 +02:00
errno.h
fb.h x86-64: Allow fbdev primary video code 2010-02-16 21:22:26 -08:00
fcntl.h
fixmap.h x86/intel config: Revamp configuration to allow for Moorestown and Medfield 2011-12-18 09:17:02 +01:00
floppy.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
frame.h x86: Unify rwlock assembly implementation 2011-07-21 09:03:31 +02:00
ftrace.h ftrace/x86: mcount offset calculation 2011-05-16 14:55:57 -04:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
gart.h x86, gart: Set DISTLBWALKPRB bit always 2011-04-18 09:26:48 -07:00
genapic.h x86, apic: merge genapic.h into apic.h 2009-02-17 17:52:43 +01:00
geode.h cs5535: drop the Geode-specific MFGPT/GPIO code 2009-12-15 08:53:28 -08:00
gpio.h x86/gpio: Implement x86 gpio_to_irq convert function 2011-01-11 12:46:15 +01:00
hardirq.h x86: Convert per-cpu counter icr_read_retry_count into a member of irq_stat 2011-12-18 10:46:48 +01:00
highmem.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
hpet.h x86: ioapic/hpet: Convert to new chip functions 2010-10-12 16:53:37 +02:00
hugetlb.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
hw_breakpoint.h x86: Fix instruction breakpoint encoding 2010-09-17 03:24:13 +02:00
hw_irq.h iommu: Rename the DMAR and INTR_REMAP config options 2011-09-21 10:22:03 +02:00
hypertransport.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
hyperv.h Staging: hv: vmbus: Retry vmbus_post_msg() before giving up 2011-08-25 15:23:19 -07:00
hypervisor.h xen: HVM X2APIC support 2011-01-07 10:03:50 -05:00
i387.h sched/accounting: Change cpustat fields to an array 2011-12-06 09:06:38 +01:00
i8259.h x86: i8259: Convert to new irq_chip functions 2010-10-12 16:53:36 +02:00
ia32_unistd.h x86: Generate system call tables and unistd_*.h from tables 2011-11-17 13:35:37 -08:00
ia32.h generic compat_sys_ustat 2009-03-27 14:43:57 -04:00
idle.h x86 idle: clarify AMD erratum 400 workaround 2011-05-29 03:38:57 -04:00
inat_types.h x86: Instruction decoder API 2009-08-27 00:35:56 +02:00
inat.h x86: Fix to decode grouped AVX with VEX pp bits 2012-02-11 15:11:35 +01:00
init.h x86, mm: Unify zone_sizes_init() 2011-11-11 10:22:55 +01:00
insn.h x86: Fix to decode grouped AVX with VEX pp bits 2012-02-11 15:11:35 +01:00
inst.h crypto: aesni-intel - Fix another CTR build failure with gas 2.16.1 2010-03-24 21:37:57 +08:00
intel_scu_ipc.h x86,mrst: Power control commands update 2011-12-05 12:42:11 +01:00
io_apic.h x86, ioapic: Consolidate gsi routing info into 'struct ioapic' 2011-05-20 13:41:01 +02:00
io.h x86: don't include xen/xen.h in <asm/io.h> unless XEN is enabled 2011-08-03 22:00:38 -10:00
ioctl.h
ioctls.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
iomap.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
iommu_table.h x86, iommu: Update header comments with appropriate naming 2010-10-08 13:11:21 -07:00
iommu.h iommu: Add option to group multi-function devices 2011-11-15 12:22:31 +01:00
ipcbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
ipi.h x86: Make default_send_IPI_mask_sequence/allbutself_logical() 32bit only 2011-01-28 14:54:05 +01:00
irq_controller.h x86: dtb: Add irq domain abstraction 2011-02-23 22:27:53 +01:00
irq_regs.h x86: merge irq_regs.h 2009-01-21 17:26:06 +09:00
irq_remapping.h iommu: Rename the DMAR and INTR_REMAP config options 2011-09-21 10:22:03 +02:00
irq_vectors.h x86/irq: Standardize on CONFIG_SPARSE_IRQ=y 2011-10-13 12:12:12 +02:00
irq.h x86: Add device tree support 2011-02-23 22:27:52 +01:00
irqflags.h tracing, x86/irq: Do not trace arch_local_{*,irq_*}() functions 2011-07-07 19:22:32 +02:00
ist.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
jump_label.h jump label: Add _ASM_ALIGN for x86 and x86_64 2011-04-04 13:42:51 -04:00
Kbuild x86: Generate system call tables and unistd_*.h from tables 2011-11-17 13:35:37 -08:00
kdebug.h ptrace: unify show_regs() prototype 2011-07-26 16:49:43 -07:00
kexec.h x86, kexec: x86_64: add kexec jump support for x86_64 2009-03-10 18:13:25 -07:00
kgdb.h kgdbts: unify/generalize gdb breakpoint adjustment 2011-05-26 17:12:36 -07:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kmemcheck.h kmemcheck: add the kmemcheck core 2009-06-13 15:37:30 +02:00
kprobes.h x86: Move MAX_INSN_SIZE into asm/insn.h 2010-03-10 13:23:34 +01:00
kvm_emulate.h KVM: x86 emulator: implement RDPMC (0F 33) 2011-12-27 11:24:43 +02:00
kvm_host.h KVM: Add generic RDPMC support 2011-12-27 11:24:35 +02:00
kvm_para.h KVM guest: KVM Steal time registration 2011-07-24 11:49:36 +03:00
kvm.h KVM: x86: XSAVE/XRSTOR live migration support 2010-08-01 10:46:37 +03:00
ldt.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
lguest_hcall.h lguest: update comments 2011-07-22 14:39:50 +09:30
lguest.h Merge commit 'origin/x86/urgent' into x86/asm 2009-08-25 15:40:29 -07:00
linkage.h x86: Get rid of asmregparm 2011-05-24 14:33:35 +02:00
local64.h arch: Implement local64_t 2010-06-09 11:12:36 +02:00
local.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mach_timer.h time: x86: Remove CLOCK_TICK_RATE from mach_timer.h 2011-11-21 19:00:57 -08:00
mach_traps.h x86/mrst: Avoid reporting wrong nmi status 2011-11-10 16:21:01 +01:00
math_emu.h x86: fix math_emu register frame access 2009-02-10 00:39:14 +01:00
mc146818rtc.h x86: Use "do { } while(0)" for empty lock_cmos()/unlock_cmos() macros 2011-12-18 09:14:31 +01:00
mca_dma.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mca.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mce.h mce: fix warning messages about static struct mce_device 2012-01-16 17:08:42 -08:00
microcode.h x86, microcode, AMD: Add a vendor-specific exit function 2011-12-14 12:46:47 +01:00
mman.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
mmconfig.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmu_context.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
mmu.h x86: Reorder mm_context_t to remove x86_64 alignment padding and thus shrink mm_struct 2011-05-25 16:16:41 +02:00
mmx.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mmzone_32.h x86, mm: s/PAGES_PER_ELEMENT/PAGES_PER_SECTION/ 2011-07-12 21:58:11 -07:00
mmzone_64.h Fix node_start/end_pfn() definition for mm/page_cgroup.c 2011-06-27 14:13:09 -07:00
mmzone.h
module.h x86, cpu: Move AMD Elan Kconfig under "Processor family" 2011-04-08 13:01:25 -07:00
mpspec_def.h x86: Fix APIC ID sizing bug on larger systems, clean up MAX_APICS confusion 2011-01-05 14:09:23 +01:00
mpspec.h x86: Unify cpu/apicid <-> NUMA node mapping between 32 and 64bit 2011-01-28 14:54:09 +01:00
mrst-vrtc.h x86: mrst: Add vrtc driver which serves as a wall clock device 2010-11-11 11:34:27 +01:00
mrst.h Merge branch 'tty-next' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty 2012-01-09 12:09:24 -08:00
msgbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
mshyperv.h x86: Clean up the hypervisor layer 2010-05-07 17:13:04 -07:00
msidef.h x86, x2apic: enable fault handling for intr-remapping 2009-03-17 15:38:59 -07:00
msr-index.h x86: TSC deadline definitions 2011-09-25 19:53:00 +03:00
msr.h x86: Document rdmsr_safe restrictions 2011-12-05 14:28:37 +01:00
mtrr.h x86, mtrr: make mtrr_aps_delayed_init static bool 2009-08-21 17:00:02 -07:00
mutex_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mutex_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
mutex.h
mwait.h x86, mwait: Move mwait constants to a common header file 2010-09-17 15:36:40 -07:00
nmi.h x86, nmi: Add in logic to handle multiple events and unknown NMIs 2011-10-10 06:57:01 +02:00
nops.h x86, cpu: Clean up and unify the NOP selection infrastructure 2011-04-18 16:40:21 -07:00
numa_32.h x86, NUMA: Move NUMA init logic from numa_64.c to numa.c 2011-05-02 14:18:53 +02:00
numa_64.h x86, NUMA: Move NUMA init logic from numa_64.c to numa.c 2011-05-02 14:18:53 +02:00
numa.h x86, NUMA: Make numa_init_array() static 2011-05-02 17:24:48 +02:00
numaq.h x86-32, NUMA: Update numaq to use new NUMA init protocol 2011-05-02 14:18:53 +02:00
olpc_ofw.h x86, olpc: Use device tree for platform identification 2011-03-15 14:17:23 -07:00
olpc.h x86, olpc-xo1-sci: Add GPE handler and ebook switch functionality 2011-07-06 14:44:38 -07:00
page_32_types.h x86: Remove CONFIG_4KSTACKS 2010-06-29 12:12:59 +02:00
page_32.h x86 headers: protect page_32.h via __ASSEMBLY__ 2009-02-13 13:36:47 +01:00
page_64_types.h x86, 64-bit: Clean up user address masking 2009-06-20 15:40:00 -07:00
page_64.h x86: create _types.h counterparts for page*.h 2009-02-11 14:54:09 -08:00
page_types.h x86-64, NUMA: Revert NUMA affine page table allocation 2011-03-04 10:26:36 +01:00
page.h x86: Document __phys_reloc_hide() usage in __pa_symbol() 2010-08-11 08:43:49 +02:00
param.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
paravirt_types.h Merge branch 'x86-vdso-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-tip 2011-08-12 20:46:24 -07:00
paravirt.h KVM guest: Add a pv_ops stub for steal time 2011-07-14 12:59:44 +03:00
parport.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pat.h x86, platform: Change is_untracked_pat_range() to bool; cleanup init 2009-11-23 17:09:59 -08:00
pci_64.h x86: Only call dma32_reserve_bootmem 64bit !CONFIG_NUMA 2010-02-10 17:47:18 -08:00
pci_x86.h PCI: Pull PCI 'latency timer' setup up into the core 2012-01-06 12:10:42 -08:00
pci-direct.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
pci-functions.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
pci.h x86/PCI: Expand the x86_msi_ops to have a restore MSIs. 2012-01-06 14:02:26 -08:00
percpu.h Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu 2012-01-09 13:08:28 -08:00
perf_event_p4.h x86, perf: P4 PMU - Fix typos in comments and style cleanup 2011-07-21 20:41:54 +02:00
perf_event.h perf, arch: Rework perf_event_index() 2011-12-21 11:01:07 +01:00
pgalloc.h tree-wide: fix comment/printk typos 2010-11-01 15:38:34 -04:00
pgtable_32_types.h x86: use __ASSEMBLY__ rather than __ASSEMBLER__ 2010-06-07 17:27:11 -07:00
pgtable_32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable_64_types.h x86: 46 bit physical address support on 64 bits 2009-05-05 19:10:18 -07:00
pgtable_64.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable_types.h x86-64: Map the HPET NX 2011-06-05 21:30:33 +02:00
pgtable-2level_types.h x86: move more pagetable-related definitions into pgtable*.h 2009-02-13 11:35:01 -08:00
pgtable-2level.h thp: add x86 32bit support 2011-01-13 17:32:44 -08:00
pgtable-3level_types.h x86: move more pagetable-related definitions into pgtable*.h 2009-02-13 11:35:01 -08:00
pgtable-3level.h x86: Flush TLB if PGD entry is changed in i386 PAE mode 2011-03-18 11:44:01 +01:00
pgtable.h x86: Use "do { } while(0)" for empty flush_tlb_fix_spurious_fault() macro 2011-12-18 09:14:18 +01:00
poll.h
posix_types_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
posix_types_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
posix_types.h
prctl.h headers_check fix: x86, prctl.h 2009-02-02 23:27:09 +05:30
probe_roms.h x86: Introduce pci_map_biosrom() 2011-03-15 15:34:15 -07:00
processor-cyrix.h
processor-flags.h x86: Fix rflags in FAKE_STACK_FRAME 2011-12-06 10:02:38 +01:00
processor.h x86: Add counter when debug stack is used with interrupts enabled 2011-12-21 15:38:56 -05:00
prom.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
proto.h Move round_up/down to kernel.h 2010-02-12 09:42:39 -08:00
ptrace-abi.h x86: Fix common misspellings 2011-03-18 10:39:30 +01:00
ptrace.h x86-64: Add user_64bit_mode paravirt op 2011-08-04 16:13:49 -07:00
pvclock-abi.h x86, paravirt: don't compute pvclock adjustments if we trust the tsc 2010-05-19 11:41:05 +03:00
pvclock.h KVM: Fix instruction size issue in pvclock scaling 2011-08-30 14:42:30 +03:00
reboot_fixups.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
reboot.h x86, nmi: Wire up NMI handlers to new routines 2011-10-10 06:56:57 +02:00
required-features.h x86, cpu: Support the features flags in new CPUID leaf 7 2010-07-07 17:29:18 -07:00
resource.h
resume-trace.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
rio.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
rtc.h
rwlock.h x86: Fix write lock scalability 64-bit issue 2011-07-21 09:03:36 +02:00
rwsem.h x86: Use xadd helper more widely 2011-08-29 13:44:12 -07:00
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp_32.h x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
seccomp_64.h x86-64: seccomp: fix 32/64 syscall hole 2009-03-02 15:41:30 -08:00
seccomp.h
sections.h x86-64: align RODATA kernel section to 2MB with CONFIG_DEBUG_RODATA 2009-10-20 14:46:00 +09:00
segment.h x86, asm: Fix binutils 2.16 issue with __USER32_CS 2011-06-03 14:39:14 -07:00
sembuf.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
serial.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
serpent.h crypto: serpent - add 4-way parallel i586/SSE2 assembler implementation 2011-11-21 16:13:23 +08:00
setup_arch.h x86: move mach-default/*.h files to asm/ 2009-01-29 14:16:51 +01:00
setup.h x86/intel config: Revamp configuration to allow for Moorestown and Medfield 2011-12-18 09:17:02 +01:00
shmbuf.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
shmparam.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sigcontext32.h headers_check fix: x86, sigcontext32.h 2009-01-31 00:18:58 +05:30
sigcontext.h tree-wide: fix misspelling of "definition" in comments 2009-12-04 23:41:47 +01:00
sigframe.h x86: sigframe.h: include headers for dependency 2008-12-18 15:01:22 -08:00
siginfo.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
smp.h x86, NMI: Add NMI IPI selftest 2011-12-05 12:00:16 +01:00
smpboot_hooks.h x86: Serialize SMP bootup CMOS accesses on rtc_lock 2011-07-21 09:20:59 +02:00
socket.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sockios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
sparsemem.h x86: 46 bit physical address support on 64 bits 2009-05-05 19:10:18 -07:00
spinlock_types.h x86, ticketlock: Make __ticket_spin_trylock common 2011-08-29 13:46:34 -07:00
spinlock.h x86/cmpxchg: add a locked add() helper 2011-11-25 10:42:59 -08:00
stackprotector.h x86/i386: Make sure stack-protector segment base is cache aligned 2009-09-03 21:30:51 +02:00
stacktrace.h x86: Remove warning and warning_symbol from struct stacktrace_ops 2011-05-12 15:31:28 +02:00
stat.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
statfs.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
string_32.h x86: Use __builtin_memset and __builtin_memcpy for memset/memcpy 2009-09-28 16:43:15 -07:00
string_64.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
string.h
suspend_32.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
suspend_64.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
suspend.h
svm.h KVM: SVM: copy instruction bytes from VMCB 2011-01-12 11:31:07 +02:00
swab.h headers_check fix: x86, swab.h 2009-01-31 00:19:32 +05:30
swiotlb.h x86, swiotlb: Simplify SWIOTLB pci_swiotlb_detect routine. 2010-08-26 15:13:29 -07:00
sync_bitops.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
sys_ia32.h Mark arguments to certain syscalls as being const 2010-08-13 16:53:13 -07:00
syscall.h x86: Move <asm/asm-offsets.h> from trace_syscalls.c to asm/syscall.h 2012-01-07 14:10:18 -08:00
syscalls.h Make do_execve() take a const filename pointer 2010-08-17 18:07:43 -07:00
system.h xen/pm_idle: Make pm_idle be default_idle under Xen. 2011-12-03 10:49:58 -08:00
tce.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
termbits.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
termios.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
thread_info.h x86: Get rid of dubious one-bit signed bitfield 2012-01-16 09:39:54 +01:00
time.h x86: i8253: Consolidate definitions of global_clock_event 2011-06-09 15:01:40 +02:00
timer.h sched, x86: Avoid unnecessary overflow in sched_clock 2011-11-16 19:51:25 +01:00
timex.h time: move PIT_TICK_RATE to linux/timex.h 2009-06-16 19:47:27 -07:00
tlb.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
tlbflush.h x86-32, mm: Add an initial page table for core bootstrapping 2010-10-20 14:23:55 -07:00
topology.h Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
trampoline.h x86, trampoline: Use the unified trampoline setup for ACPI wakeup 2011-02-17 21:05:06 -08:00
traps.h x86-64: Rework vsyscall emulation and add vsyscall= parameter 2011-08-10 19:26:46 -05:00
tsc.h x86, tsc: Skip TSC synchronization checks for tsc=reliable 2011-12-05 18:00:31 +01:00
types.h remove dma64_addr_t 2011-03-23 19:47:18 -07:00
uaccess_32.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
uaccess_64.h sanitize <linux/prefetch.h> usage 2011-05-20 12:50:29 -07:00
uaccess.h x86-64: Set siginfo and context on vsyscall emulation faults 2011-12-05 12:17:27 +01:00
ucontext.h x86: remove all now-duplicate header files 2009-06-18 14:40:03 -07:00
unaligned.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
unistd.h x86, syscall: Need __ARCH_WANT_SYS_IPC for 32 bits 2012-01-19 12:57:09 -08:00
uprobes.h uprobes, mm, x86: Add the ability to install and remove uprobes breakpoints 2012-02-17 10:00:01 +01:00
user32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
user_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
user_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
user.h x86, ptrace: regset extensions to support xstate 2010-02-11 15:08:17 -08:00
vdso.h x86-64: Clean up vdso/kernel shared variables 2011-05-24 14:51:28 +02:00
vga.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
vgtod.h x86-64: Move vread_tsc and vread_hpet into the vDSO 2011-07-14 17:57:05 -07:00
virtext.h KVM: SVM: Move EFER and MSR constants to generic x86 code 2009-03-24 11:02:46 +02:00
vm86.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
vmx.h KVM: APIC: avoid instruction emulation for EOI writes 2011-09-25 19:52:17 +03:00
vsyscall.h x86-64: Rework vsyscall emulation and add vsyscall= parameter 2011-08-10 19:26:46 -05:00
vvar.h x86-64: Give vvars their own page 2011-06-05 21:30:32 +02:00
x2apic.h x86, x2apic: Move the common bits to x2apic.h 2011-05-20 13:41:11 +02:00
x86_init.h Merge branch 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci 2012-01-11 18:50:26 -08:00
xcr.h
xor_32.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
xor_64.h x86: Fix ASM_X86__ header guards 2008-10-22 22:55:23 -07:00
xor.h x86: add hooks for kmemcheck 2009-06-15 12:40:02 +02:00
xsave.h Merge branch 'x86-xsave-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2010-08-06 16:25:13 -07:00