mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 03:27:03 +02:00
Merge "mem-buf: Add accessor for mem_buf_desc sgl list"
This commit is contained in:
commit
0607a4e6cc
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
|
|
|
|||
|
|
@ -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 */
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user