[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--