[PATCH v2 01/16] wcn36xx: Add main.c

Eugene Krasnikov k.eugene.e at gmail.com
Fri Aug 23 05:42:56 EDT 2013


>> +static const struct ieee80211_iface_limit if_limits[] = {
>> +     { .max = 2, .types = BIT(NL80211_IFTYPE_STATION) },
>> +     { .max = 1, .types = BIT(NL80211_IFTYPE_AP) },
>> +};
>> +
>> +static const struct ieee80211_iface_combination if_comb = {
>> +     .limits = if_limits,
>> +     .n_limits = ARRAY_SIZE(if_limits),
>> +     .max_interfaces = 2,
>> +     .num_different_channels = 1,
>> +};
>
>> +static int wcn36xx_add_interface(struct ieee80211_hw *hw,
>> +                              struct ieee80211_vif *vif)
>> +{
>> +     struct wcn36xx *wcn = hw->priv;
>> +
>> +     wcn36xx_dbg(WCN36XX_DBG_MAC, "mac add interface vif %p type %d\n",
>> +                 vif, vif->type);
>> +
>> +     wcn->current_vif = (struct wcn36xx_vif *)vif->drv_priv;
>
> If you actually support two interfaces (and that looks more likely now)
> I don't think this "current_vif" makes any sense at all, it'll be
> randomly pointing to one or the other depending on which one was added
> last.
>
>> +static int wcn36xx_sta_add(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
>> +                        struct ieee80211_sta *sta)
>> +{
>> +     struct wcn36xx *wcn = hw->priv;
>> +
>> +     wcn36xx_dbg(WCN36XX_DBG_MAC, "mac sta add vif %p sta %pM\n",
>> +                 vif, sta->addr);
>> +
>> +     wcn->sta = (struct wcn36xx_sta *)sta->drv_priv;
>> +     wcn->aid = sta->aid;
>
> You support more than one interface and AP, but there's no way this code
> can then be correct. It seems to me that you're really only supporting a
> single client interface correctly right now.

Exactly. So far wcn36xx supports only one interface.

-- 
Best regards,
Eugene



More information about the wcn36xx mailing list