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

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 28 March 2005 05:39 pm, Jeremy Messenger wrote:
> 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

Heh, fixed.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



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