hi, On Thu, Dec 18, 2014 at 2:51 PM, Arend van Spriel <arend@xxxxxxxxxxxx> wrote: > From: Gautam Kumar Shukla <gautams@xxxxxxxxxxxx> > > The new feature flag allows the driver to indicate that it can > offload the 4-way handshake for WPA/RSN-PSK. With the > wiphy::features flag being used up this patch adds a new > field wiphy::ext_features. Considering extensibility this > new field is declared as a byte array. > > Signed-off-by: Gautam (Gautam Kumar) Shukla <gautams@xxxxxxxxxxxx> > Signed-off-by: Arend van Spriel <arend@xxxxxxxxxxxx> > --- > Hi Johannes, > > Here the proposed way to deal with new feature flags. Let > me know if this is suitable. > > Regards, > Arend > --- > @@ -3122,6 +3124,7 @@ struct wiphy { > u16 max_acl_mac_addrs; > > u32 flags, regulatory_flags, features; > + u8 ext_features[1]; > i think it would be nicer to use unsigned long (instead of u8) along with BITS_TO_LONGS > > /** > + * enum nl80211_ext_feature_index - bit index of extended features. > + * > + * @NL80211_EXT_FEATURE_4WAY_HANDSHAKE: the device supports 4way handshake > + */ > +enum nl80211_ext_feature_index { > + NL80211_EXT_FEATURE_4WAY_HANDSHAKE, > +}; just add the standard LAST/MAX defines here, and the bitmap size will be allocated automatically. > > +void cfg80211_ext_feature_set(struct wiphy *wiphy, > + enum nl80211_ext_feature_index ftidx) > +{ > + u8 *ft_byte; > + > + ft_byte = &wiphy->ext_features[ftidx / 8]; > + *ft_byte |= BIT(ftidx % 8); > +} > +EXPORT_SYMBOL(cfg80211_ext_feature_set); > + > +bool cfg80211_ext_feature_isset(struct wiphy *wiphy, > + enum nl80211_ext_feature_index ftidx) > +{ > + u8 ft_byte; > + > + ft_byte = wiphy->ext_features[ftidx / 8]; > + return (ft_byte & BIT(ftidx % 8)) != 0; > +} > +EXPORT_SYMBOL(cfg80211_ext_feature_isset); and these (or only the implementations) could be replaced by set_bit/test_bit. Eliad. -- 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