On 30/05/2024 11:20, Ekansh Gupta wrote:
DSP capabilities request is sending bad size to utilities skelWhat you exactly mean by this?
Curretly driver is sending 1024 bytes of buffer, why is DSP not happy with this size?
call which is resulting in memory corruption. Pass proper sizeWhat does proper size mean?
DSP is expecting the information about the number of attributes to be updated, i.e., 255.to avoid the corruption.
Fixes: 6c16fd8bdd40 ("misc: fastrpc: Add support to get DSP capabilities")
Cc: stable <stable@xxxxxxxxxx>
Signed-off-by: Ekansh Gupta <quic_ekangupt@xxxxxxxxxxx>
---
drivers/misc/fastrpc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index 61389795f498..3e1ab58038ed 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -1695,6 +1695,7 @@ static int fastrpc_get_info_from_dsp(struct fastrpc_user *fl, uint32_t *dsp_attr
/* Capability filled in userspace */
dsp_attr_buf[0] = 0;
+ dsp_attr_buf_len -= 1;
is DSP expecting 255 *4 bytes instead of 256 *4?
--srini
args[0].ptr = (u64)(uintptr_t)&dsp_attr_buf_len;
args[0].length = sizeof(dsp_attr_buf_len);