CVSROOT: /cvs Module name: src Changes by: kette...@cvs.openbsd.org 2021/05/11 12:21:12
Modified files: sys/arch/powerpc64/include: pmap.h sys/arch/powerpc64/powerpc64: pmap.c trap.c Log message: A Data Segment Interrupt does not indicate whether it was the result of a read or a write fault. Unfortunately that means we can't call uvm_fault(), as we have to pass the right access_type. In particular, passing PROT_READ for write access on a write-only page will fail. Fix this issue by inserting an appropriate SLB entry when a mapping exists at the fault address. A subsequent Data Storage Interrupt will call uvm_fault() to insert a mapping for the page into the page tables. Fixes the sys/kern/fork-exit regress test. Debugging done by bluhm@ and patrick@ ok bluhm@