linux/include/asm-generic
Prasanna S Panchamukhi d0aaff9796 [PATCH] Kprobes: prevent possible race conditions generic
There are possible race conditions if probes are placed on routines within the
kprobes files and routines used by the kprobes.  For example if you put probe
on get_kprobe() routines, the system can hang while inserting probes on any
routine such as do_fork().  Because while inserting probes on do_fork(),
register_kprobes() routine grabs the kprobes spin lock and executes
get_kprobe() routine and to handle probe of get_kprobe(), kprobes_handler()
gets executed and tries to grab kprobes spin lock, and spins forever.  This
patch avoids such possible race conditions by preventing probes on routines
within the kprobes file and routines used by kprobes.

I have modified the patches as per Andi Kleen's suggestion to move kprobes
routines and other routines used by kprobes to a seperate section
.kprobes.text.

Also moved page fault and exception handlers, general protection fault to
.kprobes.text section.

These patches have been tested on i386, x86_64 and ppc64 architectures, also
compiled on ia64 and sparc64 architectures.

Signed-off-by: Prasanna S Panchamukhi <prasanna@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-09-07 16:57:59 -07:00
..
4level-fixup.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bitops.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bug.h [PATCH] Exterminate PAGE_BUG 2005-05-01 08:59:01 -07:00
cputime.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
div64.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dma-mapping-broken.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
dma-mapping.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
emergency-restart.h [PATCH] Add emergency_restart() 2005-07-26 14:35:41 -07:00
errno-base.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
errno.h [PATCH] add EOWNERDEAD and ENOTRECOVERABLE version 2 2005-05-01 08:59:06 -07:00
fcntl.h [PATCH] Clean up struct flock64 definitions 2005-09-07 16:57:38 -07:00
ide_iops.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
iomap.h [PATCH] add Big Endian variants of ioread/iowrite 2005-04-16 15:25:54 -07:00
ipc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
local.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
page.h [PATCH] mm: consolidate get_order 2005-09-05 00:05:39 -07:00
pci-dma-compat.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pci.h [PATCH] pci and yenta: pcibios_bus_to_resource 2005-08-04 21:32:46 -07:00
percpu.h [PATCH] adjust per_cpu definition in non-SMP case 2005-06-23 09:45:28 -07:00
pgtable-nopmd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pgtable-nopud.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
pgtable.h [PATCH] x86: ptep_clear optimization 2005-09-05 00:05:48 -07:00
resource.h [PATCH] nice and rt-prio rlimits 2005-05-01 08:59:00 -07:00
rtc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sections.h [PATCH] Kprobes: prevent possible race conditions generic 2005-09-07 16:57:59 -07:00
siginfo.h [PATCH] consolidate SIGEV_PAD_SIZE 2005-05-01 08:59:08 -07:00
signal.h [PATCH] asm/signal.h unification 2005-05-04 07:33:15 -07:00
statfs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
termios.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
tlb.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
topology.h [PATCH] x86/x86_64: pcibus_to_node 2005-06-23 09:45:08 -07:00
uaccess.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
unaligned.h [PATCH] optimise 64bit unaligned access on 32bit kernel 2005-09-07 16:57:36 -07:00
vmlinux.lds.h [PATCH] Kprobes: prevent possible race conditions generic 2005-09-07 16:57:59 -07:00
xor.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00