-
Stéphane Eranian authored
the pfm_fasync() function must not lock the context and mask interrupts because the fasync_helper() function may allocate memory and this could lead to sleeping, due to SLAB_KERNEL memory type, if no memory is available. Going to sleep with interrupts mask is not allowed otherwise you have a deadlock. The locking of the context is not necessary in this function because it is protected by caller via get_fd()/put_fd(). The async_queue is also protected. Serialization to pfm_fasync() is also ensured by caller. The fix is to drop the PROTECT_CTX() and UNPROTECT_CTX() calls. signed-off-by: stephane eranian <eranian@hpl.hp.com> Signed-off-by: Tony Luck <tony.luck@intel.com>
6ba3093f