e1000e_disable_aspm_locked(9)
π e1000e_disable_aspm_locked β bestie edition
okay so real talk, this page is from the Kernel API Manual (section 9, kernel developer vibes β¨), and it's about exactly one tiny function. but like... a function that WILL ruin your day if you call it wrong. no cap. π«Ά
πΈ NAME πΈ
e1000e_disable_aspm_locked β turns off ASPM states. that's it, that's the whole thing π
β¨ SYNOPSIS β¨
void e1000e_disable_aspm_locked (struct pci_dev *pdev , u16 state );
like, she's void, she takes two args, she does not return anything, she does not miss. π₯
π ARGUMENTS π
pdevβ a pointer to astruct pci_dev(your PCI device struct, the whole reason we're here). literally the device. π¦stateβ a bit-mask of the ASPM states you wanna disable. it's au16, it's a mask, do the math bestie. π§
π DESCRIPTION π
okay so this is the important part and I need you to actually read it, not just skim and nod:
This function must be called with pci_bus_sem acquired! π
like, not "should", not "ideally" β must. the _locked in the name is not decoration, it's a whole personality. you hold the semaphore, then you call her. that's the deal. β
and why? because some devices *must* have certain ASPM states disabled per hardware errata. that's the asterisk-asterisk-must right there in the original. the hardware is built a little wrong and we're all just living with it. it's giving "we don't have a choice, this is the erratum". π
π SEE ALSO π
the kernel file herself:
./drivers/net/ethernet/intel/e1000e/netdev.c
and now... the guest list. it's long. it's iconic. it's the entire e1000 family showing up to the function π
__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_sanitize_systim(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)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)
like I said. the whole family. every single one. you're welcome π«Ά
and that's the page, bestie β¨
cute little sign-off moment: this one comes from the kernel source file ./drivers/net/ethernet/intel/e... (they truncated it in the footer, not me, I promise π), dated October 2026, and yes β the footer literally repeats the name e1000e_disable_aspm_locked(9) because man pages love a dramatic exit. π go hold your semaphore. π
π¦ 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