|
@@ -2831,6 +2831,19 @@ static inline void skb_init_secmark(struct sk_buff *skb)
|
|
|
{ }
|
|
|
#endif
|
|
|
|
|
|
+static inline bool skb_irq_freeable(const struct sk_buff *skb)
|
|
|
+{
|
|
|
+ return !skb->destructor &&
|
|
|
+#if IS_ENABLED(CONFIG_XFRM)
|
|
|
+ !skb->sp &&
|
|
|
+#endif
|
|
|
+#if IS_ENABLED(CONFIG_NF_CONNTRACK)
|
|
|
+ !skb->nfct &&
|
|
|
+#endif
|
|
|
+ !skb->_skb_refdst &&
|
|
|
+ !skb_has_frag_list(skb);
|
|
|
+}
|
|
|
+
|
|
|
static inline void skb_set_queue_mapping(struct sk_buff *skb, u16 queue_mapping)
|
|
|
{
|
|
|
skb->queue_mapping = queue_mapping;
|