__skb_dequeue(9)
β¨ __skb_dequeue β remove from the head of the queue β¨
okay bestie, this one is a manual page from the Kernel API Manual and it's called __skb_dequeue(9) β iykyk, the double-underscore version, which is the version that does not hold your hand about locking. let's get into it π«Ά
πΈ SYNOPSIS πΈ
struct sk_buff * __skb_dequeue (struct sk_buff_head *list );
likeβ¦ that's the whole thing. one function, one argument, returns a struct sk_buff *. slay π
π ARGUMENTS π
listβ the list you're dequeuing from. that's it, that's the argument. she's astruct sk_buff_head *and she's the one getting her head popped off. literally. π
π₯ DESCRIPTION π₯
okay so the whole vibe here: this function removes the head of the list. one item, off the front, done. main character energy π
the returned item is the head itemβ¦ or NULL if the list is empty. so like, do check before you dereference it, bestie, no cap. π
β οΈ THE IMPORTANT PART, FR FR: this function does not take any locks. none. zero. it's lockless by design, so it must be used with appropriate locks held only. if you call this without the right locks held, that's not a vibe check, that's a you-problem. please hold your locks. π
π¦ SEE ALSO π¦
okay so the source file is ./include/linux/skbuff.h β that's the one you want to go read if you're the kind of girl who reads headers for fun (me, I'm that girl π§). and then the whole extended skb friend group, in order:
skb checksums(9)skb_frag_size(9)skb_frag_size_set(9)skb_frag_size_add(9)skb_frag_size_sub(9)skb_frag_must_loop(9)skb_frag_foreach_page(9)struct skb_shared_hwtstamps(9)dataref and headerless skbs(9)Basic sk_buff geometry(9)struct sk_buff(9)skb_pfmemalloc(9)skb_dst(9)skb_dstref_steal(9)skb_dstref_restore(9)skb_dst_set(9)skb_dst_set_noref(9)skb_dst_is_noref(9)skb_napi_id(9)skb_unref(9)kfree_skb(9)alloc_skb(9)skb_fclone_busy(9)alloc_skb_fclone(9)skb_pad(9)skb_queue_empty(9)skb_queue_empty_lockless(9)skb_queue_is_last(9)skb_queue_is_first(9)skb_queue_next(9)skb_queue_prev(9)skb_get(9)skb_cloned(9)skb_header_cloned(9)__skb_header_release(9)skb_shared(9)skb_share_check(9)skb_unshare(9)skb_peek(9)__skb_peek(9)skb_peek_next(9)skb_peek_tail(9)skb_queue_len(9)skb_queue_len_lockless(9)__skb_queue_head_init(9)skb_queue_splice(9)skb_queue_splice_init(9)skb_queue_splice_tail(9)skb_queue_splice_tail_init(9)__skb_queue_after(9)__skb_queue_head(9)__skb_queue_tail(9)__skb_dequeue_tail(9)skb_len_add(9)__skb_fill_netmem_desc(9)skb_fill_page_desc(9)skb_fill_page_desc_noacc(9)skb_headroom(9)skb_tailroom(9)skb_availroom(9)skb_reserve(9)skb_tailroom_reserve(9)skb_reset_transport_header_careful(9)skb_set_transport_header_careful(9)pskb_trim_unique(9)skb_orphan(9)skb_orphan_frags(9)__skb_queue_purge_reason(9)netdev_alloc_frag(9)netdev_alloc_skb(9)__dev_alloc_pages(9)__dev_alloc_page(9)dev_page_is_reusable(9)skb_propagate_pfmemalloc(9)skb_frag_off(9)skb_frag_off_add(9)skb_frag_off_set(9)skb_frag_off_copy(9)skb_frag_net_iov(9)skb_frag_page(9)skb_frag_netmem(9)skb_frag_address(9)skb_frag_address_safe(9)skb_frag_phys(9)skb_frag_page_copy(9)__skb_frag_dma_map(9)skb_clone_writable(9)skb_cow(9)skb_cow_head(9)skb_padto(9)__skb_put_padto(9)skb_put_padto(9)skb_linearize(9)skb_has_shared_frag(9)skb_linearize_cow(9)skb_postpull_rcsum(9)skb_postpush_rcsum(9)skb_push_rcsum(9)pskb_trim_rcsum(9)skb_needs_linearize(9)skb_get_timestamp(9)skb_data_move(9)skb_postpull_data_move(9)skb_postpush_data_move(9)skb_complete_tx_timestamp(9)skb_tstamp_tx(9)skb_tx_timestamp(9)skb_complete_wifi_ack(9)skb_checksum_complete(9)struct skb_ext(9)skb_checksum_none_assert(9)skb_head_is_locked(9)
that's the whole squad, no one left out, we don't do that here π
π cute sign-off π
okay that's the page!! this lil guy lives in the kernel source tree at ./include/linux, and this particular printing is dated October 2026, titled __skb_dequeue(9) in the Kernel API Manual. go hold your locks and dequeue responsibly, bestie β love u, bye!! πβ¨π¦π
π¦ 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