• Stéphane Eranian's avatar
    [IA64] perfmon2 fasync fix · 6ba3093f
    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: default avatarstephane eranian <eranian@hpl.hp.com>
    Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
    6ba3093f
perfmon.c 166 KB