kernel mode EXC_DSE handling depends on td->td_pcb-> not slb faulting in setting up its slbmte use?

Mark Millard via freebsd-ppc <[email protected]>
Newsgroups gmane.os.freebsd.devel.ppc
Message-ID <[email protected]>
/usr/src/sys/powerpc/powerpc/trap.c has:

        } else {
                /* Kernel Mode Traps */

                KASSERT(cold || td->td_ucred != NULL,
                    ("kernel trap doesn't have ucred"));
                switch (type) {
. . .
#if defined(__powerpc64__) && defined(AIM)
                case EXC_DSE:
                        if (td->td_pcb->pcb_cpu.aim.usr_vsid != 0 &&
                            (frame->dar & SEGMENT_MASK) == USER_ADDR) {
                                __asm __volatile ("slbmte %0, %1" ::
                                        "r"(td->td_pcb->pcb_cpu.aim.usr_vsid),
                                        "r"(USER_SLB_SLBE));
                                return;
                        }
                        break;
#endif

in trap(...).

If the kernel mode EXC_DSE code got a slb fault from
td->td_pcb-> would things still be okay? (Nested trap
handling.)

If not, does something need to be done to guarantee
that td->td_pcb-> will not have an slb fault in the
above code?


===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-ppc
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.