Commit 32a20d46 authored by Dedy Lansky's avatar Dedy Lansky Committed by Kalle Valo

wil6210: ignore firmware failure to gracefully stop AP

upon cfg80211_stop_ap, a graceful AP shutdown is requested from firmware
followed by firmware reset.
In case graceful request failed, error was returned to cfg80211.

The change is to return success in this scenario, because firmware
reset will anyhow shutdown the AP.
Signed-off-by: default avatarDedy Lansky <qca_dlansky@qca.qualcomm.com>
Signed-off-by: default avatarVladimir Kondratiev <qca_vkondrat@qca.qualcomm.com>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent c5e96c91
/* /*
* Copyright (c) 2012-2014 Qualcomm Atheros, Inc. * Copyright (c) 2012-2015 Qualcomm Atheros, Inc.
* *
* Permission to use, copy, modify, and/or distribute this software for any * Permission to use, copy, modify, and/or distribute this software for any
* purpose with or without fee is hereby granted, provided that the above * purpose with or without fee is hereby granted, provided that the above
...@@ -773,7 +773,6 @@ static int wil_cfg80211_start_ap(struct wiphy *wiphy, ...@@ -773,7 +773,6 @@ static int wil_cfg80211_start_ap(struct wiphy *wiphy,
static int wil_cfg80211_stop_ap(struct wiphy *wiphy, static int wil_cfg80211_stop_ap(struct wiphy *wiphy,
struct net_device *ndev) struct net_device *ndev)
{ {
int rc, rc1;
struct wil6210_priv *wil = wiphy_to_wil(wiphy); struct wil6210_priv *wil = wiphy_to_wil(wiphy);
wil_dbg_misc(wil, "%s()\n", __func__); wil_dbg_misc(wil, "%s()\n", __func__);
...@@ -783,14 +782,17 @@ static int wil_cfg80211_stop_ap(struct wiphy *wiphy, ...@@ -783,14 +782,17 @@ static int wil_cfg80211_stop_ap(struct wiphy *wiphy,
mutex_lock(&wil->mutex); mutex_lock(&wil->mutex);
rc = wmi_pcp_stop(wil); wmi_pcp_stop(wil);
__wil_down(wil); __wil_down(wil);
rc1 = __wil_up(wil); __wil_up(wil);
mutex_unlock(&wil->mutex); mutex_unlock(&wil->mutex);
return min(rc, rc1); /* some functions above might fail (e.g. __wil_up). Nevertheless, we
* return success because AP has stopped
*/
return 0;
} }
static int wil_cfg80211_del_station(struct wiphy *wiphy, static int wil_cfg80211_del_station(struct wiphy *wiphy,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment