From nobody Mon Jun 8 04:24:54 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6482F372060 for ; Tue, 2 Jun 2026 07:18:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384686; cv=none; b=TmsIAWDyghd3yVfi1742W8iWAxVBsls9PFZ37pc64BHNxsAwsV0FU+ZygM6Ep1RM/pBjF/CUxK28fG61iLrcnSxEDSpDIVFk+z/+pJkWhFKtde00zNbktBqEzjlUiZ4bdbDxGYiwfXzztFO3POcES6bixbzXdKH+gkpBML/cBK4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384686; c=relaxed/simple; bh=xJwkAFzBCgVE2LEdHMFAQiZLbcIInQtlHCiLCIhnIZ0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=sDTa3Si8pGZgedyCBSYvUD6T+gHKpNzh2D7fcVVqviG8CQQ5X2yQ1rjnXrszElPHNh3Hq+hIwpoTqvv4TgArhc16sD4lb3bF+Vxj/liEondeocheczU+AbIN0bMOkryo7H5fPMPq7QNvMAyyNLO2O8Wkmtj1WbnW0wRRbARACVw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=BclFUBCe; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=inBvZFel; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="BclFUBCe"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="inBvZFel" Received: from pps.filterd (m0279862.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6525tXrL4012419 for ; Tue, 2 Jun 2026 07:18:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=WnPeFnYm50V ptjiqnHaSpsB7Y9ad0zWN9mmwwejDdiY=; b=BclFUBCe/mC3OuKmi3W8oL9f8HL 0bcGGnYFr9FfcI5KYrAuRnaZtPGKsFQ1zbs1mzMEsL1exYMo0S3NjTJ8bOz9UmeG w8dW/CYzDXllrJW7PJ893yr3esHyS50hDlUGzIScvb/WuQcp0BrkmwZozx1YaMdl UXnD5srtkiung+7KCIO2wej0djx9UZoi98rPN12+8nXmHBmdA4v8IEsKA1hVTo2g 5kqFsIGtcl+IO88yyg3+kuStmGB7eJ6agbYp4zu5nfJ2bt2dL310dbixNC1mbekU Qjz7Qe3tc42nXdfAh15SLYaMiy4Ih2ZpWbclLmQgbjUai60uSPPubJp1sPQ== Received: from mail-pj1-f72.google.com (mail-pj1-f72.google.com [209.85.216.72]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ehsf4gakt-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 02 Jun 2026 07:18:04 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-36ba98cc003so3258348a91.1 for ; Tue, 02 Jun 2026 00:18:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780384684; x=1780989484; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WnPeFnYm50VptjiqnHaSpsB7Y9ad0zWN9mmwwejDdiY=; b=inBvZFelruh7o0Fw1YtO7rWQNWLWbHOlnocD2ZXIrxbCWVBHZqqzYcKmdGG9IpMr82 ElNKynNi65fPnicqTKP6X5J6DKPx1cJBwkKGp2izrOu4D3eX1wmjNvxYispOt4HTmLuU 0gBfIqqyZ5XG2xvurXLkisJWI3RG+UAqICdzopVWKDbiuvbP9gnZnj3H2HBvGJQ4PbR1 xqmzYqPBaeT2Dz66KmNgP4zBIpOqtvCYWnhlyWtJPLh+2HsKUBBD4Ionk1dMbKxhQDMe mXmDMblfZHPOsVJ8UqAvSR2xOmgHgTL9acJm1IsEJZ49GLiahNkhxM4sIn8LNZC7Sgac 8k0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780384684; x=1780989484; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=WnPeFnYm50VptjiqnHaSpsB7Y9ad0zWN9mmwwejDdiY=; b=BWqLyixxr7/dfAMt3BP9Rvwc9kDuBCXQZ84O24pbRhO9ROqvIglrhIG2ABPBXBfgS2 g9X8dJBs9uTGtNogv7AdrBTGQfkb7cz114K46euUO71GTuClmhCmmPA4ZbblKzFNtFqw 9MiRyGT7Buu6JZGrv85oa5Ibacv4pc+ggBg5gBRwLAej3SzSD8nfmgouTqxFNvMoZPTS jtei3vVayDH0FI5yGWKGxafG5+svNophBl9nHjm3UYqU3/tJ/fv4r6nWqun7srbxw964 ErUXwKfbDE2xw3F/cCxXsNlHXlJQlZcmy6PvKBGRT8i1ManjTnBNhi7jKto0DDcrgQnO aF+w== X-Forwarded-Encrypted: i=1; AFNElJ8PN4Ffyfr1rJsmLmCv+uMLHbed1SdfZ9PdyAaeNhtW/DWY12dChCFnCBxmv7Z4dyxn5t4a+cdECCz9dK0=@vger.kernel.org X-Gm-Message-State: AOJu0YyZ6LXPMwm+9mLKrQ/fFBRBh0xYUifozdzYgHKAWphfOORwNiuw L2GCLpRfyhscuKy2txqNdvd7ynp3lo617poG6G0jGv1qT0pCKEuFDZ890DyCUIe6Ucf35cgDx6/ EP2XVln1NIhDRO5Z1hdUcl4tyhVDLRJYdL4gNUAdNWzXa+vpHCtusYBgDgZygf+ZJT60= X-Gm-Gg: Acq92OH/NQ2+uXm7qK2B0iB5VQb370V1vxd3JwnsoDvEYZ5foFt2ax9WI+dSZrWr+EH b2/y3BciBcQCGuGUkgwdqFHA4onzycU1Wgu1aSAY9GlN8G/bzyRtXVihFaqKVuusaT2B3F+dJEA vHvBSp6vYFxcagRT2OjWZT98fh09oE38xiq1HX1hAldBkmWctU7TnzF6H2I8cTvHEbI5cfLg53H JS7g1Dd+UUIXue7B/hqnn5tRyiWIinUB5lfJV9omgjM+8+3EnWL6wcvrrnJB5Zk4ISLNwjZuKrh Rb4iYXZ1R8C79QrVQ2lCRs/ej6sTeJMUXzlZxaNben/dW8WIC7iikT0Mquljo/jLOSS74GthWK7 koSNid+lgu0SwPnknmmEs6hd9KZ3V5YexCmTNe8jVtgBLUpzVDvgAfNdAfoPsEilsTAqU9Xhzje Eg+2ArpW7DvHjufS7DM0GzJt67sHa1Zg== X-Received: by 2002:a17:90b:2686:b0:369:e217:d110 with SMTP id 98e67ed59e1d1-36c684a9270mr14226546a91.27.1780384684058; Tue, 02 Jun 2026 00:18:04 -0700 (PDT) X-Received: by 2002:a17:90b:2686:b0:369:e217:d110 with SMTP id 98e67ed59e1d1-36c684a9270mr14226519a91.27.1780384683602; Tue, 02 Jun 2026 00:18:03 -0700 (PDT) Received: from QCOM-SocCW5bzXR.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36dd91c9991sm1766279a91.7.2026.06.02.00.17.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 00:18:03 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez@oss.qualcomm.com Cc: Ekansh Gupta , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, stable@kernel.org, Jianping Li Subject: [PATCH v7 1/5] misc: fastrpc: Fix initial memory allocation for Audio PD memory pool Date: Tue, 2 Jun 2026 15:17:46 +0800 Message-Id: <20260602071750.526-2-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260602071750.526-1-jianping.li@oss.qualcomm.com> References: <20260602071750.526-1-jianping.li@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAyMDA2NiBTYWx0ZWRfX+y1lkTkwEOrR WapKDeacKbqTWZURZ8wLR3dZrqGBjeq7do3Uk5CTz8xPDKlY2ezRSaItLu/jgSuzKXYy2cOz37/ 0L6OMyMl9kMN+Lzt6TtxnNgnCM5eg0CREskZ0DlhBTmLJo0ZyLTA/YOJNnPcZCg64hK33Eu0aYs 8Ru8vVnqxfq8CsB1muPYQmmLVt11l/Ati66zvRQBeDNSB50S/UsWXORizjpQp02muQ0BL7zBEGa 1SPeJgG3+NuUJTeS28GmGwnU7aGNGzTlNPhhwPEjUQq/VY+AQ4xEstnJw+V6ThTyw4aHpQbO+O+ jIx/J8xekZwKpG5GdVQEina2xYW8tz8Moo1VqxNZZca9tZsL9qLwOJQCBbyGSMUPdL6+tR4pi22 OQpHPg03+tobPr11QBUF/d1V/o9efpPKHEmGqumWp8R7qaWJBkkS77D8hiu1/2VmdLp+qJ8Uzqf tBB6oc/Tir/9E7uy0lQ== X-Proofpoint-GUID: WgosAX2I4sukU9mdUz1if3pJiXv3NvLx X-Authority-Analysis: v=2.4 cv=AJZ7LEvz c=1 sm=1 tr=0 ts=6a1e83ac cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=Rm9GPb-2FwNFOyaWfJMA:9 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-ORIG-GUID: WgosAX2I4sukU9mdUz1if3pJiXv3NvLx X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_07,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 adultscore=0 suspectscore=0 malwarescore=0 phishscore=0 bulkscore=0 impostorscore=0 clxscore=1015 lowpriorityscore=0 spamscore=0 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606020066 Content-Type: text/plain; charset="utf-8" From: Ekansh Gupta The initial buffer allocated for the Audio PD memory pool is never added to the pool because pageslen is set to 0. As a result, the buffer is not registered with Audio PD and is never used, causing a memory leak. Audio PD immediately falls back to allocating memory from the remote heap since the pool starts out empty. Fix this by setting pageslen to 1 so that the initially allocated buffer is correctly registered and becomes part of the Audio PD memory pool. Fixes: 0871561055e66 ("misc: fastrpc: Add support for audiopd") Cc: stable@kernel.org Signed-off-by: Ekansh Gupta Signed-off-by: Jianping Li --- drivers/misc/fastrpc.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 5524354f3ccc..80a636962357 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1373,7 +1373,9 @@ static int fastrpc_init_create_static_process(struct = fastrpc_user *fl, err =3D PTR_ERR(name); goto err; } - + inbuf.client_id =3D fl->client_id; + inbuf.namelen =3D init.namelen; + inbuf.pageslen =3D 0; if (!fl->cctx->remote_heap) { err =3D fastrpc_remote_heap_alloc(fl, fl->sctx->dev, init.memlen, &fl->cctx->remote_heap); @@ -1396,12 +1398,10 @@ static int fastrpc_init_create_static_process(struc= t fastrpc_user *fl, goto err_map; } scm_done =3D true; + inbuf.pageslen =3D 1; } } =20 - inbuf.client_id =3D fl->client_id; - inbuf.namelen =3D init.namelen; - inbuf.pageslen =3D 0; fl->pd =3D USER_PD; =20 args[0].ptr =3D (u64)(uintptr_t)&inbuf; --=20 2.43.0 From nobody Mon Jun 8 04:24:54 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8F2C03793CE for ; Tue, 2 Jun 2026 07:18:11 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384692; cv=none; b=P8OAXIfQZUN2GTq4HV40gjTjuALBuzHEDf6AlF4WP7+gBcKujeWUR93PlN8luP9ai9Ep0sq0+o6EtuyA5iQjqAjq8gbBkRY8Y1PpLs7eT7dZff5RuJaISG0dbxRrfRYrYJ8NjdclSxiPvEcIrNbZjDcakxS2f4rKUlFwjJm09U0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384692; c=relaxed/simple; bh=uwUosZaTRLvg70pMj5LLo47klKvzExFmHdJcqWxZT4Q=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=vCdmU8tsK+QZdK7LVTRAn3h6JaO8UQwZRjwR+x9cFMGUMMk66JBPIMjpLi6HCL7JisNH0PZtbcXwqp49Cym345Oe2+jBeyuD0LRb4VcMkR3JuvomvqaBl7ncejQ/Yfj71AcuZqxkzkZNPlWqdNPkdWUbIj+qWdhx3WLyZXqcFSU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=BuP1B37t; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=MMF3+cD4; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="BuP1B37t"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="MMF3+cD4" Received: from pps.filterd (m0279868.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6523j66p599787 for ; Tue, 2 Jun 2026 07:18:10 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=h2rbBUksZJT YcjdAJliGesa3QsJPl7wEGaGM4JyELQc=; b=BuP1B37tHS7VbrwU9/VUo/TUYKT oAul/jxN2jFUzdSURUIKGp7AdxAaCZlWpjYlpJ4nY8mjli7ovWe777Ehxp54ElP8 pQlvNLGlKDYZpQrWAaXFI5qYGvb7wNBelhJaoAlG6G/Yk/KL/KvLXU0NP0MUcEGD IPxURgaiTerzEemUfalIlgl/BHdWzbmeIb8w1/mSlEDVx1RpnUjhpsWWIXht5ine G6V5TC5aovy90kPxlOpL2VkcVqNRtA+2DhU62KSAdKfy+6J11D/885T5vM4qOzt6 EETyxofzjM69kl3Xn3hEcWihbLSVS/oe1Q5TwkmJ5Vfp40SDZXpaK1NaQnA== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eha8rca4w-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 02 Jun 2026 07:18:10 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-36d99181eaaso3119106a91.3 for ; Tue, 02 Jun 2026 00:18:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780384689; x=1780989489; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=h2rbBUksZJTYcjdAJliGesa3QsJPl7wEGaGM4JyELQc=; b=MMF3+cD4DdP6/lXqY4B+iqR58odm3yOrFu9UjPZU0bG9QIC2nNdu9X4EPvAv4eb3Qh yWIlBPahzcNddibHzcKXJrTToYtJBiB/JsxQ/Sexbr3bW7KTp+0VuSs3qkf5CUdiQkBB eE2KJhy6W5b25bcxrt4FQSwGbV+C0wVG/6TCEh0zInDiR2fR6RVcdFBaRZitPJ2KfyRR V1Eo4Aps6lfQ4iRsX3Ds7ffrPjm4jS3v49+EDHf1oXDP7PwYJfxBTKyg9vBVljhAcDRd VN2SnoI1o7+v6F523IsQT+JHozJCGEDhDgZYHHG+Y1uI1sODIrLx/MWEfgbeorZCTRTC /kAw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780384689; x=1780989489; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=h2rbBUksZJTYcjdAJliGesa3QsJPl7wEGaGM4JyELQc=; b=EOJyck5Y7bsVcsysp1pLFwLDPVimDSbrhXV38AO38uOxr6qawK5jX2G9ok69nfmsHS zHaulhkrZjssKJY7jKWHgmJJISIK8NWVJFxfhRxF3A52x+NYPP7eU/WgNvgPlnyn8N+r FmYNxvtCUtw+fPj/HScF/A3qy/oHTB9PPysP3fLkbeRAbyeM6oet3tIhOtQYr2M6pYTx rl5r1S1lh9McdeOeJb5cbVSUzuPzYY5+D7u8vm0pXxXLc7GbWVIIXpscfi68iyCewsVf VR/SQs3fZlKTsNmcfGi7n42xg98AYk/+uWwdxrpxnKuBSYUaPzlYPwZmfWCseRFfihhZ kkBA== X-Forwarded-Encrypted: i=1; AFNElJ9HKF20jEMGMAz8AjCUKLjO2cEuyF5FLTw8DOD9s6QLlkypNNrJ4WtSsFo7/4Hr71RhcIgzTVcPeOBSSrA=@vger.kernel.org X-Gm-Message-State: AOJu0YzYCr8LQ7U6nsNQw1R5yaHRt9x0fgL3C/uxO2DgAIFT9oGzb6RW 6rrc9b1HuQO6rMTW+6nJQjmXXvCr4Brb1IGXT0SCbJXo/DpTtJG7vk2d04lFf5O4ClIVRutFSWn tna1Dz3nNz0B9RD5LLhqTMHt+AsbUXVkp5gd5Bgp60FigTwMVgZn8xBqV/mqCe2zLtGQ= X-Gm-Gg: Acq92OGz/9twXITsB5Dz6RBa0T0qakY5eIgmhS6X7PT9RLc7g6R6SA+O85trHYD0siw aHtVDtyTl2TxRTbhkVcpa+NGwWh00Ab9byeZtgB4Q1B/C+qLKs02m6drg+Ao7yX/d+I0uKtaXHV PkMJxI1vPbfNBGQkE37UgncFy/mh2a1OhUoEc47/GOFrqaRXtuMcUNiABpAJvKrL9uObxLe+ZH8 ez5DmxrsZKxAoXlOhIto6NdibnTZWzzg1KfUwm75Fb6Ia1PCsMBnE/e51UQYrSZsKu7pc7IHAaY kOeah+dn+LFMGvHOwOkjb5f0IjEmKxCPbBtanJ9uIwZXz0X5lEUetksaL1CzjNX0bnPAQXNG0WB RVgmhzCMb9j3ZsaCptbvmRCgwMmrZmN6D4fpV7qg/cHDxYuA7yXdofbrtQcI5bnqYMl7C0PQ2u2 vb3NM3g9GUg7+WDJNGr8msIRiK/M7bvA== X-Received: by 2002:a17:90b:5184:b0:36b:8824:d7cc with SMTP id 98e67ed59e1d1-36c501efef2mr13151231a91.20.1780384689410; Tue, 02 Jun 2026 00:18:09 -0700 (PDT) X-Received: by 2002:a17:90b:5184:b0:36b:8824:d7cc with SMTP id 98e67ed59e1d1-36c501efef2mr13151203a91.20.1780384688932; Tue, 02 Jun 2026 00:18:08 -0700 (PDT) Received: from QCOM-SocCW5bzXR.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36dd91c9991sm1766279a91.7.2026.06.02.00.18.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 00:18:08 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez@oss.qualcomm.com Cc: Ekansh Gupta , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, stable@kernel.org, Jianping Li Subject: [PATCH v7 2/5] misc: fastrpc: Remove buffer from list prior to unmap operation Date: Tue, 2 Jun 2026 15:17:47 +0800 Message-Id: <20260602071750.526-3-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260602071750.526-1-jianping.li@oss.qualcomm.com> References: <20260602071750.526-1-jianping.li@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=aKnAb79m c=1 sm=1 tr=0 ts=6a1e83b2 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=8ZZxLbFAX5vHFMKIXQAA:9 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-GUID: upGHocaBJp0td9HOFaJpAnAlXdMV7UG7 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAyMDA2NiBTYWx0ZWRfX2J9/6Y+F6amd 416aQ+McIdn7nhl3DPLuuPGrpl6R8xILtBxRH79XYDYQ6T4UtGI6GKtKQA+cTXvimzjY3YHryNp YyTd0zPaoq3eT0zGP0G4hc7jgpciXkaKQQQwEO0eGJ5uqBcR9938fPdXUdW9IU+uuRC/VQtkbCb VB4jtZ6B8AVxqFfzw8MSJ80ak1B0RdoWV0j7PU9JDm27mIVWed+2gNI+YnXI1q6GZ1w3G0+dRIM TZJbz/mssk5bbbNj+9+gfy8+D0Uzrb1ZJOj25G26jTPD8yQXwJ2BNgiwHze2p/Zv75zs97/zH2W T/lvrt5HJ+xV6Dmu0W86uR4HhfffQTtPq8tlHFpVa6RG8a45LtOp0KBGb9sT0iORuNR3uF/rnMB VWF77iDMlHpFMprcIf9PUYjq7zSYiWnN9c5zK7fiDstXytrizBNFNDa8aY87SNARBMRPCfSjuQ4 6Bs1/IULzIMKXtq1A8Q== X-Proofpoint-ORIG-GUID: upGHocaBJp0td9HOFaJpAnAlXdMV7UG7 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_07,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 bulkscore=0 malwarescore=0 priorityscore=1501 adultscore=0 lowpriorityscore=0 clxscore=1015 impostorscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606020066 Content-Type: text/plain; charset="utf-8" From: Ekansh Gupta fastrpc_req_munmap_impl() is called to unmap any buffer. The buffer is getting removed from the list after it is unmapped from DSP. This can create potential race conditions if multiple threads invoke unmap concurrently, where one thread may remove the entry from the list while another thread's unmap operation is still ongoing. Fix this by removing the buffer entry from the list before calling the unmap operation. If the unmap fails, the entry is re-added to the list so that userspace can retry the unmap, or alternatively, the buffer will be cleaned up during device release when the DSP process is torn down and all DSP-side mappings are freed along with remaining buffers in the list. Fixes: 2419e55e532de ("misc: fastrpc: add mmap/unmap support") Cc: stable@kernel.org Signed-off-by: Ekansh Gupta Signed-off-by: Jianping Li --- drivers/misc/fastrpc.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 80a636962357..a8a58f889d07 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1892,9 +1892,6 @@ static int fastrpc_req_munmap_impl(struct fastrpc_use= r *fl, struct fastrpc_buf * &args[0]); if (!err) { dev_dbg(dev, "unmmap\tpt 0x%09lx OK\n", buf->raddr); - spin_lock(&fl->lock); - list_del(&buf->node); - spin_unlock(&fl->lock); fastrpc_buf_free(buf); } else { dev_err(dev, "unmmap\tpt 0x%09lx ERROR\n", buf->raddr); @@ -1908,6 +1905,7 @@ static int fastrpc_req_munmap(struct fastrpc_user *fl= , char __user *argp) struct fastrpc_buf *buf =3D NULL, *iter, *b; struct fastrpc_req_munmap req; struct device *dev =3D fl->sctx->dev; + int err; =20 if (copy_from_user(&req, argp, sizeof(req))) return -EFAULT; @@ -1915,6 +1913,7 @@ static int fastrpc_req_munmap(struct fastrpc_user *fl= , char __user *argp) spin_lock(&fl->lock); list_for_each_entry_safe(iter, b, &fl->mmaps, node) { if ((iter->raddr =3D=3D req.vaddrout) && (iter->size =3D=3D req.size)) { + list_del(&iter->node); buf =3D iter; break; } @@ -1927,7 +1926,14 @@ static int fastrpc_req_munmap(struct fastrpc_user *f= l, char __user *argp) return -EINVAL; } =20 - return fastrpc_req_munmap_impl(fl, buf); + err =3D fastrpc_req_munmap_impl(fl, buf); + if (err) { + spin_lock(&fl->lock); + list_add_tail(&buf->node, &fl->mmaps); + spin_unlock(&fl->lock); + } + + return err; } =20 static int fastrpc_req_mmap(struct fastrpc_user *fl, char __user *argp) --=20 2.43.0 From nobody Mon Jun 8 04:24:54 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6B6C53793CE for ; Tue, 2 Jun 2026 07:18:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384697; cv=none; b=f56QntvC5tAzW7EL/yjICl4W8WLUEiSyaqkH87eEqblfApXxjJSsFx3SfDd1lHersXfE0uVUi+dAr3/UJvVM8pQ18s5UE/o8fNvfmBm7/NUMAsxNdM7DCXj+Mu+/INybB/b/KSKO45b0H5wEwLz+c4N01ScyizfuM6mxqSqlwpo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384697; c=relaxed/simple; bh=JPVQANRPzIydaU0WcpkAVORq1mGKEPTOEIUcCS0y0vU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=ozPDoVzLSjdiL/e8tVL9vOALPwOfVMPMaRxKb+tYBtVLfyliSx8U53CySgo5Nn0XfRoPnmlGrDKHB2d8Eq84L+IdyXAPIT52Wzi+xQcQ1FkluMCEg10mHFgctNEb9RXq7ihRV+7XSswMV+dAzz32Ofh1W7kEC2Iko0KO/6FmErI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ZZ5KSwYM; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=UoMqVuPw; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ZZ5KSwYM"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="UoMqVuPw" Received: from pps.filterd (m0279866.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6525tioc1855018 for ; Tue, 2 Jun 2026 07:18:16 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=GExpfkrACNf d8AgKb7pzoxx6CS0kiv0JrtZqZXX3hVQ=; b=ZZ5KSwYMKZBdV2J7rA+BKaZVSuY kJFouZjz6jCJZi/iK3YsFL+fbQ+DTKEfBqyDlULM8aLXhwfih66W2eYPiYHm8+Nn I9ZXzC6UncyYH3dH4pvWoMjOAZa7ORpPsuj5RnKVxO770UnmGOtgwYogZH6nnIUv vyl69sWA+GjmvwmgLrsLootw3pvSvJsgwYdyqSDP7HDNMQVbwkdTIkE1obBs99p9 o0y+yfRFEf3+EmlswYIA0WYi5G90IeGvD60iNE+nnKgRIR5qlhCoS9lNDbB1RWMH TewUoF3xx6+URUz/Tvx/kAE81KU+sRfnFjnfOh67Mmjt0UntQ5ZVrJbwaOg== Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ehsf78ab1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 02 Jun 2026 07:18:15 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-36b7c55406bso3981431a91.2 for ; Tue, 02 Jun 2026 00:18:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780384695; x=1780989495; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=GExpfkrACNfd8AgKb7pzoxx6CS0kiv0JrtZqZXX3hVQ=; b=UoMqVuPwE9u/qzrZ0EOWwHRULgDap4fSLoVpxHgjyqV5VoZ9V0Dam2aTPL+7m4cX8+ OHtDAK3eRcaNYYorJqBYGZfF1bDbmRfXmoq+C0LBGBqRTAkAujMrVqojjJahYtUR8FxI RTXesmvyWHYqIPKZ2jTwcUnO0EnmXfSG8nJaCBUYd+m8C32Iyr8l3XBeCMBRhdl9ahHR 7Zz1P1aAlCI6lupN1KwWHKHMHq8hNB9J/FMdEAL2gByL98hq2tqTSuep0N9zcjSieVHi fSvOctSK4v/p40NvzKmZNjr0RWVn/2dLCXa8nv1KuAMCkUWNlHzl9cNDywYzwmLjSjzH hHxw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780384695; x=1780989495; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=GExpfkrACNfd8AgKb7pzoxx6CS0kiv0JrtZqZXX3hVQ=; b=q+xj3x3qcLQMjc71SdlIMSaJFMndTpP4tdTs+obZRtzvz5BTVzZXDsFiCO2YWEg4kS BhWbQMOMWuDpJlJbC+ltQ6eanFLcbdb8b9VRlUJ/dEnUGwD19gpvLe0C8Yf3KtweNtIb PmIbdPHeEp7gM0YWpWP7U3zJErIrgh11Si/Bz22dvq2rpsqz3XP2GCsU4jNiZwbNF4Ak kZ/+YWpqapDm3AnGB+k9Rv4zUvpjNvV4kvkq9g3Cc1Wq52Ov8i02nOpD396uphvqSC3E Ed0SWJci0aHcjo9dIru3pR1u0u81KhaHALDhskCEgb0TwnKW9FHRwftq4hSqDpykjCge oa7A== X-Forwarded-Encrypted: i=1; AFNElJ+dH4Bme588S9FmBG31ALgBivFydPlNfGwWp3Uh6l3C5m3cYnk7tL8n7+ixn4DpwDn4ZOh7nDiVU24eHGQ=@vger.kernel.org X-Gm-Message-State: AOJu0YylvDIDNAWp5xVgaHRTJqMBO6z7kQoipMIyrg337B+TwMNvahG5 oZJ8ZKOpq0dzT+wNkXbqlESCw8m5iFu37IATKZFnkBAYtB2ghFB2EaONS4v8TeDbUgDHdwtJzkq U+CTBg7kgzST/al1mTbYU2et0jQUve2p35Fieg9iOhwVuoHMctq2umVlfokFi4U0ve8E= X-Gm-Gg: Acq92OERN8ux3n/AWv9rmZ/jT6+of7DQqbmccNr2ZGUtjc5bZXc1Nito8b0kMs6USO5 3oTF5MHZooYBo8Ov+pYG4P7cuiqHOg9dYTovdtQvu8FiB5+Fi52/J/oPT2PmWK/JaP7YRjJZnVz skzZCJXGXbLFIdAtsoQNnlVxZfGHBtV79D/Gc3cNzPDmcHUQYBd+rlWMEIRBNNkb0OBJBTjStXw Nr/2MIaCm3V/iOLZ7FTwnt4ki0h3/sHd0Wywx+8O40hmp0z49dbdoTbZjDhrMe556g9tjAHfDAq ohOHISTC/5udwxy3904+u1KXzYqotbckhECHRsBGJVXP73f1exFD+Aq3RV8xUauWxD+gPD2h5g4 2qWbt8B5QdIuLLyKv2YxjfjscsNf/BI7j3endTi7SKcIo84ZmTgTv8tArKCDqDAyq94XuF7mIze HV4mAkWsyyg9wjatz9hIInA3yO8p5jMQ== X-Received: by 2002:a17:90b:4a4d:b0:36d:dd4a:1e59 with SMTP id 98e67ed59e1d1-36ddd4a24e2mr2251909a91.23.1780384695123; Tue, 02 Jun 2026 00:18:15 -0700 (PDT) X-Received: by 2002:a17:90b:4a4d:b0:36d:dd4a:1e59 with SMTP id 98e67ed59e1d1-36ddd4a24e2mr2251844a91.23.1780384694470; Tue, 02 Jun 2026 00:18:14 -0700 (PDT) Received: from QCOM-SocCW5bzXR.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36dd91c9991sm1766279a91.7.2026.06.02.00.18.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 00:18:14 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez@oss.qualcomm.com Cc: Jianping Li , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, ekansh.gupta@oss.qualcomm.com, quic_chennak@quicinc.com, stable@kernel.org Subject: [PATCH v7 3/5] misc: fastrpc: Fail Audio PD init when reserved memory is missing Date: Tue, 2 Jun 2026 15:17:48 +0800 Message-Id: <20260602071750.526-4-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260602071750.526-1-jianping.li@oss.qualcomm.com> References: <20260602071750.526-1-jianping.li@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Authority-Analysis: v=2.4 cv=WKRPmHsR c=1 sm=1 tr=0 ts=6a1e83b7 cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=cwMOb1EeFLyGxYfGK4oA:9 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-GUID: 6K8upSBYWXZAg7nMDvsgJ3INi3SlLFFQ X-Proofpoint-ORIG-GUID: 6K8upSBYWXZAg7nMDvsgJ3INi3SlLFFQ X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAyMDA2NiBTYWx0ZWRfX8bpF862RBH/U hQqPhUFNIV3ezJ0aHnDBV1EZUadmEu/g0ivFvnViUJEQ8Mpyz7+ayTN3paSEfhOY9HSOzLO7A02 7yh3cFLkk4Jjk4qwpoG27pBDrC5KOGX7NuDvMfvRMTMZ0jYjV5sFGMUJtR7EF8lhPQn1X08ZGcx q4qnhjan2ZlWgqHxc9pUcAgPy04lqiKJT0Y/+S04DMW6qevO37VU58AelyTVYVe9I6LuXC6FrdW D9ktBULkHUNRr0UuEWU8uIDUSbEuUiUvMxABiqr1bEbzJH7b2+8r5H/UQ4NWQrmkQEyOun5ZqP/ cZcCjlDd18S8FobGJt1yoETo+EUqcg3h5zE9OdX6gbkG+1YxQ++J3fPtcvjSv4B0adMC+Q95m53 AnEBfy0wj29uJVn+hdphuAjJZGfarR9yav3TBkW5pSE8q5sQu3ftteCsvmgGe5obJnhX9Ome4i6 hwJVvyJdHIIeUJL9pDw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_07,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 adultscore=0 malwarescore=0 phishscore=0 priorityscore=1501 clxscore=1015 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606020066 Content-Type: text/plain; charset="utf-8" Audio PD static process creation assumes that a reserved-memory region is defined in DT and exposed via cctx->remote_heap. If reserved-memory is missing or incomplete, the driver may pass invalid address/size information to the DSP, leading to undefined behavior or crashes. Add explicit validation for remote_heap presence and size before sending the memory to DSP, and fail early if the configuration is invalid. Fixes: 0871561055e66 ("misc: fastrpc: Add support for audiopd") Cc: stable@kernel.org Signed-off-by: Jianping Li --- drivers/misc/fastrpc.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index a8a58f889d07..f46a8f53970d 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1354,6 +1354,13 @@ static int fastrpc_init_create_static_process(struct= fastrpc_user *fl, } inbuf; u32 sc; =20 + if (!fl->cctx->remote_heap || + !fl->cctx->remote_heap->dma_addr || + !fl->cctx->remote_heap->size) { + err =3D -ENOMEM; + dev_dbg(fl->sctx->dev, "remote heap memory region is not added\n"); + return err; + } args =3D kzalloc_objs(*args, FASTRPC_CREATE_STATIC_PROCESS_NARGS); if (!args) return -ENOMEM; --=20 2.43.0 From nobody Mon Jun 8 04:24:54 2026 Received: from mx0b-0031df01.pphosted.com (mx0b-0031df01.pphosted.com [205.220.180.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 909D83403F8 for ; Tue, 2 Jun 2026 07:18:22 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384704; cv=none; b=o1Hcded8PzqVOLQpXsP2sCpGDdnxo+PB0JoESHJZ+VP5t/SXTxsNiMNbWkXA9DTSsBQjoQfzMVFGXECdkcCeH2iArgReP4I2sIsqHrSKnB0EEebxzSKVNx+1Ml+FpQqjcQlNdJrUq05vLtJa/XwI+gqk3CHuVEhN9y/QduWmEl0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384704; c=relaxed/simple; bh=LaEl+yypMKeLK5rR8sTmYcYFF/hVieL3wAX2zHj57Fc=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Z+A+WFLg6piu9QQWncY8Bik9WZUa+gDkv56vozLtudhKK9KdBgMnc6Xb3Ycyvw5oAvPbXDCsqOWHl/Sx+0lP/1lz2tYK9dXeQQ7tGGaG8orVdhGjwjXuz/b6L/7REH8uK+3BELjAwnegICA5KmT2t99QS3jW2hD1hmMK4TMeXtE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=lZhhK0eW; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=cNBHzPMy; arc=none smtp.client-ip=205.220.180.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="lZhhK0eW"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="cNBHzPMy" Received: from pps.filterd (m0279872.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 6522wm0t622454 for ; Tue, 2 Jun 2026 07:18:21 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=HU4ZtcghD0M 28On2VNhDRQP9LlC0xqJF34085t8tRAU=; b=lZhhK0eWBbNrvuuk9NZsrLbeJVC Fr2cHMY5Ev1KSDWse+dEPHqxxPOvyQo0NvHfUrNX0QfzkL3nvzxkhOwLyvgTF8VB ZJFBFKOIN9E/Kvg9WrkDKUJWaEADt4vnlhN0kI0ansOspTcJKSuz5BpUA3W+j9sF b+7BoRqAIRALrPocHNeE8LrMpN1AdvjTebCLOmavG+PQ0yO2Xks22cmtw4VrhMNT 6X1ndFN6N9zo+s5t12scC8B0vd9/24zKB0Sgea5eorKhnoXEHVk5gVW8P4M0Cjcq dZ+pgVK8A8fSFP4MGXs1KFgwlDZJkIs33KRVucojqkzO5BIMf0fb4sUNxmg== Received: from mail-pj1-f69.google.com (mail-pj1-f69.google.com [209.85.216.69]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4eh954mkd2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 02 Jun 2026 07:18:21 +0000 (GMT) Received: by mail-pj1-f69.google.com with SMTP id 98e67ed59e1d1-36bd4146cb2so4050210a91.1 for ; Tue, 02 Jun 2026 00:18:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780384700; x=1780989500; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=HU4ZtcghD0M28On2VNhDRQP9LlC0xqJF34085t8tRAU=; b=cNBHzPMyEOCCDCbFcGwVA6AtNExEWHnd7bvT8m/sPoKYI1qqAnj/4K7ZJHZt4V8C9r 2LIf1OFDQDidEkTj8GzphH0kEZEn9PDiCEDx9sbvylm662u0GbhYby7nU8uFkq1eFQZE PIfEoXddDAJGC0x4Ryu9AvkO3/G+KvD7z9oVa62OGxaiTto8L/tm6biZANtdNKQVAn5n sL0hLKQHmkuK0JWUAm5AOofvj2atULks6jDIh86gXxXSatL32M7So+OB/4KAA/99lrH8 5I/DZSaje/Pyt+5gLRcRaU/owjqCdi0GdgBG/UISRh7ZrlbdRRAU47uNzzTr31v+QLwg xEww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780384700; x=1780989500; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=HU4ZtcghD0M28On2VNhDRQP9LlC0xqJF34085t8tRAU=; b=JzWDcAY6Vip/L4iLRItqWB2dyc7QDKKxyz8alskoDW+FwjXpwWHWDRqhQu1s4vfZmc DWVFllXKyJFOex2DVoLmSZguLqkQ6/911hfm9Dv+Op+EhxcpQT9l7aMiYC7HdvHhIRqQ scRVyUj6AqFSm9pR9PbUrx1S4u2VeSfGccgWO4p2nk6arPfVZBB72+26cazSz46aJ65A Ka+5ZPbRaD2UlqOe5ttH9xFjwm1gqG5jBUqZm9kTCjbz4IJ21wlcwlTqgljJVCAkYDAM Et/sL3EZNPYQwsT0P3amBlgPqJDm+H9JvYziHuFlxIGFY+jd92EsX/AqmFbT2v5fuJrr nWZw== X-Forwarded-Encrypted: i=1; AFNElJ8/b1g4kGAgvmjADk3qp9jg6CWypbUy5KWUTR6O9T2WMn4ofepqiis4BZevVLsitGaqEPA4SLtKROCJnkE=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1fP1O8sC1Ghv+ghRcTq4kq6z9Dlgo5//grnqhYOyPiHrs5uWF C3bm3u1VoWpv8CJ/0ASl82uZCIzxByLXbd7JkmYWOnLgnmP+d6fsSZkFz500CdWySlmS8Jt139s XZ/510v0loFgIycl9s65P9JZSJsSN/P7N5TUO1s574vETbH7trMlXoSlWfxMR4usm7Sg= X-Gm-Gg: Acq92OF1AqXAhRj/iPWLAMISJPCMOxGPx0/AhB37DxGL7EDO5sNZktL76pLlnJpusEP 1TTXuxVMW09ZZYEO92rfbj2MZ5BY/DImMFG1Mxq6PfTddJn3QxyYAS3i0I3iDVxi7Ms0Mrvi9Ob Eko3QivRnR89MySWxuwh0VnGZ9gibqQIB1j69uT7O02wPmjf5JgHaKETvoO0nI6UfTw8xTP/Inf 0BCC+Kwq9dN7JBlIjK0zcCzdg1KLL7Y3DUPhGtXufXBZDI+7VCODfynqYEKNJLPKjQKClu+z6JN 8z4BXq7XF8xHURnMYYPz780Al7odc17s2WdvOd2wrSOEaSt1HWNCnSpPPhlaHvtpCAZLESwGBpB 3qp6t7iWavFjC0/DMZVqHW7JeK8Cu2wxnDwC2YUebYbIpqS1ZDsSd3OHaa7W7ql0qvaHtKwysLT UizsnpOGqJK2qdIXlOwyvwLUe8yiEqbA== X-Received: by 2002:a17:90b:520a:b0:36b:a162:a1be with SMTP id 98e67ed59e1d1-36dd91f0f42mr2277831a91.4.1780384700329; Tue, 02 Jun 2026 00:18:20 -0700 (PDT) X-Received: by 2002:a17:90b:520a:b0:36b:a162:a1be with SMTP id 98e67ed59e1d1-36dd91f0f42mr2277800a91.4.1780384699782; Tue, 02 Jun 2026 00:18:19 -0700 (PDT) Received: from QCOM-SocCW5bzXR.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36dd91c9991sm1766279a91.7.2026.06.02.00.18.15 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 00:18:19 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez@oss.qualcomm.com Cc: Jianping Li , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, ekansh.gupta@oss.qualcomm.com, quic_chennak@quicinc.com, stable@kernel.org Subject: [PATCH v7 4/5] misc: fastrpc: Allocate entire reserved memory for Audio PD in probe Date: Tue, 2 Jun 2026 15:17:49 +0800 Message-Id: <20260602071750.526-5-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260602071750.526-1-jianping.li@oss.qualcomm.com> References: <20260602071750.526-1-jianping.li@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-ORIG-GUID: kMmlyMknggpnAP8pZ9ZgPHXE_nks25Ja X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAyMDA2NiBTYWx0ZWRfX27dO/+vVIq35 MTYz/9QN6dCSxI7HM5QRH4Y1P+Ra1cETxPxoU77ZrqsXJLw/ulBof3i3Eyd7xV8QWZzcbhTaqoM ODEClqIjyLJihjjJA+sBjOnrVKavWP7cRlj0urq3Gf/72jguHX4r1Iy7LUTHsuLjmeCJEO88dUF BqPBIZLlaiAq6a6Y2d7fIKWWcla+KakvKfn93O4FjrH78QF10DRkUgFhOrnV7NPwe7GelRRXYah sJv+276hPoZT/zUH9E/KlUxWIJUHTpuBG5K1mimI3vZvDqg0d21sg55AGJtVBNJTZtKiRk99JC/ qOZh4rVjVFZaJgXrgqCeZj+RY1DhEi0pLqlwPDzn4aLx6CmQyFbIGQen2om7cbId5UqpymaLxGx IIOco5P6djeFz86JFueBfklaUzUNUoNYyqMaWaX1OLsqAkknO0/QFujCIIyru33ZRGAcE4F7TXX zn6HttD/hZhWeyZAorA== X-Proofpoint-GUID: kMmlyMknggpnAP8pZ9ZgPHXE_nks25Ja X-Authority-Analysis: v=2.4 cv=VpcTxe2n c=1 sm=1 tr=0 ts=6a1e83bd cx=c_pps a=vVfyC5vLCtgYJKYeQD43oA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=vXPY0jRleWu_0xqwLycA:9 a=rl5im9kqc5Lf4LNbBjHf:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_07,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 suspectscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 malwarescore=0 phishscore=0 adultscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606020066 Content-Type: text/plain; charset="utf-8" Allocating and freeing Audio PD memory from userspace is unsafe because the kernel cannot reliably determine when the DSP has finished using the memory. Userspace may free buffers while they are still in use by the DSP, and remote free requests cannot be safely trusted. Additionally, the current implementation allows userspace to repeatedly grow the Audio PD heap, but does not support shrinking it. This can lead to unbounded memory usage over time, effectively causing a memory leak. Fix this by allocating the entire Audio PD reserved-memory region during rpmsg probe and tying its lifetime to the rpmsg channel. This removes userspace-controlled alloc/free and ensures that memory is reclaimed only when the DSP process is torn down. Fixes: 0871561055e66 ("misc: fastrpc: Add support for audiopd") Cc: stable@kernel.org Signed-off-by: Jianping Li --- drivers/misc/fastrpc.c | 96 +++++++++++++++++++----------------------- 1 file changed, 43 insertions(+), 53 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index f46a8f53970d..33be8bed6a0b 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -276,6 +276,8 @@ struct fastrpc_channel_ctx { struct kref refcount; /* Flag if dsp attributes are cached */ bool valid_attributes; + /* Flag if audio PD init mem was allocated */ + bool audio_init_mem; u32 dsp_attributes[FASTRPC_MAX_DSP_ATTRIBUTES]; struct fastrpc_device *secure_fdevice; struct fastrpc_device *fdevice; @@ -1344,15 +1346,16 @@ static int fastrpc_init_create_static_process(struc= t fastrpc_user *fl, struct fastrpc_init_create_static init; struct fastrpc_invoke_args *args; struct fastrpc_phy_page pages[1]; + struct fastrpc_channel_ctx *cctx =3D fl->cctx; char *name; int err; - bool scm_done =3D false; struct { int client_id; u32 namelen; u32 pageslen; } inbuf; u32 sc; + unsigned long flags; =20 if (!fl->cctx->remote_heap || !fl->cctx->remote_heap->dma_addr || @@ -1383,31 +1386,6 @@ static int fastrpc_init_create_static_process(struct= fastrpc_user *fl, inbuf.client_id =3D fl->client_id; inbuf.namelen =3D init.namelen; inbuf.pageslen =3D 0; - if (!fl->cctx->remote_heap) { - err =3D fastrpc_remote_heap_alloc(fl, fl->sctx->dev, init.memlen, - &fl->cctx->remote_heap); - if (err) - goto err_name; - - /* Map if we have any heap VMIDs associated with this ADSP Static Proces= s. */ - if (fl->cctx->vmcount) { - u64 src_perms =3D BIT(QCOM_SCM_VMID_HLOS); - - err =3D qcom_scm_assign_mem(fl->cctx->remote_heap->dma_addr, - (u64)fl->cctx->remote_heap->size, - &src_perms, - fl->cctx->vmperms, fl->cctx->vmcount); - if (err) { - dev_err(fl->sctx->dev, - "Failed to assign memory with dma_addr %pad size 0x%llx err %d\n", - &fl->cctx->remote_heap->dma_addr, - fl->cctx->remote_heap->size, err); - goto err_map; - } - scm_done =3D true; - inbuf.pageslen =3D 1; - } - } =20 fl->pd =3D USER_PD; =20 @@ -1419,8 +1397,17 @@ static int fastrpc_init_create_static_process(struct= fastrpc_user *fl, args[1].length =3D inbuf.namelen; args[1].fd =3D -1; =20 - pages[0].addr =3D fl->cctx->remote_heap->dma_addr; - pages[0].size =3D fl->cctx->remote_heap->size; + spin_lock_irqsave(&cctx->lock, flags); + if (!fl->cctx->audio_init_mem) { + pages[0].addr =3D fl->cctx->remote_heap->dma_addr; + pages[0].size =3D fl->cctx->remote_heap->size; + fl->cctx->audio_init_mem =3D true; + inbuf.pageslen =3D 1; + } else { + pages[0].addr =3D 0; + pages[0].size =3D 0; + } + spin_unlock_irqrestore(&cctx->lock, flags); =20 args[2].ptr =3D (u64)(uintptr_t) pages; args[2].length =3D sizeof(*pages); @@ -1438,27 +1425,7 @@ static int fastrpc_init_create_static_process(struct= fastrpc_user *fl, =20 return 0; err_invoke: - if (fl->cctx->vmcount && scm_done) { - u64 src_perms =3D 0; - struct qcom_scm_vmperm dst_perms; - u32 i; - - for (i =3D 0; i < fl->cctx->vmcount; i++) - src_perms |=3D BIT(fl->cctx->vmperms[i].vmid); - - dst_perms.vmid =3D QCOM_SCM_VMID_HLOS; - dst_perms.perm =3D QCOM_SCM_PERM_RWX; - err =3D qcom_scm_assign_mem(fl->cctx->remote_heap->dma_addr, - (u64)fl->cctx->remote_heap->size, - &src_perms, &dst_perms, 1); - if (err) - dev_err(fl->sctx->dev, "Failed to assign memory dma_addr %pad size 0x%l= lx err %d\n", - &fl->cctx->remote_heap->dma_addr, fl->cctx->remote_heap->size, err); - } -err_map: - fastrpc_buf_free(fl->cctx->remote_heap); - fl->cctx->remote_heap =3D NULL; -err_name: + fl->cctx->audio_init_mem =3D false; kfree(name); err: kfree(args); @@ -2425,12 +2392,21 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device = *rpdev) } } =20 - if (domain_id =3D=3D SDSP_DOMAIN_ID) { + if (domain_id =3D=3D SDSP_DOMAIN_ID || domain_id =3D=3D ADSP_DOMAIN_ID) { struct resource res; u64 src_perms; =20 err =3D of_reserved_mem_region_to_resource(rdev->of_node, 0, &res); if (!err) { + if (domain_id =3D=3D ADSP_DOMAIN_ID) { + data->remote_heap =3D + kzalloc_obj(*data->remote_heap, GFP_KERNEL); + if (!data->remote_heap) + return -ENOMEM; + + data->remote_heap->dma_addr =3D res.start; + data->remote_heap->size =3D resource_size(&res); + } src_perms =3D BIT(QCOM_SCM_VMID_HLOS); =20 err =3D qcom_scm_assign_mem(res.start, resource_size(&res), &src_perms, @@ -2438,7 +2414,6 @@ static int fastrpc_rpmsg_probe(struct rpmsg_device *r= pdev) if (err) goto err_free_data; } - } =20 secure_dsp =3D !(of_property_read_bool(rdev->of_node, "qcom,non-secure-do= main")); @@ -2519,6 +2494,7 @@ static void fastrpc_rpmsg_remove(struct rpmsg_device = *rpdev) struct fastrpc_buf *buf, *b; struct fastrpc_user *user; unsigned long flags; + int err; =20 /* No invocations past this point */ spin_lock_irqsave(&cctx->lock, flags); @@ -2536,8 +2512,22 @@ static void fastrpc_rpmsg_remove(struct rpmsg_device= *rpdev) list_for_each_entry_safe(buf, b, &cctx->invoke_interrupted_mmaps, node) list_del(&buf->node); =20 - if (cctx->remote_heap) - fastrpc_buf_free(cctx->remote_heap); + if (cctx->remote_heap && cctx->vmcount) { + u64 src_perms =3D 0; + struct qcom_scm_vmperm dst_perms; + + for (u32 i =3D 0; i < cctx->vmcount; i++) + src_perms |=3D BIT(cctx->vmperms[i].vmid); + + dst_perms.vmid =3D QCOM_SCM_VMID_HLOS; + dst_perms.perm =3D QCOM_SCM_PERM_RWX; + + err =3D qcom_scm_assign_mem(cctx->remote_heap->dma_addr, + cctx->remote_heap->size, &src_perms, + &dst_perms, 1); + if (!err) + kfree(cctx->remote_heap); + } =20 of_platform_depopulate(&rpdev->dev); =20 --=20 2.43.0 From nobody Mon Jun 8 04:24:54 2026 Received: from mx0a-0031df01.pphosted.com (mx0a-0031df01.pphosted.com [205.220.168.131]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5BF61363C72 for ; Tue, 2 Jun 2026 07:18:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.168.131 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384708; cv=none; b=uceCQLUNXlvRfey5X3TRAmaP0H5u+KZSNxeY+4Nu3Zxv4Vn0tPI+oSG6KFoEQalS3Sks1CRwtfyiuAPKHqqmgEACU0Hmq05hR56cW70dQEXYBxBKK//cnkn2heCT/F285HZgYYSs+s+GuoktNYiF3ue6tFAEmHlkFHvmkfOkTes= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1780384708; c=relaxed/simple; bh=BS9DrE52jyxKBZQB3y/dzW/Strq2wVpkRLU+COwfo4I=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=aqbdlj0gCeETQeRhsfDe3L1Xwg0ugWo8bfFSUr6etDIWO45B7u6WJtDO6L2uQGdhzDBahDJCtKyyXiG0CCnFcSej7BwMKOB3qw5OQd2b0koHHXLFZn/p79mcYocw9HmXHOpIAonH1bdVqbcG1DEa4B3E/PXx2yNy+VKzqoNBdEI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com; spf=pass smtp.mailfrom=oss.qualcomm.com; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b=ByZDtz2q; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FoMSmU7R; arc=none smtp.client-ip=205.220.168.131 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=oss.qualcomm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=qualcomm.com header.i=@qualcomm.com header.b="ByZDtz2q"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FoMSmU7R" Received: from pps.filterd (m0279865.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65218j3d3430249 for ; Tue, 2 Jun 2026 07:18:26 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=XxSW8cHQ3wF LpjGnuSGsblT6eUW8Bj573RsJWQBn06Q=; b=ByZDtz2qJQePO976gng7xi8Vjrw Se1iBJREMQVB0NCv5VHkj/i6E6BC96Mf5pLS8ymFkolbmhskZh9kfrek7a36N0CP WzycxL6DLH2l7B8Z4yznsMsfFgaO/d4FvNnld3cZ7rFegysezQYg1+LMBKP7QJnY M9qP2lM05D64ferTiMvouAGa9Y8ZyuA2yH1QRcHchmwlVmSrH31seAANWu8G2HZt tdzjxFTnsLQ8+JjUebx789Gjpkd1O+owDiJHBF1C6JK1De8VCsZG9MtQDkAcBqWd zMjwnuw5ziress87revQOFIR3v2oaev4F2g/oCjoLAtKm1sp7amLNdLKh1w== Received: from mail-pj1-f70.google.com (mail-pj1-f70.google.com [209.85.216.70]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ehn8mh7d9-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Tue, 02 Jun 2026 07:18:26 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-36d99181eaaso3119363a91.3 for ; Tue, 02 Jun 2026 00:18:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1780384706; x=1780989506; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=XxSW8cHQ3wFLpjGnuSGsblT6eUW8Bj573RsJWQBn06Q=; b=FoMSmU7RBJMGzmB7K8rH+0DWwnedPB5PaxthyfNN7djpIkykeT8vhKI7d/r/jBK8Gp DgrlKQf+5db/YJQ0YcOm868ypnOIEKjf8/Vdp1II7EgXubtBoYgRZxh1Hp4d0SaNBLf0 dhhrocHKOja7Ptj9GAVNGYeQ1de9p9WfNX4uPJRc9cdGN1ZZRKU/k2Q2RKEYw9Sc4gh4 p+Ubr3HLmSLL+KIXaQ2G4n/7dgfqo2JQ10QGg6LB1yXAS0m85hSQrHKmaVmyObZsI2lx VFi7Yj6oS7MEeeHyPWVSSBpFsofVNdYaC7E6LiKJNKR7hhhVyqILgpcQXM31mWQ8KgX6 N+tQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780384706; x=1780989506; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=XxSW8cHQ3wFLpjGnuSGsblT6eUW8Bj573RsJWQBn06Q=; b=SobgJkUv3KresyW02SbeFjEnSpRVFjtaTGUm3P8VxGU6r73G+D/i4+qkJgoqDWun2H 8W3IpIm6n1BgDFrDj+tnXMr4Ei/QjcLgfm0c8Ek/6rV2cjglUNaTjyjXGytjzWC/priF M1Pj9ImNN/ZqAvXMkCsytTefA+Mj08wE1sxYGGBBguFEfb9FE8s1SyW7YTvESxP+0V0r ed4M1ZVferOl5BoTC9pVNhVYAWTARQ/ZkKfJYCD50YK2j8usO9+h/Df/PrVaH6LNqakV ua8TJOlZSLApFBpNn7mwj8yXPmOBxEwZQ536KYxV1jM9VDlHxPv/kugcFHq76Zj4V7SY fWQg== X-Forwarded-Encrypted: i=1; AFNElJ9Q3QFXBU4xAosL6HQrdO7k3Fe67cpdyLWP//lwhh/aDLHxs135Y1ppI1HwR5pEqIf9zhLzUVKFyOz/SCc=@vger.kernel.org X-Gm-Message-State: AOJu0YzArklog4MLlkqevS2cz5Ptac/q6+y/SCgiMUKcRXa2PHQ1hzm0 deZ5lsbMV5OiJNHQp3knCOWVM2UiD1alvhkX4cPYoM1Uej6hSwp4h93C0dblB0AbiDdz5GzB/Vl TSsdxrumSziK2/FBPtY2+BYMSIP8ovIbmThbIDReWe5tepMROclm4p+9TWE2n8bVQTDc= X-Gm-Gg: Acq92OGgfydZJwlit+pXMukEk2A+9nzmZbxOLYmAjCa03oAVNMYbfS7QcXA2WHUKDFA itLoQ7Vl8Su0komo+gPWA/B0eHE3KEhIxVkckALY5ExMYDqLJyq4EsojLx3dxi/1GcpjhnTMQX1 UG/Fe/u3vpUHcny2y7uppTGYXoyQflTN2G9olsJXreXGH6EmI1Ql55iDhSm+A88tuJMc4jh0x9z zjo53ofel8fA2VjdDWVLJumuTtk7NedZUatP8daffO4KjIYWkNdYD1Y0JNAerm+3CPrWRY07VkM cEy7JJhwN55ZIxa7Drd2U8/l04s6v6QvJQor9KpigFdT3x0JmhkDXHrcBNgAAlH9IIx1AUCM0MN BEPhjXF8E3Bp+pXBb17b8Fo5fv/cmqhdMFqOe+gBnZwuU/kptu3gAETjk8gzw73kcP/2bihw457 iHOZ1/NpUGdBWLtoYIe0g8iIHpk9RfMA== X-Received: by 2002:a17:90a:fc4c:b0:36b:7f69:c152 with SMTP id 98e67ed59e1d1-36c501b813cmr15173009a91.18.1780384705765; Tue, 02 Jun 2026 00:18:25 -0700 (PDT) X-Received: by 2002:a17:90a:fc4c:b0:36b:7f69:c152 with SMTP id 98e67ed59e1d1-36c501b813cmr15172978a91.18.1780384705241; Tue, 02 Jun 2026 00:18:25 -0700 (PDT) Received: from QCOM-SocCW5bzXR.qualcomm.com (tpe-colo-wan-fw-bordernet.qualcomm.com. [103.229.16.4]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-36dd91c9991sm1766279a91.7.2026.06.02.00.18.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 02 Jun 2026 00:18:24 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez@oss.qualcomm.com Cc: Ekansh Gupta , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, Dmitry Baryshkov , Jianping Li Subject: [PATCH v7 5/5] misc: fastrpc: Allow fastrpc_buf_free() to accept NULL Date: Tue, 2 Jun 2026 15:17:50 +0800 Message-Id: <20260602071750.526-6-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260602071750.526-1-jianping.li@oss.qualcomm.com> References: <20260602071750.526-1-jianping.li@oss.qualcomm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjAyMDA2NiBTYWx0ZWRfX3QT3cdD/Io3j kdPFWPWxpmBXjTw/D169BJl5TdA/z6V+V+DSpHbVa4RKI4+xYUlrzJNMi5SfjVYJeQ+d6DnQNK8 D3eHgIgyl1Li3eEoDc3W9VRULDA0QTK40YI+2U/leN/tfiqZd3KULIdjDvOx3UgSJCrItTLJVli /q7fdxBeg9lcZiyps6fqPaikslAt7aTN81WPyzWeaAWhE/MRqWcXu7ZSIMA6yRA4zgwYCSKeKP2 okDzu24bQjv282SlA31NF9o/O0E+Uf6d9b01t4tPIiSwMSkqOG4DsdEtoHQm//qGb7+DtWVfKnL NiNzH67uYQQrmCJeiI4ZglacM8FvhhJhJtnUxRx5Ngqx5nIanLmBab8jGEZS4YPnZ0OkoNhozP9 knpOfyNNoBLZbmwGkyQLOj3uWxUEAwKna4O/063s23lxCNqfUbHrYg5QvefB04cODAAS5/Uhk0W palsm8stjjCxf2i1FCw== X-Authority-Analysis: v=2.4 cv=d5nFDxjE c=1 sm=1 tr=0 ts=6a1e83c2 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=Um2Pa8k9VHT-vaBCBUpS:22 a=EUspDBNiAAAA:8 a=XYmfcRj0Jzm9BuThv0sA:9 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-ORIG-GUID: FoAV2WvndIcwRvoJFKtGIvaE0yuIUWeb X-Proofpoint-GUID: FoAV2WvndIcwRvoJFKtGIvaE0yuIUWeb X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-01_07,2026-05-28_03,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 malwarescore=0 clxscore=1015 adultscore=0 spamscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605210000 definitions=main-2606020066 Content-Type: text/plain; charset="utf-8" From: Ekansh Gupta Make fastrpc_buf_free() a no-op when passed a NULL pointer, allowing callers to avoid open-coded NULL checks. Reviewed-by: Dmitry Baryshkov Signed-off-by: Ekansh Gupta Signed-off-by: Jianping Li --- drivers/misc/fastrpc.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 33be8bed6a0b..370b4f9ca135 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -418,6 +418,9 @@ static int fastrpc_map_lookup(struct fastrpc_user *fl, = int fd, =20 static void fastrpc_buf_free(struct fastrpc_buf *buf) { + if (!buf) + return; + dma_free_coherent(buf->dev, buf->size, buf->virt, fastrpc_ipa_to_dma_addr(buf->fl->cctx, buf->dma_addr)); kfree(buf); @@ -510,8 +513,7 @@ static void fastrpc_user_free(struct kref *ref) struct fastrpc_map *map, *m; struct fastrpc_buf *buf, *b; =20 - if (fl->init_mem) - fastrpc_buf_free(fl->init_mem); + fastrpc_buf_free(fl->init_mem); =20 list_for_each_entry_safe(ctx, n, &fl->pending, node) { list_del(&ctx->node); @@ -556,8 +558,7 @@ static void fastrpc_context_free(struct kref *ref) for (i =3D 0; i < ctx->nbufs; i++) fastrpc_map_put(ctx->maps[i]); =20 - if (ctx->buf) - fastrpc_buf_free(ctx->buf); + fastrpc_buf_free(ctx->buf); =20 spin_lock_irqsave(&cctx->lock, flags); idr_remove(&cctx->ctx_idr, ctx->ctxid >> 4); --=20 2.43.0