From nobody Fri Jun 12 11:09:44 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 980433F0A97 for ; Fri, 15 May 2026 12:42:38 +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=1778848959; cv=none; b=IjjnmK2dCjP2qFt8/P6OE9etA2BuHIU7nwI3ovlkFnIlCrkW4U5rm8rqJnrfVZWfSSPqZM8Ydsup9fzG+QswrpPtzEw4yn6bKmGpoxxyEB67HZ3lMyC16E2iaSDxN864NXD0aKQY1aszkJydwhIJD7EOsMzIO4wzN6zcT7pEwxI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778848959; c=relaxed/simple; bh=td9NUaJUCCqcs9shCrPz79nraSFW2hpmFyg3yX9KMf8=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=IC03y8Vx1YCJd6Z7AyJhekBHKj+Kj6aNSqIsq1B7uyQYDMR0aan2x3xaCL6s8eEtWBoRw7E/VvXR8/98y/K6j/mYdm0L7AxQ+6dDMDLzC5TYQFghGhw52NIerleMRkq40SFSoxridOfpvPGeU0GgWjWj/sWD2MGbk+2FlrSIGrI= 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=F4D8EOar; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=XTb+iYKf; 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="F4D8EOar"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="XTb+iYKf" 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 64FCGiUf3795642 for ; Fri, 15 May 2026 12:42:37 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=pqILH36+bPj XkI9bIGyaDvTximt2bkQbgl3RjerBI7A=; b=F4D8EOar1wz9Cj7mkw+2d9ACo/r ywk8pbZWNUkSxPQXUiCA7VcD33E6W9PKqAsnwyvOiUz5IdB8iM5O/hclhcV8xTsb lW15qLgY+BtYFYNVC0UYroc/N+DQuGXGpK1uT3K/8OU08kN8LgHNhbBj8cDMoQfi eBqjsg9ui7eCtdQQHZntGdl4DwaSzAvDFGsmPfA/OYT4CI/WDEIzgCAu+cFsWFqv JEWsbZIcBnAYVN0MnvA9khMG2Dv6Agylzz9m+lckFF8Qzj+mLXQEhrmrZFCTAycu DdtLBanQApIywH8p2rIahUBX8FlPsKtlxTh6VaVKxXSR2YoHlPkbeS/FxCA== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1su76p-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 12:42:37 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2b4654f9bb6so94390705ad.2 for ; Fri, 15 May 2026 05:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778848956; x=1779453756; 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=pqILH36+bPjXkI9bIGyaDvTximt2bkQbgl3RjerBI7A=; b=XTb+iYKfF0YA/6BoLRM3c41NIsWZsJzc9FXoZbaHVK1W7XOdO++6aBgl5qAESaBtZd SbOikF0AZDkwZLMZh1Y3WdWKNLdR+WmLly0emDPmXuBhJ5hK+etc133SmI7civRSTmo0 6IN3qbar/sDpOO4z4UUFxjgSRISMFzEHkwZpdo694sLPzb5t7eHRDGJVfWa3pFz1Xuec N91BKxZ6LDOP37gGxOsr0Msq99LKCVrl4WyfS0e3Do+R+DCIoqmOkndYYhcu2oN3ZHn8 HJf2ipKYT75PXSv+fMf+P7P+u2rFiiay+3zxN6qD4xIGCEeFNgf7Y0IuEwpXMnQD0qfj e/lA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778848956; x=1779453756; 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=pqILH36+bPjXkI9bIGyaDvTximt2bkQbgl3RjerBI7A=; b=GppqsBSAfJNXCka1w1cVR+n0rNhKPJhkh5OVMZ3+MGzLMq9XUYgiP72og7Aj20uv5s Rx9x//0oHAQbhWM3rD79f44kMu9MIk93Ca72dZUlTbizjoMTpBoRc6ET7upyUzeOrDJY 0rf4oAofbXFOppaw+3SSWK3WybZs0W5bcRU9H6RQYKR2XV+AnI+JbyyqV0UdxsO8VDWF G3okf3MbU2wNkwjpHoNXOuv8E8ASh496H92T6XU0kUI7TgRqQlVIZ4uBcqnuG6lVTN9S 6m3YvguMTNRp1v57sQbUv8CZhzXhkEsManwrybkVMDEiXhUIuTRFmrGomzXvmkSJ8fEz YRtg== X-Forwarded-Encrypted: i=1; AFNElJ/cfYCkQBN8rfrUHaEjiHE41x4uPaXzGtwnjo50q7theV9xx+bYlMnTj2DPWNEKMZo38PkIhMSB7rPUXPo=@vger.kernel.org X-Gm-Message-State: AOJu0YwDuGd0AdmY27xs1PTw8D36zrIrZ4PpqXYq6eX6PSIF+DSEMPan U40+lmvVK48KOSezf0B2kEAqvVWd4fhOweFoF3MZfX0yvosWpuQdFZ/iFXsGeGkf1i054qCW0xT MoS6f5BzaFsgoeTYPo8SiJ/UQW8mlkXHLbSXzGbidr5EBZNACLbObVrDAgkKiGlveBlw= X-Gm-Gg: Acq92OH+algDGcg6yLkxSUJKsL5wz1QMIbgat5E5Odc0wgH9xo/ZHMchmOfPgFDjr+z pR384uyCFXI1ZZUFnLg7krprv3galaekNpl+NJoRU3IjiJ0YKOq1iwB+3Dh68Wcv86jCP1KWOzy Q0bHQMjaV7XSZ4Y0LrNpNDJm6k1AdjYrHGMKzbNhFJkVHWJtysvFqAgscZgRoQU1ZFinjfiLMfU qlAxC5kJtbUlXr7zPjkDS9VyILD/zE3d+DN4laR+qgnNx0r+QoZouqLXrGE3iKupJfiHentLUZO AVprB5U8Bih8NYr5h8DmreSJk4IR9nlMnXwYjc0owpqtZPVQ1VH4eBdCu7pb7zoA/cD8GXVHaxA z5xudfTLEWBNNzMbxRhriF1+82tR5KwKYN4ZhbVCKGDW8w0of+duwgCijPlNSqFvut4yeZQ6oFi FwlaFiKraN3RWiup28apQ4Bm+Syz52Jg== X-Received: by 2002:a17:902:7d96:b0:2b0:bed1:46f7 with SMTP id d9443c01a7336-2bd7e910f99mr29585975ad.37.1778848955464; Fri, 15 May 2026 05:42:35 -0700 (PDT) X-Received: by 2002:a17:902:7d96:b0:2b0:bed1:46f7 with SMTP id d9443c01a7336-2bd7e910f99mr29585415ad.37.1778848954432; Fri, 15 May 2026 05:42:34 -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 d9443c01a7336-2bd5c05f27csm56119395ad.25.2026.05.15.05.42.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 05:42:34 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez-ortiz@linaro.org 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 v5 1/5] misc: fastrpc: Fix initial memory allocation for Audio PD memory pool Date: Fri, 15 May 2026 20:42:13 +0800 Message-Id: <20260515124217.20723-2-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515124217.20723-1-jianping.li@oss.qualcomm.com> References: <20260515124217.20723-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: AW1haW4tMjYwNTE1MDEyOSBTYWx0ZWRfX1tr+HBci+B/m eB14whjbIeNY0v/Kns4bl8UexEItCfgB/QnFSydMD9f01hU37Iu7944BcZeIQ7BS1hnFxficBwp OKzwHSpJWn2mlPigiDzNQ3iIFJDMvQc3BqJVBWAoAwYViN/UQKDt9BV18EaxR6ip3VuEVJg4RQJ bRpH22bZ4oI/uTyJTobf1glUWX7m+e63YuX/gaKLLEKHL4m/rzw2O9UE1UC1KTsgLO0dfdfZ7xM yUut9gkIMtfk+NvrbbEEIpZcxq613fgDQ/83gh+dpEZs22hV8v9f/0CoZk75RucUSFiHMEQhwJP DKgi6k02zSqSHKsb4gMOuW8kIpfBb1qEyv+QqnSq2esyt2Ri6/cp3bDqmwUXs3VtGzG5GgmdcDO A+QrfdfSkYQHw2U0qTReK53RQ5LXsZz2go8WvHTTRt31xyNnFJ2GWRVR23BnWVXEjEacUPQs5c+ Hcqoa6pwx35JBh3doGA== X-Authority-Analysis: v=2.4 cv=cZXiaHDM c=1 sm=1 tr=0 ts=6a0714bd cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=Op9FgWJ_R3wbKKMAuNAA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: ZTfxQJ_T101Ae1_5gHkHIbbwOdisHxgR X-Proofpoint-ORIG-GUID: ZTfxQJ_T101Ae1_5gHkHIbbwOdisHxgR X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150129 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 Co-developed-by: Ekansh Gupta 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 1080f9acf70a..8b21f85cd9f4 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1324,7 +1324,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); @@ -1347,12 +1349,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 Fri Jun 12 11:09:44 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 B7DDE1427A for ; Fri, 15 May 2026 12:42:42 +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=1778848964; cv=none; b=Zhu+X7okrbiu1LjgGvsBplvbprcrVeboH1G/imTCOwE0PweLWAaSCbeOxmpqMOo3SCzkMtEb/2lMyJQvLBaiYF48p1Ae1ThyeDOhN5YSeKmDmPpLQj6mWDry+eOdZLpYhcX6A2sOQ/ZrCNly0tP0gRrU1848MxUnhmaL5RMci4o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778848964; c=relaxed/simple; bh=B5X3IHqMv3RqkYzDSDwFq4aExehCiMVP6Uc3J+3VUZo=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=kFiA+KCApgriPJMW5yl84Mapqm3ynvNr9wCbE7wU1LAdlFa0mmAL0kbJgdbsf5U1iEb4VS6P8+lU+h1kNDD4ZgzV/ZhQKsIknLs5vJnUfumdOiw/v8tfP2dAfpfQWkrwg7JB0++ceCgUr7bBIDhrZ6bSKflV7VjwQF8jI1PyuUU= 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=gqvvgGEv; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=DlVHA3OV; 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="gqvvgGEv"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="DlVHA3OV" 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 64FBq5od3512838 for ; Fri, 15 May 2026 12:42:42 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=qVx3dP68cn2 vag91UBEub6zPiFFjytB60mI7WrNd8p0=; b=gqvvgGEvQH8OtqlE2V3ymt9iJJc QcAIX9x+IlqWg42sQJ6tIclOSrU51vVsc+hCH3kWOnAe7PWdW8A19jq0gvSGOyZx DnelgxEmGBvGyTMooy54xHhvvRMGCSmFLa1lPL9vkBOLL5F6ZH/UbAMpJd/gUhhV zYcf/GOzADOmBd2zoy1dkpNX6BP83OFn4IzVotOcRW+rcvuEsVeBQsyUcLcdZOuo tbYDjbf2Ht5shZD0APfni/c2MEnY+H8PhPIQKlo1yE+WtbWxGOMTvQn0PKpYt3Fj 0Nd6WcT8Eq3HTW3BVfN/FaXkBA9jC7O68qznUiAcWzcJxFO0d9bHgqvajkA== 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 4e5m1vb8v1-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 12:42:41 +0000 (GMT) Received: by mail-pj1-f72.google.com with SMTP id 98e67ed59e1d1-3662eec51e0so5286306a91.3 for ; Fri, 15 May 2026 05:42:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778848961; x=1779453761; 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=qVx3dP68cn2vag91UBEub6zPiFFjytB60mI7WrNd8p0=; b=DlVHA3OVxc9koD3d/1ulQPNVqIGIpWC8LX6NG8octsidz2LtTXHwAwyNOVwMVmnvvd 9US31VuL9yrXtdsGYQJLn7Wo7zMK2YB0mE9WIyzTrI9U+XTq6f3b1H21c60wZdZcvUV1 dCwc9sGh+GJe+asst6TL4DJVXIVwIUwCKJ5bjDVQEpGW4mDjhbc+C+/tHi2bq6pHIbej wTJwKKLXbFNw+pkrHe5Gr9rT+GONjB7mt13/o6ALUknsdg0OGvVKDVh13Be24aJcuLVE VYD94keyASK3W+tC7r+t+NEW7PwS3D3Z1OQx2e3tYO01AMfP2QVnYn7aKOSjRh5pViM5 YgwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778848961; x=1779453761; 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=qVx3dP68cn2vag91UBEub6zPiFFjytB60mI7WrNd8p0=; b=cXml1p18PtJpNbn7Q3Rs8X0B/J6fUxLAx6C+ygjtGScBn1iClGcfQzUiOY1JSHeYPV CG8sAT9hcV3gp0vdrha6GQ6q+5f+JwXVgJlJihPCYDcMVAlVGdkY+We4W+r5B9g76sOS V0+JEMI3OR9W4saK+sU2waF1eF7lMXD4sLiMoUQzTR0V49OJ+1FgCg42a0ddAk1nlLj6 5YXeHsDJjVtXH1pn/CRWz7PfsHtb3B7Byud7qiBVmjnGc6yKo1rNtiG32hRJgBURkklL kimJuzEUua4qMim8tuNEqTqffjJWX+7941qV5q+3/yIlWq+BzJk9FBhnTVbzJ+uVeww9 D0pQ== X-Forwarded-Encrypted: i=1; AFNElJ8iDbhBJxhUodgmL5TKE5k6Jmf8J7MfwgzbRFh9W6twO0jbrfIlcYtz9iPshBlBSVYI0PiT68PB5kRg9B4=@vger.kernel.org X-Gm-Message-State: AOJu0YyL41p5tYz5aG8sj1AebkD0RQOhLbTNtMOSLZgYC4eti4gZE3CZ cyXQy4UM5NFN3LEnjt0Iamo8/YNrY07r79BS+OHiYGhSIRj740janlWRGg9RaMXCS/LI+nRd/A3 jVRvxG+gL7cPGDLHtAhryIB+6lIECk34HMvQgr7t1m/L5UGS2GEhlU4jqWswrW89dwsM= X-Gm-Gg: Acq92OH9WfdHGqqR14H50eivbgheSkbwQLAS4/jeaX/L5Upbz94Hj6rlgAStUGJmKKx LBde5PuG4HswAhZJ+mTR4eaChw6b3uFP9GXV2MMQFgi13HkBh8sP/ZQOOrgohaKVb+lANyTgpGM UyKViP+7UhUeQHJhvuqmLWsvdWzOqjjwuniKxnrLdIhrz7HlvOGzRSlzHat63Dw8MPh9vgu+n7d PGRDgqOli/1iPoNJZiNgjoAg7XbsfQwFHj7sSMiSeXiITHZ/ycDwfJ4wH/gjPbY6R9xsLK8eNpZ JFdvICDFXbE1VXAGN+YzOyC7Ta/kqg+8UR4IG6jb5YdiuzRpR3MWVADkjKNveAntEyXDVbk+0n/ I44nlHdGmEki3SEYmXv9r9tC0Z7hfMrLQF/ckdXeFrwCMmBtRSjk+f6v3HUzrfMEiwIo0O9YFBU vDi6vCzPanqq91ITMkiNYoXxv17LtLww== X-Received: by 2002:a17:90b:5790:b0:368:98c0:8836 with SMTP id 98e67ed59e1d1-36951a667c3mr3720184a91.18.1778848960326; Fri, 15 May 2026 05:42:40 -0700 (PDT) X-Received: by 2002:a17:90b:5790:b0:368:98c0:8836 with SMTP id 98e67ed59e1d1-36951a667c3mr3720158a91.18.1778848959811; Fri, 15 May 2026 05:42:39 -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 d9443c01a7336-2bd5c05f27csm56119395ad.25.2026.05.15.05.42.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 05:42:39 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez-ortiz@linaro.org 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 v5 2/5] misc: fastrpc: Remove buffer from list prior to unmap operation Date: Fri, 15 May 2026 20:42:14 +0800 Message-Id: <20260515124217.20723-3-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515124217.20723-1-jianping.li@oss.qualcomm.com> References: <20260515124217.20723-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: AW1haW4tMjYwNTE1MDEyOSBTYWx0ZWRfXxa0uKp8IXgri VWaS8OVXFlHTkU4JL7//F1YworNTPlOnnh3VNgnisNGxHT0qwDFl+fE8gU9R5mp6veRqZ9uVf2k 0mbNxeVRC4mB+Mu+1ueqLHqb1q6J41ZdeQIeLGZ5dxNC+JLoFD2z8fc/Zj/MVnq7DWrmGpW9jP2 f+sAa8gPQ90M0cjiLylLd0ojflhhVU+p5/Rv+ZZB3SGaOTuNccupn6E4Jdm9e46M9P3fA1Jy9RP mONNVtVva4zkFr/fsQYV62PagsVY/Synt4pTwq4v255D8KC8yAyVxSw+uNEJoFLPYSWHMAlhHIe UxM4V0Y65cljDqpe/M1zOW5aJGUpiFR6q92jgFGtPh0JyIvNRg4nk9T4D9CWnoBRtmU5ZsNYteX 4r1SxrHeVxaw6hjDcwMw/pTNNJzDUD/dKQsFour/miXrU/wpgBTP3fi4gZv+kgyOUkXqX/ZAyAJ A4ssXlN1rKaW7DmZldQ== X-Proofpoint-GUID: 19b_AFYWoBrJBZMW56UQjk8y1hbjp4Rq X-Proofpoint-ORIG-GUID: 19b_AFYWoBrJBZMW56UQjk8y1hbjp4Rq X-Authority-Analysis: v=2.4 cv=BvqtB4X5 c=1 sm=1 tr=0 ts=6a0714c1 cx=c_pps a=RP+M6JBNLl+fLTcSJhASfg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=VwQbUJbxAAAA:8 a=ZnmZ8TzD_GdZzTgawW0A:9 a=iS9zxrgQBfv6-_F4QbHw:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150129 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 any other thread removes the entry from list while unmap operation is ongoing. Remove the entry before calling unmap operation. Fixes: 2419e55e532de ("misc: fastrpc: add mmap/unmap support") Cc: stable@kernel.org Co-developed-by: Ekansh Gupta Signed-off-by: Ekansh Gupta Signed-off-by: Jianping Li --- drivers/misc/fastrpc.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 8b21f85cd9f4..3c7c3b410d7d 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1863,9 +1863,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); @@ -1879,6 +1876,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; @@ -1886,6 +1884,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; } @@ -1898,7 +1897,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) @@ -1989,14 +1995,17 @@ static int fastrpc_req_mmap(struct fastrpc_user *fl= , char __user *argp) =20 if (copy_to_user((void __user *)argp, &req, sizeof(req))) { err =3D -EFAULT; - goto err_assign; + goto err_copy; } =20 dev_dbg(dev, "mmap\t\tpt 0x%09lx OK [len 0x%08llx]\n", buf->raddr, buf->size); =20 return 0; - +err_copy: + spin_lock(&fl->lock); + list_del(&buf->node); + spin_unlock(&fl->lock); err_assign: fastrpc_req_munmap_impl(fl, buf); =20 --=20 2.43.0 From nobody Fri Jun 12 11:09:44 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 C6F9C44E047 for ; Fri, 15 May 2026 12:42:48 +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=1778848970; cv=none; b=jzIf16DhhBBaBrQEjBrM892DFRmzqxdPs0fXL4f4j8/heGHN6ya++x/4Vq5U0acygG/SHBYtXYfQY/NGdBbGH+4Bcl+lcCUYH1qLSzrNnPWIImvrck8/4uLLGhx2z6THPhhYlrfYvBF/yAgwPc5KX4wwvuPZ7c40zmXJf7HoKzo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778848970; c=relaxed/simple; bh=gL4ujTMci+xTNRSy5BscBw+c/sx2NSrZmNjtFRPlSoU=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Bd/8puwQ78+WDf51yVsBWCGLKgp/trGTyKVNlLjLQexPYzaW3NMLyJ7R7MEH04RFVWqnuYf7FGLjcJuoGIh8TCgVJEcGVYOC8dKb81iJMkvHrxMLMG/aRlnTZcApDhH52DoyU1pMyLq6plYuvAvND7hm2/BqFVCnb1B8906jiak= 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=ZjKVFZCa; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Ikfs2QKy; 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="ZjKVFZCa"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Ikfs2QKy" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 64FAsqeZ4008602 for ; Fri, 15 May 2026 12:42:47 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=qJmRCeRB5pJ apgPzBhK677pMIluwek72W5Okvem7r3w=; b=ZjKVFZCaEbYxcZM25k+mYVMckN2 Bth/8ulD3NxjowSMtDrBI2dYj9pgDoQd/qNPgzdwyhJcSfjXw6NhzPb+Ql8qELvi z/wKp855zMDcS8k8gzWlvEdStZkRfngISv6fwj3WGwFOJtyEG2rx3Br+XWFu+3To uoT0O83+7H4aXsL5O6Zi30MY++hgCS1uwjZx09Lxi0NXvM0eCF+POAvkLeP/ZKJ9 Wn/Tj+F6jHaigH4Sue5aXkwJLynKsgsRpZcdK6PJmLYFX9SmBXwhV/MmQ2ULPKrF XuBK3FBVOxs4AkYxF26bwOTv6e3xbTflTsRJYmpz1YG2QwEp7MxyuvEs50w== Received: from mail-pl1-f200.google.com (mail-pl1-f200.google.com [209.85.214.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1su9kj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 12:42:47 +0000 (GMT) Received: by mail-pl1-f200.google.com with SMTP id d9443c01a7336-2ba718173d1so159226245ad.0 for ; Fri, 15 May 2026 05:42:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778848967; x=1779453767; 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=qJmRCeRB5pJapgPzBhK677pMIluwek72W5Okvem7r3w=; b=Ikfs2QKy/sFuUHY8AqoB9PrFgfsr4QLSakKE3UdPE1V/xhYqr7bN9CGHIkNa8uO8y9 DCZ87SY2OYfF3nvI+qzBzEoKTvis3oULsZ6dV57G5pefFT4/nasDHietZZib/0KJjs5P lxYdGeiDvYHP31vPU6cy78y21551XOTZbfOslmyek4TJqunT3XUYhEExc5DGHW2Bu12b U+6Ez2bmo6DEeQXxlceQDBQD811We9GQDUXmDhyGODx32qJ/PFjI0AuVClTFbckmZqLx 1uzFEW048cyI77Z1R+dvB6Hr2b1kBCYaKmFBYcazZLk4sVK+x0Ni9iAYAm1Ga+0nGip3 UQQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778848967; x=1779453767; 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=qJmRCeRB5pJapgPzBhK677pMIluwek72W5Okvem7r3w=; b=gYLMSDYNJ+YHxeMCvOka9IkUxG17CqQF6OUdedMUVDnzCJYYXdH9Uwac1rTmPczZp+ /kUB448k/4OZEm94aaWS1qEXRd4wAtd6lbBqSXFuzRrEVLQll4u8qcshfWF/LNgheS2P RvhjmdjG1Zq2/iIaSTWJaRrPj2JPSKt054JAUzcUS2auMezqiEaQheg38zg7pzu4z9yk QwSWcBP2gHeI48ErJLBfcy4+x1avdAmYUJQgWq3OdfrfAgrWaxsWFX8MVmWFG0qmYEn+ Nr5lvgUK1bv1f3KQmVZL7US3fVf3JNwSbYusgWfhNmS1ljPPiK2ZLZkchnymr4qPN4qH /AmQ== X-Forwarded-Encrypted: i=1; AFNElJ/H4/+GnbUi0wEjFyApLUTlOPfGdlpaaeWT/2QAf0iGbxh/9JCzyF8VUohpeVN4v4Re8bBBrXMBiPk5SqU=@vger.kernel.org X-Gm-Message-State: AOJu0Yw9L79ZKt8u48G1fXXgrhqvuE8BgbSynlYwj/85cbhIaGTohm3A Hffuu3jTQcdaWz105y1BETufCHco71o/KfNH/vuMcIfIrsawvB0SMPNNErNawwjv6DQj6e+mSN8 GoxcmumywO9C2Kg1qzlmjpjkSBI3a2/Pnb3AaDrorfrSC2ctlKA3Abi6o9oNb6nQFiaw= X-Gm-Gg: Acq92OG9aLFEv+GTGEz1zgnn6D9z+e4pHvM0LJNQMmBVV7pHEiBFug3QhqSPnpm8Ujm k2hli6yE57wBfswtuV0aGCA9A5qy5IyZw9oXXrDTti2c5ZkaIziOBHa9a1uriBMYK+9wOunHHqD GWaGQ38vOxUf9O+WCaqRIgi4/51wVTKTJA3F0BQjsGSRi21v9sZ9lb4LdFlW6cvMWrq1jua00Um Zr+VESa2wDYm5+gaKyQOZ1rD6Znc/aztWCra8OBNpX6v2SVJJii0wxkmF7QbZIJHrKmFjEUSVlK IG5xZp8uQihzWNGACffQwJcJgUB6qiaeLDU6W57Xk6cwqQipsj88Oh2jr3HVXazB9VVMA1I3NrZ z3NFKpXOTjgcOPuVAQUDrlodwdgVuBdxstOBtMNuQImU8Z4GXBX6QrSItA0P8ZtLpiLtQ7JhPvC o5gcnCldieF6webiOKN3g= X-Received: by 2002:a17:903:11d2:b0:2ba:6ffa:bde0 with SMTP id d9443c01a7336-2bd7e8c0530mr41111125ad.19.1778848966796; Fri, 15 May 2026 05:42:46 -0700 (PDT) X-Received: by 2002:a17:903:11d2:b0:2ba:6ffa:bde0 with SMTP id d9443c01a7336-2bd7e8c0530mr41110815ad.19.1778848966259; Fri, 15 May 2026 05:42:46 -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 d9443c01a7336-2bd5c05f27csm56119395ad.25.2026.05.15.05.42.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 05:42:45 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez-ortiz@linaro.org 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 v5 3/5] misc: fastrpc: Fail Audio PD init when reserved memory is missing Date: Fri, 15 May 2026 20:42:15 +0800 Message-Id: <20260515124217.20723-4-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515124217.20723-1-jianping.li@oss.qualcomm.com> References: <20260515124217.20723-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: HF_z8RL6BskJIapo0wFIQEkrv4iVD3Cb X-Proofpoint-GUID: HF_z8RL6BskJIapo0wFIQEkrv4iVD3Cb X-Authority-Analysis: v=2.4 cv=cZPiaHDM c=1 sm=1 tr=0 ts=6a0714c7 cx=c_pps a=IZJwPbhc+fLeJZngyXXI0A==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=ESjX33bb3rDV4MXBDX0A:9 a=uG9DUKGECoFWVXl0Dc02:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNTE1MDEyOSBTYWx0ZWRfXw74GfEoJ+Pkm y6fuhtXcxlobXLPCWAXm1RLnN+qaBlJpIAd3B4Mq8UBp5izv4sA2cbWWggaOT1db/FimgVNuP1G 2Xi/M2DStKQj887EKPivULdw/wEofViGbhdqWvQLcqtkhrjHOXUPwHotnFYTnxzIxFx2cHBekbS PPkHDdYWsHbb8Ak4ZWCd0pavWN57lHt23VVMsCwHVbznADj61iZZONEiL9S+2grtaQ92O0YGCBf ggI98CGDPODGoaQ1rVhEBsL3OYTL9GwvUxcNvF4RJLoF9aLCb+w46qFqqoMeIVJC/vchh09zZ2R Du6BC30FjF4xVpN8xfwk1cwptp/JramSnuzjv8SPdnIuDJWvfxLWfTFZh1hETnjLTTt+rvWTz7n eSRBl0JfxRCeN5f5lZHuDQIxscWO6QybrMEOSSqFuqLgWte4fKB4xcMWeJTag5bpgrp3kFxM15P 4jrW1emh5VziQTEjFqg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 lowpriorityscore=0 clxscore=1015 spamscore=0 priorityscore=1501 adultscore=0 suspectscore=0 malwarescore=0 impostorscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150129 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 | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index 3c7c3b410d7d..a0337cce77f3 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -1363,6 +1363,12 @@ static int fastrpc_init_create_static_process(struct= fastrpc_user *fl, args[1].length =3D inbuf.namelen; args[1].fd =3D -1; =20 + if (!fl->cctx->remote_heap || + !fl->cctx->remote_heap->dma_addr || + !fl->cctx->remote_heap->size) { + err =3D -ENOMEM; + goto err; + } pages[0].addr =3D fl->cctx->remote_heap->dma_addr; pages[0].size =3D fl->cctx->remote_heap->size; =20 --=20 2.43.0 From nobody Fri Jun 12 11:09:44 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 5B2D244E047 for ; Fri, 15 May 2026 12:42:54 +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=1778848975; cv=none; b=RiGio+2yC+BoF86sNDSAaZX18+YQUpGLQ4zQhYTDwXnfYuE/aa81pvckDuakoy0X2JyAi8kEYR1LS24UYUJsfsAIOnqpBIFd3UpXflfH6T2VNZIIWGLbrGj0TZ5QzJv0CTvPMVtARnzfN3BbdTqmE4NdRubWLZ+oyH5RYtZQVmA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778848975; c=relaxed/simple; bh=FPLE9T5TP21koJOUSS+HDVnGURL5C7htZLkDTy8lCJ0=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=Qhd4MMHuA0Yiel1Ra43c415CghOlmc/N6tRBllnLNvIzhSJr4/d+3Hj8PD4Wf87j8b0Z5rnLyA74BFIFDEPeV8lGDqn6CJOvc+e/2xl/EXgNFyUjCg/sQ8r2Rr5dUhBTvE/GZ75lVOmppqyBc0cRW0tu4tOH/LhV97gzwHzFdEw= 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=kfPEuxtb; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=iYwgylqY; 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="kfPEuxtb"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="iYwgylqY" 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 64FAoCcI3512955 for ; Fri, 15 May 2026 12:42:53 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=f+pEnlL/Dwk yKv8LqyGHXztzvJ/4aDMHJNFY2G154uM=; b=kfPEuxtbkcMaRh4yvf02rxab1IK y+4xxLhLCMVF/XownSzBhds5T8r8YxtR7oGVe0PKvvNWddNWteeLEysKG0/RQyGV EN9rnZvvZ/rFYUUAWW2Ve5FMTDF5jNW5ZBCEREbFAA3lkRU0JnsftR5OTkD7iGyN kAdNZImLzmSpTYe2JpJtxhvOue99ZRgGuR4LuPsePFON7J/o4+1C2m5zpz9o5x8Y WucIaNnqQzC82fHxt7sAcyVpeyeEHkJor3MLTUzeF7yDfJKyipwhCsvCjDFPZhvM pGQOXacTiy2EtXjKOF/zOFgNYRXG/gDhlEvFhbVO/QsPKGxL0roD0Ggv3rw== Received: from mail-pl1-f198.google.com (mail-pl1-f198.google.com [209.85.214.198]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4e5m1vb8vv-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 12:42:53 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2b9b8137828so98278635ad.0 for ; Fri, 15 May 2026 05:42:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778848972; x=1779453772; 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=f+pEnlL/DwkyKv8LqyGHXztzvJ/4aDMHJNFY2G154uM=; b=iYwgylqYDLw2bMQO2a06jPISRFcG2Re7GMQLOScYdj7FMdcRx3n5BolBHdiBe96AIS Sw/AJTM4kicfYn1T6Z5R3RxaU8gzzLaC6WTfb5cgsKQdJu0E6v36jkB3FKph9QQyWiwk 0+YB0T1CmLqhIONYQ4ukKoa6Db0nEinbmtAmTdkIWKLKsH4lTQHs3SfYbyhKEBECHnfu hLM32Ygrx4WP/ThsqYuXGkdqs7W7BSOTHaEiq+pSwK3xH+6IZUAYgRH9e0bZAK2/C8X5 jNI99yGD8nWAbEGORtW/z5iY/MHQXqhsyrBF54z0QhSGMaov7nJjm+snu7dkCyJkKNIP WQCA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778848972; x=1779453772; 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=f+pEnlL/DwkyKv8LqyGHXztzvJ/4aDMHJNFY2G154uM=; b=Jds3OwKqhmKsMNqVfT0kaozYARyvEcvIQ3Wuy0aQjz5UWluA/bni1CbdXQdKzzdHq9 WgFLtHaFSozQGXFFDBjLrnwZZgOUQ7sgSzT0Y83WTiG7ID3iNSL8rhLAJGA/KdiRTFmP K/cssyfrCrkJGmL5MDvT9XCV3mRT56QnShJN9VNRzFNKUU9ghCdmXD7AGs8P+p5FrCXn JfmpGZQ07mRyrD+t+SB9by8J+6luWzJgogb1JR0NmqdA7k5BzdBH9WvLi5lNqvbbBjAm +wym7iJwwOkYHXfMkymYp9Am8UEYd96N8ZyZlKMIxLJFzNk50l2oFKvnA3kRdJsmLAEf 4cBA== X-Forwarded-Encrypted: i=1; AFNElJ+kLOSSUlE/fEDmVb37ZNgycDk8IrCMDPi1pc2rOdU2nuENXoGUx1AzKHTc6mE7bLVs9gXGrvm4FWPf+bw=@vger.kernel.org X-Gm-Message-State: AOJu0YwB3gqtMOAxWbhnxL2kbcda8R+3CDDLz/VYpijeG2bbshy4GFKS kgoPPgERfY4uVv+dPdsPcdPy4Q7OL1wuErMsn8QStF8ERewfR9ghDJsudXRk5azapz12XltOPWJ dDJsncllaXp6Q1LDCMD7abj1lDJHYlbZkvUokOUiqN84wbs/Qfn+Hmt6QWTfdDmDdV2Y= X-Gm-Gg: Acq92OFrZv9uBY9WRITAoPpznn43Iy3wyh8JpR1WVGge60sR66irXFxYTysKqnD8t+U 3ewoN2GFxGJm5YpLN+nnAKnCwUVW7QPrjKUFqdeB+cbvaK8XOb4JYQ0nuBUT2Avfl+3o1E4e6BG TjUntWg28XEiILfG2J14uzJjzh/LfAvMQTCjrAl7yQozAHsXfjXkKqw1AXPiAa0VIIWMTrXX897 2g7GcHA1FV+6ry6cuo6ttlPjRRRYR4zd8mzDnGqyU0Y82KFB72OrMPERJ/rM6afwfKfhTww0bXY dn1i/8D3/eIJMDE62Vxlpz+n00FOXxYHWIZ1ktIvjHODVJUh8HLkKYoOZUNLB4xtW7aIJlkLm/h 5WqZ6LRoFoucYcBPHXweZzUAWC/rdMc+YYv6ird+1nj2Ju4ML8p+CmP/e5mcHmcGcXqXrSafaoS URi8Qcv7g/emUstH956zo= X-Received: by 2002:a17:903:240c:b0:2bd:2439:25e9 with SMTP id d9443c01a7336-2bd7e9e263emr43094585ad.40.1778848972245; Fri, 15 May 2026 05:42:52 -0700 (PDT) X-Received: by 2002:a17:903:240c:b0:2bd:2439:25e9 with SMTP id d9443c01a7336-2bd7e9e263emr43094215ad.40.1778848971640; Fri, 15 May 2026 05:42:51 -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 d9443c01a7336-2bd5c05f27csm56119395ad.25.2026.05.15.05.42.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 05:42:51 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez-ortiz@linaro.org 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 Subject: [PATCH v5 4/5] misc: fastrpc: Allocate entire reserved memory for Audio PD in probe Date: Fri, 15 May 2026 20:42:16 +0800 Message-Id: <20260515124217.20723-5-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515124217.20723-1-jianping.li@oss.qualcomm.com> References: <20260515124217.20723-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: AW1haW4tMjYwNTE1MDEyOSBTYWx0ZWRfXy8pyDwkxNZVB wwHvEd+C9uohRQkXGPcA95JrUul+yraUuDSB3qfG8DMFyMttftCyt82Ic+Q4SXYhallle8vCfX6 opYyqva1R1/Z7jRP42eEqc4lJRiXgzzrqFeEl4m3t2aOxcRCXJuuumxoXGm8LDnAB93GvARNRR8 9MIXDTZ7m6tsgeJpvHQHAe/WhWHqiaQzeLGan753aNgmIcKfJCbTEhGqYVvmT683P8iJiVvpzTO Dk8+veXh0B+EoxLhTSGahBdI6Yc8jN1+O2gYSr2ImF3UENOVJjQUWDzFcllYLPnMKpVS60b+dwf XtSOfpLT3VQ1DM2oAeSmbjyKUrKlj55VsRz0N+tBMoZRGzmhN3TanXzz0vc1wLCGwr+S/HJVd2y cI67XRiWAgOJaJsXQchUhKsB2OLIKQ8rWAfYHFStiGvuCKUm4U/5wQyFXvYBFzzCIzuXh5L3RaI kXfDkSvhzH2Z9wET4qA== X-Proofpoint-GUID: dc43EYGTUJZOCdd99wLkQuzsGC8kVvp7 X-Proofpoint-ORIG-GUID: dc43EYGTUJZOCdd99wLkQuzsGC8kVvp7 X-Authority-Analysis: v=2.4 cv=BvqtB4X5 c=1 sm=1 tr=0 ts=6a0714cd cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=vXPY0jRleWu_0xqwLycA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 suspectscore=0 phishscore=0 clxscore=1015 priorityscore=1501 spamscore=0 malwarescore=0 bulkscore=0 adultscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150129 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. Allocate the entire Audio PD reserved-memory region upfront during rpmsg probe and tie its lifetime to the rpmsg channel. This avoids userspace- controlled alloc/free and ensures memory is reclaimed only when the DSP shuts down. Signed-off-by: Jianping Li --- drivers/misc/fastrpc.c | 107 +++++++++++++++++++---------------------- 1 file changed, 49 insertions(+), 58 deletions(-) diff --git a/drivers/misc/fastrpc.c b/drivers/misc/fastrpc.c index a0337cce77f3..9c70788afa0f 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; @@ -1295,15 +1297,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 args =3D kzalloc_objs(*args, FASTRPC_CREATE_STATIC_PROCESS_NARGS); if (!args) @@ -1327,31 +1330,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 @@ -1363,14 +1341,24 @@ static int fastrpc_init_create_static_process(struc= t fastrpc_user *fl, args[1].length =3D inbuf.namelen; args[1].fd =3D -1; =20 - if (!fl->cctx->remote_heap || - !fl->cctx->remote_heap->dma_addr || - !fl->cctx->remote_heap->size) { - err =3D -ENOMEM; - goto err; + spin_lock_irqsave(&cctx->lock, flags); + if (!fl->cctx->audio_init_mem) { + if (!fl->cctx->remote_heap || + !fl->cctx->remote_heap->dma_addr || + !fl->cctx->remote_heap->size) { + spin_unlock_irqrestore(&cctx->lock, flags); + err =3D -ENOMEM; + goto err; + } + 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; } - pages[0].addr =3D fl->cctx->remote_heap->dma_addr; - pages[0].size =3D fl->cctx->remote_heap->size; + spin_unlock_irqrestore(&cctx->lock, flags); =20 args[2].ptr =3D (u64)(uintptr_t) pages; args[2].length =3D sizeof(*pages); @@ -1388,27 +1376,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); @@ -2397,12 +2365,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, @@ -2410,7 +2387,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")); @@ -2491,6 +2467,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); @@ -2508,8 +2485,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 Fri Jun 12 11:09:44 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 857ED47DF84 for ; Fri, 15 May 2026 12:43:00 +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=1778848981; cv=none; b=GafF/QR9fjytEX9IpRv257novypfxisAnDgS+C6dD+Ho+i34WzQzAMuBxGAobnAHGfwNEOgcbiLY8O6IZCcb6ZhEO47/D0CKt4fwN8AkOjkKB5UFF/R97WqshxGJch7IWG3i3y0ofnLj/r8XbKfyftm2yMUinrzRfJPdg0v1nhY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778848981; c=relaxed/simple; bh=zwgk6epnRWY8Wv5vG6Mf9eFSqZrrY7jCN5ujBz1hPqM=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=NaNNSeBbuzCuraVwQ2nOVqd1wIuhzoURmCxalJVc+xgmDXewmt6CVMag7gugT9ICqygSPrRTjRNxi6WPMzaQAyoKT0yWE/SWQ+dXj7oR2DJH7nxamuYGBpQmcp9Z42NcnNskym02MlkI8XMeUFz0T0qg8bR1QdTjsv2UJgsVmhU= 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=MfonqrYN; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=hf80f5Sz; 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="MfonqrYN"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="hf80f5Sz" 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 64FBejCG3795744 for ; Fri, 15 May 2026 12:42:59 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=F4ku8bhGpeG 5gSXCtpcrJJX6a8V20679dhsPTygcnWI=; b=MfonqrYNZml3WtDu0pRbeI4aKMN /s9FNCElzmNU+sXhxiBVl0tFO2V5RTtin6OJE34zqUgEjwDSnLYx2Ry0i1v4jlW0 9GfEL4uVBUHqu/hc6j2VDD8FKqM766YSNz/SdXBfX0vvp+2gcp9I57IUcv3ecY+c AzMOuQ35TboxQFdctWmU4u2GvLKW9FlVL3J1yW3H9ep3J4/eJuuNzgQQsyJ1lKNS Uw4yjzLz4R4Qkwt5djpOKR998rIw1yviU4pQXbJGLAvIyGgj4AZe5jVshLv3ug1x vZXn/OGqsHQ8OoF+3KO46YgeZ0Fk0v67YxshjkHp77BAGjK+FpMyfZqKt/A== 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 4e5m1su78d-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Fri, 15 May 2026 12:42:59 +0000 (GMT) Received: by mail-pj1-f70.google.com with SMTP id 98e67ed59e1d1-365fd467cf6so8049375a91.0 for ; Fri, 15 May 2026 05:42:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1778848978; x=1779453778; 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=F4ku8bhGpeG5gSXCtpcrJJX6a8V20679dhsPTygcnWI=; b=hf80f5SzU/L2AMEn16Yb3UqCgyuT7ccZQJCh+bWv6O3auu5T4s5sQVI8wU8yzsbqC6 CQl17avh82f3rMkcz6Kq8oBTBgXdutLT0wLcKVUXyWra5TWwFOa0IglH4rUrpQ6qEFFQ b5HRKTVWTfM36+HuvoAVEOPvU/a/bzOJ6p6KMjYwPFZm/+RGQ4cHyBN9EXFaXQ5LkThw pnKbnQOjm9DgoP8Z2ErGq95cdyFlDSksAOZ+v2/9dk83QffssR3A8sCO1MewTVOg60L2 7P8DdI5ma4XDl3HpiPrNnIgwVHLCQfjDllUdSZJmwT44X1mS+w0whHuhS52fEM3wq48/ Xuuw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1778848978; x=1779453778; 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=F4ku8bhGpeG5gSXCtpcrJJX6a8V20679dhsPTygcnWI=; b=c47V7QYJUOxPdLY6ggu8tGvoR8Gc+bXY7YSi8kDd7QPHIcUILfRX9zUlL38bUSYLb3 6sAohrve8FCmw6AGqRHV/U6/YqnJRrYZ9M/DL/HahEN6CQm2XzXfltDH2Gg1TycCJY88 pIR/KmYUuATED3WkYUwAfOP+lKKh7seiAVpYGpAn4SVSwEcQ32dqL7f5mSM2yonep5p6 2ARHfts1x6+oQTuL5u41biDSIksyTykMUpKKRTLyTDDvI7iSLLuk3xz+RB87tCpa0ESK Qg4Cp1BEZ+NLy8/zdocuLO60TP5R+83KQJWPWtqIkITdc9qmfnMM5eVNtZbQZ4aH3nDX XJ5g== X-Forwarded-Encrypted: i=1; AFNElJ9DFJc8YYoqlhxnX6K9TQK4ICkY5vsK545hnaWfj5B8/FtLyNCZuLRFXJSy5ZAv5fQ+/r7RSjEUYh2H1Go=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3sthhc94d8DlhLdGQ003cG/eOJLMNZSL/YG9An3KGRjkMhKNu QofJ9wl3lF6jHEzeJuWGfvbeqDZZrjpyToW4VLtlbHYscQP21Gvdg6VbPSQBajV35o12EsUAgRh FR8l21grA3hTe/+PSR+pKCXjbefoGEp4b5q4Yrx0JDibHd4bMHJf2xdilU+5eWqaJYHA= X-Gm-Gg: Acq92OHuWuoxHIx8GFatOUwGELARtl7Zz3JfR6j+TM2mOBa9Me8/RlZTrF1ueXiPCd+ 9ZHU5V6apCsfe9SgqKadZjQ7CWUi+9JZyPuIoR0DO8mMfAMU92V+JiBvqa6yqI6gMU2UlZcmgkf TYg1qeWCvyMhluEgmS4KoUlA6vCERYjdmOsvoSH5ZuJrgilP8s1QDwdIXldvnwqAf3xEVX3rraG 0PfezLii3+TKHxRhAjCm9Xb6HdSfMZrb2xOiyQnWcBQnMDmwnf1GHVE5pahHXYDesPxpuvGh3qN ldgmOe3Gb+OeiZvkjmRxNuyl28DDdXt0VrylpH/zzLXnXdRz5LzW89FgxWGJyZS/G8Z7P2L6UKP q0cUNnxooZ4yE5KqzDBZmNMMJ6XOdDMLyZ9AjWGLNX+Hw6TVaLwSfy3vivSgPK88PpbClWBJkcd B/KrK10PkD0m8wAofPgLM= X-Received: by 2002:a17:903:990:b0:2ae:6259:5aff with SMTP id d9443c01a7336-2bd7e784bd9mr44811545ad.6.1778848978189; Fri, 15 May 2026 05:42:58 -0700 (PDT) X-Received: by 2002:a17:903:990:b0:2ae:6259:5aff with SMTP id d9443c01a7336-2bd7e784bd9mr44811275ad.6.1778848977719; Fri, 15 May 2026 05:42:57 -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 d9443c01a7336-2bd5c05f27csm56119395ad.25.2026.05.15.05.42.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 15 May 2026 05:42:57 -0700 (PDT) From: Jianping Li To: srini@kernel.org, amahesh@qti.qualcomm.com, arnd@arndb.de, gregkh@linuxfoundation.org, abelvesa@kernel.org, jorge.ramirez-ortiz@linaro.org Cc: Ekansh Gupta , linux-arm-msm@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, quic_chennak@quicinc.com, Jianping Li Subject: [PATCH v5 5/5] misc: fastrpc: Allow fastrpc_buf_free() to accept NULL Date: Fri, 15 May 2026 20:42:17 +0800 Message-Id: <20260515124217.20723-6-jianping.li@oss.qualcomm.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20260515124217.20723-1-jianping.li@oss.qualcomm.com> References: <20260515124217.20723-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: AW1haW4tMjYwNTE1MDEyOSBTYWx0ZWRfX26eDZx1903ld VUIBziQuAr6haaUU3JS98DZTwuxGzSPHPhdR/OdWWSDniFYJCvOsSqdEXnOaywME2Ps22ncoSYe qZb9Z1vqI4UI2y9/EOURFp2ZXlt3LZa6Ld2A8MeDgHERHnqAKLeDqYKymposBunP0tsIFGoO5HU SgFPTVF+9eFYNwaRU5b6colFeTvisD7itjUu8SS7QGuBQH2k6f0rUNBnAEOiiWwHhTmiONRXC0N dWX4125yzldoi9JaGb6DYmyfBSUSt04bnvWujGOUfaGA/qqUekTolm6FAhCU6eAM0KaDQklNNty e8L28G8EZYyY8LEfZVDqk8290aipuH8G5ZgMYLpB3rIIePQ0dmbrc2Y/qnOa2zr25BxtiL55z2Y u8Xt12U1v4ANM5x1m3ojs4uYLyc8WYP4aC3NfQ/7HV2fkSl+dC4ZpXz+KRp5ReF7X5NzQGXl01e qa3CyXDuDWjVmFn00Zg== X-Authority-Analysis: v=2.4 cv=cZXiaHDM c=1 sm=1 tr=0 ts=6a0714d3 cx=c_pps a=0uOsjrqzRL749jD1oC5vDA==:117 a=nuhDOHQX5FNHPW3J6Bj6AA==:17 a=NGcC8JguVDcA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=EUspDBNiAAAA:8 a=GmafkBk8WXepDEkBruoA:9 a=mQ_c8vxmzFEMiUWkPHU9:22 X-Proofpoint-GUID: kWvLOP3T_28kM2-3w9xVCRECkil-8c__ X-Proofpoint-ORIG-GUID: kWvLOP3T_28kM2-3w9xVCRECkil-8c__ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-05-15_03,2026-05-13_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 spamscore=0 phishscore=0 suspectscore=0 adultscore=0 bulkscore=0 impostorscore=0 malwarescore=0 clxscore=1015 priorityscore=1501 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2605130000 definitions=main-2605150129 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. Co-developed-by: Ekansh Gupta Signed-off-by: Ekansh Gupta Signed-off-by: Jianping Li Reviewed-by: Dmitry Baryshkov --- 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 9c70788afa0f..82bfbf342725 100644 --- a/drivers/misc/fastrpc.c +++ b/drivers/misc/fastrpc.c @@ -416,6 +416,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); @@ -512,8 +515,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); @@ -1564,8 +1566,7 @@ static int fastrpc_device_release(struct inode *inode= , struct file *file) list_del(&fl->user); spin_unlock_irqrestore(&cctx->lock, flags); =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); --=20 2.43.0