diff options
Diffstat (limited to 'net/wireless/util.c')
-rw-r--r-- | net/wireless/util.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/net/wireless/util.c b/net/wireless/util.c index 6a750bc6bcfe..414c9f604df6 100644 --- a/net/wireless/util.c +++ b/net/wireless/util.c | |||
@@ -896,3 +896,28 @@ u16 cfg80211_calculate_bitrate(struct rate_info *rate) | |||
896 | /* do NOT round down here */ | 896 | /* do NOT round down here */ |
897 | return (bitrate + 50000) / 100000; | 897 | return (bitrate + 50000) / 100000; |
898 | } | 898 | } |
899 | |||
900 | int cfg80211_validate_beacon_int(struct cfg80211_registered_device *rdev, | ||
901 | u32 beacon_int) | ||
902 | { | ||
903 | struct wireless_dev *wdev; | ||
904 | int res = 0; | ||
905 | |||
906 | if (!beacon_int) | ||
907 | return -EINVAL; | ||
908 | |||
909 | mutex_lock(&rdev->devlist_mtx); | ||
910 | |||
911 | list_for_each_entry(wdev, &rdev->netdev_list, list) { | ||
912 | if (!wdev->beacon_interval) | ||
913 | continue; | ||
914 | if (wdev->beacon_interval != beacon_int) { | ||
915 | res = -EINVAL; | ||
916 | break; | ||
917 | } | ||
918 | } | ||
919 | |||
920 | mutex_unlock(&rdev->devlist_mtx); | ||
921 | |||
922 | return res; | ||
923 | } | ||