android_kernel_motorola_sm6225/include/asm-x86_64
Andi Kleen 19d36ccdc3 x86: Fix alternatives and kprobes to remap write-protected kernel text
Reenable kprobes and alternative patching when the kernel text is write
protected by DEBUG_RODATA

Add a general utility function to change write protected text.  The new
function remaps the code using vmap to write it and takes care of CPU
synchronization.  It also does CLFLUSH to make icache recovery faster.

There are some limitations on when the function can be used, see the
comment.

This is a newer version that also changes the paravirt_ops code.
text_poke also supports multi byte patching now.

Contains bug fixes from Zach Amsden and suggestions from Mathieu
Desnoyers.

Cc: Jan Beulich <jbeulich@novell.com>
Cc: Jeremy Fitzhardinge <jeremy@goop.org>
Cc: Mathieu Desnoyers <compudj@krystal.dyndns.org>
Cc: Zach Amsden <zach@vmware.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-07-22 11:03:37 -07:00
..
8253pit.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
a.out.h arch: personality independent stack top 2007-07-19 10:04:45 -07:00
acpi.h x86_64: fake pxm-to-node mapping for fake numa 2007-07-21 18:37:10 -07: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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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: create asm/cmpxchg.h 2007-05-08 11:15:20 -07:00
compat.h Introduce compat_u64 and compat_s64 types 2007-07-16 09:05:48 -07:00
cpu.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpufeature.h Unify the CPU features vectors between i386 and x86-64 2007-07-12 10:55:54 -07:00
cputime.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
current.h kbuild: alpha,x86_64 use generic asm-offsets.h support 2005-09-09 21:28:48 +02:00
debugreg.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
delay.h [PATCH] x86: comment magic constants in delay.h 2006-12-07 02:14:07 +01:00
desc.h [PATCH] x86-64: Introduce load_TLS to the "for" loop. 2007-05-02 19:27:09 +02:00
desc_defs.h [PATCH] x86-64: Extract segment descriptor definitions for use outside 2006-12-07 02:14:04 +01:00
device.h ACPI: Change ACPI to use dev_archdata instead of firmware_data 2006-12-01 14:52:01 -08:00
div64.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 [PATCH] x86_64: Implemenent machine_emergency_restart 2005-07-26 14:35:42 -07:00
errno.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 [PATCH] Initial generic hypertransport interrupt support 2006-10-04 07:55:29 -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.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ia32_unistd.h [PATCH] x86_64: Remove most of ia32_unistd.h 2006-06-26 10:48:15 -07:00
ide.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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.h serial: convert early_uart to earlycon for 8250 2007-07-16 09:05:35 -07:00
io_apic.h [PATCH] io_apic.h needs apicdef.h 2007-03-05 07:57:50 -08: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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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.h [PATCH] genirq: x86_64 irq: make vector_irq per cpu 2006-10-04 07:55:29 -07:00
irq_regs.h IRQ: Maintain regs pointer globally rather than passing to IRQ handlers 2006-10-05 15:10:12 +01:00
irqflags.h [PATCH] x86-64: Use X86_EFLAGS_IF in x86-64/irqflags.h. 2007-05-02 19:27:11 +02: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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
kprobes.h jprobes: remove JPROBE_ENTRY() 2007-07-19 10:04:44 -07:00
ldt.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mce.h x86_64: support poll() on /dev/mcelog 2007-07-21 18:37:10 -07:00
mman.h [PATCH] add asm-generic/mman.h 2006-02-15 15:32:22 -08:00
mmsegment.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmu.h x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
mmu_context.h [PATCH] x86: PARAVIRT: add hooks to intercept mm creation and destruction 2007-05-02 19:27:14 +02:00
mmzone.h [PATCH] x86-64: configurable fake numa node sizes 2007-05-02 19:27:09 +02:00
module.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpspec.h [PATCH] Replace mp bus array with bitmap for bus not pci 2006-09-26 10:52:30 +02:00
msgbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
msidef.h [PATCH] genirq: x86_64 irq: Move msi message composition into io_apic.c 2006-10-04 07:55:28 -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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
nmi.h [PATCH] x86-64: Use the 32bit wd_ops for 64bit too. 2007-05-02 19:27:20 +02:00
node.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 x86-64: introduce struct pci_sysdata to facilitate sharing of ->sysdata 2007-07-21 18:37:14 -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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prctl.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -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 x86: remove support for the Rise CPU 2007-07-21 18:37:10 -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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sections.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
serial.h x86, serial: convert legacy COM ports to platform devices 2007-05-08 11:15:23 -07:00
setup.h [PATCH] x86_64: 2048-byte command line 2007-02-12 09:48:39 -08:00
shmbuf.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
shmparam.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigcontext.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sigcontext32.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
siginfo.h [PATCH] consolidate SIGEV_PAD_SIZE 2005-05-01 08:59:08 -07:00
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 [PATCH] add x86-64 specific support for sparsemem 2005-06-23 09:45:07 -07:00
spinlock.h [PATCH] x86-64: Don't keep interrupts disabled while spinning in spinlocks 2006-12-07 02:14:00 +01:00
spinlock_types.h [PATCH] Remove 'volatile' from spinlock_types 2006-12-06 14:39:53 -08:00
stacktrace.h [PATCH] x86: add sysctl for kstack_depth_to_print 2006-12-07 02:14:11 +01:00
stat.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
statfs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
string.h x86_64: Always use builtin memcpy on gcc 4.3 2007-07-21 18:37:08 -07:00
suspend.h [PATCH] x86-64: wakeup.S rename registers to reflect right names 2007-05-02 19:27:07 +02: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 [PATCH] Calgary IOMMU: consolidate per bus data structures 2006-09-26 10:52:31 +02: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 x86_64: support poll() on /dev/mcelog 2007-07-21 18:37:10 -07:00
timex.h x86_64: Untangle asm/hpet.h from asm/timex.h 2007-07-21 18:37:08 -07:00
tlb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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 [PATCH] kill bogus casts in amd64 uaccess.h 2007-03-14 15:27:50 -07:00
ucontext.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unaligned.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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
user.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
user32.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
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
vsyscall.h x86_64: Add vDSO for x86-64 with gettimeofday/clock_gettime/getcpu 2007-07-21 18:37:08 -07:00
vsyscall32.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
xor.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00