Linux PARISC architecture development
 help / color / mirror / Atom feed
From: Carlos O'Donell <carlos@baldric.uwo.ca>
To: parisc-linux@lists.parisc-linux.org
Cc: Randolph Chung <tausq@debian.org>
Subject: [parisc-linux] Re: [parisc-linux-cvs] linux-2.6 carlos
Date: Sat, 8 Nov 2003 15:58:25 -0500	[thread overview]
Message-ID: <20031108205825.GI21080@systemhalted> (raw)
In-Reply-To: <20031108205955.7039B49402D@palinux.hppa>

On Sat, Nov 08, 2003 at 01:59:55PM -0700, Carlos O'Donell wrote:
> CVSROOT:	/var/cvs
> Module name:	linux-2.6
> Changes by:	carlos	03/11/08 13:59:55
> 
> Modified files:
> 	arch/parisc/kernel: traps.c 
> 
> Log message:
> Cleanup trap handling for codes 13,15,16 and 17. In particular forward port 13, and make 17 non-fatal to the kernel (only the process should die).

tausq,

Here's the trap handler cleanup I promised. Please comment.

c.

Index: Makefile
===================================================================
RCS file: /var/cvs/linux-2.6/Makefile,v
retrieving revision 1.83
diff -u -p -r1.83 Makefile
--- Makefile	2 Nov 2003 04:40:49 -0000	1.83
+++ Makefile	8 Nov 2003 20:53:32 -0000
@@ -1,7 +1,7 @@
 VERSION = 2
 PATCHLEVEL = 6
 SUBLEVEL = 0
-EXTRAVERSION = -test9-pa4
+EXTRAVERSION = -test9-pa5
 
 # *DOCUMENTATION*
 # To see a list of typical targets execute "make help"
Index: arch/parisc/kernel/traps.c
===================================================================
RCS file: /var/cvs/linux-2.6/arch/parisc/kernel/traps.c,v
retrieving revision 1.10
diff -u -p -r1.10 traps.c
--- arch/parisc/kernel/traps.c	8 Oct 2003 20:52:07 -0000	1.10
+++ arch/parisc/kernel/traps.c	8 Nov 2003 20:53:35 -0000
@@ -557,20 +557,41 @@ void handle_interruption(int code, struc
 		si.si_addr = (void *) regs->iaoq[0];
 		force_sig_info(SIGFPE, &si, current);
 		return;
-
+		
+	case 13:
+		/* Conditional Trap
+		   The condition succees in an instruction which traps 
+		   on condition  */
+		si.si_signo = SIGFPE;
+		/* Set to zero, and let the userspace app figure it out from
+		   the insn pointed to by si_addr */
+		si.si_code = 0;
+		si.si_addr = (void *) regs->iaoq[0];
+		force_sig_info(SIGFPE, &si, current);
+		return;
+		
 	case 14:
 		/* Assist Exception Trap, i.e. floating point exception. */
 		die_if_kernel("Floating point exception", regs, 0); /* quiet */
 		handle_fpe(regs);
 		return;
-
+		
+	case 15:
+		/* Data TLB miss fault/Data page fault */
+		/* Fall through */
+	case 16:
+		/* Non-access instruction TLB miss fault */
+		/* The instruction TLB entry needed for the target address of the FIC
+		   is absent, and hardware can't find it, so we get to cleanup */
+		/* Fall through */
 	case 17:
 		/* Non-access data TLB miss fault/Non-access data page fault */
 		/* TODO: Still need to add slow path emulation code here */
-		pdc_chassis_send_status(PDC_CHASSIS_DIRECT_PANIC);
-		
+		/* TODO: Understand what is meant by the TODO listed
+		         above this one. (Carlos) */
 		fault_address = regs->ior;
-		parisc_terminate("Non access data tlb fault!",regs,code,fault_address);
+		fault_space = regs->isr;
+		break;
 
 	case 18:
 		/* PCXS only -- later cpu's split this into types 26,27 & 28 */
@@ -580,9 +601,8 @@ void handle_interruption(int code, struc
 			return;
 		}
 		/* Fall Through */
-
-	case 15: /* Data TLB miss fault/Data page fault */
-	case 26: /* PCXL: Data memory access rights trap */
+	case 26: 
+		/* PCXL: Data memory access rights trap */
 		fault_address = regs->ior;
 		fault_space   = regs->isr;
 		break;
@@ -638,7 +658,6 @@ void handle_interruption(int code, struc
 			up_read(&current->mm->mmap_sem);
 		}
 		/* Fall Through */
-
 	case 27: 
 		/* Data memory protection ID trap */
 		die_if_kernel("Protection id trap", regs, code);

       reply	other threads:[~2003-11-08 21:03 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20031108205955.7039B49402D@palinux.hppa>
2003-11-08 20:58 ` Carlos O'Donell [this message]
     [not found]   ` <3FAD63B7.6020805@tiscali.be>
2003-11-08 22:00     ` [parisc-linux] Re: [parisc-linux-cvs] linux-2.6 carlos Carlos O'Donell
     [not found] <20031108210057.7FFAB49402D@palinux.hppa>
2003-11-08 21:16 ` Joel Soete
2003-11-08 22:11   ` Carlos O'Donell
     [not found] <20031210224026.33A39494275@palinux.hppa>
2003-12-11  1:03 ` Carlos O'Donell
     [not found] <20031211004856.66476494275@palinux.hppa>
2003-12-11  1:23 ` Carlos O'Donell
     [not found] <20040128051247.D6C6C4941AA@palinux.hppa>
2004-01-28  5:23 ` Carlos O'Donell
     [not found] <20040128051415.4C9724941AA@palinux.hppa>
2004-01-28  5:25 ` Carlos O'Donell
     [not found] <20040128060516.492DE4941AA@palinux.hppa>
2004-01-28 14:00 ` [parisc-linux] " Joel Soete
2004-01-28 23:11   ` Carlos O'Donell
2004-01-29  7:28     ` Joel Soete
2004-01-29  9:25       ` Joel Soete
2004-02-01 20:05         ` Randolph Chung
2004-02-02 10:25           ` Joel Soete
2004-02-02 17:50             ` Joel Soete
     [not found] <20040203215113.E38D0494194@palinux.hppa>
2004-02-03 21:53 ` [parisc-linux] " Carlos O'Donell
     [not found] <20040203230410.71952494194@palinux.hppa>
2004-02-03 23:07 ` Carlos O'Donell
     [not found] <20040426044648.93EE4494593@palinux.hppa>
2004-04-26  4:51 ` Carlos O'Donell
     [not found] <20040428231338.BB0124945C3@palinux.hppa>
2004-04-28 23:15 ` Carlos O'Donell
2004-04-28 23:51   ` Carlos O'Donell
     [not found] <20040430141548.EFE284945CD@palinux.hppa>
2004-04-30 15:57 ` Carlos O'Donell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20031108205825.GI21080@systemhalted \
    --to=carlos@baldric.uwo.ca \
    --cc=parisc-linux@lists.parisc-linux.org \
    --cc=tausq@debian.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox