skb_panic(9)
π skb_panic β Kernel API Manual, but make it a group chat
okay bestie, welcome to the skb_panic(9) page β¨ this is a Kernel API Manual moment, and honestly it's a short one, so let's get into it π
πΈ NAME πΈ
skb_panic β a private function, for out-of-line support π«Ά (yes it literally says "private", she's mysterious, she's lowkey, she's not for you directly iykyk π
)
β¨ SYNOPSIS β¨
void skb_panic (struct sk_buff *skb , unsigned int sz , void *addr ,
const char msg[] );
that's the whole signature, no cap π₯
π¦ ARGUMENTS π¦
skbβ the buffer π§Ίszβ the size πaddrβ the address πmsgβ this one's givingskb_over_panicorskb_under_panicπ (those are literally the only two vibes)
π DESCRIPTION π
So here's the tea β skb_panic is the out-of-line support squad for skb_put and skb_push π«Ά she gets called via the wrapper skb_over_panic or skb_under_panic, like she's the main character and those two are her stylists π
The way she stays out of line is deliberate β it's to prevent kernel bloat πβ¨ iconic behaviour honestly, she's keeping the kernel snatched.
And ngl, __builtin_return_address is not used here, because it is not always reliable π so don't come for her about it, she has her reasons fr fr.
π SEE ALSO π
Kernel file ./net/core/skbuff.c β and then the whole extended friend group, in exactly this order, no skipping, we love a complete list π:
drop_reasons_register_subsys(9)drop_reasons_unregister_subsys(9)napi_skb_cache_get_bulk(9)__build_skb(9)build_skb_around(9)__napi_build_skb(9)napi_build_skb(9)__alloc_skb(9)__netdev_alloc_skb(9)napi_alloc_skb(9)skb_pp_cow_data(9)skb_pp_frag_ref(9)__kfree_skb(9)sk_skb_reason_drop(9)skb_tx_error(9)consume_skb(9)__consume_stateless_skb(9)napi_consume_skb(9)alloc_skb_for_msg(9)skb_morph(9)skb_copy_ubufs(9)skb_clone(9)skb_copy(9)__pskb_copy_fclone(9)pskb_expand_head(9)skb_expand_head(9)skb_copy_expand(9)__skb_pad(9)pskb_put(9)skb_put(9)skb_push(9)skb_pull(9)skb_pull_data(9)skb_trim(9)__pskb_pull_tail(9)skb_copy_bits(9)skb_store_bits(9)skb_zerocopy(9)skb_dequeue(9)skb_dequeue_tail(9)skb_queue_purge_reason(9)skb_rbtree_purge(9)skb_queue_head(9)skb_queue_tail(9)skb_unlink(9)skb_append(9)skb_split(9)skb_shift(9)skb_prepare_seq_read(9)skb_seq_read(9)skb_abort_seq_read(9)skb_copy_seq_read(9)skb_find_text(9)skb_pull_rcsum(9)skb_segment(9)skb_to_sgvec(9)skb_cow_data(9)skb_clone_sk(9)skb_partial_csum_set(9)skb_checksum_setup(9)skb_checksum_maybe_trim(9)skb_checksum_trimmed(9)skb_try_coalesce(9)skb_scrub_packet(9)skb_eth_pop(9)skb_eth_push(9)skb_mpls_push(9)skb_mpls_pop(9)skb_mpls_update_lse(9)skb_mpls_dec_ttl(9)alloc_skb_with_frags(9)skb_condense(9)__skb_ext_alloc(9)__skb_ext_set(9)skb_ext_add(9)skb_attempt_defer_free(9)skb_splice_from_iter(9)
like, that's the entire skb cinematic universe, ate and left no crumbs π
π reminder: skb_panic is private, so this is a backstage-pass situation, not a "call her from your driver" situation, bestie π
and that's the page!! huge shoutout to ./net/core for shipping this one in October 2026, version skb_panic(9) π§π mwah, see u in the next manpage π«Άβ¨
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms