linux/arch/mips/include/asm
Maneesh Soni d8d4e3ae0b MIPS Kprobes: Refactor branch emulation
This patch refactors MIPS branch emulation code so as to allow skipping
delay slot instruction in case of branch likely instructions when branch is
not taken. This is useful for keeping the code common for use cases like
kprobes where one would like to handle the branch instructions keeping the
delay slot instuction also in picture for branch likely instructions. Also
allow emulation when instruction to be decoded is not at pt_regs->cp0_epc
as in case of kprobes where pt_regs->cp0_epc points to the breakpoint
instruction.

The patch also exports the function for modules.

Signed-off-by: Maneesh Soni <manesoni@cisco.com>
Signed-off-by: Victor Kamensky <kamensky@cisco.com>
Cc: David Daney <david.daney@cavium.com>
Cc: ananth@in.ibm.com
Cc: linux-kernel@vger.kernel.org
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/2913/
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
2011-12-07 22:04:03 +00:00
..
dec Fix common misspellings 2011-03-31 11:26:23 -03:00
emma MIPS: EMMA2RH: Replace EMMA2RH_SW_IRQ_INTxx with EMMA2RH_SW_IRQ(n) 2010-08-05 13:26:04 +01:00
fw
ip32
lasat doc: fix broken references 2011-09-27 18:08:04 +02:00
mach-ar7 MIPS: AR7: Fix loops per jiffies on TNETD7200 devices 2010-12-16 18:10:56 +00:00
mach-ath79 MIPS: ath79: add common WMAC device for AR913X based boards 2011-01-18 19:30:28 +01:00
mach-au1x00 Merge branch 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus 2011-11-03 13:28:14 -07:00
mach-bcm47xx MIPS: BCM47xx: fix build with GENERIC_GPIO configuration 2011-11-08 12:35:29 +00:00
mach-bcm63xx MIPS: Move FIXADDR_TOP into spaces.h 2011-07-25 17:26:53 +01:00
mach-cavium-octeon MIPS: Octeon: Enable C0_UserLocal probing. 2011-09-24 01:44:41 +02:00
mach-cobalt Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
mach-db1x00 MIPS: Alchemy: clean DMA code of CONFIG_SOC_AU1??? defines 2011-10-24 23:34:24 +01:00
mach-dec
mach-emma2rh
mach-generic MIPS: Remove pointless return statement from empty void functions. 2011-07-25 17:26:55 +01:00
mach-ip22 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip27 MIPS: Remove pointless return statement from empty void functions. 2011-07-25 17:26:55 +01:00
mach-ip28 MIPS: IP22/28: Switch over to RTC class driver 2008-10-15 12:46:51 +01:00
mach-ip32 Fix common misspellings 2011-03-31 11:26:23 -03:00
mach-jazz MIPS: Remove pointless return statement from empty void functions. 2011-07-25 17:26:55 +01:00
mach-jz4740 MIPS: static should be at beginning of declaration 2011-07-11 14:13:46 +02:00
mach-lantiq MIPS: Lantiq: Add ethernet driver 2011-05-19 09:55:43 +01:00
mach-lasat
mach-loongson MIPS: Remove pointless return statement from empty void functions. 2011-07-25 17:26:55 +01:00
mach-malta MIPS: Enable cpu_has_clo_clz for MIPS Technologies' platforms 2011-07-25 17:26:55 +01:00
mach-mipssim MIPS: Enable cpu_has_clo_clz for MIPS Technologies' platforms 2011-07-25 17:26:55 +01:00
mach-netlogic MIPS: Netlogic: mach-netlogic include files 2011-05-19 09:55:39 +01:00
mach-pb1x00 MIPS: Alchemy: clean DMA code of CONFIG_SOC_AU1??? defines 2011-10-24 23:34:24 +01:00
mach-pnx833x MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
mach-pnx8550
mach-powertv MIPS: Remove unneeded version.h includes from arch/mips/ 2011-09-17 02:40:36 +02:00
mach-rc32434 MIPS: RB532: Cleanup cpu-features-overrides 2009-06-17 11:06:26 +01:00
mach-rm
mach-sibyte MIPS: Sibyte: Apply M3 workaround only on affected chip types and versions. 2010-04-12 17:26:19 +01:00
mach-tx39xx MIPS: Move FIXADDR_TOP into spaces.h 2011-07-25 17:26:53 +01:00
mach-tx49xx MIPS: Move FIXADDR_TOP into spaces.h 2011-07-25 17:26:53 +01:00
mach-vr41xx
mach-wrppmc
mach-yosemite
mips-boards MIPS: GIC: Remove dependencies from Malta files. 2010-10-04 18:33:56 +01:00
netlogic MIPS: XLR, XLS: Add PCI support. 2011-05-19 09:55:41 +01:00
octeon Fix common misspellings 2011-03-31 11:26:23 -03:00
pci Fix common misspellings 2011-03-31 11:26:23 -03:00
pmc-sierra/msp71xx Fix common misspellings 2011-03-31 11:26:23 -03:00
sgi Fix common misspellings 2011-03-31 11:26:23 -03:00
sibyte Fix common misspellings 2011-03-31 11:26:23 -03:00
sn Fix common misspellings 2011-03-31 11:26:23 -03:00
txx9 MIPS: TXx9: Remove forced serial console setting 2010-02-27 12:53:22 +01:00
vr41xx Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
xtalk
abi.h MIPS: Move signal trampolines off of the stack. 2010-04-12 17:26:15 +01:00
addrspace.h
amon.h MIPS: CMP: activate CMP support 2009-07-03 15:45:26 +01:00
arch_hweight.h MIPS: Create and use asm/arch_hweight.h 2010-08-05 13:26:02 +01:00
asm-offsets.h kbuild: move asm-offsets.h to include/generated 2009-12-12 13:08:14 +01:00
asm.h
asmmacro-32.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
asmmacro-64.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
asmmacro.h MIPS: Use EI/DI for MIPS R2. 2008-12-12 18:12:23 +00:00
atomic.h atomic: cleanup asm-generic atomic*.h inclusion 2011-07-26 16:49:47 -07:00
auxvec.h
barrier.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
bcache.h
bitops.h bitops: remove minix bitops from asm/bitops.h 2011-03-23 19:46:22 -07:00
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bootinfo.h MIPS: Add a platform hook for swiotlb setup. 2010-10-29 19:08:32 +01:00
branch.h MIPS Kprobes: Refactor branch emulation 2011-12-07 22:04:03 +00:00
break.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
bug.h MIPS: Convert BUG() to use unreachable() 2009-12-05 09:10:12 -08:00
bugs.h MIPS: Build fix - include <linux/smp.h> into all smp_processor_id() users. 2009-06-24 18:34:39 +01: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 MIPS: Rename .data..mostly and properly handle it in linker script 2011-05-10 18:15:24 +01:00
cachectl.h
cacheflush.h MIPS: cache: Provide cache flush operations for XFS 2011-10-20 15:00:18 +01:00
cacheops.h MIPS: RM7000: Add support for tertiary cache 2010-08-05 13:26:06 +01:00
cevt-r4k.h MIPS: MSP: Fix build error 2011-05-10 18:15:24 +01:00
checksum.h MIPS: uaccess: Switch lock annotations to might_fault(). 2009-05-14 13:50:28 +01:00
clock.h MIPS: Loongson 2F: Add CPU frequency scaling support 2009-12-17 01:57:20 +00:00
cmp.h
cmpxchg.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
compat-signal.h
compat.h compat: sync compat_stats with statfs. 2011-10-28 14:58:53 +02:00
compiler.h
cop2.h MIPS: Don't place cu2 notifiers in __cpuinitdata 2010-10-04 18:34:00 +01:00
cpu-features.h MIPS: Update comment for cpu_has_clo_clz 2010-08-05 13:26:01 +01:00
cpu-info.h MIPS: Probe for presence of KScratch registers. 2011-01-18 19:30:22 +01:00
cpu.h MIPS: Add more CPU identifiers for Octeon II CPUs. 2011-10-24 23:34:25 +01:00
cputime.h
current.h MIPS: Use generic current.h 2010-02-27 12:53:27 +01:00
debug.h
delay.h MIPS: Fix potencial build error in <asm/delay.h> 2009-09-17 20:07:41 +02:00
device.h MIPS: Convert DMA to use dma-mapping-common.h 2010-10-29 19:08:31 +01:00
div64.h MIPS: Rewrite <asm/div64.h> to work with gcc 4.4.0. 2009-05-14 13:50:29 +01:00
dma-mapping.h MIPS: Kludge IP27 build for 2.6.39. 2011-05-18 14:18:27 +01:00
dma.h MIPS: Allow MAX_DMA32_PFN to be overridden. 2010-10-29 19:08:28 +01:00
ds1287.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
dsp.h
edac.h
elf.h MIPS: Don't clobber personality high bits. 2010-12-16 18:10:54 +00:00
emergency-restart.h
errno.h mm: make __get_user_pages return -EHWPOISON for HWPOISON page optionally 2011-03-17 13:08:27 -03:00
fb.h
fcntl.h MIPS: 32-bit: Fix build failure in asm/fcntl.h 2010-10-18 16:59:04 +01:00
fixmap.h MIPS: Move FIXADDR_TOP into spaces.h 2011-07-25 17:26:53 +01:00
floppy.h treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
fpregdef.h
fpu_emulator.h MIPS: Fix build breakage if CONFIG_DEBUG_FS is enabled. 2010-04-12 17:26:08 +01:00
fpu.h MIPS: Cleanup signal code initialization 2009-12-17 01:57:32 +00:00
ftrace.h MIPS: Loongson: Change the Email address of Wu Zhangjin 2010-02-27 12:53:12 +01:00
futex.h futex: Sanitize futex ops argument types 2011-03-11 12:23:31 +01:00
gcmpregs.h MIPS: GIC: Random fixes and enhancements. 2009-11-02 12:00:06 +01:00
gic.h MIPS: GIC: Remove dependencies from Malta files. 2010-10-04 18:33:56 +01:00
gpio.h
gt64120.h MIPS: GT64120: Remove useless inclusion of clocksource.h. 2011-07-20 23:12:10 +01:00
hardirq.h MIPS: Convert to asm-generic/hardirq.h 2009-09-17 20:07:48 +02:00
hazards.h MIPS: Alchemy: remove SOC_AU1X00 in favor of MIPS_ALCHEMY 2010-08-05 13:26:06 +01:00
highmem.h mm: stack based kmap_atomic() 2010-10-26 16:52:08 -07:00
hugetlb.h MIPS: Invalidate old TLB mappings when updating huge page PTEs. 2011-05-10 18:15:26 +01:00
hw_irq.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
i8259.h MIPS: i8259: Convert IRQ controller lock to raw spinlock. 2010-02-27 12:53:38 +01:00
ide.h
inst.h MIPS: Add LDX and LWX instructions to uasm. 2011-01-18 19:30:23 +01:00
io.h Revert "MIPS: LD/SD o32 macro GAS fix update" 2011-10-20 15:00:19 +01:00
ioctl.h MIPS: ioctl.h: Cleanup. 2009-06-17 11:06:28 +01:00
ioctls.h tty: add TIOCVHANGUP to allow clean tty shutdown of all ttys 2011-02-17 14:16:30 -08:00
ipcbuf.h
irq_cpu.h
irq_gt641xx.h Update Yoichi Yuasa's e-mail address 2009-07-03 15:45:29 +01:00
irq_regs.h
irq.h MIPS: Remove pointless return statement from empty void functions. 2011-07-25 17:26:55 +01:00
irqflags.h Fix common misspellings 2011-03-31 11:26:23 -03:00
isadep.h
jazz.h
jazzdma.h
jump_label.h jump label: Introduce static_branch() interface 2011-04-04 12:48:08 -04:00
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kexec.h
kgdb.h kgdb,mips: Individual register get/set for mips 2010-08-05 09:22:21 -05:00
kmap_types.h kmap_types: make most arches use generic header file 2009-06-16 19:47:51 -07:00
kprobes.h MIPS: kprobe: Add support. 2010-08-05 13:26:29 +01:00
kspd.h
linkage.h
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
m48t37.h
mc146818-time.h set_rtc_mmss: show warning message only once 2011-01-13 08:03:07 -08:00
mc146818rtc.h
mips_machine.h MIPS: Add generic support for multiple machines within a single kernel 2011-01-18 19:30:21 +01:00
mips_mt.h
mipsmtregs.h
mipsprom.h MIPS: SNI: Fix conflicting wrapper symbols for headers. 2011-10-20 15:00:18 +01:00
mipsregs.h MIPS: Add accessor macros for 64-bit performance counter registers. 2011-10-24 23:34:26 +01:00
mman.h thp: mm: define MADV_NOHUGEPAGE 2011-01-13 17:32:47 -08:00
mmu_context.h MIPS: Use C0_KScratch (if present) to hold PGD pointer. 2011-01-18 19:30:22 +01:00
mmu.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
mmzone.h
module.h MIPS: Netlogic: Cache, TLB support and feature overrides for XLR 2011-05-19 09:55:40 +01:00
msc01_ic.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
msgbuf.h
mutex.h
nile4.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
paccess.h Fix common misspellings 2011-03-31 11:26:23 -03:00
page.h MIPS: Document why RELOC_HIDE is there. 2010-10-04 18:33:55 +01:00
param.h MIPS: Simplify param.h by using <asm-generic/param.h> 2010-02-27 12:53:04 +01:00
parport.h MIPS: Use generic parport.h 2010-02-27 12:53:27 +01:00
pci.h MIPS: Octeon: Disallow MSI-X interrupt and fall back to MSI interrupts. 2010-08-05 13:26:27 +01:00
percpu.h
perf_event.h MIPS, Perf-events: Work with irq_work 2011-03-14 21:07:26 +01:00
pgalloc.h MIPS: Two-level pagetables for 64-bit kernels with 64KB pages. 2010-02-27 12:53:03 +01:00
pgtable-32.h mm: remove pte_*map_nested() 2010-10-26 16:52:08 -07:00
pgtable-64.h MIPS: Make TASK_SIZE reflect proper size for both 32 and 64 bit processes. 2010-10-29 19:08:53 +01:00
pgtable-bits.h MIPS: Implement Read Inhibit/eXecute Inhibit 2010-02-27 12:53:26 +01:00
pgtable.h MIPS: topdown mmap support 2011-07-25 17:26:51 +01:00
pmon.h
poll.h
posix_types.h
prefetch.h MIPS: NEC VR5500 processor support fixup 2009-03-11 21:11:07 +01:00
processor.h Fix common misspellings 2011-03-31 11:26:23 -03:00
prom.h MIPS: SNI: Fix conflicting wrapper symbols for headers. 2011-10-20 15:00:18 +01:00
ptrace.h MIPS: Split do_syscall_trace into two functions. 2011-05-19 09:55:44 +01:00
r4k-timer.h
r4kcache.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
reboot.h
reg.h MIPS: 64-bit: Fix o32 core dump 2009-07-03 15:45:27 +01:00
regdef.h MIPS: O32: Provide definition of registers ta0 .. ta3. 2011-10-24 23:34:27 +01:00
resource.h
rm9k-ocd.h
rtlx.h
scatterlist.h remove needless ISA_DMA_THRESHOLD 2010-08-07 18:15:50 +02:00
seccomp.h MIPS: Fix TIF_32BIT undefined problem when seccomp is disabled 2009-03-13 23:07:59 +01:00
sections.h
segment.h
sembuf.h
serial.h MIPS: Use generic serial.h 2010-02-27 12:53:27 +01:00
setup.h MIPS: Extend COMMAND_LINE_SIZE 2009-11-02 12:00:01 +01:00
sgialib.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
sgiarcs.h update David Miller's old email address 2011-04-06 06:19:38 -07:00
sgidefs.h
shmbuf.h
shmparam.h
sigcontext.h headers_check fix: mips, sigcontext.h 2009-02-01 11:01:26 +05:30
siginfo.h Fix common misspellings 2011-03-31 11:26:23 -03:00
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
sim.h
smp-ops.h MIPS: ARC: Fix build of firmware library on uniprocessor. 2011-07-20 23:12:11 +01:00
smp.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
smtc_ipi.h MIPS: SMTC: Avoid queing multiple reschedule IPIs 2009-11-02 12:00:06 +01:00
smtc_proc.h
smtc.h MIPS: SMTC: Fix build. 2011-07-20 23:12:10 +01:00
smvp.h
sni.h
socket.h net: Generalize socket rx gap / receive queue overflow cmsg 2009-10-12 13:26:31 -07:00
sockios.h
sparsemem.h MIPS: Nuke trailing blank lines 2010-02-27 12:53:14 +01:00
spinlock_types.h MIPS: Optimize spinlocks. 2010-02-27 12:53:42 +01:00
spinlock.h MIPS: Microoptimize arch_{read,write}_lock 2011-03-25 18:45:13 +01:00
spram.h MIPS: SPRAM: Clean up support code a little 2009-11-02 12:00:05 +01:00
stackframe.h MIPS: Don't clobber CP0_STATUS value for CONFIG_MIPS_MT_SMTC 2011-09-21 17:54:02 +02:00
stacktrace.h MIPS: Add new unwind_stack variant 2011-06-15 14:35:33 +02:00
stat.h
statfs.h add f_flags to struct statfs(64) 2010-08-09 16:48:44 -04:00
string.h
suspend.h PM / Hibernate: Remove arch_prepare_suspend() 2011-05-24 23:35:55 +02:00
swab.h MIPS: Define __arch_swab64 for all mips r2 cpus 2009-07-03 15:45:25 +01:00
sysmips.h
system.h MIPS: Get rid of branches to .subsections. 2010-10-29 19:08:24 +01:00
termbits.h tty: Add EXTPROC support for LINEMODE 2010-08-10 13:47:39 -07:00
termios.h MIPS: Add return value checks to user_termio_to_kernel_termios() 2009-01-30 21:32:57 +00:00
thread_info.h MIPS: Use single define for pending work on syscall exit 2011-05-19 09:55:44 +01:00
time.h mips: convert to clocksource_register_hz/khz 2011-02-21 13:33:50 -08:00
timex.h
titan_dep.h
tlb.h
tlbdebug.h
tlbflush.h
topology.h
traps.h
txx9irq.h
txx9pio.h
txx9tmr.h
types.h remove dma64_addr_t 2011-03-23 19:47:18 -07:00
uaccess.h MIPS: Make TASK_SIZE reflect proper size for both 32 and 64 bit processes. 2010-10-29 19:08:53 +01:00
uasm.h MIPS: Add uasm UASM_i_SRL_SAFE macro. 2011-07-26 06:47:36 +01:00
ucontext.h MIPS: Use generic ucontext.h 2010-02-27 12:53:27 +01:00
unaligned.h MIPS: Avoid spurious make includecheck message 2009-09-30 21:47:02 +02:00
unistd.h MIPS: Hook up process_vm_readv and process_vm_writev system calls. 2011-11-09 00:07:56 +00:00
user.h
vdso.h MIPS: Preliminary VDSO 2010-04-12 17:26:14 +01:00
vga.h
vpe.h
war.h Fix common misspellings 2011-03-31 11:26:23 -03:00
watch.h
wbflush.h
xor.h