diff --git a/src/ap/hw_features.c b/src/ap/hw_features.c index d319ce007..54a79b09d 100644 --- a/src/ap/hw_features.c +++ b/src/ap/hw_features.c @@ -111,10 +111,13 @@ int hostapd_get_hw_features(struct hostapd_iface *iface) if ((feature->channels[j].flag & HOSTAPD_CHAN_RADAR) && dfs_enabled) { dfs = 1; - } else if (feature->channels[j].flag & - (HOSTAPD_CHAN_NO_IBSS | - HOSTAPD_CHAN_PASSIVE_SCAN | - HOSTAPD_CHAN_RADAR)) { + } else if (((feature->channels[j].flag & + HOSTAPD_CHAN_RADAR) && + !(iface->drv_flags & + WPA_DRIVER_FLAGS_DFS_OFFLOAD)) || + (feature->channels[j].flag & + (HOSTAPD_CHAN_NO_IBSS | + HOSTAPD_CHAN_PASSIVE_SCAN))) { feature->channels[j].flag |= HOSTAPD_CHAN_DISABLED; }