Driver may support different beacon interval on virtual interfaces. Allow setting different beacon interval per interface if driver has such support. Signed-off-by: Purushottam Kushwaha <pkushwah@xxxxxxxxxxxxxxxx> --- include/net/cfg80211.h | 5 +++++ net/wireless/util.c | 3 +++ 2 files changed, 8 insertions(+) diff --git a/include/net/cfg80211.h b/include/net/cfg80211.h index 9c23f4d3..2dd9152 100644 --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h @@ -3292,6 +3292,9 @@ struct wiphy_iftype_ext_capab { * @bss_select_support: bitmask indicating the BSS selection criteria supported * by the driver in the .connect() callback. The bit position maps to the * attribute indices defined in &enum nl80211_bss_select_attr. + * @support_different_beacon_interval: support of different beacon_interval on + * virtual interfaces. This should be set if driver wishes to advertise + * support for different beacon_interval. */ struct wiphy { /* assign these fields before you register the wiphy */ @@ -3421,6 +3424,8 @@ struct wiphy { u32 bss_select_support; + bool support_different_beacon_interval; + char priv[0] __aligned(NETDEV_ALIGN); }; diff --git a/net/wireless/util.c b/net/wireless/util.c index 2443ee3..253d303 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c @@ -1560,6 +1560,9 @@ int cfg80211_validate_beacon_int(struct cfg80211_registered_device *rdev, if (!beacon_int) return -EINVAL; + if (rdev->wiphy.support_different_beacon_interval) + return 0; + list_for_each_entry(wdev, &rdev->wiphy.wdev_list, list) { if (!wdev->beacon_interval) continue; -- 1.9.1 -- 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