aboutsummaryrefslogtreecommitdiffstats
path: root/samples/kdb
diff options
context:
space:
mode:
authorBrett Creeley <brett.creeley@intel.com>2019-02-08 12:50:34 -0800
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2019-02-25 08:56:01 -0800
commit0e04e8e14b558c84a7c7a64d3e94655f5071eef5 (patch)
tree579e884e2305a913fe1722f021302da0657ad3dd /samples/kdb
parentice: fix ice_remove_rule_internal vsi_list handling (diff)
downloadlinux-dev-0e04e8e14b558c84a7c7a64d3e94655f5071eef5.tar.xz
linux-dev-0e04e8e14b558c84a7c7a64d3e94655f5071eef5.zip
ice: fix issue where host reboots on unload when iommu=on
Currently if the kernel has the intel_iommu=on parameter set, on some platforms removing the driver causes a system reboot. In initialization we associate the control queue interrupts with the pf->hw_oicr_idx and enable the interrupts by setting the CAUSE_ENA bit. The problem comes on teardown because we are not clearing the CAUSE_ENA bit for the control queues, but the vector at pf->hw_oicr_idx (miscellaneous interrupt vector) gets disabled. Fix this by clearing the CAUSE_ENA bit in the appropriate control queue registers on when freeing the miscellaneous interrupt vector. Also, move the call to ice_free_irq_msix_misc() to after ice_deinit_sw() in ice_remove() because ice_deinit_sw() makes an AQ call, but ice_free_irq_msix_misc() disables the miscellaneous vector and it's associated interrupts. Also, create two small helper functions to enable and disable the control queue interrupts respectively. Signed-off-by: Brett Creeley <brett.creeley@intel.com> Signed-off-by: Anirudh Venkataramanan <anirudh.venkataramanan@intel.com> Tested-by: Andrew Bowers <andrewx.bowers@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'samples/kdb')
0 files changed, 0 insertions, 0 deletions