__rsu_send_msg_locked(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« __rsu_send_msg_locked β€” NAME πŸ’«

okay so bestie, gather round: this is the Kernel API Manual page for __rsu_send_msg_locked (yes, that's a (9) β€” it's a kernel-internal function, very main character of it), and it literally does what it says on the tin: it sends a message to the Intel service layer. πŸŽ€

Intel service layer messaging, but make it locked. iykyk.


✨ SYNOPSIS ✨

int __rsu_send_msg_locked (struct stratix10_rsu_priv *priv , enum
       stratix10_svc_command_code command , unsigned long arg , rsu_callback
       callback );

like, four args, one int return, no notes. slay. πŸ’…


🌸 ARGUMENTS 🌸

  • priv β€” pointer to the rsu private data. your little bag of rsu state, hand it over 🫢
  • command β€” the RSU status or update command. two vibes: checking the status, or doing the update.
  • arg β€” the request argument, which is either the bitstream address or the notify status. depends which command you're on, no cap.
  • callback β€” function pointer for the callback, and it's either a status callback or an update callback. yes it's a function pointer and yes that's iconic.

πŸ”₯ DESCRIPTION πŸ”₯

so the actual job: perform the actual SMC transaction. that's the whole point of the function, that's the move. 🧚

⚠️ the caller must hold priv->lock. like, NON-NEGOTIABLE. the _locked in the name is not a cute decoration, bestie, it's a whole warning. don't come in here without the lock. πŸ’€

and the return values, keep these in your notes forever:

  • 0 on success πŸŽ‰
  • a negative errno on failure 😭

that's it. that's the whole function. short and perfect, it's giving efficient.


πŸ¦‹ SEE ALSO πŸ¦‹

the source itself, so you can go read the whole thing:

Kernel file ./drivers/firmware/stratix10-rsu.c

and the whole little friend group of related pages, all of them:


and that's the page!! sign-off time: this one lives over in ./drivers/firmware, in the October 2026 edition of the docs. go forth, hold your lock, and slay πŸ’–βœ¨

πŸ“¦ where this page comes from