Re: [PATCH wireless-next 1/3] wifi: cfg80211: Add utility API to get radio index from channel

From: Johannes Berg
Date: Fri May 16 2025 - 03:51:59 EST


On Wed, 2025-05-14 at 16:58 +0530, Raj Kumar Bhagat wrote:
>
> +int cfg80211_get_radio_idx_by_chan(struct wiphy *wiphy,
> + const struct ieee80211_channel *chan)
> +{
> + const struct wiphy_radio *radio;
> + int i, j;
> + u32 freq;
> +
> + if (!chan)
> + return -EINVAL;
> +
> + freq = ieee80211_channel_to_khz(chan);
> + for (i = 0; i < wiphy->n_radio; i++) {
> + radio = &wiphy->radio[i];
> + for (j = 0; j < radio->n_freq_range; j++) {
> + if (freq >= radio->freq_range[j].start_freq &&
> + freq <= radio->freq_range[j].end_freq)
> + return i;
>

I believe we also discussed this in the past elsewhere, but I don't
think the the >= and <= can simultaneously be wrong. If the frequency
ranges for radios are adjacent, then the intervals here need to be half
open. I _think_ it should be < instead of <=, and therefore a half-open
interval of "[start, end[" (or "[start, end)" depending on your
preferred notation.)

johannes