aboutsummaryrefslogtreecommitdiffstats
path: root/package/hostapd/patches/450-reload_freq_change.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/hostapd/patches/450-reload_freq_change.patch')
-rw-r--r--package/hostapd/patches/450-reload_freq_change.patch23
1 files changed, 23 insertions, 0 deletions
diff --git a/package/hostapd/patches/450-reload_freq_change.patch b/package/hostapd/patches/450-reload_freq_change.patch
new file mode 100644
index 000000000..f11593fcd
--- /dev/null
+++ b/package/hostapd/patches/450-reload_freq_change.patch
@@ -0,0 +1,23 @@
+--- a/src/ap/hostapd.c
++++ b/src/ap/hostapd.c
+@@ -140,6 +140,20 @@ int hostapd_reload_config(struct hostapd
+ oldconf = hapd->iconf;
+ iface->conf = newconf;
+
++ hostapd_select_hw_mode(iface);
++ iface->freq = hostapd_hw_get_freq(hapd, newconf->channel);
++
++ if (hostapd_set_freq(hapd, newconf->hw_mode, iface->freq,
++ newconf->channel,
++ newconf->ieee80211n,
++ newconf->secondary_channel)) {
++ wpa_printf(MSG_ERROR, "Could not set channel for "
++ "kernel driver");
++ }
++
++ if (iface->current_mode)
++ hostapd_prepare_rates(iface, iface->current_mode);
++
+ for (j = 0; j < iface->num_bss; j++) {
+ hapd = iface->bss[j];
+ hapd->iconf = newconf;