diff --git a/qdf/inc/qdf_nbuf.h b/qdf/inc/qdf_nbuf.h index ba9b7b1ca7..40a12e102a 100644 --- a/qdf/inc/qdf_nbuf.h +++ b/qdf/inc/qdf_nbuf.h @@ -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_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 * @buf: Network nbuf diff --git a/qdf/linux/src/i_qdf_nbuf.h b/qdf/linux/src/i_qdf_nbuf.h index 602982126c..d59d2a2c03 100644 --- a/qdf/linux/src/i_qdf_nbuf.h +++ b/qdf/linux/src/i_qdf_nbuf.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -961,6 +962,60 @@ __qdf_nbuf_reset(struct sk_buff *skb, int reserve, int align) 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 * @skb: Pointer to network buffer