Date: Thu, 7 Feb 2019 17:30:44 +0000 (UTC) From: Leandro Lupori <luporl@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r343872 - head/sys/powerpc/powerpc Message-ID: <201902071730.x17HUi0P050250@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: luporl Date: Thu Feb 7 17:30:44 2019 New Revision: 343872 URL: https://svnweb.freebsd.org/changeset/base/343872 Log: [ppc64] fix /dev/kmem For direct mapped kernel addresses, ppc64 function was not performing the dmap to physical conversion, before jumping to the code that fetched the value from physical memory. Reviewed by: jhibbits Differential Revision: https://reviews.freebsd.org/D19086 Modified: head/sys/powerpc/powerpc/mem.c Modified: head/sys/powerpc/powerpc/mem.c ============================================================================== --- head/sys/powerpc/powerpc/mem.c Thu Feb 7 14:40:28 2019 (r343871) +++ head/sys/powerpc/powerpc/mem.c Thu Feb 7 17:30:44 2019 (r343872) @@ -112,9 +112,9 @@ memrw(struct cdev *dev, struct uio *uio, int flags) continue; } if (dev2unit(dev) == CDEV_MINOR_MEM) { -kmem_direct_mapped: v = uio->uio_offset; + v = uio->uio_offset; - off = uio->uio_offset & PAGE_MASK; +kmem_direct_mapped: off = v & PAGE_MASK; cnt = PAGE_SIZE - ((vm_offset_t)iov->iov_base & PAGE_MASK); cnt = min(cnt, PAGE_SIZE - off); @@ -137,8 +137,10 @@ kmem_direct_mapped: v = uio->uio_offset; else if (dev2unit(dev) == CDEV_MINOR_KMEM) { va = uio->uio_offset; - if ((va < VM_MIN_KERNEL_ADDRESS) || (va > virtual_end)) + if ((va < VM_MIN_KERNEL_ADDRESS) || (va > virtual_end)) { + v = DMAP_TO_PHYS(va); goto kmem_direct_mapped; + } va = trunc_page(uio->uio_offset); eva = round_page(uio->uio_offset
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201902071730.x17HUi0P050250>