Re: Fixing DRM after phk's drive-by axeing

From: John Baldwin (jhb_at_FreeBSD.org)
Date: 03/29/05

  • Next message: Jeff Roberson: "Re: Freeing vnodes."
    To: "Jeremy Messenger" <mezz7@cox.net>
    Date: Mon, 28 Mar 2005 17:41:19 -0500
    
    

    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
    _______________________________________________
    freebsd-arch@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-arch
    To unsubscribe, send any mail to "freebsd-arch-unsubscribe@freebsd.org"
    

  • Next message: Jeff Roberson: "Re: Freeing vnodes."