Fixing DRM after phk's drive-by axeing

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

  • Next message: Jeremy Messenger: "Re: Fixing DRM after phk's drive-by axeing"
    To: arch@FreeBSD.org
    Date: Mon, 28 Mar 2005 17:34:45 -0500
    
    

    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
    to get X working on my laptop. Any objections or bikeshed^Wsuggestions for a
    different interface?

    -- 
    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: Jeremy Messenger: "Re: Fixing DRM after phk's drive-by axeing"