diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2008-11-11 00:22:22 +0100 |
---|---|---|
committer | Jeremy Kerr <jk@ozlabs.org> | 2008-11-21 00:14:16 +0100 |
commit | 606572634c3faa5b32a8fc430266e6e9d78d2179 (patch) | |
tree | 9ae7cd7985d1d04f40f4e2260b32b671968432f5 /drivers/acpi/events | |
parent | powerpc/spufs: Explain conditional decrement of aff_sched_count (diff) | |
download | linux-606572634c3faa5b32a8fc430266e6e9d78d2179.tar.xz linux-606572634c3faa5b32a8fc430266e6e9d78d2179.zip |
powerpc/spufs: Fix spinning in spufs_ps_fault on signal
Currently, we can end up in an infinite loop if we get a signal
while the kernel has faulted in spufs_ps_fault. Eg:
alarm(1);
write(fd, some_spu_psmap_register_address, 4);
- the write's copy_from_user will fault on the ps mapping, and
signal_pending will be non-zero. Because returning from the fault
handler will never clear TIF_SIGPENDING, so we'll just keep faulting,
resulting in an unkillable process using 100% of CPU.
This change returns VM_FAULT_SIGBUS if there's a fatal signal pending,
letting us escape the loop.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'drivers/acpi/events')
0 files changed, 0 insertions, 0 deletions