7 changed files with 207 additions and 0 deletions
			
			
		| @ -0,0 +1,24 @@ | |||||
|  | --- a/include/ieee80211.h
 | ||||
|  | +++ b/include/ieee80211.h
 | ||||
|  | @@ -1314,18 +1314,18 @@ enum ieee80211_state {
 | ||||
|  |  (((Addr[2]) & 0xff) == 0xff) && (((Addr[3]) & 0xff) == 0xff) && (((Addr[4]) & 0xff) == 0xff) && \ | ||||
|  |  (((Addr[5]) & 0xff) == 0xff)) | ||||
|  |  #else | ||||
|  | -extern __inline int is_multicast_mac_addr(const u8 *addr)
 | ||||
|  | +static inline int is_multicast_mac_addr(const u8 *addr)
 | ||||
|  |  { | ||||
|  |          return ((addr[0] != 0xff) && (0x01 & addr[0])); | ||||
|  |  } | ||||
|  |   | ||||
|  | -extern __inline int is_broadcast_mac_addr(const u8 *addr)
 | ||||
|  | +static inline int is_broadcast_mac_addr(const u8 *addr)
 | ||||
|  |  { | ||||
|  |  	return ((addr[0] == 0xff) && (addr[1] == 0xff) && (addr[2] == 0xff) &&   \ | ||||
|  |  		(addr[3] == 0xff) && (addr[4] == 0xff) && (addr[5] == 0xff)); | ||||
|  |  } | ||||
|  |   | ||||
|  | -extern __inline int is_zero_mac_addr(const u8 *addr)
 | ||||
|  | +static inline int is_zero_mac_addr(const u8 *addr)
 | ||||
|  |  { | ||||
|  |  	return ((addr[0] == 0x00) && (addr[1] == 0x00) && (addr[2] == 0x00) &&   \ | ||||
|  |  		(addr[3] == 0x00) && (addr[4] == 0x00) && (addr[5] == 0x00)); | ||||
| @ -0,0 +1,44 @@ | |||||
|  | From 9dcc95a6fc5e41fe941152036fa39a409ba68068 Mon Sep 17 00:00:00 2001 | ||||
|  | From: Masashi Honma <masashi.honma@gmail.com> | ||||
|  | Date: Sun, 25 Sep 2016 18:56:40 +0900 | ||||
|  | Subject: [PATCH 1/2] Add support for kernels >= 4.8 | ||||
|  | 
 | ||||
|  | This patch fix compilation failure caused by modification of | ||||
|  | cfg80211_scan_done() prototype. | ||||
|  | 
 | ||||
|  | Signed-off-by: Masashi Honma <masashi.honma@gmail.com> | ||||
|  | ---
 | ||||
|  |  os_dep/linux/ioctl_cfg80211.c | 9 +++++++++ | ||||
|  |  1 file changed, 9 insertions(+) | ||||
|  | 
 | ||||
|  | diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
 | ||||
|  | index e9f74df..b693a57 100644
 | ||||
|  | --- a/os_dep/linux/ioctl_cfg80211.c
 | ||||
|  | +++ b/os_dep/linux/ioctl_cfg80211.c
 | ||||
|  | @@ -1978,6 +1978,9 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted)
 | ||||
|  |  { | ||||
|  |  	struct rtw_wdev_priv *pwdev_priv = adapter_wdev_data(adapter); | ||||
|  |  	_irqL	irqL; | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0))
 | ||||
|  | +	struct cfg80211_scan_info info;
 | ||||
|  | +#endif // (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0))
 | ||||
|  |   | ||||
|  |  	_enter_critical_bh(&pwdev_priv->scan_req_lock, &irqL); | ||||
|  |  	if (pwdev_priv->scan_request != NULL) { | ||||
|  | @@ -1992,7 +1995,13 @@ void rtw_cfg80211_indicate_scan_done(_adapter *adapter, bool aborted)
 | ||||
|  |  		} | ||||
|  |  		else | ||||
|  |  		{ | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0))
 | ||||
|  | +			memset(&info, 0, sizeof(info));
 | ||||
|  | +			info.aborted = aborted;
 | ||||
|  | +			cfg80211_scan_done(pwdev_priv->scan_request, &info);
 | ||||
|  | +#else // (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0))
 | ||||
|  |  			cfg80211_scan_done(pwdev_priv->scan_request, aborted); | ||||
|  | +#endif // (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 8, 0))
 | ||||
|  |  		} | ||||
|  |   | ||||
|  |  		pwdev_priv->scan_request = NULL; | ||||
|  | -- 
 | ||||
|  | 2.10.0.windows.1 | ||||
|  | 
 | ||||
| @ -0,0 +1,23 @@ | |||||
|  | --- a/os_dep/linux/os_intfs.c	2018-10-23 21:11:56.009471377 +0200
 | ||||
|  | +++ b/os_dep/linux/os_intfs.c	2018-10-23 21:12:40.189684185 +0200
 | ||||
|  | @@ -1190,7 +1190,11 @@
 | ||||
|  |  	return dscp >> 5; | ||||
|  |  } | ||||
|  |   | ||||
|  | -
 | ||||
|  | +#if (LINUX_VERSION_CODE>=KERNEL_VERSION(4,19,0))
 | ||||
|  | +static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb,
 | ||||
|  | +				struct net_device *sb_dev,
 | ||||
|  | +				select_queue_fallback_t fallback
 | ||||
|  | +#else
 | ||||
|  |  static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb | ||||
|  |  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) | ||||
|  |  	, void *accel_priv | ||||
|  | @@ -1198,6 +1202,7 @@
 | ||||
|  |  	, select_queue_fallback_t fallback | ||||
|  |  	#endif | ||||
|  |  #endif | ||||
|  | +#endif
 | ||||
|  |  ) | ||||
|  |  { | ||||
|  |  	_adapter	*padapter = rtw_netdev_priv(dev); | ||||
| @ -0,0 +1,34 @@ | |||||
|  | diff --git a/include/wifi.h b/include/wifi.h
 | ||||
|  | index ecb93a364f57..859efa6658ff 100644
 | ||||
|  | --- a/include/wifi.h
 | ||||
|  | +++ b/include/wifi.h
 | ||||
|  | @@ -1011,7 +1011,11 @@ typedef enum _HT_CAP_AMPDU_DENSITY {
 | ||||
|  |   * According to IEEE802.11n spec size varies from 8K to 64K (in powers of 2) | ||||
|  |   */ | ||||
|  |  #define IEEE80211_MIN_AMPDU_BUF 0x8 | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
 | ||||
|  | +#define IEEE80211_MAX_AMPDU_BUF 0x100
 | ||||
|  | +#else
 | ||||
|  |  #define IEEE80211_MAX_AMPDU_BUF 0x40 | ||||
|  | +#endif
 | ||||
|  |   | ||||
|  |   | ||||
|  |  /* Spatial Multiplexing Power Save Modes */ | ||||
|  | diff --git a/os_dep/linux/ioctl_cfg80211.c b/os_dep/linux/ioctl_cfg80211.c
 | ||||
|  | index 4069d5489873..7c6f1c21fa55 100644
 | ||||
|  | --- a/os_dep/linux/ioctl_cfg80211.c
 | ||||
|  | +++ b/os_dep/linux/ioctl_cfg80211.c
 | ||||
|  | @@ -327,6 +327,13 @@ static const struct ieee80211_txrx_stypes
 | ||||
|  |  }; | ||||
|  |  #endif | ||||
|  |   | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,20,0))
 | ||||
|  | +static inline void get_monotonic_boottime(struct timespec *ts)
 | ||||
|  | +{
 | ||||
|  | +	*ts = ktime_to_timespec(ktime_get_boottime());
 | ||||
|  | +}
 | ||||
|  | +#endif
 | ||||
|  | +
 | ||||
|  |  static u64 rtw_get_systime_us(void) | ||||
|  |  { | ||||
|  |  #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 39)) | ||||
| @ -0,0 +1,16 @@ | |||||
|  | diff --git a/os_dep/linux/rtw_android.c b/os_dep/linux/rtw_android.c
 | ||||
|  | index a4affae2f8cb..0996159d1379 100644
 | ||||
|  | --- a/os_dep/linux/rtw_android.c
 | ||||
|  | +++ b/os_dep/linux/rtw_android.c
 | ||||
|  | @@ -621,7 +621,11 @@ int rtw_android_priv_cmd(struct net_device *net, struct ifreq *ifr, int cmd)
 | ||||
|  |  		goto exit; | ||||
|  |  	} | ||||
|  |   | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5, 0, 0))
 | ||||
|  | +	if (!access_ok(priv_cmd.buf, priv_cmd.total_len)) {
 | ||||
|  | +#else
 | ||||
|  |  	if (!access_ok(VERIFY_READ, priv_cmd.buf, priv_cmd.total_len)) { | ||||
|  | +#endif
 | ||||
|  |  		RTW_INFO("%s: failed to access memory\n", __FUNCTION__); | ||||
|  |  		ret = -EFAULT; | ||||
|  |  		goto exit; | ||||
| @ -0,0 +1,49 @@ | |||||
|  | diff --git a/os_dep/osdep_service.c b/os_dep/osdep_service.c
 | ||||
|  | index dcd26b6a15b4..c44b5f593135 100644
 | ||||
|  | --- a/os_dep/osdep_service.c
 | ||||
|  | +++ b/os_dep/osdep_service.c
 | ||||
|  | @@ -2076,7 +2076,13 @@ static int isFileReadable(const char *path, u32 *sz)
 | ||||
|  |  		ret = PTR_ERR(fp); | ||||
|  |  	else { | ||||
|  |  		oldfs = get_fs(); | ||||
|  | -		set_fs(get_ds());
 | ||||
|  | +		set_fs(
 | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
 | ||||
|  | +			KERNEL_DS
 | ||||
|  | +#else
 | ||||
|  | +			get_ds()
 | ||||
|  | +#endif
 | ||||
|  | +			);
 | ||||
|  |   | ||||
|  |  		if (1 != readFile(fp, &buf, 1)) | ||||
|  |  			ret = PTR_ERR(fp); | ||||
|  | @@ -2114,7 +2120,13 @@ static int retriveFromFile(const char *path, u8 *buf, u32 sz)
 | ||||
|  |  			RTW_INFO("%s openFile path:%s fp=%p\n", __FUNCTION__, path , fp); | ||||
|  |   | ||||
|  |  			oldfs = get_fs(); | ||||
|  | -			set_fs(get_ds());
 | ||||
|  | +			set_fs(
 | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
 | ||||
|  | +				KERNEL_DS
 | ||||
|  | +#else
 | ||||
|  | +				get_ds()
 | ||||
|  | +#endif
 | ||||
|  | +				);
 | ||||
|  |  			ret = readFile(fp, buf, sz); | ||||
|  |  			set_fs(oldfs); | ||||
|  |  			closeFile(fp); | ||||
|  | @@ -2149,7 +2161,13 @@ static int storeToFile(const char *path, u8 *buf, u32 sz)
 | ||||
|  |  			RTW_INFO("%s openFile path:%s fp=%p\n", __FUNCTION__, path , fp); | ||||
|  |   | ||||
|  |  			oldfs = get_fs(); | ||||
|  | -			set_fs(get_ds());
 | ||||
|  | +			set_fs(
 | ||||
|  | +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(5,1,0))
 | ||||
|  | +				KERNEL_DS
 | ||||
|  | +#else
 | ||||
|  | +				get_ds()
 | ||||
|  | +#endif
 | ||||
|  | +				);
 | ||||
|  |  			ret = writeFile(fp, buf, sz); | ||||
|  |  			set_fs(oldfs); | ||||
|  |  			closeFile(fp); | ||||
| @ -0,0 +1,17 @@ | |||||
|  | diff --git a/os_dep/linux/os_intfs.c b/os_dep/linux/os_intfs.c
 | ||||
|  | index 24e7cf0c650b..a47aeca1f393 100644
 | ||||
|  | --- a/os_dep/linux/os_intfs.c
 | ||||
|  | +++ b/os_dep/linux/os_intfs.c
 | ||||
|  | @@ -1192,8 +1192,10 @@ unsigned int rtw_classify8021d(struct sk_buff *skb)
 | ||||
|  |   | ||||
|  |  #if (LINUX_VERSION_CODE>=KERNEL_VERSION(4,19,0)) | ||||
|  |  static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb, | ||||
|  | -				struct net_device *sb_dev,
 | ||||
|  | -				select_queue_fallback_t fallback
 | ||||
|  | +				struct net_device *sb_dev
 | ||||
|  | +#if (LINUX_VERSION_CODE < KERNEL_VERSION(5,2,0))
 | ||||
|  | +				, select_queue_fallback_t fallback
 | ||||
|  | +#endif
 | ||||
|  |  #else | ||||
|  |  static u16 rtw_select_queue(struct net_device *dev, struct sk_buff *skb | ||||
|  |  #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 13, 0) | ||||
					Loading…
					
					
				
		Reference in new issue