Date: Thu, 2 May 2019 14:40:46 -0700 From: Mark Millard <marklmi@yahoo.com> To: FreeBSD PowerPC ML <freebsd-ppc@freebsd.org>, Justin Hibbits <chmeeedalf@gmail.com> Subject: kernel mode EXC_DSE handling depends on td->td_pcb-> not slb faulting in setting up its slbmte use? Message-ID: <F5A63B10-9225-4EB7-8C7A-0B66E8965047@yahoo.com>
next in thread | raw e-mail | index | archive | help
/usr/src/sys/powerpc/powerpc/trap.c has: } else { /* Kernel Mode Traps */ KASSERT(cold || td->td_ucred !=3D 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 !=3D 0 && (frame->dar & SEGMENT_MASK) =3D=3D = 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? =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?F5A63B10-9225-4EB7-8C7A-0B66E8965047>