Date: Tue, 5 Dec 2006 04:01:52 +0000 (UTC) From: Peter Grehan <grehan@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/powerpc/include pmap.h src/sys/powerpc/powerpc mmu_if.m mmu_oea.c pmap_dispatch.c uio_machdep.c Message-ID: <200612050401.kB541qwY042332@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
grehan 2006-12-05 04:01:52 UTC
FreeBSD src repository
Modified files:
sys/powerpc/include pmap.h
sys/powerpc/powerpc mmu_if.m mmu_oea.c pmap_dispatch.c
uio_machdep.c
Log:
Fix gdb issue where the i-cache was not being updated when a breakpoint
was written into a user's address space. The fix is to modify uiomove_fromphys
to sync the icache when an executable user-space page is written into.
Alan Cox suggested that there should probably be a higher-level interface
to this in the ptrace code, but agreed that this is an OK short-term solution.
Files changed:
pmap.h - declaration of pmap_page_executable()
pmap_dispatch.c - pass through the page_executable call to the mmu object
mmu_oea.c - implement the page_executable method by examining the PTE_EXEC
field in the vm_page_t
uio_machdep.c - in uiomove_fromphys(), if the op was a UIO_WRITE to user-space,
and if the page is executable, sync the icache since this is at the least
a breakpoint-write from gdb.
Reported by: marcel
Tested by: marcel, grehan on g3+g4
Discussed with: alc
MFC after: 2 weeks
Revision Changes Path
1.20 +1 -1 src/sys/powerpc/include/pmap.h
1.7 +14 -0 src/sys/powerpc/powerpc/mmu_if.m
1.114 +8 -0 src/sys/powerpc/powerpc/mmu_oea.c
1.9 +5 -0 src/sys/powerpc/powerpc/pmap_dispatch.c
1.6 +5 -1 src/sys/powerpc/powerpc/uio_machdep.c
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200612050401.kB541qwY042332>
