rproc_shutdown(9)
π NAME π
Okay so bestie, meet rproc_shutdown(9) from the Kernel API Manual π«Ά. She is the βpower off the remote processorβ girlie, and yes, that is her whole iconic brand.
π οΈ SYNOPSIS π οΈ
int rproc_shutdown (struct rproc *rproc );
π ARGUMENTS π
rprocβ the remote processor. That's the one and only argument, bestie.
π¦ DESCRIPTION π¦
This function powers off a remote processor β specifically one that was previously booted with rproc_boot β¨.
But wait: if rproc is still being used by an additional user(s), then this function will just decrement the power refcount and exit, without really powering off the device. Lowkey important β it doesn't force a shutdown if somebody else is still holding on.
Every call to rproc_boot must (eventually) be accompanied by a call to rproc_shutdown. That's the matching-set situation, iykyk. Calling rproc_shutdown redundantly is a bug β not a cute little accident, an actual bug π.
π§ NOTES π§
- we're not decrementing the
rproc's refcount, only the power refcount. which means that therprochandle stays valid even afterrproc_shutdownreturns, and users can still use it with a subsequentrproc_boot, if needed. handle stays valid = iconic behavior π
π RETURN π
0 on success, and an appropriate error value otherwise. That's it: success gives you 0, and anything else is an appropriate error value. No mystery, no cap.
π SEE ALSO π
The kernel file ./drivers/remoteproc/remoteproc_core.c is in the group chat, plus all these besties:
rproc_da_to_va(9)rproc_find_carveout_by_name(9)rproc_check_carveout_da(9)rproc_handle_vdev(9)rproc_handle_trace(9)rproc_handle_devmem(9)rproc_alloc_carveout(9)rproc_release_carveout(9)rproc_handle_carveout(9)rproc_add_carveout(9)rproc_mem_entry_init(9)rproc_of_resm_mem_entry_init(9)rproc_of_parse_firmware(9)rproc_alloc_registered_carveouts(9)rproc_resource_cleanup(9)rproc_trigger_recovery(9)rproc_crash_handler_work(9)rproc_boot(9)rproc_detach(9)rproc_get_by_phandle(9)rproc_set_firmware(9)rproc_add(9)devm_rproc_add(9)rproc_type_release(9)rproc_alloc(9)rproc_free(9)rproc_put(9)rproc_del(9)devm_rproc_alloc(9)rproc_add_subdev(9)rproc_remove_subdev(9)rproc_get_by_child(9)rproc_report_crash(9)
Signed with love from the source/version stamp ./drivers/remoteproc, dated October 2026, and this page is rproc_shutdown(9). Bye bestie β go pair your boots and shutdowns 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