drm - Refactor task_struct and implement mm_struct
* Change td->td_linux_task from an embedded structure to a pointer.
* Add p->p_linux_mm to support tracking mm_struct's.
* Change the 'current' macro to test td->td_linux_task and call
a support function, linux_task_alloc(), if it is NULL.
* Implement callbacks from the main kernel for thread exit and
process exit to support functions that drop the td_linux_task and
p_linux_mm pointers.
Initialize and clear these callbacks in the module load/unload
in drm_drv.c
* Implement required support functions in linux_sched.c