[parisc-linux] 2.5 fix for user level page fault problems
James Bottomley
James.Bottomley@steeleye.com
Wed, 18 Dec 2002 10:20:24 -0600
This is a multipart MIME message.
--==_Exmh_-17170343740
Content-Type: text/plain; charset=us-ascii
It seems that going from 2.4 to 2.5 there was an over zealous removal of the
check signals return path. The problem is that if a user application takes a
page fault, that can result in a signal being posted (specifically SEGV for
illegal memory access). If we never check the signals, the instruction is
retried and re-faults ad infinitum (well actually, it seems to terminate with
an unaligned instruction trap in this case after a few hundred faults).
The attached path makes signal posting on page fault work again
James
--==_Exmh_-17170343740
Content-Type: text/plain ; name="tmp.diff"; charset=us-ascii
Content-Description: tmp.diff
Content-Disposition: attachment; filename="tmp.diff"
===== entry.S 1.8 vs edited =====
--- 1.8/arch/parisc/kernel/entry.S Sun Nov 24 17:36:53 2002
+++ edited/entry.S Mon Dec 16 22:09:59 2002
@@ -944,11 +944,11 @@
ldo -16(%r30),%r29 /* Reference param save area */
#endif
- ldil L%intr_restore, %r2
+ ldil L%intr_check_sig, %r2
copy %r25, %r16 /* save pt_regs */
b handle_interruption
- ldo R%intr_restore(%r2), %r2
+ ldo R%intr_check_sig(%r2), %r2
/*
--==_Exmh_-17170343740--