diff --git a/drivers/net/wireless/cnss2/pci.c b/drivers/net/wireless/cnss2/pci.c index 979c5e149796..08635be66660 100644 --- a/drivers/net/wireless/cnss2/pci.c +++ b/drivers/net/wireless/cnss2/pci.c @@ -685,6 +685,8 @@ int cnss_pci_check_link_status(struct cnss_pci_data *pci_priv) static void cnss_pci_select_window(struct cnss_pci_data *pci_priv, u32 offset) { + struct cnss_plat_data *plat_priv = pci_priv->plat_priv; + u32 window = (offset >> WINDOW_SHIFT) & WINDOW_VALUE_MASK; u32 window_enable = WINDOW_ENABLE_BIT | window; u32 val; @@ -703,7 +705,8 @@ static void cnss_pci_select_window(struct cnss_pci_data *pci_priv, u32 offset) if (val != window_enable) { cnss_pr_err("Failed to config window register to 0x%x, current value: 0x%x\n", window_enable, val); - if (!cnss_pci_check_link_status(pci_priv)) + if (!cnss_pci_check_link_status(pci_priv) && + !test_bit(CNSS_IN_PANIC, &plat_priv->driver_state)) CNSS_ASSERT(0); } }