e1000e_disable_aspm_locked(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 a struct 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 a u16, 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 πŸ’œ

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