Merge pull request #1 from anarsoul/master

Fix build on 4.13
This commit is contained in:
Icenowy Zheng 2017-10-21 00:35:57 +08:00 committed by GitHub
commit 46af4a47fb
2 changed files with 32 additions and 1 deletions

View file

@ -23,6 +23,7 @@
#include <linux/fs.h> #include <linux/fs.h>
#endif #endif
#include <drv_types.h> #include <drv_types.h>
#include <linux/of.h>
u8 RTW_WPA_OUI_TYPE[] = { 0x00, 0x50, 0xf2, 1 }; u8 RTW_WPA_OUI_TYPE[] = { 0x00, 0x50, 0xf2, 1 };

View file

@ -792,6 +792,9 @@ check_bss:
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) || defined(COMPAT_KERNEL_RELEASE) #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) || defined(COMPAT_KERNEL_RELEASE)
struct wiphy *wiphy = pwdev->wiphy; struct wiphy *wiphy = pwdev->wiphy;
struct ieee80211_channel *notify_channel; struct ieee80211_channel *notify_channel;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)
struct cfg80211_roam_info roam_info = {};
#endif
u32 freq; u32 freq;
u16 channel = cur_network->network.Configuration.DSConfig; u16 channel = cur_network->network.Configuration.DSConfig;
@ -800,6 +803,19 @@ check_bss:
#endif #endif
DBG_871X(FUNC_ADPT_FMT" call cfg80211_roamed\n", FUNC_ADPT_ARG(padapter)); DBG_871X(FUNC_ADPT_FMT" call cfg80211_roamed\n", FUNC_ADPT_ARG(padapter));
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0)
roam_info.channel = notify_channel;
roam_info.bssid = cur_network->network.MacAddress;
roam_info.req_ie =
pmlmepriv->assoc_req+sizeof(struct ieee80211_hdr_3addr)+2;
roam_info.req_ie_len =
pmlmepriv->assoc_req_len-sizeof(struct ieee80211_hdr_3addr)-2;
roam_info.resp_ie =
pmlmepriv->assoc_rsp+sizeof(struct ieee80211_hdr_3addr)+6;
roam_info.resp_ie_len =
pmlmepriv->assoc_rsp_len-sizeof(struct ieee80211_hdr_3addr)-6;
cfg80211_roamed(padapter->pnetdev, &roam_info, GFP_ATOMIC);
#else
cfg80211_roamed(padapter->pnetdev cfg80211_roamed(padapter->pnetdev
#if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) || defined(COMPAT_KERNEL_RELEASE) #if LINUX_VERSION_CODE > KERNEL_VERSION(2, 6, 39) || defined(COMPAT_KERNEL_RELEASE)
, notify_channel , notify_channel
@ -810,6 +826,7 @@ check_bss:
, pmlmepriv->assoc_rsp+sizeof(struct rtw_ieee80211_hdr_3addr)+6 , pmlmepriv->assoc_rsp+sizeof(struct rtw_ieee80211_hdr_3addr)+6
, pmlmepriv->assoc_rsp_len-sizeof(struct rtw_ieee80211_hdr_3addr)-6 , pmlmepriv->assoc_rsp_len-sizeof(struct rtw_ieee80211_hdr_3addr)-6
, GFP_ATOMIC); , GFP_ATOMIC);
#endif
} }
else else
{ {
@ -1882,7 +1899,11 @@ enum nl80211_iftype {
*/ */
static int cfg80211_rtw_change_iface(struct wiphy *wiphy, static int cfg80211_rtw_change_iface(struct wiphy *wiphy,
struct net_device *ndev, struct net_device *ndev,
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
enum nl80211_iftype type,
#else
enum nl80211_iftype type, u32 *flags, enum nl80211_iftype type, u32 *flags,
#endif
struct vif_params *params) struct vif_params *params)
{ {
enum nl80211_iftype old_type; enum nl80211_iftype old_type;
@ -3996,7 +4017,12 @@ static int
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0)) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 1, 0))
unsigned char name_assign_type, unsigned char name_assign_type,
#endif #endif
enum nl80211_iftype type, u32 *flags, struct vif_params *params) #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 12, 0))
enum nl80211_iftype type, struct vif_params *params
#else
enum nl80211_iftype type, u32 *flags, struct vif_params *params
#endif
)
{ {
int ret = 0; int ret = 0;
struct net_device* ndev = NULL; struct net_device* ndev = NULL;
@ -6486,7 +6512,11 @@ static void rtw_cfg80211_preinit_wiphy(_adapter *adapter, struct wiphy *wiphy)
#endif #endif
#if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0)) #if defined(CONFIG_PM) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 0, 0))
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,12,0))
wiphy->max_sched_scan_reqs = 1;
#else
wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN; wiphy->flags |= WIPHY_FLAG_SUPPORTS_SCHED_SCAN;
#endif
#ifdef CONFIG_PNO_SUPPORT #ifdef CONFIG_PNO_SUPPORT
wiphy->max_sched_scan_ssids = MAX_PNO_LIST_COUNT; wiphy->max_sched_scan_ssids = MAX_PNO_LIST_COUNT;
#endif #endif