igc_cleanup_headers(9)
π NAME π
igc_cleanup_headers β the function that swoops in and corrects corrupted or empty headers π
β¨ SYNOPSIS β¨
bool igc_cleanup_headers (struct igc_ring *rx_ring , union
igc_adv_rx_desc *rx_desc , struct sk_buff *skb );
π ARGUMENTS π
rx_ringβ the rx descriptor ring that the packet is being transacted on. like, the whole operation is happening on this ring, ok?rx_descβ a pointer to the EOP Rx descriptor π«Άskbβ a pointer to the currentskbthat's getting fixed up
π¦ DESCRIPTION π¦
okay so picture this: you're pulling data in on pages only, which means there is literally no data present in the skb header. this function handles exactly that case π
and then, on top of that β if skb isn't at least 60 bytes, we gotta pad it so it's large enough to qualify as a valid Ethernet frame. no cap, 60 bytes is the vibe minimum π
Returnstrueif an error was encountered andskbwas freed. so if it comes backtrue, the skb is gone-gone, bestie π
π SEE ALSO π
Kernel file ./drivers/net/ethernet/intel/igc/igc_main.c β that's where it lives, iykyk π
igc_power_up_link(9)igc_release_hw_control(9)igc_get_hw_control(9)igc_clean_tx_ring(9)igc_free_tx_resources(9)igc_free_all_tx_resources(9)igc_clean_all_tx_rings(9)igc_disable_all_tx_rings_hw(9)igc_setup_tx_resources(9)igc_setup_all_tx_resources(9)igc_clean_rx_ring(9)igc_clean_all_rx_rings(9)igc_free_rx_resources(9)igc_free_all_rx_resources(9)igc_setup_rx_resources(9)igc_setup_all_rx_resources(9)igc_configure_rx_ring(9)igc_configure_rx(9)igc_configure_tx_ring(9)igc_configure_tx(9)igc_setup_mrqc(9)igc_setup_rctl(9)igc_setup_tctl(9)igc_set_mac_filter_hw(9)igc_clear_mac_filter_hw(9)igc_set_mac(9)igc_write_mc_addr_list(9)igc_process_skb_fields(9)igc_add_rx_frag(9)igc_reuse_rx_page(9)igc_is_non_eop(9)igc_alloc_rx_buffers(9)igc_clean_tx_irq(9)igc_add_mac_filter(9)igc_del_mac_filter(9)igc_add_vlan_prio_filter(9)igc_del_vlan_prio_filter(9)igc_add_etype_filter(9)igc_del_etype_filter(9)igc_get_nfc_rule(9)igc_del_nfc_rule(9)igc_add_nfc_rule(9)igc_enable_empty_addr_recv(9)igc_set_rx_mode(9)igc_configure(9)igc_write_ivar(9)igc_configure_msix(9)igc_irq_enable(9)igc_irq_disable(9)igc_reset_q_vector(9)igc_free_q_vector(9)igc_free_q_vectors(9)igc_update_itr(9)igc_set_interrupt_capability(9)igc_update_ring_itr(9)igc_cache_ring_register(9)igc_poll(9)igc_alloc_q_vector(9)igc_alloc_q_vectors(9)igc_init_interrupt_scheme(9)igc_sw_init(9)igc_up(9)igc_update_stats(9)igc_down(9)igc_change_mtu(9)igc_tx_timeout(9)igc_get_stats64(9)igc_msix_other(9)igc_request_msix(9)igc_clear_interrupt_scheme(9)igc_has_link(9)igc_watchdog(9)igc_intr_msi(9)igc_intr(9)igc_request_irq(9)__igc_open(9)__igc_close(9)igc_probe(9)igc_remove(9)igc_io_error_detected(9)igc_io_slot_reset(9)igc_io_resume(9)igc_reinit_queues(9)igc_get_hw_dev(9)igc_init_module(9)igc_exit_module(9)
that's the whole friend group, honestly. go read them, they're all iconic in their own way π§
okay that's the page, bestie!! brought to you by the Kernel API Manual (section 9, fancy), sourced straight from ./drivers/net/ethernet/intel/igc, dated October 2026 β mwah, slay, periodt ππΈ
π¦ 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