sleeping in atomic: add some new checks to warn about sleeping in atomic
This check has quite a few parts the track different information and then
the check to print the warnings is just one file.
1) check_preempt_info.c: This tracks if a function increments or
decrements the preempt count. It only stores return states
not caller info. It only tracks "simple" functions. If a function
increments the preempt count and then decrements it again that is
marked is &ignore.
2) check_preempt.c: This uses check_preempt_info.c and inserts caller_info
data when a function is called with preempt disabled.
3) check_sleep_info.c: This tracks which functions *always* sleep. If
they only sleep on some occasions that doesn't generate useful
warnings.
4) check_scheduling_in_atomic.c: This prints the warning if we sleep
in atomic context.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>