Initialize and destroy drm_global_mutex on module init/fini.
Restore config `drm' attribute in sys/conf/files.

Not sure why this started to be necessary after the merge, but
whatever...
Fix sense of atomic_cas loop condition and use kassertmsg for krefs.
Destroy context_idr and mm.lock in i915_driver_postclose.
Decrement sc_opencount on drm_close.
Define page_to_phys in Linux <asm/io.h>.
Add some copy_to/from_user variants to Linux <asm/uaccess.h>.
Add trace_i915_gem_object_unbind.
Add ERESTARTSYS as a Linuxoid alias for ERESTART.
Fix Linux atomic set/clear/change_bit to work on arrays.
Add Linuxoid non-atomic __set/clear_bit to <linux/bitops.h>.
More miscellaneous Linux header cruft.  See patch for details.
Fix definition of Linux PAGE_ALIGN in <linux/mm.h>.

Can't use uvm round_page because that depends on PAGE_MASK, whose
sense we have to invert for Linux!  Plurgh.
Rename delayed_work::dw_work to delayed_work::work for Linux source.
Implement a bus_dmamem_wire_uvm_object hack.

This is fit only for x86 at the moment -- it parrots the x86
bus_dmamem_alloc code but with uvm_obj_wirepages instead of
uvm_pglistalloc.

XXX THIS IS A MEGA-KLUDGE THAT NEEDS TO BE DONE PROPERLY.
Rework Intel GTT abstraction to use bus_dma.
Implement drm_cache.c, for x86 only at the moment.
Add missing includes to i915_gem.c.
Add missing includes to i915_gem_execbuffer.c.
intel_ringbuffer.c needs <asm/param.h> for HZ.