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@

Reply via email to