efx_siena_mcdi_rpc_async(9)
π 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 tocomplete. 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:
- The completion event is received β that's in NAPI context β
- Event queues are disabled β that's in the process that disables them π§
- 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
- 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