Port-powerpc archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: OpenBSD fix for Altivec assist exception relevant for NetBSD too?



In article <BAY105-F37F4183226F9C5E63BDC87B7420%phx.gbl@localhost>,
David H. Gutteridge <dhgutteridge%sympatico.ca@localhost> wrote:
>Hi all,
>
>I happened across a reference to a recent fix made by OpenBSD, I
>wondered if it was relevant for NetBSD too?  The entry says "An
>unhandled AltiVec assist exception can cause a kernel panic."
>
>Link is here: http://www.openbsd.org/errata40.html#013_altivec
>
>I can see that NetBSD's trap.h already has the exception in question
>defined, but I couldn't see a reference to it in trap.c.  (Of course, I
>don't know enough to make proper sense of the code in general.)

How about this?

christos

Index: trap.c
===================================================================
RCS file: /cvsroot/src/sys/arch/powerpc/powerpc/trap.c,v
retrieving revision 1.118
diff -u -u -r1.118 trap.c
--- trap.c      4 Mar 2007 06:00:38 -0000       1.118
+++ trap.c      2 May 2007 01:23:02 -0000
@@ -383,7 +383,8 @@
                        save_vec_lwp(l, ALTIVEC_SAVE);
                enable_vec();
                break;
-#else
+#endif
+       case EXC_VECAST|EXC_USER:
                KERNEL_LOCK(1, l);
                if (cpu_printfataltraps) {
                        printf("trap: pid %d.%d (%s): user VEC trap @ %#lx "
@@ -399,7 +400,7 @@
                (*p->p_emul->e_trapsignal)(l, &ksi);
                KERNEL_UNLOCK_LAST(l);
                break;
-#endif
+
        case EXC_MCHK|EXC_USER:
                ci->ci_ev_umchk.ev_count++;
                if (cpu_printfataltraps) {




Home | Main Index | Thread Index | Old Index