Fixing DRM after phk's drive-by axeing
Jeremy Messenger
mezz7 at cox.net
Mon Mar 28 14:39:01 PST 2005
On Mon, 28 Mar 2005 17:34:45 -0500, John Baldwin <jhb at FreeBSD.org> wrote:
> I have a commit-ready version of the vm_mmap() changes I made to get drm
> to
> work happily with the newer, cleaner cdev stuff that phk has been
> working on.
> Basically, I've changed vm_mmap() so that it can accept either a vnode
> or a
> cdev as its handle argument rather than just vnodes. For the cdev case,
> it
> calls a vm_mmap_cdev() function that is a cut down version of
> vm_mmap_vnode(). One thing to note is that this case loses the MAC
> check for
> this type of mmap() (currently only done from DRM) since MAC only checks
> mmaps for vnodes. If cdev were to grow a label, then a mmap check for
> the
> cdev could be added I suppose, though the case of a mmap'ing a vnode that
> maps to a cdev would have to be adjusted to make that extra call as well.
>
> The first cut at the patch added a new MAP_CDEV flag to vm_mmap() that
> specified that the handle argument was a cdev rather than a vnode.
> However,
> this method requires that any kernel code that calls vm_mmap() passing in
> flags from userland has to verify that MAP_CDEV isn't passed in from
> userland
> to avoid potential DOSs from random user processes that result in kernel
> panics. Thus, I decided to change vm_mmap() to instead take a objtype_t
> parameter that specifies what type of object the handle argument is.
> Thus,
> for MAP_ANON, the code passes in OBJT_DEFAULT, for vnodes OBJT_VNODE,
> and for
> cdevs (in drm) OBJT_DEVICE. I've stuck the patch at
> http://www.FreeBSD.org/~jhb/patches/mmap_cdev3.patch and am using it
> locally
You had it typo for ',' instead '.'.. mmap_cdev3,patch
http://people.freebsd.org/~jhb/patches/mmap_cdev3,patch
Cheers,
Mezz
> to get X working on my laptop. Any objections or bikeshed^Wsuggestions
> for a
> different interface?
--
mezz7 at cox.net - mezz at FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/ - gnome at FreeBSD.org
More information about the freebsd-arch
mailing list