diff --git a/include/osdep_service_linux.h b/include/osdep_service_linux.h index a9f3fbd..f81b731 100644 --- a/include/osdep_service_linux.h +++ b/include/osdep_service_linux.h @@ -68,6 +68,10 @@ #include #endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,11,0)) + #include +#endif + #ifdef RTK_DMP_PLATFORM #if (LINUX_VERSION_CODE > KERNEL_VERSION(2,6,12)) #include diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c index 0c97041..3a92353 100644 --- a/os_dep/linux/ioctl_cfg80211.c +++ b/os_dep/linux/ioctl_cfg80211.c @@ -6599,6 +6599,10 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy) wiphy->bands[IEEE80211_BAND_5GHZ] = rtw_spt_band_alloc(IEEE80211_BAND_5GHZ); #endif +#if defined(CONFIG_NET_NS) + wiphy->flags |= WIPHY_FLAG_NETNS_OK; +#endif //CONFIG_NET_NS + #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38) && LINUX_VERSION_CODE < KERNEL_VERSION(3,0,0)) wiphy->flags |= WIPHY_FLAG_SUPPORTS_SEPARATE_DEFAULT_KEYS; #endif diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c index c5bc146..394bcbf 100644 --- a/os_dep/linux/os_intfs.c +++ b/os_dep/linux/os_intfs.c @@ -1095,6 +1095,9 @@ int rtw_os_ndev_register(_adapter *adapter, char *name) rtw_init_netdev_name(ndev, name); _rtw_memcpy(ndev->dev_addr, adapter_mac_addr(adapter), ETH_ALEN); +#if defined(CONFIG_NET_NS) + dev_net_set(ndev, wiphy_net(adapter_to_wiphy(adapter))); +#endif //defined(CONFIG_NET_NS) /* Tell the network stack we exist */ if (register_netdev(ndev) != 0) { diff --git a/os_dep/linux/wifi_regd.c b/os_dep/linux/wifi_regd.c index bf45468..763b0b5 100644 --- a/os_dep/linux/wifi_regd.c +++ b/os_dep/linux/wifi_regd.c @@ -322,7 +322,12 @@ static void _rtw_reg_apply_flags(struct wiphy *wiphy) if (ch) ch->flags &= ~(IEEE80211_CHAN_DISABLED|IEEE80211_CHAN_NO_HT40PLUS| IEEE80211_CHAN_NO_HT40MINUS|IEEE80211_CHAN_NO_80MHZ| - IEEE80211_CHAN_NO_160MHZ|IEEE80211_CHAN_NO_IR); + IEEE80211_CHAN_NO_160MHZ| +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)) + IEEE80211_CHAN_NO_IBSS|IEEE80211_CHAN_PASSIVE_SCAN); +#else + IEEE80211_CHAN_NO_IR); +#endif } } }