Revert "Revert "mem-buf: Properly track which VMs have access to buffer""
Restore bdd8cc723d
.
Change-Id: Ib2c97698758098a6596fbb64ef36176d4f9a7f20
Signed-off-by: Chris Goldsworthy <quic_cgoldswo@quicinc.com>
This commit is contained in:
parent
0e754c35a4
commit
a4b2af918f
@ -1119,7 +1119,9 @@ struct dma_buf *mem_buf_retrieve(struct mem_buf_retrieve_kernel_arg *arg)
|
||||
buffer->uncached = false;
|
||||
buffer->free = mem_buf_retrieve_release;
|
||||
buffer->vmperm = mem_buf_vmperm_alloc_accept(&buffer->sg_table,
|
||||
arg->memparcel_hdl);
|
||||
arg->memparcel_hdl,
|
||||
arg->vmids, arg->perms,
|
||||
arg->nr_acl_entries);
|
||||
|
||||
exp_info.size = buffer->len;
|
||||
exp_info.flags = arg->fd_flags;
|
||||
|
@ -140,17 +140,14 @@ static struct mem_buf_vmperm *mem_buf_vmperm_alloc_flags(
|
||||
|
||||
/* Must be freed via mem_buf_vmperm_release. */
|
||||
struct mem_buf_vmperm *mem_buf_vmperm_alloc_accept(struct sg_table *sgt,
|
||||
gh_memparcel_handle_t memparcel_hdl)
|
||||
gh_memparcel_handle_t memparcel_hdl, int *vmids, int *perms,
|
||||
unsigned int nr_acl_entries)
|
||||
{
|
||||
int vmids[1];
|
||||
int perms[1];
|
||||
struct mem_buf_vmperm *vmperm;
|
||||
|
||||
vmids[0] = current_vmid;
|
||||
perms[0] = PERM_READ | PERM_WRITE | PERM_EXEC;
|
||||
vmperm = mem_buf_vmperm_alloc_flags(sgt,
|
||||
MEM_BUF_WRAPPER_FLAG_ACCEPT,
|
||||
vmids, perms, 1);
|
||||
vmids, perms, nr_acl_entries);
|
||||
if (IS_ERR(vmperm))
|
||||
return vmperm;
|
||||
|
||||
|
@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0-only */
|
||||
/*
|
||||
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef _MEM_BUF_EXPORTER_H
|
||||
@ -59,8 +60,8 @@ struct mem_buf_vmperm *mem_buf_vmperm_alloc_staticvm(struct sg_table *sgt, int *
|
||||
* A dmabuf in the "MEMACCEPT" state.
|
||||
*/
|
||||
struct mem_buf_vmperm *mem_buf_vmperm_alloc_accept(struct sg_table *sgt,
|
||||
gh_memparcel_handle_t memparcel_hdl);
|
||||
|
||||
gh_memparcel_handle_t memparcel_hdl, int *vmids, int *perms,
|
||||
unsigned int nr_acl_entries);
|
||||
|
||||
/*
|
||||
* Performs the expected close step based on whether the dmabuf
|
||||
|
Loading…
Reference in New Issue
Block a user