ssam_request_sync_free(9)
π ssam_request_sync_free β the kernel API manual, bestie edition π
okay so real talk, this one's in the kernel API manual (ssam_request_sync_free(9)) and it's honestly short but SO important, like the kind of function that's three lines of code and yet can absolutely ruin your whole week if you fumble it. let's get into it π«Ά
β¨ NAME β¨
ssam_request_sync_free β Free a synchronous request. literally that's the whole job. bestie's entire personality is "cleanup" π
πΈ SYNOPSIS πΈ
void ssam_request_sync_free (struct ssam_request_sync *rqst );
no return value, no drama, just vibes and deallocation β¨
π ARGUMENTS π
rqstβ The request to be freed. that's it, that's the argument. she's the one getting her memory handed back to the kernel π¦
π DESCRIPTION π
Free a synchronous request and its corresponding buffer, the one that got allocated with ssam_request_sync_alloc. so like, this function and ssam_request_sync_alloc are a matched set, they're giving soulmate energy, do not separate them π
π¨ Do not use for requests allocated on the stack or via any other function. like, seriously. stack-allocated? other-allocator-allocated? nope, not yours to free with this. this function is specifically for the ssam_request_sync_alloc girlies only.
π Warning: the caller must ensure that the request is not in use any more. i.e. the caller must ensure it has the only reference to the request and that the request is not currently pending.
so when exactly is it safe to call? the manual spells it out, and ngl this is the important bit, so listen up π
- the caller has either never submitted the request, or
- the request submission has failed, or
- the caller has waited until the submitted request has been completed via
ssam_request_sync_wait
that's the whole checklist. three valid scenarios, no more, no less. if your request is still out there pending and you free it anyway? that's not main character energy, that's undefined-behavior energy π so pls, don't.
π₯ SEE ALSO π₯
Kernel file ./drivers/platform/surface/aggregator/controller.c
and now the iconic lineup, the whole friend group, no cap:
ssh_seq_reset(9),ssh_seq_next(9),ssh_rqid_reset(9),ssh_rqid_next(9)ssam_event_matches_notifier(9),ssam_nfblk_call_chain(9),ssam_nfblk_insert(9),ssam_nfblk_find(9),ssam_nfblk_remove(9),ssam_nf_head_init(9),ssam_nf_head_destroy(9)struct ssam_nf_refcount_key(9),struct ssam_nf_refcount_entry(9),ssam_nf_refcount_inc(9),ssam_nf_refcount_dec(9),ssam_nf_refcount_dec_free(9),ssam_nf_refcount_empty(9)ssam_nf_call(9),ssam_nf_init(9),ssam_nf_destroy(9)ssam_event_item_cache_init(9),ssam_event_item_cache_destroy(9),ssam_event_item_free(9),ssam_event_item_alloc(9)ssam_event_queue_push(9),ssam_event_queue_pop(9),ssam_event_queue_is_empty(9),ssam_cplt_get_event_queue(9),ssam_cplt_submit(9),ssam_cplt_submit_event(9),ssam_cplt_flush(9),ssam_event_queue_init(9),ssam_cplt_init(9),ssam_cplt_destroy(9)ssam_controller_device(9),ssam_controller_get(9),ssam_controller_put(9),ssam_controller_statelock(9),ssam_controller_stateunlock(9),ssam_controller_lock(9)ssam_controller_caps_load_from_acpi(9),ssam_controller_caps_load_from_of(9),ssam_controller_caps_load(9)ssam_controller_init(9),ssam_controller_start(9),ssam_controller_shutdown(9),ssam_controller_destroy(9),ssam_controller_suspend(9),ssam_controller_resume(9)ssam_request_write_data(9),ssam_request_sync_alloc(9),ssam_request_sync_init(9),ssam_request_sync_submit(9),ssam_request_do_sync(9),ssam_request_do_sync_with_buffer(9)struct ssh_notification_params(9),ssam_ssh_event_enable(9),ssam_ssh_event_disable(9),ssam_get_firmware_version(9)ssam_ctrl_notif_display_off(9),ssam_ctrl_notif_display_on(9),ssam_ctrl_notif_d0_exit(9),ssam_ctrl_notif_d0_entry(9)ssam_nf_refcount_enable(9),ssam_nf_refcount_disable_free(9),ssam_notifier_register(9),__ssam_notifier_unregister(9)ssam_controller_event_enable(9),ssam_controller_event_disable(9),ssam_notifier_disable_registered(9),ssam_notifier_restore_registered(9),ssam_notifier_is_empty(9),ssam_notifier_unregister_all(9)ssam_irq_setup(9),ssam_irq_free(9),ssam_irq_arm_for_wakeup(9),ssam_irq_disarm_wakeup(9)
like, that's a whole contact list bestie, go read them all, i'll wait π
and that's the page!! π source is ./drivers/platform/surface/agg..., dated October 2026, filed under ssam_request_sync_free(9) β go free your requests responsibly, mwah πβ¨
π¦ 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