From 970d23a858ac64e8e03c3fd47a164269434a9cd9 Mon Sep 17 00:00:00 2001 From: James Prestwood Date: Fri, 29 Sep 2023 09:19:57 -0700 Subject: [PATCH] wiphy: make wiphy_band_is_disabled return more descriptive The function wiphy_band_is_disabled() return was a bit misleading because if the band was not supported it would return true which could be misunderstood as the band is supported, but disabled. There was only one call site and because of this behavior wiphy_band_is_disabled needed to be paired with checking if the band was supported. To be more descriptive to the caller, wiphy_band_is_disabled() now returns an int and if the band isn't supported -ENOTSUP will be returned, otherwise 1 is returned if the band is disabled and 0 otherwise. --- src/station.c | 4 +--- src/wiphy.c | 8 ++++---- src/wiphy.h | 2 +- 3 files changed, 6 insertions(+), 8 deletions(-) diff --git a/src/station.c b/src/station.c index 12823142..a34d8ce3 100644 --- a/src/station.c +++ b/src/station.c @@ -1450,9 +1450,7 @@ static int station_quick_scan_trigger(struct station *station) * this since its so limited, so return an error which will fall back to * full autoconnect. */ - if (wiphy_get_supported_bands(station->wiphy) & BAND_FREQ_6_GHZ && - wiphy_band_is_disabled(station->wiphy, - BAND_FREQ_6_GHZ) && + if (wiphy_band_is_disabled(station->wiphy, BAND_FREQ_6_GHZ) == 1 && wiphy_country_is_unknown(station->wiphy) && known_6ghz) return -ENOTSUP; diff --git a/src/wiphy.c b/src/wiphy.c index dcd9e210..b4ee6110 100644 --- a/src/wiphy.c +++ b/src/wiphy.c @@ -570,7 +570,7 @@ const struct band_freq_attrs *wiphy_get_frequency_info_list( return bandp->freq_attrs; } -bool wiphy_band_is_disabled(const struct wiphy *wiphy, enum band_freq band) +int wiphy_band_is_disabled(const struct wiphy *wiphy, enum band_freq band) { struct band_freq_attrs attr; unsigned int i; @@ -578,7 +578,7 @@ bool wiphy_band_is_disabled(const struct wiphy *wiphy, enum band_freq band) bandp = wiphy_get_band(wiphy, band); if (!bandp) - return true; + return -ENOTSUP; for (i = 0; i < bandp->freqs_len; i++) { attr = bandp->freq_attrs[i]; @@ -587,10 +587,10 @@ bool wiphy_band_is_disabled(const struct wiphy *wiphy, enum band_freq band) continue; if (!attr.disabled) - return false; + return 0; } - return true; + return 1; } bool wiphy_supports_probe_resp_offload(struct wiphy *wiphy) diff --git a/src/wiphy.h b/src/wiphy.h index cabb21c4..d61516d5 100644 --- a/src/wiphy.h +++ b/src/wiphy.h @@ -111,7 +111,7 @@ const struct band_freq_attrs *wiphy_get_frequency_info_list( enum band_freq band, size_t *size); -bool wiphy_band_is_disabled(const struct wiphy *wiphy, enum band_freq band); +int wiphy_band_is_disabled(const struct wiphy *wiphy, enum band_freq band); bool wiphy_supports_probe_resp_offload(struct wiphy *wiphy); bool wiphy_can_transition_disable(struct wiphy *wiphy);