kernel - Implement type-stable EXIS semantics for kfree_obj() - step 2
* Put an exislock_t in the kmalloc_slab structure and issue
exis_terminate() upon entering the slab on the full list.
* Do not return a full slab to the gcache until it becomes
exis_freeable().
This implements type-stable operation for objects allocated via the
kmalloc_obj() mechanism. Kernel code operating inside an
exis_hold() / exis_drop() sequence is guaranteed type-stability.
* Note that destroying a kmalloc_obj zone shreds any related slabs
regardless of their EXIS state. However, this is not a problem
for the zones we care about because they are global zones that
will never be destroyed.