CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]    2017/05/17 02:13:33

Modified files:
        sys/uvm        : uvm_map.c 

Log message:
Raise "uvm_map_entry_kmem_pool" IPL level to IPL_VM to prevent a deadlock.

A deadlock can occur when the uvm_km_thread(), running without KERNEL_LOCK()
is interrupted by and non-MPSAFE handler while holding the pool's mutex.  At
that moment if another CPU is holding the KERNEL_LOCK() and wants to grab the
pool mutex, like in sys_kbind(), kaboom!

This is a temporaty solution, a more generate approach regarding mutexes and
un-KERNEL_LOCK()ed threads is beeing discussed.

Deadlock reported by sthen@, ok kettenis@

Reply via email to