[v1] misc: fastrpc: Reassign memory ownership only for remote heap

Message ID 1679394100-27119-1-git-send-email-quic_ekangupt@quicinc.com
State New
Headers
Series [v1] misc: fastrpc: Reassign memory ownership only for remote heap |

Commit Message

Ekansh Gupta March 21, 2023, 10:21 a.m. UTC
  The userspace map request for remote heap allocates CMA memory.
The ownership of this memory needs to be reassigned to proper
owners to allow access from the protection domain running on
DSP. This reassigning of ownership is not correct if done for
any other supported flags.

When any other flag is requested from userspace, fastrpc is
trying to reassign the ownership of memory and this reassignment
is getting skipped for remote heap request which is incorrect.
Add proper flag check to reassign the memory only if remote heap
is requested.

Fixes: 532ad70c6d44 ("misc: fastrpc: Add mmap request assigning for static PD pool")
Cc: stable <stable@kernel.org>
Tested-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
---
 drivers/misc/fastrpc.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Srinivas Kandagatla March 21, 2023, 8:53 p.m. UTC | #1
On 21/03/2023 10:21, Ekansh Gupta wrote:
> The userspace map request for remote heap allocates CMA memory.
> The ownership of this memory needs to be reassigned to proper
> owners to allow access from the protection domain running on
> DSP. This reassigning of ownership is not correct if done for
> any other supported flags.
> 
> When any other flag is requested from userspace, fastrpc is
> trying to reassign the ownership of memory and this reassignment
> is getting skipped for remote heap request which is incorrect.
> Add proper flag check to reassign the memory only if remote heap
> is requested.
> 
> Fixes: 532ad70c6d44 ("misc: fastrpc: Add mmap request assigning for static PD pool")
> Cc: stable <stable@kernel.org>
> Tested-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
> Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>

Thanks for fixing this,  without this fix the code inside if condition 
was a dead code.


Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>


--srini
> ---
>   drivers/misc/fastrpc.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
> index a701132..9b88132 100644
> --- a/drivers/misc/fastrpc.c
> +++ b/drivers/misc/fastrpc.c
> @@ -1892,7 +1892,7 @@ static int fastrpc_req_mmap(struct fastrpc_user *fl, char __user *argp)
>   	req.vaddrout = rsp_msg.vaddr;
>   
>   	/* Add memory to static PD pool, protection thru hypervisor */
> -	if (req.flags != ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) {
> +	if (req.flags == ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) {
>   		struct qcom_scm_vmperm perm;
>   
>   		perm.vmid = QCOM_SCM_VMID_HLOS;
  
Greg KH March 29, 2023, 10:09 a.m. UTC | #2
On Tue, Mar 21, 2023 at 08:53:33PM +0000, Srinivas Kandagatla wrote:
> 
> 
> On 21/03/2023 10:21, Ekansh Gupta wrote:
> > The userspace map request for remote heap allocates CMA memory.
> > The ownership of this memory needs to be reassigned to proper
> > owners to allow access from the protection domain running on
> > DSP. This reassigning of ownership is not correct if done for
> > any other supported flags.
> > 
> > When any other flag is requested from userspace, fastrpc is
> > trying to reassign the ownership of memory and this reassignment
> > is getting skipped for remote heap request which is incorrect.
> > Add proper flag check to reassign the memory only if remote heap
> > is requested.
> > 
> > Fixes: 532ad70c6d44 ("misc: fastrpc: Add mmap request assigning for static PD pool")
> > Cc: stable <stable@kernel.org>
> > Tested-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
> > Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
> 
> Thanks for fixing this,  without this fix the code inside if condition was a
> dead code.
> 
> 
> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>

Are you going to be collecting these and sending them on?  If not,
please do.

thanks,

greg k-h
  
Srinivas Kandagatla May 12, 2023, 12:40 p.m. UTC | #3
On 29/03/2023 11:09, Greg KH wrote:
> On Tue, Mar 21, 2023 at 08:53:33PM +0000, Srinivas Kandagatla wrote:
>>
>>
>> On 21/03/2023 10:21, Ekansh Gupta wrote:
>>> The userspace map request for remote heap allocates CMA memory.
>>> The ownership of this memory needs to be reassigned to proper
>>> owners to allow access from the protection domain running on
>>> DSP. This reassigning of ownership is not correct if done for
>>> any other supported flags.
>>>
>>> When any other flag is requested from userspace, fastrpc is
>>> trying to reassign the ownership of memory and this reassignment
>>> is getting skipped for remote heap request which is incorrect.
>>> Add proper flag check to reassign the memory only if remote heap
>>> is requested.
>>>
>>> Fixes: 532ad70c6d44 ("misc: fastrpc: Add mmap request assigning for static PD pool")
>>> Cc: stable <stable@kernel.org>
>>> Tested-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
>>> Signed-off-by: Ekansh Gupta <quic_ekangupt@quicinc.com>
>>
>> Thanks for fixing this,  without this fix the code inside if condition was a
>> dead code.
>>
>>
>> Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
> 
> Are you going to be collecting these and sending them on?  If not,
> please do.
Sorry for long delay,
I will take care of collecting fastrpc patches and send it.

--srini



> 
> thanks,
> 
> greg k-h
  
Srinivas Kandagatla May 12, 2023, 2:54 p.m. UTC | #4
On Tue, 21 Mar 2023 15:51:40 +0530, Ekansh Gupta wrote:
> The userspace map request for remote heap allocates CMA memory.
> The ownership of this memory needs to be reassigned to proper
> owners to allow access from the protection domain running on
> DSP. This reassigning of ownership is not correct if done for
> any other supported flags.
> 
> When any other flag is requested from userspace, fastrpc is
> trying to reassign the ownership of memory and this reassignment
> is getting skipped for remote heap request which is incorrect.
> Add proper flag check to reassign the memory only if remote heap
> is requested.
> 
> [...]

Applied, thanks!

[1/1] misc: fastrpc: Reassign memory ownership only for remote heap
      commit: 5fad4a6b2d8f05c4823a08465e584f46df798b1f

Best regards,
  

Patch

diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c
index a701132..9b88132 100644
--- a/drivers/misc/fastrpc.c
+++ b/drivers/misc/fastrpc.c
@@ -1892,7 +1892,7 @@  static int fastrpc_req_mmap(struct fastrpc_user *fl, char __user *argp)
 	req.vaddrout = rsp_msg.vaddr;
 
 	/* Add memory to static PD pool, protection thru hypervisor */
-	if (req.flags != ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) {
+	if (req.flags == ADSP_MMAP_REMOTE_HEAP_ADDR && fl->cctx->vmcount) {
 		struct qcom_scm_vmperm perm;
 
 		perm.vmid = QCOM_SCM_VMID_HLOS;