qcacmn: Add QDF APIs for dev_scratch in network buffer
Kernel 4.14 and later supports dev_scratch for network buffer which can be used to store data in a nbuf in the format unsigned long. Add APIs: 1) qdf_nbuf_is_dev_scratch_supported 2) qdf_nbuf_get_dev_scratch 3) qdf_nbuf_set_dev_scratch Change-Id: I2a72d369bb53f8f86d4bcee3cf6d13f5e4aff57f CRs-Fixed: 2313270
This commit is contained in:

committed by
nshrivas

parent
0b9d49b447
commit
ecd7d60c6a
@@ -1588,6 +1588,42 @@ static inline void qdf_nbuf_reset(qdf_nbuf_t buf, int reserve, int align)
|
|||||||
__qdf_nbuf_reset(buf, reserve, align);
|
__qdf_nbuf_reset(buf, reserve, align);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_nbuf_dev_scratch_is_supported() - dev_scratch support for network buffer
|
||||||
|
* in kernel
|
||||||
|
*
|
||||||
|
* Return: true if dev_scratch is supported
|
||||||
|
* false if dev_scratch is not supported
|
||||||
|
*/
|
||||||
|
static inline bool qdf_nbuf_is_dev_scratch_supported(void)
|
||||||
|
{
|
||||||
|
return __qdf_nbuf_is_dev_scratch_supported();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_nbuf_get_dev_scratch() - get dev_scratch of network buffer
|
||||||
|
* @buf: Pointer to network buffer
|
||||||
|
*
|
||||||
|
* Return: dev_scratch if dev_scratch supported
|
||||||
|
* 0 if dev_scratch not supported
|
||||||
|
*/
|
||||||
|
static inline unsigned long qdf_nbuf_get_dev_scratch(qdf_nbuf_t buf)
|
||||||
|
{
|
||||||
|
return __qdf_nbuf_get_dev_scratch(buf);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_nbuf_set_dev_scratch() - set dev_scratch of network buffer
|
||||||
|
* @buf: Pointer to network buffer
|
||||||
|
* @value: value to be set in dev_scratch of network buffer
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void qdf_nbuf_set_dev_scratch(qdf_nbuf_t buf, unsigned long value)
|
||||||
|
{
|
||||||
|
__qdf_nbuf_set_dev_scratch(buf, value);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* qdf_nbuf_peek_header() - return the data pointer & length of the header
|
* qdf_nbuf_peek_header() - return the data pointer & length of the header
|
||||||
* @buf: Network nbuf
|
* @buf: Network nbuf
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
#include <linux/netdevice.h>
|
#include <linux/netdevice.h>
|
||||||
#include <linux/etherdevice.h>
|
#include <linux/etherdevice.h>
|
||||||
#include <linux/dma-mapping.h>
|
#include <linux/dma-mapping.h>
|
||||||
|
#include <linux/version.h>
|
||||||
#include <asm/cacheflush.h>
|
#include <asm/cacheflush.h>
|
||||||
#include <qdf_types.h>
|
#include <qdf_types.h>
|
||||||
#include <qdf_net_types.h>
|
#include <qdf_net_types.h>
|
||||||
@@ -961,6 +962,60 @@ __qdf_nbuf_reset(struct sk_buff *skb, int reserve, int align)
|
|||||||
skb_reserve(skb, reserve);
|
skb_reserve(skb, reserve);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 14, 0))
|
||||||
|
/**
|
||||||
|
* qdf_nbuf_dev_scratch_is_supported() - dev_scratch support for network buffer
|
||||||
|
* in kernel
|
||||||
|
*
|
||||||
|
* Return: true if dev_scratch is supported
|
||||||
|
* false if dev_scratch is not supported
|
||||||
|
*/
|
||||||
|
static inline bool __qdf_nbuf_is_dev_scratch_supported(void)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_nbuf_get_dev_scratch() - get dev_scratch of network buffer
|
||||||
|
* @skb: Pointer to network buffer
|
||||||
|
*
|
||||||
|
* Return: dev_scratch if dev_scratch supported
|
||||||
|
* 0 if dev_scratch not supported
|
||||||
|
*/
|
||||||
|
static inline unsigned long __qdf_nbuf_get_dev_scratch(struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
return skb->dev_scratch;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_nbuf_set_dev_scratch() - set dev_scratch of network buffer
|
||||||
|
* @skb: Pointer to network buffer
|
||||||
|
* @value: value to be set in dev_scratch of network buffer
|
||||||
|
*
|
||||||
|
* Return: void
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
__qdf_nbuf_set_dev_scratch(struct sk_buff *skb, unsigned long value)
|
||||||
|
{
|
||||||
|
skb->dev_scratch = value;
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
static inline bool __qdf_nbuf_is_dev_scratch_supported(void)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline unsigned long __qdf_nbuf_get_dev_scratch(struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void
|
||||||
|
__qdf_nbuf_set_dev_scratch(struct sk_buff *skb, unsigned long value)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
#endif /* KERNEL_VERSION(4, 14, 0) */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* __qdf_nbuf_head() - return the pointer the skb's head pointer
|
* __qdf_nbuf_head() - return the pointer the skb's head pointer
|
||||||
* @skb: Pointer to network buffer
|
* @skb: Pointer to network buffer
|
||||||
|
Reference in New Issue
Block a user