diff --git a/drivers/net/wireless/cnss2/main.c b/drivers/net/wireless/cnss2/main.c index ecf840703129..7a273f69e892 100644 --- a/drivers/net/wireless/cnss2/main.c +++ b/drivers/net/wireless/cnss2/main.c @@ -1062,6 +1062,7 @@ static int cnss_driver_recovery_hdlr(struct cnss_plat_data *plat_priv, if (test_bit(CNSS_DRIVER_RECOVERY, &plat_priv->driver_state)) { cnss_pr_err("Recovery is already in progress\n"); + CNSS_ASSERT(0); ret = -EINVAL; goto out; } @@ -1114,7 +1115,8 @@ void cnss_schedule_recovery(struct device *dev, struct cnss_recovery_data *data; int gfp = GFP_KERNEL; - cnss_bus_update_status(plat_priv, CNSS_FW_DOWN); + if (!test_bit(CNSS_DEV_ERR_NOTIFY, &plat_priv->driver_state)) + cnss_bus_update_status(plat_priv, CNSS_FW_DOWN); if (test_bit(CNSS_DRIVER_UNLOADING, &plat_priv->driver_state) || test_bit(CNSS_DRIVER_IDLE_SHUTDOWN, &plat_priv->driver_state)) {