On Mon, Sep 10, 2012 at 2:25 PM, Johannes Berg <johannes@xxxxxxxxxxxxxxxx> wrote: > >> +static int >> +ieee80211_ap_process_chanswitch(struct wiphy *wiphy, >> + struct net_device *dev, >> + struct ieee80211_ap_ch_switch *ap_ch_switch) >> +{ >> + struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); >> + struct ieee80211_local *local = sdata->local; >> + >> + if (!local->ops->channel_switch) >> + return -EOPNOTSUPP; >> + >> + if (!ap_ch_switch || !ap_ch_switch->channel) >> + return -EINVAL; >> + >> + drv_ap_channel_switch(local, ap_ch_switch); >> + return 0; > > errors are not possible? > driver is not allowed to fail here. >> +void ieee80211_ap_ch_switch_done(struct ieee80211_vif *vif, >> + struct ieee80211_channel *new_channel, >> + enum nl80211_channel_type type) >> +{ >> + struct ieee80211_sub_if_data *sdata = vif_to_sdata(vif); >> + struct ieee80211_local *local = sdata->local; >> + >> + if (WARN_ON(sdata->vif.type != NL80211_IFTYPE_AP)) >> + return; >> + >> + /* update the device channel directly */ >> + mutex_lock(&local->mtx); >> + local->oper_channel = local->hw.conf.channel = new_channel; >> + local->_oper_channel_type = type; >> + mutex_unlock(&local->mtx); >> + >> + cfg80211_ch_switch_notify(sdata->dev, new_channel->center_freq, type); >> + trace_api_ap_ch_switch_done(sdata, new_channel->center_freq); > > tracing last seems very strange > will reorder. -- Thanks, Victor. -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html