• Aravind Iddamsetty's avatar
    drm/xe: Fix lockdep warning in xe_force_wake calls · 49e134e1
    Aravind Iddamsetty authored
    Use spin_lock_irqsave, spin_unlock_irqrestore
    
    Fix for below:
    [13994.811263] ========================================================
    [13994.811295] WARNING: possible irq lock inversion dependency detected
    [13994.811326] 6.6.0-rc3-xe #2 Tainted: G     U
    [13994.811358] --------------------------------------------------------
    [13994.811388] swapper/0/0 just changed the state of lock:
    [13994.811416] ffff895c7e044db8 (&cpuctx_lock){-...}-{2:2}, at:
    __perf_event_read+0xb7/0x3a0
    [13994.811494] but this lock took another, HARDIRQ-unsafe lock in the
    past:
    [13994.811528]  (&fw->lock){+.+.}-{2:2}
    [13994.811544]
    
                   and interrupts could create inverse lock ordering between
    them.
    
    [13994.811606]
                   other info that might help us debug this:
    [13994.811636]  Possible interrupt unsafe locking scenario:
    
    [13994.811667]        CPU0                    CPU1
    [13994.811691]        ----                    ----
    [13994.811715]   lock(&fw->lock);
    [13994.811744]                                local_irq_disable();
    [13994.811773]                                lock(&cpuctx_lock);
    [13994.811810]                                lock(&fw->lock);
    [13994.811846]   <Interrupt>
    [13994.811865]     lock(&cpuctx_lock);
    [13994.811895]
                    *** DEADLOCK ***
    
    v2: Use spin_lock in atomic context and spin_lock_irq in a non atomic
    context (Matthew Brost)
    
    v3: just use spin_lock_irqsave/restore
    
    Cc: Matthew Brost <matthew.brost@intel.com>
    Cc: Anshuman Gupta <anshuman.gupta@intel.com>
    Cc: Ville Syrjala <ville.syrjala@linux.intel.com>
    Reviewed-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    Signed-off-by: default avatarAravind Iddamsetty <aravind.iddamsetty@linux.intel.com>
    Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
    49e134e1
xe_force_wake.c 5.06 KB