scmi_notifier_unregister(9)
π scmi_notifier_unregister π
okay bestie, welcome to the Kernel API Manual β today's main character is scmi_notifier_unregister, and honestly? she's the cleanup queen we all need. β¨
π NAME π
scmi_notifier_unregister β unregister a notifier_block for an event, aka the breakup text for your callback π
πΈ SYNOPSIS πΈ
int scmi_notifier_unregister (const struct scmi_handle *handle , u8
proto_id , u8 evt_id , const u32 *src_id , struct notifier_block *nb );
that's the whole vibe, no cap π«Ά
π¦ ARGUMENTS π¦
handleβ the handle that identifies the platform instance you're unregistering this callback against. like, which platform's party are we leaving, ykwim?proto_idβ the protocol ID.u8. yes girl, a wholeu8.evt_idβ the event ID. alsou8. slay.src_idβ the source ID. it's aconst u32 *pointer, so pls don't go mutating it πnbβ the actualnotifier_blockyou're unregistering. the one getting kicked out of the group chat π
π DESCRIPTION π
so what does she actually do? she takes care π
to unregister the provided nb from the notification chain that's associated with the specified event. chain membership revoked, periodt.
and THEN β and this is the iconic part β if there are no more users left for that event handler, she also frees the associated event handler structures. she's not just cleaning up her own mess, she's doing a full room reset when the last person leaves the party. π§Ήβ¨
β οΈ heads up bestie: this freeing situation could possibly cause disabling of the event's generation at the platform level. so like, lowkey a bigger deal than it sounds. don't say I didn't warn you π«Ά
β RETURN β
0 on success. that's it, that's the whole return. zero equals happy. π
π SEE ALSO π
- Kernel file
./drivers/firmware/arm_scmi/notify.c Theory of operation(9)struct scmi_notify_instance(9)struct events_queue(9)struct scmi_event_header(9)struct scmi_registered_events_desc(9)struct scmi_registered_event(9)struct scmi_event_handler(9)scmi_lookup_and_call_event_chain(9)scmi_process_event_header(9)scmi_process_event_payload(9)scmi_events_dispatcher(9)scmi_notify(9)scmi_kfifo_free(9)scmi_initialize_events_queue(9)scmi_allocate_registered_events_desc(9)scmi_register_protocol_events(9)scmi_deregister_protocol_events(9)scmi_allocate_event_handler(9)scmi_free_event_handler(9)scmi_bind_event_handler(9)scmi_valid_pending_handler(9)scmi_register_event_handler(9)__scmi_event_handler_get_ops(9)scmi_get_active_handler(9)__scmi_enable_evt(9)scmi_put_handler_unlocked(9)scmi_event_handler_enable_events(9)scmi_notifier_register(9)scmi_devm_notifier_register(9)scmi_devm_notifier_unregister(9)scmi_protocols_late_init(9)scmi_notification_init(9)scmi_notification_quiesce(9)scmi_notification_exit(9)
okay that's the whole page, go read the source if you want the deep lore π
β¨π mwah π β¨
β sourced from ./drivers/firmware/arm_scmi, dated October 2026, brought to you by the scmi_notifier_unregister(9) girlies ππ¦πΈπ₯
π¦ 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