mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-10 06:09:23 -04:00
qcacmn: Use refcount APIs for sk_buff.users with 4.13+ kernels
The 4.13 Linux kernel changed the sk_buff.users type to refcount_t from atomic_t. Add conditional compilation based on kernel version to use appropriate refcount APIs for kernels 4.13+. Change-Id: I6918b4f45ffa247c74e54d8653a80821ceab1a86 CRs-Fixed: 2092031
This commit is contained in:
parent
ddfe26635d
commit
24c31020a2
3 changed files with 35 additions and 15 deletions
|
|
@ -919,13 +919,7 @@ static inline qdf_nbuf_t qdf_nbuf_copy(qdf_nbuf_t buf)
|
|||
* Return: data pointer of this buf where new data has to be
|
||||
* put, or NULL if there is not enough room in this buf.
|
||||
*/
|
||||
|
||||
static inline void qdf_nbuf_init_fast(qdf_nbuf_t nbuf)
|
||||
{
|
||||
atomic_set(&nbuf->users, 1);
|
||||
nbuf->data = nbuf->head + NET_SKB_PAD;
|
||||
skb_reset_tail_pointer(nbuf);
|
||||
}
|
||||
void qdf_nbuf_init_fast(qdf_nbuf_t nbuf);
|
||||
#endif /* WLAN_FEATURE_FASTPATH */
|
||||
|
||||
static inline void qdf_nbuf_tx_free(qdf_nbuf_t buf_list, int tx_err)
|
||||
|
|
|
|||
|
|
@ -1653,12 +1653,7 @@ static inline size_t __qdf_nbuf_tcp_tso_size(struct sk_buff *skb)
|
|||
*
|
||||
* Return: none
|
||||
*/
|
||||
static inline void __qdf_nbuf_init(__qdf_nbuf_t nbuf)
|
||||
{
|
||||
atomic_set(&nbuf->users, 1);
|
||||
nbuf->data = nbuf->head + NET_SKB_PAD;
|
||||
skb_reset_tail_pointer(nbuf);
|
||||
}
|
||||
void __qdf_nbuf_init(__qdf_nbuf_t nbuf);
|
||||
|
||||
/**
|
||||
* __qdf_nbuf_set_rx_info() - set rx info
|
||||
|
|
|
|||
|
|
@ -51,6 +51,18 @@
|
|||
#include <linux/ip.h>
|
||||
#endif /* FEATURE_TSO */
|
||||
|
||||
#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0)
|
||||
#define qdf_nbuf_users_inc atomic_inc
|
||||
#define qdf_nbuf_users_dec atomic_dec
|
||||
#define qdf_nbuf_users_set atomic_set
|
||||
#define qdf_nbuf_users_read atomic_read
|
||||
#else
|
||||
#define qdf_nbuf_users_inc refcount_inc
|
||||
#define qdf_nbuf_users_dec refcount_dec
|
||||
#define qdf_nbuf_users_set refcount_set
|
||||
#define qdf_nbuf_users_read refcount_read
|
||||
#endif /* KERNEL_VERSION(4, 13, 0) */
|
||||
|
||||
/* Packet Counter */
|
||||
static uint32_t nbuf_tx_mgmt[QDF_NBUF_TX_PKT_STATE_MAX];
|
||||
static uint32_t nbuf_tx_data[QDF_NBUF_TX_PKT_STATE_MAX];
|
||||
|
|
@ -2196,14 +2208,14 @@ EXPORT_SYMBOL(__qdf_nbuf_get_tso_num_seg);
|
|||
|
||||
struct sk_buff *__qdf_nbuf_inc_users(struct sk_buff *skb)
|
||||
{
|
||||
atomic_inc(&skb->users);
|
||||
qdf_nbuf_users_inc(&skb->users);
|
||||
return skb;
|
||||
}
|
||||
EXPORT_SYMBOL(__qdf_nbuf_inc_users);
|
||||
|
||||
int __qdf_nbuf_get_users(struct sk_buff *skb)
|
||||
{
|
||||
return atomic_read(&skb->users);
|
||||
return qdf_nbuf_users_read(&skb->users);
|
||||
}
|
||||
EXPORT_SYMBOL(__qdf_nbuf_get_users);
|
||||
|
||||
|
|
@ -2923,3 +2935,22 @@ void qdf_nbuf_classify_pkt(struct sk_buff *skb)
|
|||
QDF_NBUF_CB_PACKET_TYPE_WAPI;
|
||||
}
|
||||
EXPORT_SYMBOL(qdf_nbuf_classify_pkt);
|
||||
|
||||
void __qdf_nbuf_init(__qdf_nbuf_t nbuf)
|
||||
{
|
||||
qdf_nbuf_users_set(&nbuf->users, 1);
|
||||
nbuf->data = nbuf->head + NET_SKB_PAD;
|
||||
skb_reset_tail_pointer(nbuf);
|
||||
}
|
||||
EXPORT_SYMBOL(__qdf_nbuf_init);
|
||||
|
||||
#ifdef WLAN_FEATURE_FASTPATH
|
||||
void qdf_nbuf_init_fast(qdf_nbuf_t nbuf)
|
||||
{
|
||||
qdf_nbuf_users_set(&nbuf->users, 1);
|
||||
nbuf->data = nbuf->head + NET_SKB_PAD;
|
||||
skb_reset_tail_pointer(nbuf);
|
||||
}
|
||||
EXPORT_SYMBOL(qdf_nbuf_init_fast);
|
||||
#endif /* WLAN_FEATURE_FASTPATH */
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue