aboutsummaryrefslogtreecommitdiff
path: root/sys/mips
diff options
context:
space:
mode:
authorJayachandran C. <jchandra@FreeBSD.org>2011-10-17 05:42:53 +0000
committerJayachandran C. <jchandra@FreeBSD.org>2011-10-17 05:42:53 +0000
commitc0959978ecbcbb27e7c2ec8cbef299264d2c18f8 (patch)
tree52d8255430f108030bed5887294c6890ee48b154 /sys/mips
parent3daee1d6c3783e32a226d145f85a887007f5754b (diff)
downloadsrc-c0959978ecbcbb27e7c2ec8cbef299264d2c18f8.tar.gz
src-c0959978ecbcbb27e7c2ec8cbef299264d2c18f8.zip
Fix for crash on MIPS /dev/mem read.
Reading /dev/mem in 64 bit kernel crashes. This is because the page used to call uiomove_fromphys() from memrw() does not have md.pv_list initialized correctly. The fix is to call pmap_page_init() on the page to initialize it.
Notes
Notes: svn path=/head/; revision=226459
Diffstat (limited to 'sys/mips')
-rw-r--r--sys/mips/mips/mem.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/mips/mips/mem.c b/sys/mips/mips/mem.c
index 7529a9ed5038..d40c424888af 100644
--- a/sys/mips/mips/mem.c
+++ b/sys/mips/mips/mem.c
@@ -87,6 +87,7 @@ memrw(struct cdev *dev, struct uio *uio, int flags)
GIANT_REQUIRED;
+ pmap_page_init(&m);
while (uio->uio_resid > 0 && !error) {
iov = uio->uio_iov;
if (iov->iov_len == 0) {