X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/f67f1954fb20ab83cc5e7265ba70c49fb1a82061..ec7be8a5b2db78dadc0d38ff3cfc51be89535fff:/package/hostapd/patches/540-optional_rfkill.patch diff --git a/package/hostapd/patches/540-optional_rfkill.patch b/package/hostapd/patches/540-optional_rfkill.patch index dd460835c..028c16075 100644 --- a/package/hostapd/patches/540-optional_rfkill.patch +++ b/package/hostapd/patches/540-optional_rfkill.patch @@ -1,16 +1,16 @@ --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c -@@ -129,7 +129,9 @@ struct wpa_driver_nl80211_data { - int ifindex; +@@ -198,7 +198,9 @@ struct wpa_driver_nl80211_data { int if_removed; int if_disabled; + int ignore_if_down_event; +#ifdef CONFIG_RFKILL struct rfkill_data *rfkill; +#endif struct wpa_driver_capa capa; int has_capability; -@@ -1750,7 +1752,7 @@ err1: +@@ -2203,7 +2205,7 @@ err3: return -1; } @@ -19,7 +19,7 @@ static void wpa_driver_nl80211_rfkill_blocked(void *ctx) { wpa_printf(MSG_DEBUG, "nl80211: RFKILL blocked"); -@@ -1772,6 +1774,7 @@ static void wpa_driver_nl80211_rfkill_un +@@ -2226,6 +2228,7 @@ static void wpa_driver_nl80211_rfkill_un } /* rtnetlink ifup handler will report interface as enabled */ } @@ -27,25 +27,25 @@ static void nl80211_get_phy_name(struct wpa_driver_nl80211_data *drv) -@@ -1820,7 +1823,9 @@ static void * wpa_driver_nl80211_init(vo +@@ -2283,7 +2286,9 @@ static void * wpa_driver_nl80211_init(vo + void *global_priv) { struct wpa_driver_nl80211_data *drv; - struct netlink_config *cfg; +#ifdef CONFIG_RFKILL struct rfkill_config *rcfg; +#endif struct i802_bss *bss; drv = os_zalloc(sizeof(*drv)); -@@ -1863,6 +1868,7 @@ static void * wpa_driver_nl80211_init(vo - goto failed; - } +@@ -2311,6 +2316,7 @@ static void * wpa_driver_nl80211_init(vo + + nl80211_get_phy_name(drv); +#ifdef CONFIG_RFKILL rcfg = os_zalloc(sizeof(*rcfg)); if (rcfg == NULL) goto failed; -@@ -1875,6 +1881,7 @@ static void * wpa_driver_nl80211_init(vo +@@ -2323,6 +2329,7 @@ static void * wpa_driver_nl80211_init(vo wpa_printf(MSG_DEBUG, "nl80211: RFKILL status not available"); os_free(rcfg); } @@ -53,17 +53,7 @@ if (wpa_driver_nl80211_finish_drv_init(drv)) goto failed; -@@ -1882,7 +1889,9 @@ static void * wpa_driver_nl80211_init(vo - return bss; - - failed: -+#ifdef CONFIG_RFKILL - rfkill_deinit(drv->rfkill); -+#endif - netlink_deinit(drv->netlink); - if (drv->ioctl_sock >= 0) - close(drv->ioctl_sock); -@@ -1985,10 +1994,12 @@ static int nl80211_register_action_frame +@@ -2445,10 +2452,12 @@ static int nl80211_register_action_frame } @@ -76,10 +66,10 @@ static int -@@ -2007,13 +2018,16 @@ wpa_driver_nl80211_finish_drv_init(struc +@@ -2475,13 +2484,16 @@ wpa_driver_nl80211_finish_drv_init(struc } - if (linux_set_iface_flags(drv->ioctl_sock, bss->ifname, 1)) { + if (linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1)) { +#ifdef CONFIG_RFKILL if (rfkill_is_blocked(drv->rfkill)) { wpa_printf(MSG_DEBUG, "nl80211: Could not yet enable " @@ -94,7 +84,7 @@ wpa_printf(MSG_ERROR, "nl80211: Could not set " "interface '%s' UP", bss->ifname); return -1; -@@ -2041,8 +2055,10 @@ wpa_driver_nl80211_finish_drv_init(struc +@@ -2510,8 +2522,10 @@ wpa_driver_nl80211_finish_drv_init(struc } if (send_rfkill_event) { @@ -105,26 +95,16 @@ } return 0; -@@ -2123,7 +2139,9 @@ static void wpa_driver_nl80211_deinit(vo +@@ -2596,7 +2610,9 @@ static void wpa_driver_nl80211_deinit(vo - netlink_send_oper_ifla(drv->netlink, drv->ifindex, 0, IF_OPER_UP); - netlink_deinit(drv->netlink); + netlink_send_oper_ifla(drv->global->netlink, drv->ifindex, 0, + IF_OPER_UP); +#ifdef CONFIG_RFKILL rfkill_deinit(drv->rfkill); +#endif eloop_cancel_timeout(wpa_driver_nl80211_scan_timeout, drv, drv->ctx); -@@ -5672,7 +5690,9 @@ static void *i802_init(struct hostapd_da - - failed: - nl80211_remove_monitor_interface(drv); -+#ifdef CONFIG_RFKILL - rfkill_deinit(drv->rfkill); -+#endif - netlink_deinit(drv->netlink); - if (drv->ioctl_sock >= 0) - close(drv->ioctl_sock); --- a/src/drivers/driver_wext.c +++ b/src/drivers/driver_wext.c @@ -702,7 +702,7 @@ static void wpa_driver_wext_event_rtm_de