First I was considering splitting it up in smaller chunks for the reviews but that would be at least 7 different reviews. I put it all here for starters. If needed I can create smaller reviews before committing. I intend to commit in smaller chunks.
Included changes (roughly the chunks I intend to commit in):
cdev: Make modules unload without crash or memory leak. Works for drm.ko so far but graphic drivers still leak memory and doesn't clean up properly at unload.
timers: Update del_timer() according to upstream changes.
[committed] list: Add a couple of list functions.
[committed] sysinfo: Add linux sysinfo struct and helper method to populate it. NOTE: not sure what to put in si->totalhigh here...
tasklet: Use counter for enable/disable to match upstream. This requires moving the state out of the queue member.
[committed] pci: drm_pci functions has moved to kernel internals.
other: Various other minor updates.
This patch includes code and suggested improvements from https://reviews.freebsd.org/D18041 and will make D18041 obsolete.