diff --git a/drivers/soc/qcom/mem_buf/mem-buf-gh.c b/drivers/soc/qcom/mem_buf/mem-buf-gh.c index 6bbd10ba1777..a5b56f4b41dd 100644 --- a/drivers/soc/qcom/mem_buf/mem-buf-gh.c +++ b/drivers/soc/qcom/mem_buf/mem-buf-gh.c @@ -1145,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); diff --git a/include/linux/mem-buf.h b/include/linux/mem-buf.h index f9e1ecb07b3f..3f69e1d9755a 100644 --- a/include/linux/mem-buf.h +++ b/include/linux/mem-buf.h @@ -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 */