linux/include/asm-x86
Suresh Siddha e49140120c crypto: padlock - fix VIA PadLock instruction usage with irq_ts_save/restore()
Wolfgang Walter reported this oops on his via C3 using padlock for
AES-encryption:

##################################################################

BUG: unable to handle kernel NULL pointer dereference at 000001f0
IP: [<c01028c5>] __switch_to+0x30/0x117
*pde = 00000000
Oops: 0002 [#1] PREEMPT
Modules linked in:

Pid: 2071, comm: sleep Not tainted (2.6.26 #11)
EIP: 0060:[<c01028c5>] EFLAGS: 00010002 CPU: 0
EIP is at __switch_to+0x30/0x117
EAX: 00000000 EBX: c0493300 ECX: dc48dd00 EDX: c0493300
ESI: dc48dd00 EDI: c0493530 EBP: c04cff8c ESP: c04cff7c
 DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
Process sleep (pid: 2071, ti=c04ce000 task=dc48dd00 task.ti=d2fe6000)
Stack: dc48df30 c0493300 00000000 00000000 d2fe7f44 c03b5b43 c04cffc8 00000046
       c0131856 0000005a dc472d3c c0493300 c0493470 d983ae00 00002696 00000000
       c0239f54 00000000 c04c4000 c04cffd8 c01025fe c04f3740 00049800 c04cffe0
Call Trace:
 [<c03b5b43>] ? schedule+0x285/0x2ff
 [<c0131856>] ? pm_qos_requirement+0x3c/0x53
 [<c0239f54>] ? acpi_processor_idle+0x0/0x434
 [<c01025fe>] ? cpu_idle+0x73/0x7f
 [<c03a4dcd>] ? rest_init+0x61/0x63
 =======================

Wolfgang also found out that adding kernel_fpu_begin() and kernel_fpu_end()
around the padlock instructions fix the oops.

Suresh wrote:

These padlock instructions though don't use/touch SSE registers, but it behaves
similar to other SSE instructions. For example, it might cause DNA faults
when cr0.ts is set. While this is a spurious DNA trap, it might cause
oops with the recent fpu code changes.

This is the code sequence  that is probably causing this problem:

a) new app is getting exec'd and it is somewhere in between
   start_thread() and flush_old_exec() in the load_xyz_binary()

b) At pont "a", task's fpu state (like TS_USEDFPU, used_math() etc) is
   cleared.

c) Now we get an interrupt/softirq which starts using these encrypt/decrypt
   routines in the network stack. This generates a math fault (as
   cr0.ts is '1') which sets TS_USEDFPU and restores the math that is
   in the task's xstate.

d) Return to exec code path, which does start_thread() which does
   free_thread_xstate() and sets xstate pointer to NULL while
   the TS_USEDFPU is still set.

e) At the next context switch from the new exec'd task to another task,
   we have a scenarios where TS_USEDFPU is set but xstate pointer is null.
   This can cause an oops during unlazy_fpu() in __switch_to()

Now:

1) This should happen with or with out pre-emption. Viro also encountered
   similar problem with out CONFIG_PREEMPT.

2) kernel_fpu_begin() and kernel_fpu_end() will fix this problem, because
   kernel_fpu_begin() will manually do a clts() and won't run in to the
   situation of setting TS_USEDFPU in step "c" above.

3) This was working before the fpu changes, because its a spurious
   math fault  which doesn't corrupt any fpu/sse registers and the task's
   math state was always in an allocated state.

With out the recent lazy fpu allocation changes, while we don't see oops,
there is a possible race still present in older kernels(for example,
while kernel is using kernel_fpu_begin() in some optimized clear/copy
page and an interrupt/softirq happens which uses these padlock
instructions generating DNA fault).

This is the failing scenario that existed even before the lazy fpu allocation
changes:

0. CPU's TS flag is set

1. kernel using FPU in some optimized copy  routine and while doing
kernel_fpu_begin() takes an interrupt just before doing clts()

2. Takes an interrupt and ipsec uses padlock instruction. And we
take a DNA fault as TS flag is still set.

3. We handle the DNA fault and set TS_USEDFPU and clear cr0.ts

4. We complete the padlock routine

5. Go back to step-1, which resumes clts() in kernel_fpu_begin(), finishes
the optimized copy routine and does kernel_fpu_end(). At this point,
we have cr0.ts again set to '1' but the task's TS_USEFPU is stilll
set and not cleared.

6. Now kernel resumes its user operation. And at the next context
switch, kernel sees it has do a FP save as TS_USEDFPU is still set
and then will do a unlazy_fpu() in __switch_to(). unlazy_fpu()
will take a DNA fault, as cr0.ts is '1' and now, because we are
in __switch_to(), math_state_restore() will get confused and will
restore the next task's FP state and will save it in prev tasks's FP state.
Remember, in __switch_to() we are already on the stack of the next task
but take a DNA fault for the prev task.

This causes the fpu leakage.

Fix the padlock instruction usage by calling them inside the
context of new routines irq_ts_save/restore(), which clear/restore cr0.ts
manually in the interrupt context. This will not generate spurious DNA
in the  context of the interrupt which will fix the oops encountered and
the possible FPU leakage issue.

Reported-and-bisected-by: Wolfgang Walter <wolfgang.walter@stwm.de>
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2008-08-13 22:02:26 +10:00
..
mach-bigsmp x86: APIC: remove apic_write_around(); use alternatives 2008-07-18 12:51:21 +02:00
mach-default x86: convert Dprintk to pr_debug 2008-07-21 21:35:38 +02:00
mach-es7000 x86: APIC: remove apic_write_around(); use alternatives 2008-07-18 12:51:21 +02:00
mach-generic x86: extend and use x86_quirks to clean up NUMAQ code 2008-07-20 09:25:52 +02:00
mach-numaq x86: remove unused file after numaq etc depends on genericarch 2008-07-08 10:38:54 +02:00
mach-rdc321x rdc321x: GPIO routines bugfixes 2008-03-27 16:08:45 +01:00
mach-summit x86: fix IBM Summit based systems' phys_cpu_present_map on 32-bit kernels 2008-07-26 14:58:39 +02:00
mach-voyager Merge branch 'generic-ipi' into generic-ipi-for-linus 2008-07-15 21:55:59 +02:00
uv x86 BIOS interface for RTC on SGI UV 2008-07-18 14:35:14 +02:00
visws x86, VisWS: turn into generic arch, move definitions 2008-07-10 18:55:40 +02:00
xen x86: rename PTE_MASK to PTE_PFN_MASK 2008-07-22 10:43:44 +02:00
a.out-core.h include/asm-x86/a.out-core.h: checkpatch cleanups - formatting only 2008-04-17 17:41:21 +02:00
a.out.h aout: move STACK_TOP[_MAX] to asm/processor.h 2008-02-08 09:22:29 -08:00
acpi.h x86: use acpi_numa_init to parse on 32-bit numa 2008-07-08 10:38:47 +02:00
agp.h x86: remove flush_agp_mappings() 2008-01-30 13:34:07 +01:00
alternative-asm.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
alternative.h ftrace: use nops instead of jmp 2008-05-23 20:33:28 +02:00
amd_iommu_types.h x86, AMD IOMMU: replace DEVID macro with a function 2008-07-11 18:01:18 +02:00
amd_iommu.h x86, AMD IOMMU: add amd_iommu.h to export functions to the generic x86 dma code 2008-06-27 10:12:21 +02:00
apic.h x86: convert Dprintk to pr_debug 2008-07-21 21:35:38 +02:00
apicdef.h x86: increase size of APICID 2008-04-17 17:41:33 +02:00
arch_hooks.h x86: add ->pre_time_init to x86_quirks 2008-07-20 09:25:52 +02:00
asm.h x86: use macros from asm.h. 2008-07-09 09:14:12 +02:00
atomic_32.h include/asm-x86/atomic_32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:21 +02:00
atomic_64.h Merge branch 'x86/uv' into x86/devel 2008-07-08 12:24:13 +02:00
atomic.h
auxvec.h x86: unify include/asm/auxvec_32/64.h 2007-10-17 20:17:13 +02:00
bios_ebda.h x86: extract common part of head32.c and head64.c into head.c 2008-06-05 15:10:02 +02:00
bitops.h x86, cleanup: fix description of __fls(): __fls(0) is undefined 2008-07-18 14:32:38 +02:00
boot.h x86: cleanup boot-heap usage 2008-04-19 19:19:54 +02:00
bootparam.h x86: move reserve_setup_data to setup.c 2008-07-08 13:16:14 +02:00
bug.h include/asm-x86/bug.h: checkpatch cleanups - formatting only 2008-04-17 17:41:22 +02:00
bugs.h x86: add include to cpu/intel.c 2008-02-04 16:48:04 +01:00
byteorder.h include/asm-x86/byteorder.h: checkpatch cleanups - formatting only 2008-04-17 17:41:22 +02:00
cache.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:15 +02:00
cacheflush.h x86: add comments to describe the new api's in cacheflush.h 2008-04-17 17:41:31 +02:00
calgary.h
calling.h x86 ptrace: unify syscall tracing 2008-07-16 12:15:17 -07:00
checksum_32.h include/asm-x86/checksum_32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:22 +02:00
checksum_64.h include/asm-x86/checksum_64.h: checkpatch cleanups - formatting only 2008-04-17 17:41:22 +02:00
checksum.h
cmpxchg_32.h include/asm-x86/cmpxchg_32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:22 +02:00
cmpxchg_64.h x86, 64-bit: add sync_cmpxchg 2008-07-08 13:10:58 +02:00
cmpxchg.h
compat.h include/asm-x86/compat.h: checkpatch cleanups - formatting only 2008-04-17 17:41:22 +02:00
cpu.h x86: avoid section mismatch involving arch_register_cpu 2008-02-01 17:49:43 +01:00
cpufeature.h x86: APIC: remove apic_write_around(); use alternatives 2008-07-18 12:51:21 +02:00
cputime.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
current.h x86: unify current.h 2008-05-25 08:58:35 +02:00
debugreg.h x86: unify include/asm/debugreg_32/64.h 2007-10-17 20:35:37 +02:00
delay.h x86: delay lib unification build fix 2008-07-09 09:13:59 +02:00
desc_defs.h x86, 64-bit: add gate_offset() and gate_segment() macros 2008-07-08 13:10:28 +02:00
desc.h Merge commit 'v2.6.26' into x86/core 2008-07-14 11:37:46 +02:00
device.h dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
div64.h remove div_long_long_rem 2008-05-01 08:03:58 -07:00
dma-mapping.h Merge branch 'linus' into core/generic-dma-coherent 2008-07-29 00:07:55 +02:00
dma.h include/asm-x86/dma.h: checkpatch cleanups - formatting only 2008-04-17 17:41:22 +02:00
dmi.h x86: use acpi_numa_init to parse on 32-bit numa 2008-07-08 10:38:47 +02:00
ds.h x86, ptrace: support 32bit-cross-64bit BTS recording 2008-01-30 13:32:03 +01:00
dwarf2.h x86: Fix compile error with CONFIG_AS_CFI=n 2008-07-15 15:30:29 +02:00
e820.h x86: seperate memtest from init_64.c 2008-07-18 14:10:27 +02:00
edac.h include/asm-x86/edac.h: checkpatch cleanups - formatting only 2008-04-17 17:41:23 +02:00
efi.h EFI, x86: fix function prototype 2008-08-11 18:50:19 +02:00
elf.h x86/paravirt, 64-bit: make load_gs_index() a paravirt operation 2008-07-08 13:15:58 +02:00
emergency-restart.h x86: reboot_{32|64}.c unification 2008-01-30 13:32:51 +01:00
errno.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
fb.h x86: unify include/asm/cache_32/64.h 2007-10-17 20:17:21 +02:00
fcntl.h
fixmap_32.h x86: i386: reduce boot fixmap space 2008-07-18 16:17:52 -07:00
fixmap_64.h x86: make 64bit hpet_set_mapping to use ioremap too, v2 2008-07-14 09:24:17 +02:00
fixmap.h x86/paravirt/xen: add set_fixmap pv_mmu_ops 2008-06-20 15:09:56 +02:00
floppy.h x86 floppy: kill off the 'register' keyword from header 2008-04-17 17:41:30 +02:00
frame.h x86: rename .i assembler includes to .h 2007-10-17 20:16:29 +02:00
ftrace.h ftrace: copy + paste typo in asm/ftrace.h 2008-07-18 13:14:08 +02:00
futex.h asm-*/futex.h should include linux/uaccess.h 2008-04-30 08:29:52 -07:00
gart.h x86: make only GART code include gart.h 2008-07-11 11:00:54 +02:00
genapic_32.h x86: I/O APIC: remove an IRQ2-mask hack 2008-07-13 11:43:48 +02:00
genapic_64.h x86: I/O APIC: remove an IRQ2-mask hack 2008-07-13 11:43:48 +02:00
genapic.h
geode.h x86, geode: add a VSA2 ID for General Software 2008-06-19 14:19:03 +02:00
gpio.h x86, RDC321x: remove gpio.h complications 2008-07-26 14:50:51 +02:00
hardirq_32.h x86: expand /proc/interrupts to include missing vectors, v2 2007-10-17 20:16:53 +02:00
hardirq_64.h
hardirq.h x86: make /proc/stat account for all interrupts 2008-05-25 07:11:49 +02:00
highmem.h x86: kill bad_ppro 2008-07-08 10:38:19 +02:00
hpet.h x86: merge tsc calibration 2008-07-09 07:43:25 +02:00
hugetlb.h hugetlb: modular state for hugetlb page size 2008-07-24 10:47:17 -07:00
hw_irq.h x86: Restore proper vector locking during cpu hotplug 2008-08-11 10:37:34 +02:00
hypertransport.h include/asm-x86/hypertransport.h: checkpatch cleanups - formatting only 2008-04-17 17:41:23 +02:00
i387.h crypto: padlock - fix VIA PadLock instruction usage with irq_ts_save/restore() 2008-08-13 22:02:26 +10:00
i8253.h x86: isolate PIC/PIT in/out calls 2008-01-30 13:33:14 +01:00
i8259.h x86: automatical unification of i8259.c 2008-05-24 16:44:26 +02:00
ia32_unistd.h x86: remove more bogus filenames in comments. 2008-01-30 13:30:28 +01:00
ia32.h include/asm-x86/ia32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:23 +02:00
idle.h x86: remove dead code and exports 2008-01-30 13:30:28 +01:00
intel_arch_perfmon.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
io_32.h access_process_vm device memory infrastructure 2008-07-24 10:47:15 -07:00
io_64.h access_process_vm device memory infrastructure 2008-07-24 10:47:15 -07:00
io_apic.h x86: let setup_arch call init_apic_mappings for 32bit 2008-07-08 13:16:04 +02:00
io.h - x86: move early_ioremap prototypes to io.h 2008-07-08 13:16:12 +02:00
ioctl.h
ioctls.h include/asm-x86/ioctls.h: checkpatch cleanups - formatting only 2008-04-17 17:41:23 +02:00
iommu.h generic, x86: fix add iommu_num_pages helper function 2008-07-29 12:12:48 +02:00
ipcbuf.h include/asm-x86/ipcbuf.h: checkpatch cleanups - formatting only 2008-04-17 17:41:24 +02:00
ipi.h Merge branch 'linus' into cpus4096 2008-07-16 00:29:07 +02:00
irq_regs_32.h
irq_regs_64.h
irq_regs.h
irq_vectors.h x86_64: restore the proper NR_IRQS define so larger systems work. 2008-08-11 10:39:04 +02:00
irq.h x86: unify irq.h 2008-05-12 21:28:05 +02:00
irqflags.h Merge branch 'auto-ftrace-next' into tracing/for-linus 2008-07-14 16:11:52 +02:00
ist.h Make asm-x86/bootparam.h includable from userspace. 2007-10-23 15:49:47 +10:00
k8.h x86: move k8 related declarations 2008-01-30 13:30:16 +01:00
Kbuild Merge git://git.infradead.org/~dwmw2/random-2.6 2008-07-25 12:01:37 -07:00
kdebug.h x86: mmiotrace full patch, preview 1 2008-05-24 11:22:12 +02:00
kexec.h kexec jump 2008-07-26 12:00:04 -07:00
kgdb.h x86: kgdb support 2008-04-17 20:05:37 +02:00
kmap_types.h x86: unify include/asm/agp_32/64.h 2007-10-17 20:26:13 +02:00
kprobes.h include/asm-x86/kprobes.h: checkpatch cleanups - formatting only 2008-04-17 17:41:24 +02:00
kvm_host.h KVM: Synchronize guest physical memory map to host virtual memory map 2008-07-29 12:33:53 +03:00
kvm_para.h x86: KVM guest: Add memory clobber to hypercalls 2008-07-06 11:05:18 +03:00
kvm_x86_emulate.h KVM: x86 emulator: lazily evaluate segment registers 2008-07-20 12:42:35 +03:00
kvm.h KVM: SVM: add tracing support for TDP page faults 2008-07-20 12:40:48 +03:00
ldt.h x86: unify include/asm/ldt_32/64.h 2007-10-17 20:16:47 +02:00
lguest_hcall.h include/asm-x86/lguest_hcall.h: checkpatch cleanups - formatting only 2008-04-17 17:41:24 +02:00
lguest.h include/asm-x86/lguest.h: checkpatch cleanups - formatting only 2008-04-17 17:41:24 +02:00
linkage.h x86, tracing: add notrace to asm-x86/linkage.h 2008-04-17 17:40:51 +02:00
local.h include/asm-x86/local.h: checkpatch cleanups - formatting only 2008-04-17 17:41:24 +02:00
math_emu.h x86: x86 user_regset cleanup 2008-01-30 13:31:55 +01:00
mc146818rtc.h include/asm-x86/mc146818rtc.h: checkpatch cleanups - formatting only 2008-04-17 17:41:24 +02:00
mca_dma.h include/asm-x86/mca_dma.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
mca.h
mce.h x86: rename the struct pt_regs members for 32/64-bit consistency 2008-01-30 13:30:56 +01:00
mman.h x86: unify include/asm/mman_32/64.h 2007-10-17 20:26:15 +02:00
mmconfig.h fix build bug in "x86: add PCI extended config space access for AMD Barcelona" 2008-06-10 12:32:53 +02:00
mmu_context_32.h x86: unify mmu_context.h 2008-07-08 13:10:31 +02:00
mmu_context_64.h x86: unify mmu_context.h 2008-07-08 13:10:31 +02:00
mmu_context.h x86: unify mmu_context.h 2008-07-08 13:10:31 +02:00
mmu.h include/asm-x86/mmu.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
mmx.h include/asm-x86/mmx.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
mmzone_32.h x86: make generic arch support NUMAQ 2008-06-10 11:34:42 +02:00
mmzone_64.h include/asm-x86/mmzone_64.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
mmzone.h
module.h x86: unify module_{32|64}.h 2008-01-30 13:31:43 +01:00
mpspec_def.h x86: increase MAX_APICS for very large x86-64 configs 2008-07-08 12:23:29 +02:00
mpspec.h Merge branch 'x86/uv' into x86/devel 2008-07-08 12:24:13 +02:00
msgbuf.h x86: merge msgbuf_32/64.h 2007-10-23 22:37:24 +02:00
msidef.h include/asm-x86/msidef.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
msr-index.h x86: cleanup C1E enabled detection 2008-06-10 15:52:07 +02:00
msr.h x86: add memory barriers to wrmsr 2008-07-08 13:10:24 +02:00
mtrr.h include/asm-x86/mtrr.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
mutex_32.h include/asm-x86/mutex_32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
mutex_64.h include/asm-x86/mutex_64.h: checkpatch cleanups - formatting only 2008-04-17 17:41:25 +02:00
mutex.h
nmi.h x86: nmi_watchdog - introduce nmi_watchdog_active() helper 2008-07-08 12:51:42 +02:00
nops.h x86: correct/clarify comment in nops.h 2008-04-17 17:40:58 +02:00
numa_32.h x86: introduce init_memory_mapping for 32bit #3 2008-07-08 13:10:33 +02:00
numa_64.h x86: introduce initmem_init for 64 bit 2008-07-08 12:50:14 +02:00
numa.h
numaq.h x86: fix numaq_tsc_disable calling 2008-07-13 08:19:45 +02:00
olpc.h x86: olpc: add One Laptop Per Child architecture support 2008-04-29 08:06:07 -07:00
page_32.h x86: merge zones_sizes_init for numa and non numa on 32-bit 2008-07-08 13:16:22 +02:00
page_64.h x86: map UV chipset space - pagetable 2008-07-09 07:43:23 +02:00
page.h PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
param.h include/asm-x86/param.h: checkpatch cleanups - formatting only 2008-04-17 17:41:26 +02:00
paravirt.h x86: rename PTE_MASK to PTE_PFN_MASK 2008-07-22 10:43:44 +02:00
parport.h include/asm-x86/parport.h: checkpatch cleanups - formatting only 2008-04-17 17:41:26 +02:00
pat.h x86: rename pat_wc_enabled to pat_enabled 2008-06-12 10:14:27 +02:00
pci_32.h x86: add compilation checks to pci_unmap_*() macros 2008-06-30 12:22:01 +02:00
pci_64.h x86: reserve dma32 early for gart 2008-04-19 19:19:55 +02:00
pci-direct.h PCI/x86: early dump pci conf space v2 2008-06-10 10:59:52 -07:00
pci.h x86: move pci_routirq declaration to pci.h 2008-07-08 09:13:08 +02:00
pda.h x86: remove static boot_cpu_pda array v2 2008-07-08 11:31:25 +02:00
percpu.h x86_64: add workaround for no %gs-based percpu 2008-07-16 10:58:13 +02:00
pgalloc.h x86/paravirt: add a pgd_alloc/free hooks 2008-07-08 13:11:01 +02:00
pgtable_32.h x86: add PTE_FLAGS_MASK 2008-07-22 10:43:45 +02:00
pgtable_64.h x86: rename PTE_MASK to PTE_PFN_MASK 2008-07-22 10:43:44 +02:00
pgtable-2level-defs.h
pgtable-2level.h include/asm-x86/pgtable-2level.h: checkpatch cleanups - formatting only 2008-04-17 17:41:26 +02:00
pgtable-3level-defs.h
pgtable-3level.h x86: rename PTE_MASK to PTE_PFN_MASK 2008-07-22 10:43:44 +02:00
pgtable.h x86: implement pte_special 2008-07-26 12:00:05 -07:00
poll.h
posix_types_32.h include/asm-x86/posix_types_32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:26 +02:00
posix_types_64.h include/asm-x86/posix_types_64.h: checkpatch cleanups - formatting only 2008-04-17 17:41:26 +02:00
posix_types.h fix asm-x86/{posix_types,unistd}.h 2008-04-26 17:35:46 +02:00
prctl.h
processor-cyrix.h
processor-flags.h x86: fix header export, asm-x86/processor-flags.h, CONFIG_* leaks 2008-07-24 12:49:53 +02:00
processor.h Merge branch 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2008-07-23 18:37:44 -07:00
proto.h x86: add flags parameter to reserve_bootmem_generic() 2008-07-08 11:49:49 +02:00
ptrace-abi.h x86 ptrace: unify syscall tracing 2008-07-16 12:15:17 -07:00
ptrace.h x86: break mutual header inclusion 2008-06-02 12:48:23 +02:00
pvclock-abi.h x86: Add structs and functions for paravirt clocksource 2008-06-24 21:02:31 +03:00
pvclock.h x86: Add structs and functions for paravirt clocksource 2008-06-24 21:02:31 +03:00
reboot_fixups.h
reboot.h x86: constify data in reboot.c 2008-05-25 08:58:30 +02:00
required-features.h x86, 64-bit: PSE no longer a hard requirement 2008-07-08 13:11:08 +02:00
resource.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
resume-trace.h x86: move tracedata to RODATA 2008-05-25 07:09:47 +02:00
rio.h x86: remove duplicate get_bios_ebda() from rio.h 2008-04-26 17:35:47 +02:00
rtc.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
rwlock.h x86: use immediates instead of RW_LOCK_BIAS_STR 2008-01-30 13:30:34 +01:00
rwsem.h include/asm-x86/rwsem.h: checkpatch cleanups - formatting only 2008-04-17 17:41:27 +02:00
scatterlist.h x86: use dma_length in i386 2008-04-19 19:19:57 +02:00
seccomp_32.h x86: fix incomplete include guard in include/asm-x86/seccomp_32.h 2008-06-02 12:45:28 +02:00
seccomp_64.h x86: more header fixes 2008-06-18 12:27:03 +02:00
seccomp.h
sections.h x86: trivial header merges 2007-10-17 20:17:08 +02:00
segment.h x86: unify and correct the GDT_ENTRY() macro 2008-07-17 11:29:24 -07:00
sembuf.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
serial.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
setup.h Merge branches 'x86/urgent', 'x86/amd-iommu', 'x86/apic', 'x86/cleanups', 'x86/core', 'x86/cpu', 'x86/fixmap', 'x86/gart', 'x86/kprobes', 'x86/memtest', 'x86/modules', 'x86/nmi', 'x86/pat', 'x86/reboot', 'x86/setup', 'x86/step', 'x86/unify-pci', 'x86/uv', 'x86/xen' and 'xen-64bit' into x86/for-linus 2008-07-21 16:37:17 +02:00
shmbuf.h x86: merge shmbuf_32/64.h 2007-10-23 22:37:24 +02:00
shmparam.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
sigcontext32.h include/asm-x86/sigcontext32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:27 +02:00
sigcontext.h include/asm-x86/sigcontext.h: checkpatch cleanups - formatting only 2008-04-17 17:41:27 +02:00
siginfo.h x86: unify include/asm/siginfo_32/64.h 2007-10-17 20:26:17 +02:00
signal.h Fix typos from signal_32/64.h merge 2008-07-18 17:59:13 +02:00
smp.h x86_64: unstatic get_local_pda 2008-07-16 10:55:07 +02:00
socket.h [NET]: Introducing socket mark socket option. 2008-01-31 19:27:19 -08:00
sockios.h x86: merge some trivially mergeable headers 2007-10-17 20:17:09 +02:00
sparsemem.h x86: sparsemem: reduce i386 PAE section size 2008-04-17 17:41:33 +02:00
spinlock_types.h x86/paravirt: add hooks for spinlock operations 2008-07-16 11:15:52 +02:00
spinlock.h paravirt: introduce a "lock-byte" spinlock implementation 2008-07-16 11:15:53 +02:00
srat.h x86: remove acpi_srat config v2 2008-07-08 15:49:08 +02:00
stacktrace.h x86: add the capability to print fuzzy backtraces 2008-01-30 13:33:07 +01:00
stat.h x86: merge stat_32/64.h 2007-10-23 22:37:24 +02:00
statfs.h x86: merge statfs_32/64.h 2007-10-23 22:37:24 +02:00
string_32.h x86: string_32.h: workaround for broken gcc 4.0 2008-05-26 13:36:53 -07:00
string_64.h include/asm-x86/string_64.h: checkpatch cleanups - formatting only 2008-04-17 17:41:27 +02:00
string.h
suspend_32.h x86: more header fixes 2008-06-18 12:27:03 +02:00
suspend_64.h include/asm-x86/suspend_64.h: checkpatch cleanups - formatting only 2008-04-17 17:41:27 +02:00
suspend.h
swiotlb.h dma-mapping: add the device argument to dma_mapping_error() 2008-07-26 12:00:03 -07:00
sync_bitops.h x86: simplify sync_test_bit(), improve 2008-04-17 17:41:30 +02:00
system_64.h x86: move switch_to macro to system.h 2008-01-30 13:31:08 +01:00
system.h x86: fix savesegment() bug causing crashes on 64-bit 2008-07-11 19:51:47 +02:00
tce.h include/asm-x86/tce.h: checkpatch cleanups - formatting only 2008-04-17 17:41:28 +02:00
termbits.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
termios.h tty: fix tty network driver interactions with TCGET/TCSET calls (x86 fix) 2008-02-07 08:42:16 -08:00
therm_throt.h
thread_info.h clean up duplicated alloc/free_thread_info 2008-07-25 10:53:28 -07:00
time.h x86: merge tsc_init and clocksource code 2008-07-09 07:43:27 +02:00
timer.h x86: rename paravirtualized TSC functions 2008-07-09 07:43:28 +02:00
timex.h read_current_timer() cleanups 2008-02-06 10:41:02 -08:00
tlb.h x86: unify include/asm/tlb_32/64.h 2007-10-17 20:26:18 +02:00
tlbflush.h x86: prevent PGE flush from interruption/preemption 2008-05-23 18:16:15 +02:00
topology.h x86: change _node_to_cpumask_ptr to return const ptr 2008-07-13 19:11:58 +02:00
trampoline.h x86: move suspend wakeup code to C 2008-04-17 17:41:37 +02:00
traps.h x86: introducing asm-x86/traps.h 2008-07-18 18:51:57 +02:00
tsc.h x86: merge tsc_init and clocksource code 2008-07-09 07:43:27 +02:00
types.h x86: types: use <asm-generic/int-*.h> for the x86 architecture 2008-05-02 16:18:42 -07:00
uaccess_32.h x86: define architectural characteristics in uaccess.h. 2008-07-09 09:14:29 +02:00
uaccess_64.h x86: introduce copy_user_handle_tail() routine 2008-07-09 15:51:03 +02:00
uaccess.h x86: lockless get_user_pages_fast() 2008-07-26 12:00:06 -07:00
ucontext.h x86: unify some more trivial include/asm-x86/ 32/64 variants 2007-10-17 20:17:10 +02:00
unaligned.h kernel: Move arches to use common unaligned access 2008-04-29 08:06:27 -07:00
unistd_32.h flag parameters add-on: remove epoll_create size param 2008-07-24 10:47:29 -07:00
unistd_64.h flag parameters add-on: remove epoll_create size param 2008-07-24 10:47:29 -07:00
unistd.h fix asm-x86/{posix_types,unistd}.h 2008-04-26 17:35:46 +02:00
unwind.h x86: unify include/asm/unwind_32/64.h 2007-10-17 20:32:38 +02:00
user32.h include/asm-x86/user32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:28 +02:00
user_32.h include/asm-x86/user_32.h: checkpatch cleanups - formatting only 2008-04-17 17:41:28 +02:00
user_64.h include/asm-x86/user_64.h: checkpatch cleanups - formatting only 2008-04-17 17:41:28 +02:00
user.h Cleanup asm/{elf,page,user}.h: #ifdef __KERNEL__ is no longer needed 2008-02-07 08:42:30 -08:00
vdso.h x86_64: further cleanup of 32-bit compat syscall mechanisms 2008-07-16 11:08:27 +02:00
vga.h include/asm-x86/vga.h: checkpatch cleanups - formatting only 2008-04-17 17:41:28 +02:00
vgtod.h
vic.h
vm86.h x86: break mutual header inclusion 2008-06-02 12:48:23 +02:00
vmi_time.h x86: rename paravirtualized TSC functions 2008-07-09 07:43:28 +02:00
vmi.h include/asm-x86/vmi.h: checkpatch cleanups - formatting only 2008-04-17 17:41:28 +02:00
voyager.h include/asm-x86/voyager.h: checkpatch cleanups - formatting only 2008-04-17 17:41:29 +02:00
vsyscall.h x86: add notrace annotations to vsyscall. 2008-05-23 20:31:39 +02:00
xor_32.h x86: more header fixes 2008-06-18 12:27:03 +02:00
xor_64.h x86: more header fixes 2008-06-18 12:27:03 +02:00
xor.h