linux/arch/s390/mm
Martin Schwidefsky 39efd4ec9a s390/ptrace: race of single stepping vs signal delivery
The current single step code is racy in regard to concurrent delivery
of signals. If a signal is delivered after a PER program check occurred
but before the TIF_PER_TRAP bit has been checked in entry[64].S the code
clears TIF_PER_TRAP and then calls do_signal. This is wrong, if the
instruction completed (or has been suppressed) a SIGTRAP should be
delivered to the debugger in any case. Only if the instruction has been
nullified the SIGTRAP may not be send.

The new logic always sets TIF_PER_TRAP if the program check indicates PER
tracing but removes it again for all program checks that are nullifying.
The effect is that for each change in the PSW address we now get a
single SIGTRAP.

Reported-by: Andreas Arnez <arnez@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
2012-11-23 11:14:33 +01:00
..
cmm.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
dump_pagetables.c s390/mm,vmem: use 2GB frames for identity mapping 2012-11-23 11:14:24 +01:00
extable.c s390/exceptions: switch to relative exception table entries 2012-09-26 15:45:10 +02:00
extmem.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
fault.c s390/ptrace: race of single stepping vs signal delivery 2012-11-23 11:14:33 +01:00
gup.c s390/gup: fix access_ok() usage in __get_user_pages_fast() 2012-11-13 11:02:28 +01:00
hugetlbpage.c s390/comments: unify copyright messages and remove file names 2012-07-20 11:15:04 +02:00
init.c s390/mm: move kernel_page_present/kernel_map_pages to page_attr.c 2012-11-23 11:14:31 +01:00
maccess.c s390/kernel: Introduce memcpy_absolute() function 2012-05-30 09:04:49 +02:00
Makefile s390/memory hotplug: use pfmf instruction to initialize storage keys 2012-11-23 11:14:30 +01:00
mmap.c s390/mm: downgrade page table after fork of a 31 bit process 2012-07-26 16:24:14 +02:00
page-states.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pageattr.c s390/mm: move kernel_page_present/kernel_map_pages to page_attr.c 2012-11-23 11:14:31 +01:00
pgtable.c s390/mm: move kernel_page_present/kernel_map_pages to page_attr.c 2012-11-23 11:14:31 +01:00
vmem.c s390/mm,vmemmap: use 1MB frames for vmemmap 2012-11-23 11:14:25 +01:00