• Michal Kazior's avatar
    ath10k: fix device teardown · 32270b61
    Michal Kazior authored
    This fixes interrupt-related issue when no
    interfaces were running thus the device was
    considered powered down.
    
    The power_down() function isn't really powering
    down the device. It simply assumed it won't
    interrupt. This wasn't true in some cases and
    could lead to paging failures upon FW indication
    interrupt (i.e. FW crash) because some structures
    aren't allocated in that device state.
    
    One reason for that was that ar_pci->started
    wasn't reset. The other is interrupts should've
    been masked when teardown starts.
    
    The patch reorganized interrupt setup and makes
    sure ar_pci->started is reset accordingly.
    Reported-by: default avatarBen Greear <greearb@candelatech.com>
    Signed-off-by: default avatarMichal Kazior <michal.kazior@tieto.com>
    Signed-off-by: default avatarKalle Valo <kvalo@qca.qualcomm.com>
    32270b61
pci.c 61 KB