Make ranged functions pass the assignment expression to checks.
So there are certain functions where the return value means something.
For example, a return value of 0 might me a lock was taken and -EINTR
mean the lock was not taken.
There is a call back for checks interested in those kinds of functions.
The problem was I wanted to use that for dev_hold(). Some functions
return a device that is held or else they return NULL.
I modified it so that the check_held_dev.c check can get the whole
assignment and can set the implications so that a NULL return means
the device is not held and 1 to POINTER_MAX means that it is held.
Signed-off-by: Dan Carpenter <error27@gmail.com>