Lines Matching refs:ext
6800 static void *skb_ext_get_ptr(struct skb_ext *ext, enum skb_ext_id id)
6802 return (void *)ext + (ext->offset[id] * SKB_EXT_ALIGN_VALUE);
6866 * @ext: extension storage previously allocated via __skb_ext_alloc()
6873 struct skb_ext *ext)
6875 unsigned int newlen, newoff = SKB_EXT_CHUNKSIZEOF(*ext);
6879 ext->chunks = newlen;
6880 ext->offset[id] = newoff;
6881 skb->extensions = ext;
6883 return skb_ext_get_ptr(ext, id);
6955 struct skb_ext *ext = skb->extensions;
6960 __skb_ext_put(ext);
6963 refcount_read(&ext->refcnt) == 1) {
6964 struct sec_path *sp = skb_ext_get_ptr(ext, SKB_EXT_SEC_PATH);
6973 void __skb_ext_put(struct skb_ext *ext)
6978 if (refcount_read(&ext->refcnt) == 1)
6981 if (!refcount_dec_and_test(&ext->refcnt))
6985 if (__skb_ext_exist(ext, SKB_EXT_SEC_PATH))
6986 skb_ext_put_sp(skb_ext_get_ptr(ext, SKB_EXT_SEC_PATH));
6989 if (__skb_ext_exist(ext, SKB_EXT_MCTP))
6990 skb_ext_put_mctp(skb_ext_get_ptr(ext, SKB_EXT_MCTP));
6993 kmem_cache_free(skbuff_ext_cache, ext);