efx_siena_mcdi_rpc_async(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… efx_siena_mcdi_rpc_async β€” Kernel API Manual, bestie edition ✨

Okay so welcome to the efx_siena_mcdi_rpc_async page, aka the Kernel API Manual flex you didn't know you needed. No cap, this one's lowkey iconic β€” it's the async sibling of the MCDI RPC crew and it's giving "fire and forget, but in a driver-safe way" πŸ¦‹


✨ NAME ✨

efx_siena_mcdi_rpc_async β€” schedule an MCDI command to run asynchronously, fr fr πŸŽ€


🌸 SYNOPSIS 🌸

int efx_siena_mcdi_rpc_async (struct efx_nic *efx , unsigned int cmd ,
       const efx_dword_t *inbuf , size_t inlen , size_t outlen ,
       efx_mcdi_async_completer *complete , unsigned long cookie );

Literally just look at it. Main character signature energy πŸ‘‘


🫢 ARGUMENTS 🫢

  • efx β€” the NIC you're issuing the command through. That's the vibe portal, basically πŸ’«
  • cmd β€” the command type number. Just a number. Numbers are valid. Slay πŸ”’
  • inbuf β€” the command parameters go in here πŸ“
  • inlen β€” how long those command parameters are, in bytes. Bytes, bestie, not vibes πŸ’€
  • outlen β€” how much space to allocate for the response buffer, also in bytes ✨
  • complete β€” the function that gets called on completion or cancellation. So it's the callback. The "text me when you're done" function πŸ“²
  • cookie β€” an arbitrary value that gets passed to complete. It's a little treat you hand over so your callback knows what's up πŸͺ

πŸ’– DESCRIPTION πŸ’–

Real talk: this function does not sleep, which means it may literally be called in atomic context. Atomic context besties, we love a non-blocking icon 😭

Heads up though β€” it will fail if event queues are disabled, or if MCDI event completions have been disabled because of an error. Not a vibe, but that's the deal πŸ™ˆ

If it succeeds? The complete function will be called exactly once, in atomic context, when one of these three things happens β€” and only these three, iykyk:

  1. The completion event is received β€” that's in NAPI context ⭐
  2. Event queues are disabled β€” that's in the process that disables them 🧚
  3. The request times-out β€” that's in timer context πŸ”₯

Exactly once is the key part. Not zero, not twice. Once. Periodt πŸ’…


🌈 SEE ALSO 🌈

  • Kernel file ./drivers/net/ethernet/sfc/siena/mcdi.c β€” go read the source, it's right there πŸ‘€
  • efx_siena_mcdi_rpc(9) β€” the sync one, for when you actually feel like waiting around πŸ¦‹

And that's the whole page, bestie! πŸ’œ This little love letter comes straight out of ./drivers/net/ethernet/sfc/siena, dated October 2026, and it's filed under efx_siena_mcdi_rpc_async(9) in the Kernel API Manual. Go forth and async responsibly πŸŽ€βœ¨

πŸ“¦ where this page comes from