Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 28 Mar 2005 16:39:55 -0600
From:      "Jeremy Messenger" <mezz7@cox.net>
To:        "John Baldwin" <jhb@freebsd.org>
Cc:        arch@freebsd.org
Subject:   Re: Fixing DRM after phk's drive-by axeing
Message-ID:  <opsodc8tjq9aq2h7@mezz.mezzweb.com>
In-Reply-To: <200503281734.45926.jhb@FreeBSD.org>
References:  <200503281734.45926.jhb@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 28 Mar 2005 17:34:45 -0500, John Baldwin <jhb@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@cox.net  -  mezz@FreeBSD.org
FreeBSD GNOME Team
http://www.FreeBSD.org/gnome/  -  gnome@FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?opsodc8tjq9aq2h7>