diff options
Diffstat (limited to 'services/std_svc/spm/el3_spmc/spmc_shared_mem.c')
-rw-r--r-- | services/std_svc/spm/el3_spmc/spmc_shared_mem.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/services/std_svc/spm/el3_spmc/spmc_shared_mem.c b/services/std_svc/spm/el3_spmc/spmc_shared_mem.c index 7b9a5265e..1602981bf 100644 --- a/services/std_svc/spm/el3_spmc/spmc_shared_mem.c +++ b/services/std_svc/spm/el3_spmc/spmc_shared_mem.c @@ -1031,6 +1031,12 @@ static long spmc_ffa_fill_desc(struct mailbox *mbox, } } + /* Allow for platform specific operations to be performed. */ + ret = plat_spmc_shmem_begin(&obj->desc); + if (ret != 0) { + goto err_arg; + } + SMC_RET8(smc_handle, FFA_SUCCESS_SMC32, 0, handle_low, handle_high, 0, 0, 0, 0); @@ -1788,6 +1794,13 @@ int spmc_ffa_mem_reclaim(uint32_t smc_fid, ret = FFA_ERROR_DENIED; goto err_unlock; } + + /* Allow for platform specific operations to be performed. */ + ret = plat_spmc_shmem_reclaim(&obj->desc); + if (ret != 0) { + goto err_unlock; + } + spmc_shmem_obj_free(&spmc_shmem_obj_state, obj); spin_unlock(&spmc_shmem_obj_state.lock); |