Return-path: Received: from emh06.mail.saunalahti.fi ([62.142.5.116]:51167 "EHLO emh06.mail.saunalahti.fi" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756071Ab3KMRsH (ORCPT ); Wed, 13 Nov 2013 12:48:07 -0500 From: Luciano Coelho To: linux-wireless@vger.kernel.org, sw@simonwunderlich.de, johannes@sipsolutions.net, yeohchunyeow@gmail.com Cc: yeohchunyeow@cozybit.com Subject: [PATCH v4 2/5] mac80211: align ieee80211_ibss_csa_beacon() with ieee80211_csa_beacon() Date: Wed, 13 Nov 2013 19:47:28 +0200 Message-Id: <1384364851-31805-2-git-send-email-luciano.coelho@intel.com> (sfid-20131113_184813_817171_9C9F8CFE) In-Reply-To: <1384364851-31805-1-git-send-email-luciano.coelho@intel.com> References: <1384364851-31805-1-git-send-email-luciano.coelho@intel.com> Sender: linux-wireless-owner@vger.kernel.org List-ID: The return value of ieee80211_ibss_csa_beacon is not aligned with the return value of ieee80211_csa_beacon(). For consistency and to be able to use both functions with similar code, change ieee80211_ibss_csa_beacon() not to send the bss changed notification itself, but return what has changed so the caller can send the notification instead. Signed-off-by: Luciano Coelho --- In v4: * use goto out instead of sdata_unlock and return in the middle of the flow; (Ilan) net/mac80211/ibss.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c index 548eae8..3300209 100644 --- a/net/mac80211/ibss.c +++ b/net/mac80211/ibss.c @@ -522,7 +522,7 @@ int ieee80211_ibss_csa_beacon(struct ieee80211_sub_if_data *sdata, if (csa_settings) ieee80211_send_action_csa(sdata, csa_settings); - ieee80211_bss_info_change_notify(sdata, BSS_CHANGED_BEACON); + return BSS_CHANGED_BEACON; out: return ret; } @@ -559,11 +559,17 @@ int ieee80211_ibss_finish_csa(struct ieee80211_sub_if_data *sdata) /* generate the beacon */ err = ieee80211_ibss_csa_beacon(sdata, NULL); - sdata_unlock(sdata); if (err < 0) - return err; + goto out; - return 0; + if (err) { + ieee80211_bss_info_change_notify(sdata, err); + err = 0; + } +out: + sdata_unlock(sdata); + + return err; } void ieee80211_ibss_stop(struct ieee80211_sub_if_data *sdata) -- 1.8.4.rc3