> From where is mag_purge() being called? It indeed seems as if the > caller didn't enter the critical section. mag_purge() is called from objcache_destroy(). objcache_destroy() as well as maglist_purge() doesn't call crit_enter().