Don't use cancel_delayed_work_sync() inside the channel switch
notifications as they are handled synchronously as part of the RX path.
Fix that by replacing it with cancel_delayed_work(). This should be safe
as we don't really care whether the work is already started and in such
case we would disconnect anyway.
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
                return;
        case NL80211_IFTYPE_STATION:
                iwl_mvm_csa_client_absent(mvm, vif);
-               cancel_delayed_work_sync(&mvmvif->csa_work);
+               cancel_delayed_work(&mvmvif->csa_work);
                ieee80211_chswitch_done(vif, true);
                break;
        default:
 
                        break;
                }
                iwl_mvm_csa_client_absent(mvm, te_data->vif);
-               cancel_delayed_work_sync(&mvmvif->csa_work);
+               cancel_delayed_work(&mvmvif->csa_work);
                ieee80211_chswitch_done(te_data->vif, true);
                break;
        default: