]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC 287440:
authorjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 11 Sep 2015 00:20:15 +0000 (00:20 +0000)
committerjhb <jhb@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Fri, 11 Sep 2015 00:20:15 +0000 (00:20 +0000)
commit31cf25038d1e61251b0980879848d23edf313b5c
treef24564d81898be534143351cf312dfacc7169af7
parent767ab74985ffe737ae60d81984b62864962691dc
MFC 287440:
Currently the Linux character device mmap handling only supports mmap
operations that map a single page that has an associated vm_page_t.
This does not permit mapping larger regions (such as a PCI memory
BAR) and it does not permit mapping addresses beyond the top of RAM
(such as a 64-bit BAR located above the top of RAM).

Instead of using a single OBJT_DEVICE object and passing the physaddr via
the offset as a hack, create a new sglist and OBJT_SG object for each
mmap request. The requested memory attribute is applied to the object
thus affecting all pages mapped by the request.

Sponsored by: Chelsio

git-svn-id: svn://svn.freebsd.org/base/stable/10@287637 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/ofed/include/linux/linux_compat.c
sys/ofed/include/linux/mm.h