e1000e_sanitize_systim(9)
π e1000e_sanitize_systim β the kernel API manual, bestie edition
okay so real talk, we're in the <pink>e1000e_sanitize_systim(9)</pink> page of the Kernel API Manual, and it's honestly such a mood. it's giving "tiny function, huge responsibility" and I'm obsessed. let's get into it β¨
πΈ NAME πΈ
e1000e_sanitize_systim β sanitize raw cycle counter reads
like, it takes the raw numbers and makes them presentable. self-care for timestamps, fr fr π«Ά
π¦ SYNOPSIS π¦
u64 e1000e_sanitize_systim (struct e1000_hw *hw , u64 systim , struct
ptp_system_timestamp *sts );
that's the whole vibe right there. it returns a u64, and bestie, no cap, it's doing the absolute most with those three args π
π ARGUMENTS π
hwβ pointer to the HW structure. the hardware's whole personality lives in here πsystimβ the PHC time value that got read; it comes in, gets sanitized, and gets returned. glow-up arc, literally β¨stsβ structure to hold system time before and after readingSYSTIML. it may beNULLβ so don't panic if it's not there, it's valid π
π₯ DESCRIPTION π₯
so here's the tea: there's errata for 82574/82583 where you can possibly read bad bits out of SYSTIMH/SYSTIML. not ideal, but iconic of them to warn us π
the function's whole job is to check that the time is incrementing at a reasonable rate and that it's a multiple of incvalue. that's the sanitization pass β vibe check for the cycle counter, and honestly? we love a function that double-checks its friends π
lowkey important: this is the fix-up layer for a documented hardware quirk, so don't skip it and then act surprised when the timestamps look cursed π
π SEE ALSO π
the kernel file it lives in, plus the whole extended friend group:
- Kernel file
./drivers/net/ethernet/intel/e1000e/netdev.c __ew32_prepare(9)e1000_regdump(9)e1000e_dump(9)e1000_desc_unused(9)e1000e_systim_to_hwtstamp(9)e1000e_rx_hwtstamp(9)e1000_receive_skb(9)e1000_rx_checksum(9)e1000_alloc_rx_buffers(9)e1000_alloc_rx_buffers_ps(9)e1000_alloc_jumbo_rx_buffers(9)e1000_clean_rx_irq(9)e1000e_tx_hwtstamp_work(9)e1000_clean_tx_irq(9)e1000_clean_rx_irq_ps(9)e1000_clean_jumbo_rx_irq(9)e1000_clean_rx_ring(9)e1000_intr_msi(9)e1000_intr(9)e1000_configure_msix(9)e1000e_set_interrupt_capability(9)e1000_request_msix(9)e1000_request_irq(9)e1000_irq_disable(9)e1000_irq_enable(9)e1000e_get_hw_control(9)e1000e_release_hw_control(9)e1000_alloc_ring_dma(9)e1000e_setup_tx_resources(9)e1000e_setup_rx_resources(9)e1000_clean_tx_ring(9)e1000e_free_tx_resources(9)e1000e_free_rx_resources(9)e1000_update_itr(9)e1000e_write_itr(9)e1000_alloc_queues(9)e1000e_poll(9)e1000e_vlan_filter_disable(9)e1000e_vlan_filter_enable(9)e1000e_vlan_strip_disable(9)e1000e_vlan_strip_enable(9)e1000_configure_tx(9)e1000_setup_rctl(9)e1000_configure_rx(9)e1000e_write_mc_addr_list(9)e1000e_write_uc_addr_list(9)e1000e_set_rx_mode(9)e1000e_get_base_timinca(9)e1000e_config_hwtstamp(9)e1000_configure(9)e1000e_power_up_phy(9)e1000_power_down_phy(9)e1000_flush_tx_ring(9)e1000_flush_rx_ring(9)e1000_flush_desc_rings(9)e1000e_systim_reset(9)e1000e_reset(9)e1000e_trigger_lsc(9)e1000e_down(9)e1000e_read_systim(9)e1000e_cyclecounter_read(9)e1000_sw_init(9)e1000_intr_msi_test(9)e1000_test_msi_interrupt(9)e1000_test_msi(9)e1000e_open(9)e1000e_close(9)e1000_set_mac(9)e1000e_update_phy_task(9)e1000_update_phy_info(9)e1000e_update_phy_stats(9)e1000e_update_stats(9)e1000_phy_read_status(9)e1000_watchdog(9)e1000_tx_timeout(9)e1000e_get_stats64(9)e1000_change_mtu(9)e1000e_hwtstamp_set(9)__e1000e_disable_aspm(9)e1000e_disable_aspm(9)e1000e_disable_aspm_locked(9)e1000_netpoll(9)e1000_io_error_detected(9)e1000_io_slot_reset(9)e1000_io_resume(9)e1000_probe(9)e1000_remove(9)e1000_init_module(9)e1000_exit_module(9)
and that's the page, bestie π§ ok real quick, the cute sign-off: this one's sourced from <purple>./drivers/net/ethernet/intel/e...</purple> and dated <cyan>October 2026</cyan> β so yeah, future-flavored documentation, we love to see it π 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