driver: fix remaining __user markups

This properly tags the needed __user pointers where needed.  The code is
now sparse clean.

Note, please verify I got all of this correct.  The amount of crazy __user pointer casting due to system call pointers is crazy.  I double checked this, and no code logic was changed, so the functionality should be identical.