Lines Matching defs:ext
6613 static void *skb_ext_get_ptr(struct skb_ext *ext, enum skb_ext_id id)
6615 return (void *)ext + (ext->offset[id] * SKB_EXT_ALIGN_VALUE);
6679 * @ext: extension storage previously allocated via __skb_ext_alloc()
6686 struct skb_ext *ext)
6688 unsigned int newlen, newoff = SKB_EXT_CHUNKSIZEOF(*ext);
6692 ext->chunks = newlen;
6693 ext->offset[id] = newoff;
6694 skb->extensions = ext;
6696 return skb_ext_get_ptr(ext, id);
6768 struct skb_ext *ext = skb->extensions;
6773 __skb_ext_put(ext);
6776 refcount_read(&ext->refcnt) == 1) {
6777 struct sec_path *sp = skb_ext_get_ptr(ext, SKB_EXT_SEC_PATH);
6786 void __skb_ext_put(struct skb_ext *ext)
6791 if (refcount_read(&ext->refcnt) == 1)
6794 if (!refcount_dec_and_test(&ext->refcnt))
6798 if (__skb_ext_exist(ext, SKB_EXT_SEC_PATH))
6799 skb_ext_put_sp(skb_ext_get_ptr(ext, SKB_EXT_SEC_PATH));
6802 if (__skb_ext_exist(ext, SKB_EXT_MCTP))
6803 skb_ext_put_mctp(skb_ext_get_ptr(ext, SKB_EXT_MCTP));
6806 kmem_cache_free(skbuff_ext_cache, ext);