- Fix a race in witness_checkorder() where, between the PCPU_GET() and PCPU_PTR() curthread can migrate on another CPU and get incorrect results.
- Fix a similar race into witness_warn().
- Fix the interlock's checks bypassing by correctly using the appropriate children even when the lock_list chunk to be explored is not the first one.
- Allow witness_warn() to work with spinlocks too.
Bugs found by: tegge
Submitted by: jhb, tegge
Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com>