* Have crit_exit() call an actual procedure instead of inlining it.
This doesn't seem to effect performance any and it reduces the
size of the kernel noticeably.

Modern cpus heavily optimize call/return paths these days and there
might even be advantages to the smaller code and branch-cache footprint.
The conditionals inside crit_exit() are nearly perfectly predicted
now that there is no differentiation between the N->(N-1) and 1->0 case.