Merge "mem-buf: Add accessor for mem_buf_desc sgl list"

This commit is contained in:
qctecmdr 2022-09-29 10:40:35 -07:00 committed by Gerrit - the friendly Code Review server
commit 0607a4e6cc
3 changed files with 25 additions and 4 deletions

View File

@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2020-2021, The Linux Foundation. All rights reserved.
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef _QCOM_CARVEOUT_HEAP_H
@ -12,13 +13,13 @@
int qcom_secure_carveout_heap_create(struct platform_heap *heap_data);
int qcom_carveout_heap_create(struct platform_heap *heap_data);
#else
static int qcom_secure_carveout_heap_create(struct platform_heap *heap_data)
static inline int qcom_secure_carveout_heap_create(struct platform_heap *heap_data)
{
return 1;
return -EINVAL;
}
static int qcom_carveout_heap_create(struct platform_heap *heap_data)
static inline int qcom_carveout_heap_create(struct platform_heap *heap_data)
{
return 1;
return -EINVAL;
}
#endif

View File

@ -222,6 +222,13 @@ static void mem_buf_rmt_free_dmaheap_mem(struct mem_buf_xfer_mem *xfer_mem)
dma_buf_unmap_attachment(attachment, mem_sgt, DMA_BIDIRECTIONAL);
dma_buf_detach(dmabuf, attachment);
dma_buf_put(dmaheap_mem_data->dmabuf);
/*
* No locks should be held at this point, as flush_delayed_fput may call the
* release callbacks of arbitrary files. It should be safe for us since we
* know this function is called only from our recv kthread, so we have control
* over what locks are currently held.
*/
flush_delayed_fput();
pr_debug("%s: DMAHEAP memory freed\n", __func__);
}
@ -1138,6 +1145,14 @@ static int get_mem_buf(void *membuf_desc)
return 0;
}
struct gh_sgl_desc *mem_buf_get_sgl(void *__membuf)
{
struct mem_buf_desc *membuf = __membuf;
return membuf->sgl_desc;
}
EXPORT_SYMBOL(mem_buf_get_sgl);
static void mem_buf_retrieve_release(struct qcom_sg_buffer *buffer)
{
sg_free_table(&buffer->sg_table);

View File

@ -104,6 +104,7 @@ void mem_buf_put(void *membuf_desc);
void *mem_buf_get(int fd);
struct gh_sgl_desc *mem_buf_get_sgl(void *membuf);
#else
static inline int mem_buf_get_fd(void *membuf_desc)
@ -120,5 +121,9 @@ static inline void *mem_buf_get(int fd)
return ERR_PTR(-ENODEV);
}
static inline struct gh_sgl_desc *mem_buf_get_sgl(void *membuf)
{
return ERR_PTR(-EINVAL);
}
#endif /* CONFIG_QCOM_MEM_BUF */
#endif /* _MEM_BUF_H */