devm_ioport_unmap(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… devm_ioport_unmap(9) β€” like, the managed unmap, bestie

okay so welcome to the Kernel API Manual ✨ this one's short and sweet and honestly kind of a vibe. it's devm_ioport_unmap, and yes the 9 means it's a kernel function page, iykyk πŸŽ€


✨ NAME ✨

devm_ioport_unmap β€” the managed version of ioport_unmap(). that's it, that's the whole name 🫢


🌸 SYNOPSIS 🌸

void devm_ioport_unmap (struct device *dev , void __iomem *addr );

literally two arguments, no return value, no drama. she just unmaps and leaves πŸ’…


πŸ¦‹ ARGUMENTS πŸ¦‹

  • dev β€” the generic device you're unmapping for. the whole "managed" thing hinges on this baby, so don't go handing over some random pointer πŸ™ˆ
  • addr β€” the address to unmap. the actual thing getting cleaned up ⭐

πŸ‘‘ DESCRIPTION πŸ‘‘

so devm_ioport_unmap is a managed ioport_unmap β€” the devres machinery handles the cleanup timing for you, which is the entire point of the devm_ prefix ✨

⚠️ okay bestie, important: addr must have been mapped using devm_ioport_map. that's not a suggestion, that's the contract. no cap, fr fr. don't be out here unmapping addresses that came from somewhere else 😭

πŸ“ SEE ALSO πŸ“

the kernel file ./lib/devres.c and her whole friend group:

like, the entire devm_ cinematic universe 🌈 go read devm_ioport_map(9) next if you want the origin story πŸ’–


and that's the page!! signing off from the ./lib source, October 2026, in the Kernel API Manual β€” mwah, slay, go unmap responsibly πŸ’œπŸ§šβ€β™€οΈ

πŸ“¦ where this page comes from