From nobody Sat Jul 25 15:28:27 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 26F163537F1 for ; Thu, 16 Jul 2026 20:15:50 +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=1784232952; cv=none; b=YZngqfAqfKiMEbkhtyefqUjHOKFQpK8jqWbr9dDHjQkGGilVjl73uv1EuEqIMnswR+cqL8uIQjXFpG3Og7MMEQDahWyKt63CMhd4QebG8/HfGGfLWOS21hYrWq6eifTM99pZjYLXOvCVf3PI+GIZ613WVOC665V26bUQCoTG/rk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232952; c=relaxed/simple; bh=GxVogIMhu1mzW4YRsiI52i5vAv+yBYbcef61tqhGQOE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C7aPFVKE21H9Cr/fXq++pFtvCcWg5xuap7AOg6CYpjQ3ssSIVJnoQsXqrwVSiSsk3siy4+MRbMTdsnhYpG0lR/SmQX6y9jJ3Z6y7jHY4Psa/4eLZiSKynLcNRhO1yqUXq5rrSPkB481dg5enRkeruJOv/LNycdFkHSH71XaAV0E= 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=in4g1Utl; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=R/gmD/Vm; 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="in4g1Utl"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="R/gmD/Vm" 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 66GJojoL3627112 for ; Thu, 16 Jul 2026 20:15:50 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=YHzHGsRPIUG VAMOUo6qKw+18SGmm5iq6ipy2Wi/zZYE=; b=in4g1Utl1ieeFIZ6MecIVVSwUK8 gfIFKI4yMv1i5RUM9+X6TYJpJEyMsyaLs3NGs+56Is7/rSLJagPtt46OD4qm9nT8 h1n4xzcHMTq5IjUvXcMEkfabwKezxg6HWnez5fVMCpQRHy82hrdiKApKMWMRPIi3 dHge/835nYJGZyV4bDa0+CUOr556zvXfhRxhN79bFzzE5u4Ybtf701auGVvhZ7vL eYleISm8plKVbCMjAQzEXUds4CEnIeAiPfxJ4Poj1L6O9HTfZxyjYEGW9eS9ar75 tUwpQXcC7h7EmVBJYRkQRvqfBUCHDxYcrEdcpCZWKIElTRYtafDVdlXYYaA== 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 4fevkv2ue6-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:15:49 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cc86a9ef97so150783735ad.3 for ; Thu, 16 Jul 2026 13:15:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232949; x=1784837749; 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:content-type; bh=YHzHGsRPIUGVAMOUo6qKw+18SGmm5iq6ipy2Wi/zZYE=; b=R/gmD/VmDgtYwoGT7M//0q2a2Fj90K0poBQp6HLVS7/p136yB8SC7PeAclM9rCP0+R 4lHpw2VJKfomQ3xti/MJxleZCOqqBCOO5W3Mzr6zQJaWSMFU+HX/IuxIGEPUXfhWC/Z1 OyLwpeufk5rOII1n9AsGRwBU8qpiycar8exZb/0lPU61hLVbAL+VCP1aDH3McHaLwZrR 4NXorjYPTJQG6bogDgmwFsvkg50jb7WesJNkMep7yJsiTr7mD8vPEPAC3NjAhmBbYizA zgy+HVX8RMPtysHmIG7aW1YeTTFMJfpAr6rNUU9qCPmyHlnF9CuMl2ltKZAf1NvXinSk hR2g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232949; x=1784837749; 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:content-type; bh=YHzHGsRPIUGVAMOUo6qKw+18SGmm5iq6ipy2Wi/zZYE=; b=LS5hYV6bGmP6H/XN5bKK8o9JGq8YUhZAX/9IbSAEo7Jahsd50zAc9N0J7DAVRKrIw/ g1QlJKhr3q02K5grJxsGLIN8P89mNiRDO1VaTTivtET48WwvGYWTwktjsd612eCh1b77 qIUIiIH2b6NOZZp0eZT0xmJLaX6RAiKoJ105cOMpfL0uduez6L0nfUi//UqL1oaaLhJd /9FFwcNlZnP9jpqVefRLDSbw9YVHeLOZeTvjptOJx5Pyu98G/PCaN2gzTBYB2FhQuCCZ 1KKnSd8R9Dy6eRIG5zMSJwbq3SIrkOVluzr8CD4EcRp7JMrCwBTf9BUTVjIYPIBu1qIw /aiQ== X-Forwarded-Encrypted: i=1; AHgh+RoNwrLKhZhtYytAhNxmPOUldYen/fAY72I99ERZXypDGmxevOwcM3aR5r6VHeDecDy6jeAPwoULijugetA=@vger.kernel.org X-Gm-Message-State: AOJu0YzKsTCbdkg7tEIKWpwoRYEn7DyXgphPPc/aB/xwW+LTsnp17+kO QnI7JXyZiYqlICoMwlFwnFN65+veefBCxIiXkPUcid7uFdV7CjSHzWRFkZ1CtlfRnFC236GHbxC cdxzS02uqfJuPq3UzmFT0hQ3tJ44chSjwmJJ2YOC7fdZgIfyHfEJXTE484MbEoXnLQF0= X-Gm-Gg: AfdE7cnsTpkK+MJIaftt9hbxRwrqtyryHXpftKJfeRw9A/Q27HckYXTp3Gtqpw1W6ij wWVf8pGk4vi++hZXd2zB6xuoagVqL+sL7GRuRzbtaaJyVjnsXO2J8YxkzocC/7bRIxjfiTwLin8 ntkPRStGwN+j8pTntTF6Z4YL6BJFwvfClQr3bNEHz0lC8AYwEX74RFBspIBrVbENgU+KN13Lrl4 x9vR+E9iXfDzjpZsoJb8MD+xGxvzMEzEiqrutrCVq4jc84kpYhC9Wn+Cz5vSdXQfDDoqOerGbfL 6mjNd8Q/2sTrbOHEIkiZheb3/XbmuQ/8vW0Nb4R5fyGcj/L3iPc4v1AqSugGBl3a8gyUinwGlJv y+9ENbVBIgpvUrVF9E3ca6t5IGNayhxUhqSa5oKVsrLrLd7s= X-Received: by 2002:a17:902:f64d:b0:2ca:5d24:720b with SMTP id d9443c01a7336-2cee9b82e93mr139874085ad.39.1784232948854; Thu, 16 Jul 2026 13:15:48 -0700 (PDT) X-Received: by 2002:a17:902:f64d:b0:2ca:5d24:720b with SMTP id d9443c01a7336-2cee9b82e93mr139873795ad.39.1784232948438; Thu, 16 Jul 2026 13:15:48 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf10120539sm25289885ad.19.2026.07.16.13.15.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:47 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sashiko , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 01/10] drm/msm: Fix barriers accessing ctx vm Date: Thu, 16 Jul 2026 13:15:24 -0700 Message-ID: <20260716201538.365824-2-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX0hDOoY/xVtun kuGQKVlIShGm1K8C014uk+YLtZEieKI9FDMwPEXDfkPwAqkw7mJxKvUy5NxWd2400tOLYtfQHBf LvF2xdjkXqBa06I+CEx6W2f+TxSJPqIVfzCoYc52bs/PyGzFej+kPCl1qDJW8+VGRYGd+tsCEeV alms2arfDB1vPlZ97cqOJ7Q1B1tKp5sArGbFnQTTHv49UOkJPM8yHAg7hhnA2PwP+bRFsoZVwM1 SwSjy4ZzVX+HpkEirThClt4nHStNG4V5mqc3WzZPFl6ueArq1rJM4Wwbxow19/Zcun10lt4ZxXr iq0nV8STTG7kWZExoNZtRLJsU1Xc4w6BsWEEaKaVPcSuP0rZ0CL+0katOR+9aamku2VxEn+AQZ+ HgVV/CY9ZLN82AeyMkGn60xXDpXYXmga+OhNZ2H32Dw/gkEQMc9qSl8ZkE1Rla53dfcbzTqas+e TS/T5Y2cXGnd2VPt0EA== X-Authority-Analysis: v=2.4 cv=WrEb99fv c=1 sm=1 tr=0 ts=6a593bf5 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yx91gb_oNiZeI1HMLzn7:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=PXeb_Y4BrUyLDKu8J0IA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: VxW0eSxgDPIW9mjB4gQdpy4y0YPfzfwp X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX2DL4SI1vfc4S U5vLsgj4CFn34wB4TVZi1dpEZi+0YRJwD37POZgu4rldilS2RJhvBi2+OGo3m/cBIN6LViZqvyS U5GEWPmOeanpxXBKPKXR3dr0DRidqrU= X-Proofpoint-ORIG-GUID: VxW0eSxgDPIW9mjB4gQdpy4y0YPfzfwp X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 phishscore=0 clxscore=1015 spamscore=0 priorityscore=1501 adultscore=0 malwarescore=0 bulkscore=0 lowpriorityscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" Don't rely on store ordering to protect us from caller seeing a partially initialized vm. Reported-by: Sashiko Fixes: feb8ef4636a4 ("drm/msm: Add opt-in for VM_BIND") Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_drv.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 32d5ebea2596..ec88155e0ed7 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -224,18 +224,19 @@ struct drm_gpuvm *msm_context_vm(struct drm_device *d= ev, struct msm_context *ctx { static DEFINE_MUTEX(init_lock); struct msm_drm_private *priv =3D dev->dev_private; + struct drm_gpuvm *vm =3D smp_load_acquire(&ctx->vm); =20 /* Once ctx->vm is created it is valid for the lifetime of the context: */ - if (ctx->vm) - return ctx->vm; + if (vm) + return vm; + + guard(mutex)(&init_lock); =20 - mutex_lock(&init_lock); if (!ctx->vm) { - ctx->vm =3D msm_gpu_create_private_vm( + vm =3D msm_gpu_create_private_vm( priv->gpu, current, !ctx->userspace_managed_vm); - + smp_store_release(&ctx->vm, vm); } - mutex_unlock(&init_lock); =20 return ctx->vm; } --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 45FAE1494A8 for ; Thu, 16 Jul 2026 20:15:53 +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=1784232957; cv=none; b=R5cfs68P3+odfhCP3qcuSVb8rHAmRnTZrnTNTJB4x2oApsuxarV8oHyc7tnbkgwXzHJboVegN55Z5HZMqOS41NHmE8FYSGnscfuf19yIbNbDGJG85CEVrSVXtjZEIBHfEMxAqiSOPzlqQlD35SuLcANYX/ukysIddWXClVAupoA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232957; c=relaxed/simple; bh=/3bqSJFB87g3YyDDP7AkU7aDRmxHIev5pH2eJsJSsIE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hvKD97Y24DW+3UJXCWNbD18nb2kSFG4Ya3e9i/PS6vWK83Y22ir25SvSLc7onth23doHhTxXuo89abBCF/+wcQWA7V1QQTRPwZdx9KqlsRtxed8sdF1MucOxOGlTdHpU4VNU9u/3YGHYjUR1vJ9aW+5PKpf++uyVpHmD1q1X4is= 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=MSi/7gll; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=FAKCKaED; 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="MSi/7gll"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="FAKCKaED" 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 66GJoPrc3753245 for ; Thu, 16 Jul 2026 20:15:52 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=CCt/FUCHkSx E63Ah7s7mIN0CuS0Ln8VYXya9PKCt1vg=; b=MSi/7gllwQIi/Vxt8re6OlFaTcy q7m+gYPXopRP901Mgi5XxnsuhUPFqrLlinUDfQR+Bbbp5BHEyA+c4BfDK2cwvduG x6hL90CsEIakgL2ciL0aGpP2OR+wx4sK1dTDMzE81zm4I9LeUT9P23PdI6YAuF0f bC0aKe6UACPBGbVFl65CSQAXwx0PqJdRYcwK6KMaAl981Fz0FaTNNbzbh1/stAQD QIwhQ//Rt8bjoD2GsY6ekmuYOhsWD6dDkk4kzjExXkM1/I4uCYhT9/K9t8d5DuDS M8ftW02xfW5LUTktrz/lSlecVId6uAvHJ0/mzIFllX4szykXI7Y71uGmESw== Received: from mail-pl1-f197.google.com (mail-pl1-f197.google.com [209.85.214.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4feuex35mu-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:15:52 +0000 (GMT) Received: by mail-pl1-f197.google.com with SMTP id d9443c01a7336-2cc640dfde3so44934145ad.1 for ; Thu, 16 Jul 2026 13:15:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232951; x=1784837751; 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:content-type; bh=CCt/FUCHkSxE63Ah7s7mIN0CuS0Ln8VYXya9PKCt1vg=; b=FAKCKaEDrt0RcKhrpVdV8eUH1PWSZFCH/UIcrFelNCoC0/g85u8AV7DWIAa7Bu7GcL Ppy/p2p5fjAHAcqF6dsM6FYb6w4iI4N7smTATzsH3MR0Ydr1LyuplgAfxZQXBQ+8u5di 3+qebWAMGHXut/eTjClgKCAqaImHCrKSRwy1EmvR2DHL9U8lp6rDWoobn3rGbgdYPGv9 ctBPkFo3R8VYg9T4Deuyygsda1nQU744klHvSRlYEjA9Hq8CkMLFDuywhMR+OhlUp/ME Xdp3+CxEDwtr/cUSUQcwN162fKwRcuN8OB2xwg/kW+0XkeCxnNBgqjdpncJeH/YgLSJ9 XgbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232951; x=1784837751; 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:content-type; bh=CCt/FUCHkSxE63Ah7s7mIN0CuS0Ln8VYXya9PKCt1vg=; b=hY4FYfKiCszdgD6osqF8Txmpl+EV+4RDzSEKsi99ecOPGEjUry72qK47K2L9fIsR+0 i6X2XD4UvEbLHwx6qWNAvR+4BZ/jcoIUbyCWkHGie9E8qU0imFyM/Ka07sPbmFLnMOcu MbSiw0lHTKHTBLokTskK4+R7j3ttNBVsiM5mb5YPbwnwZ8fqYI7Ov2w8zWI2LMXzOBvP /BjT2BejImtR4TO2Pgp1x/V2BLw/Q4cD2PPH/UlBirl0pIv7dAUok4cvR8b9QlDakJ03 /PjE59TYAbc4AKzoPSWDjg+rfz/35ZGr4kF7q1xPY9DRweTLj5o2CU33tyqcXT3OaGTr tkrA== X-Forwarded-Encrypted: i=1; AHgh+RoC7Xmbmk1Oo/XpXwXmX1VCb/prXFP09H8wXBKE4gdsJN9IkynMEKElktj6WuABevoCFAPnefbBL21Ah1M=@vger.kernel.org X-Gm-Message-State: AOJu0YzVwT+8AOUTQmxNIeJzV+kzZaUb+ru2YqKez5xKaZ3xPS4uLoAk CloH+wAhzBqfr0mgNlCeZFEzRkuGjsurbN+tITeiGiss0jcLfDwZiMKRsjkp+khqLmz6PKDrCXL wEtMuy3Icw/mjp4uPBinjyx5lAQ6l/uPhk/3gymuzyqEBheonvu1X+yqqTnQ4rCspUyQ= X-Gm-Gg: AfdE7cmJCWi9fw8ZnEC6lDwtDB65GomoWz4Y1t4Q3+yQV9tGQ3I1zW5mo/9C4XYtvA3 rlx1RlAsW+UMB1b7dM7yAomRYwYcv74lwGh9mFyIg3AlvslImLyF5rwjdFfVD5pDJ6xQsIl38GM oq24isL1S1AtoQYfqidZP8pTcWKoch6QkQHft2OSjyiv7SeSfAGFGnvRmyW4dKrdzgDlq7Bhso3 RnyU/J9mRDiUFJAA9pgoYnYF3dD0l2QoTaE4sPQZg2ri2AfgDXjluDjFyzSyWzpq78MXJ3K2ZqL XDZpuk6fXI/TYLMByeNEVgF93v3SIAPc6FMk3j5MpB+jDmQxTPXmva8MOska+b8Je4gQdjdUecs /DA1nphaTW8RoWW3+tc4yor3mAI33yixunA4KON2etpOPFO8= X-Received: by 2002:a17:902:c405:b0:2c9:e5e6:8621 with SMTP id d9443c01a7336-2cf2ec21900mr10315175ad.25.1784232951440; Thu, 16 Jul 2026 13:15:51 -0700 (PDT) X-Received: by 2002:a17:902:c405:b0:2c9:e5e6:8621 with SMTP id d9443c01a7336-2cf2ec21900mr10314815ad.25.1784232950968; Thu, 16 Jul 2026 13:15:50 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf1015e45bsm25492355ad.33.2026.07.16.13.15.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:49 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Konrad Dybcio , Akhil P Oommen , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 02/10] drm/msm: Rework queuelock Date: Thu, 16 Jul 2026 13:15:25 -0700 Message-ID: <20260716201538.365824-3-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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=JeeMa0KV c=1 sm=1 tr=0 ts=6a593bf8 cx=c_pps a=cmESyDAEBpBGqyK7t0alAg==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=2F56w5eUDQPWH_qpgLoA:9 a=0bXxn9q0MV6snEgNplNhOjQmxlI=:19 a=1OuFwYUASf3TG4hYMiVC:22 X-Proofpoint-ORIG-GUID: 2scb3Q1U_ptBUhV8HjBTmhNQPbOQq_Od X-Proofpoint-GUID: 2scb3Q1U_ptBUhV8HjBTmhNQPbOQq_Od X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfXyshoFfFJvwxZ PYQwJNk23X6ATpykXr2n9fVXCmUEGZx7hkBXdTCwpBK0KGtxRzcEpfI/yFZu7lnR7ysUAhy//OR LisKzsek4cu6UfdZmRxeDX2Y/6RP5oQ= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX52kXqDSGE9Ws cgAz6jERBc2w5xSasXXNBx83/GStjJuAMmuVpRywe4Pz+ke/gNB0H0i4UGBN3Dn/++2pSWUOQ5C LeEO7CIJwpHsbQL+hcZfpHxiH2baqiTm++0IZevSaTI52BAshFPmkORuryM7qG6DsX7XzKeny0J JF/L6Po3RjFM5+UE6TNck5Oaq09d64G4Wbhnu959qCpKXHlDDTM9kK0vsh63kvUTKaRiOkXy0yC OodHAu1bP9bWgft/+dID17uIDE6m5/7WX813c6kX6wxCxKBCw9INocG5hqtcTSw85YZk4oHFZfg FwaLIpQTs5cQoi37qFuBz+bIcmOr3up0xnZB1i677+KrhuJHiheDRE8LjOT3bFd5Zs0XXDK8lTq v+tbxR0JK2WTY11ztqoxvQaMRzFycDV0gTRaBCR9RW84hbi+skpiBQKNYy3Z6pgtAp/b7R9qA7d rVqxOMx7f09QyOQD9QQ== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 phishscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" Rename to ctxlock, and use cleanup guards to manage releasing the lock. This will let us re-use it for other per-context read/write serial- ization, such as VM creation. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_drv.c | 2 +- drivers/gpu/drm/msm/msm_gpu.h | 4 ++-- drivers/gpu/drm/msm/msm_submitqueue.c | 14 +++----------- 3 files changed, 6 insertions(+), 14 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index ec88155e0ed7..384f32f4d0c2 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -251,7 +251,7 @@ static int context_init(struct drm_device *dev, struct = drm_file *file) return -ENOMEM; =20 INIT_LIST_HEAD(&ctx->submitqueues); - rwlock_init(&ctx->queuelock); + init_rwsem(&ctx->ctxlock); =20 kref_init(&ctx->ref); msm_submitqueue_init(dev, ctx); diff --git a/drivers/gpu/drm/msm/msm_gpu.h b/drivers/gpu/drm/msm/msm_gpu.h index 6c83b8cbbb90..d27d54bdb7a7 100644 --- a/drivers/gpu/drm/msm/msm_gpu.h +++ b/drivers/gpu/drm/msm/msm_gpu.h @@ -392,8 +392,8 @@ msm_gpu_sysprof_no_ifpc(struct msm_gpu *gpu) * struct msm_context - per-drm_file context */ struct msm_context { - /** @queuelock: synchronizes access to submitqueues list */ - rwlock_t queuelock; + /** @ctxlock: synchronizes access to submitqueues list, etc */ + struct rw_semaphore ctxlock; /** @submitqueues: list of &msm_gpu_submitqueue created by userspace */ struct list_head submitqueues; /** diff --git a/drivers/gpu/drm/msm/msm_submitqueue.c b/drivers/gpu/drm/msm/ms= m_submitqueue.c index 1a5a77b28016..8b5980d5a6a7 100644 --- a/drivers/gpu/drm/msm/msm_submitqueue.c +++ b/drivers/gpu/drm/msm/msm_submitqueue.c @@ -93,18 +93,15 @@ struct msm_gpu_submitqueue *msm_submitqueue_get(struct = msm_context *ctx, if (!ctx) return NULL; =20 - read_lock(&ctx->queuelock); + guard(rwsem_read)(&ctx->ctxlock); =20 list_for_each_entry(entry, &ctx->submitqueues, node) { if (entry->id =3D=3D id) { kref_get(&entry->ref); - read_unlock(&ctx->queuelock); - return entry; } } =20 - read_unlock(&ctx->queuelock); return NULL; } =20 @@ -237,7 +234,7 @@ int msm_submitqueue_create(struct drm_device *drm, stru= ct msm_context *ctx, return ret; } =20 - write_lock(&ctx->queuelock); + guard(rwsem_write)(&ctx->ctxlock); =20 queue->ctx =3D msm_context_get(ctx); queue->id =3D ctx->queueid++; @@ -251,8 +248,6 @@ int msm_submitqueue_create(struct drm_device *drm, stru= ct msm_context *ctx, =20 list_add_tail(&queue->node, &ctx->submitqueues); =20 - write_unlock(&ctx->queuelock); - return 0; } =20 @@ -335,19 +330,16 @@ int msm_submitqueue_remove(struct msm_context *ctx, u= 32 id) if (!id) return -ENOENT; =20 - write_lock(&ctx->queuelock); + guard(rwsem_write)(&ctx->ctxlock); =20 list_for_each_entry(entry, &ctx->submitqueues, node) { if (entry->id =3D=3D id) { list_del(&entry->node); - write_unlock(&ctx->queuelock); - msm_submitqueue_put(entry); return 0; } } =20 - write_unlock(&ctx->queuelock); return -ENOENT; } =20 --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 4E24134751B for ; Thu, 16 Jul 2026 20:15:55 +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=1784232958; cv=none; b=m3lKo5mYXhxux+jvT8Mpsceb9/e/FvT5ufzLcAPnIpi1ylDGwpMiVBrVB0/QKFwnYxMhFISfBO2UBMdS9Dsqj2oR6LZ9PQ+0pDCTUkT4MDCRoY0SLT1PtB5Xks6ol0/YzRy5UWEgbzIrUiQ78I20UOBtHfv8UHEPnw5grs8z/+o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232958; c=relaxed/simple; bh=haNJTpsgx0TlfqzWawzbQIaFPz/UgQjWPCitxeNqB0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nPQz5CwHJT+1ndjUn3px6xB4Df9WOxa/PkYOE8M/cEvlsmNoouj942dwaDRtRRfap1mN+SVSrfk6FRdUzA3ZbL/qE24+9rIxAV1vlQnug3GbP06UM1jvVtWLJN3BM4MQOkrDPHerJxrDpcZZ8EYqQf39bVYb4/Am6wQZRiE36VE= 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=hF2Za22D; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=WXTxcVDt; 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="hF2Za22D"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="WXTxcVDt" 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 66GJoPNX3753253 for ; Thu, 16 Jul 2026 20:15:54 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=mmTWztalT6h ryopRPQtckYmk1TcKP24H1NmDD4Vro7c=; b=hF2Za22DHpjLJxSlXR3pOV+0nlJ CTYSTNk4kovuw+27nQ7r7V+SMur652gblaBaxhNdMdnJNmGmySLgDR/4LrfwlLbQ eqKEXKKwOWBYZoO1E49pk0R/bzGXleN/gX2SMOdh1yzJb/sFV37Hqzw2b7y7+ztT xL6rYCJac+ap7zfxxG77/NNxrDMg03I3asPx3cBMN+OKH6DHt45fRVdOpNlwSd35 wuWcOd70vqxZFT18AcCjsbrCN3jHRxkP7SfSNJoNLBTz6MNnZW55XDvHFgQMsnzH MR9p1u3AfCU3IGBTrw5QmWowBFRIrG6kIy79EXAYaHUAv8v5LvhS2EgvB2A== 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 4feuex35n3-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:15:53 +0000 (GMT) Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-38dde0df80bso8720663a91.3 for ; Thu, 16 Jul 2026 13:15:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232953; x=1784837753; 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:content-type; bh=mmTWztalT6hryopRPQtckYmk1TcKP24H1NmDD4Vro7c=; b=WXTxcVDtOxXToJQS2Cv+Nq9Zx6hwcFEMc8aUa4fd8J7bBQwobl4vFCchLNgdobWk2U 38+aP6+lMbC4QxgLQQhNKxcBCdXo8jPSJT4j8ix9itBphg2hUbBcSa8M8PanKaRE4cXL c7SRQwkunIe9nJGdq9Yz9iSFUwgwWTanITzXKHdh7PRwo+Yes99t8u7q7v7QNU+Q7+rv Pp1jOhRPhDMfirw7DtLTW2nVTLkPBH5UvnBrmydh5IDvYlDzYZRHbYv05bSOcPO/kVY4 q+UtwZM6YIRsW3c5Z2Y7PU/Rgu4NGR9tSPiPP1q6X+lBLRvPN2ke5zvmPXL78x6hmf2U oNSQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232953; x=1784837753; 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:content-type; bh=mmTWztalT6hryopRPQtckYmk1TcKP24H1NmDD4Vro7c=; b=P8v2wWNkRAP+qiAaeEmpu+VzIFrAv+TGjAq2FJnWvPuARQig4LQCp5lzOlYC3hd8cU xVyunN29nGGm6kXr+cjmqmvn0XGtYfQwXVxaoy0q9SGaQwfq6ZG+v9oOTe+FCMoSyfPY zLgpBBa2cMRxS0+FQF3BbAPrQtF0tHckJn11x4mrmaYYNetABe20YdC5XFx4pvoEVU4x iLj80ai5sY/emCoKwTTvPEI2xARFTz3ARZ1beHeUiS2VVpn+NKdjjPEY8m/KnYQiMeon qLWMSZ21+/s/ywEUUypTSAG712cUtHCOhy/Bzl/uDfHm+fBYscUzBz63fy50jLU4hYHi +rIw== X-Forwarded-Encrypted: i=1; AHgh+RohFAfOGiNqJolV5jlRJqbdiYnhbTx9jZnz2NcXK5kNAuLSYSjUr3HRTIwlpGAtiPd69FKnHEoyTgN1gBk=@vger.kernel.org X-Gm-Message-State: AOJu0YxffSsC2WaBi3iYnXJHne+rvQdaF9CVhFEVAwglPOMFNGRJdFWs GtGIHS03rBVD5R0GInz9kMtMCucxkMqVkXq/8TEfEAQQ+pZPD7eEoNCmLAGaOjiix8/C2E2fliM l+z1rKune+OdWaEjiwMt+N1j7IK0i3ebcYx6v7C0f/DSFc6LuqmYu3/T2t27SX7rqinxLNaAY8a M= X-Gm-Gg: AfdE7cmj94OFasVRTZ9h9kQXkQmwqxVSV/RDmjvCYRy2ilcDogEBvrLeutovwCpAoKk h3VC4qN6TkMUS4c9pkMJRYVxQrUJuKDEMxdcaW5XEsVL9JOsFIltFgFiSl1MuMmq3r7HNquwJwt baFEYYmmV7vY3Gg0PmmAZUJKVcxFjbPPOnh3ufZ8fkoaO2eL5r4L0q6J5oY8G70OQbPNq7QB1W8 fSEWNdqptGE33oh9kllfmeh4ukgG1O61g2amDH1Hhm/IblsOA1o867vd8x1vmMM38xHoF4sunoT yFGKe1JZvfTJdlNkupRAtq3TsQ82TFPEHj2lPfgJMVX8s9VrzCf3C2HSOuIpZAgPKsybTHNaYEY WqDC94YcOV6AghHPMnfyjysxyGXfL5mBcFYYNwriBICDjPPM= X-Received: by 2002:a17:90b:3a4b:b0:387:e0cb:7f5 with SMTP id 98e67ed59e1d1-38e17fab248mr14071720a91.41.1784232953039; Thu, 16 Jul 2026 13:15:53 -0700 (PDT) X-Received: by 2002:a17:90b:3a4b:b0:387:e0cb:7f5 with SMTP id 98e67ed59e1d1-38e17fab248mr14071670a91.41.1784232952484; Thu, 16 Jul 2026 13:15:52 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38e3a0d7a5bsm1826785a91.9.2026.07.16.13.15.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:52 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sean Paul , Konrad Dybcio , Akhil P Oommen , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 03/10] drm/msm: Synchronize VM creation on ctxlock Date: Thu, 16 Jul 2026 13:15:26 -0700 Message-ID: <20260716201538.365824-4-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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=JeeMa0KV c=1 sm=1 tr=0 ts=6a593bfa cx=c_pps a=UNFcQwm+pnOIJct1K4W+Mw==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=Hu6Oc1eQfK70imYNBQsA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 a=uKXjsCUrEbL0IQVhDsJ9:22 X-Proofpoint-ORIG-GUID: WeHzkGHTZvMbpYynJGkgjtx85hwehPNg X-Proofpoint-GUID: WeHzkGHTZvMbpYynJGkgjtx85hwehPNg X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX+FWkSjGTMqRY Ud2zyiPKVxIkMgkwULJqWN2U1XHtqmP+ez5/qjZxWzQHyl6JyPeFzP/aELyxqqxM9BmT5F16LA1 vAyFNR91Que2JE08gyPtCFcF1wLuW5Q= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX5C8Lltmd2mae 11m9IB21X+96hJNnQd1s2XatWnifuaHakxYENM4hfgWrFGiSvLI55r+g6vES/BqnQv9v6CrZ6wC hIAyvNRqQSVn5waCjGCyuusIHP6DlJvdiwRYCbz6/0Vu+UnAtxEIkyO6MBQKfF9JK6VW6exQHD2 7fzYO94QSgDbtT4iMU8spMEjFS0/mhikrgwkFYw1cLE8El8XoQarTHHkiQKN/f3NCyvPEp5d/n1 lYtTr4Fn7ZzH0lDe/bRCggIVkFvTph/4afPsVyNXTj94/BuxjKjEWbLrmae7Svci2+XcyHFP4/N apRQFUQzbFlZQyjHwv89yBw9EAddlv2b7uN7Znp+GFkdVNMFxhAWraxz6hrH9gBUz4HnhiTDXEX E1mdpyeES0BBCTrzzIma3m1EVwYUkxlPOHlfDdFUShIK0x3i8E72B3CHcfaK306zdemWAD/2lHL LYKWJLZQF0B0j9t71Vg== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 phishscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" And serialize setting EN_VM_BIND against VM creation. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 5 ++++- drivers/gpu/drm/msm/msm_drv.c | 3 +-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/= adreno/adreno_gpu.c index c62c45bb0ddb..0d54141ff089 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -503,7 +503,9 @@ int adreno_set_param(struct msm_gpu *gpu, struct msm_co= ntext *ctx, if (!perfmon_capable()) return UERR(EPERM, drm, "invalid permissions"); return msm_context_set_sysprof(ctx, gpu, value); - case MSM_PARAM_EN_VM_BIND: + case MSM_PARAM_EN_VM_BIND: { + guard(rwsem_read)(&ctx->ctxlock); + /* We can only support VM_BIND with per-process pgtables: */ if (ctx->vm =3D=3D gpu->vm) return UERR(EINVAL, drm, "requires per-process pgtables"); @@ -518,6 +520,7 @@ int adreno_set_param(struct msm_gpu *gpu, struct msm_co= ntext *ctx, ctx->userspace_managed_vm =3D value; =20 return 0; + } default: return UERR(EINVAL, drm, "%s: invalid param: %u", gpu->name, param); } diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 384f32f4d0c2..2fd1b717d8e6 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -222,7 +222,6 @@ static void load_gpu(struct drm_device *dev) */ struct drm_gpuvm *msm_context_vm(struct drm_device *dev, struct msm_contex= t *ctx) { - static DEFINE_MUTEX(init_lock); struct msm_drm_private *priv =3D dev->dev_private; struct drm_gpuvm *vm =3D smp_load_acquire(&ctx->vm); =20 @@ -230,7 +229,7 @@ struct drm_gpuvm *msm_context_vm(struct drm_device *dev= , struct msm_context *ctx if (vm) return vm; =20 - guard(mutex)(&init_lock); + guard(rwsem_write)(&ctx->ctxlock); =20 if (!ctx->vm) { vm =3D msm_gpu_create_private_vm( --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 C436234DCF3 for ; Thu, 16 Jul 2026 20:15:55 +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=1784232957; cv=none; b=GI9NKDRfH3i2gtASps8DELVrlWKidCuT60b52XyV20UXpNW/V5xEqzoKFHP4vLBt1PySKXnTHS6B3VAueykreY+momdkdgdauaxXsJl/9E/SL+sZKXJet3i6VysAljK42w/Wr11ooD03C2J6rpsZ+woJC77P5uDe4c3ydT70A+g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232957; c=relaxed/simple; bh=4N17iOoD/clJzRUe2kNuCYy7t9AE/P684XfMMFUwlW8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=gCuql6MhSDCWH9HBfbnVGOChtooAinhqLrWG9weSlx8S9vPZjSYwLQz17IcudKWxU3+UZs4q50wmwvIgJRHLC4hTgVefGYkyNlweuqeD/tUIq460m6LAFyqSYTaVGAqzc5DpzDkk0C0Rkgy3oLaGMiZsrx8BoWuiRqrIuVVnIew= 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=EtANqHvS; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IAZvOiBJ; 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="EtANqHvS"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IAZvOiBJ" Received: from pps.filterd (m0279864.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJom5V3452862 for ; Thu, 16 Jul 2026 20:15:55 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=DUl9fsdKYPz 3kO0o4cBY5wSMLk2mQuvR/wBV0AkKLB4=; b=EtANqHvSHD+Sxxh5FUM1BCiNiwe recgi0jWCToMWtkvkEVr8aEMn+D/iIzOx8vkBUGWhhTETduGlwIUaNYHYpT/7UaC jP4HOD3Dn4HJ2E7gV7mMi5fSzot/y5peZfcWGGpAzmXYrqYZrYZX+2SQ8zlvT0gJ aeD3Jqf82npHH88SOTpiycP1scNv1t063v53KNA5FcULiX8yrRcKqirKbbeKX08d jvD52Iv6aph/JKkYFagJHD2ALxIcZtSgh9GJWGAAxggil23fJFFQG7YP5xgLP/+M TgL6LbDn5rXvWurTG9D6O1A7yyRNcVIx6XnsRBV59oCg0RC2U1SV8U2vYag== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ff1m9h9pp-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:15:54 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-8484f26852dso3736613b3a.1 for ; Thu, 16 Jul 2026 13:15:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232954; x=1784837754; 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:content-type; bh=DUl9fsdKYPz3kO0o4cBY5wSMLk2mQuvR/wBV0AkKLB4=; b=IAZvOiBJpXZPv7d1xEGppRHvs6QN0NJnZRsTFBIRq780dupdeAat+LwgfHiEIWrSvM L6qmXYbpwRNLFnUDsiNxDAPk7t5LyY3fBkWQ/ANfd7MifhniGDFiYDpmEVa4iuvx0pbJ yWaOnKztbwrfkLmPh2qZudodvT3ViM2iD6C5PfQlbKwfVH7rLFhNPFbifJjtYPNWZkYY pAxPdMvzP6JWU4E3Ep5Vls+9hQy97sIMHhZXyHtqYeWvDwbqCcuPXVm+UofCmQQb1wfg p5FT5ov+ISs2e9Pba0bvV0OQcLtrTcUYFG9oVBYQ+yK76uFpWQmZiclQh9dDe6bQFIL2 FZ3g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232954; x=1784837754; 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:content-type; bh=DUl9fsdKYPz3kO0o4cBY5wSMLk2mQuvR/wBV0AkKLB4=; b=KMvr2zWThpAtWp9Nd7oj1MiKyX5V6VwXSJ8XPgIw3qskq8uM8+ov5ZWc3e19GRO+3f HK+XnIxargoNNQFkb6E0pctXmUJm2uy7hZfGhN+d0aqaNeFKdU4LVVDBM014uNiGI4uv ZBeEfvdEdws6ZIdyUMKMn/WJt2bLaNs6yUe7UkIMWSgiuBnqDYVwLY/PTqO9R6M6FZN7 Zp3bzgniWQXKN9Bnk8qWGQ1dLH0impn4cOQ7FML8xBNeBB2jW4QKavBJ68xDHbOKeahy obBP5Kyy+iNlq3nlGDkQ2sXHsrbkP3iE7FvmNeC5ZTAki5XAwqBvKsXiJ0zXr6F03KzF Rn0g== X-Forwarded-Encrypted: i=1; AHgh+RqRO8hcadC2LV22kFChV1BrA5zIvzh639lWoaRWj4XUQcQRK5fpmk6SPgOhmDVFPGOx8KTFcTqJtIswTcY=@vger.kernel.org X-Gm-Message-State: AOJu0YyN4Zxn5lj7QOwYBjjRE7YRIOGE/QTqMlQrbV6NjZaNtW1z9G8X avWjLiTjXCzCBXJUZjRbSZvD/wmm9KZDjrPCVYHuFpr6I+REF+xMhBZjCE3zf5Jf5gfSws+7UOc ZqusCX1N1L14I3hRMc2Z9BU5yeHeXo3ZGrvtsmYIOSOVCQlknJ0HVGtL+Dg2ZfEOzGv4= X-Gm-Gg: AfdE7clUemlM+mTFSmTAgljrIzG8a1CX/2buww+GtldtliSpzsG5sgtZXEoO8ib0vK6 2FFnzHAo62icmSzjjPWKkhfU5D42GhBZfqs2V5Za8Jiy2JgMNmLk1+qpT/YNw1Pl2/N31Tygj2i AXpn5BtSb7PvjQwMNAPLpgZFP08ZBY6dZqh/rG5Lk7pQjMu8pCe5ft5CdmsM9pr1J+3IQyxM+3e /hizrjZ6eN6KfFh3BM2HdG4NSO1TbbmWpPjWZYxib02k2lYhLXDos4Uqa0y6TYI1Uq9KUIYLnlp 1Hb2IMno4naFNdkLTnK3+n4dNhPyDbSQvRRnXn8Jr2yoxxldqsqKDmzSmrbO4Qd/Ss/8EJhP1sP fGfFOU5jx+V72v/2ln21zgHY259qfjawxsaQY7aOOpKF0rH8= X-Received: by 2002:a05:6a00:ac83:b0:848:7fea:93aa with SMTP id d2e1a72fcca58-84c238c499amr731501b3a.21.1784232954281; Thu, 16 Jul 2026 13:15:54 -0700 (PDT) X-Received: by 2002:a05:6a00:ac83:b0:848:7fea:93aa with SMTP id d2e1a72fcca58-84c238c499amr731468b3a.21.1784232953869; Thu, 16 Jul 2026 13:15:53 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84a5c699440sm4290243b3a.34.2026.07.16.13.15.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:53 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sean Paul , Konrad Dybcio , Akhil P Oommen , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 04/10] drm/msm/a6xx: Access VM directly in submit path Date: Thu, 16 Jul 2026 13:15:27 -0700 Message-ID: <20260716201538.365824-5-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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=IMIyzAvG c=1 sm=1 tr=0 ts=6a593bfa cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=DJpcGTmdVt4CTyJn9g5Z:22 a=EUspDBNiAAAA:8 a=QS8Fz2UHHwPDOV3g--wA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX7dv693zJfGQx Da+Fn89TEPPWRStWEwRZxl5lYOUVaeSDS1V3qFa6GgwYEyatg7qrC4VESfr4QLpbi18PBGo3Yh7 dJwWva9+KpbbyTuKbYx5TEA5F+sDSMVUBSlEhcaVplOvod9GuiUCko4t287zGzeF1pMsfmUO+lg 20tgt7zRLcC62MKBB9QEZfBn/f/V18Nm18zNSHVNcpYZ+HeoTLn0/A+1kxhn01jgFBsN8Aix3lT nKmoM1GxWM+qyfqsqibaSQBtPjZyWATMESNqlHY8nRjylgQ7+zgSZsv/PiBhJSZbZMDWXgLkmmf u9Rd0SGzNAGA1B3zdUr7Hj1CqwYrnQoakYOY9gbXz2T1SEqZNk5EGobD8aArqEYRs51xZEBTbGN McN8lO+DVOYv7ZWfcH4gww/dII9ul9qqA4jgaQqgq4ch9pP+br5+341YboV0ZnasVL+0fOQ7jxD XP9GzlUcTMto5aSviCg== X-Proofpoint-GUID: Cmv8qVyflGmAZDjl5ZycMMt80iHgOb_6 X-Proofpoint-ORIG-GUID: Cmv8qVyflGmAZDjl5ZycMMt80iHgOb_6 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX1N5WqSagAk7R 1INgdtKxD6LK1j1fMh16ud9vzma+0MK6Po8NzjA9+tN/r0LeRhcLkH+byFlAe1CXvoT+huGx+ur bul/BDStyxd+tj6lUzEQhgfoCzFNSHA= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 lowpriorityscore=0 suspectscore=0 priorityscore=1501 impostorscore=0 bulkscore=0 adultscore=0 phishscore=0 malwarescore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" The GEM_SUBMIT ioctl has already ensured that the VM is created, so we aren't expecting to lazily create the VM this deep into the ioctl. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/a6xx_gpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c b/drivers/gpu/drm/msm/ad= reno/a6xx_gpu.c index 8b3bb2fd433b..7f1673163f67 100644 --- a/drivers/gpu/drm/msm/adreno/a6xx_gpu.c +++ b/drivers/gpu/drm/msm/adreno/a6xx_gpu.c @@ -229,7 +229,7 @@ static void a6xx_set_pagetable(struct a6xx_gpu *a6xx_gp= u, { bool sysprof =3D msm_gpu_sysprof_no_perfcntr_zap(&a6xx_gpu->base.base); struct msm_context *ctx =3D submit->queue->ctx; - struct drm_gpuvm *vm =3D msm_context_vm(submit->dev, ctx); + struct drm_gpuvm *vm =3D ctx->vm; struct adreno_gpu *adreno_gpu =3D &a6xx_gpu->base; phys_addr_t ttbr; u32 asid; --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 454A73624C2 for ; Thu, 16 Jul 2026 20:15:57 +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=1784232965; cv=none; b=gzlDLJKym07tFQ8xj7SQ4sSJ9K1rmrTAiYxFjH0PcMWdY8MUitK+kfVpQu0O3Z6G/vkjCZ2OU7jOeqQrvQG3b5G6MR3mC4qJ5P4xbwCzii8ChZWumtOhJD5EC4cZSIV4bUSUJaKp9MNHg9hkLEqR2tv6Tl7WH8m8OClsXmNJugc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232965; c=relaxed/simple; bh=GxZFku0kvsa3uEnAi/89TufUaclwCvO3NT6bp6hwH68=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=DTQY5mVGOSBLm5EfQCFQ8VcdpuiBqYiYqo24RexMHg3b14T9WwEGrgnxw/Em7veKHXNyAjBJJvVQSD/AaWiAHfwkT7SyEwD6clxkZZugtSoLgazNx+2oQShJtDg0brdOFPEEEmD9sXwHgFIj8AmL3NMnwDZcYkWIVyh/xSjpPnQ= 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=RwvSF+AQ; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=ENBiS9r3; 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="RwvSF+AQ"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="ENBiS9r3" 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 66GJoPre3753245 for ; Thu, 16 Jul 2026 20:15:56 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=6DIg0hlu8qf HUQoWpRSk0/2wgFEbxEIf2WTCugbqRdk=; b=RwvSF+AQrKvSjJMlwzuq0TyzPaC fLAEpCdxm5RjFcXJOC49mgFKwn4mKpg9ya0CAyaLVvxHGwJpMFhr/mCSdCwOk/iZ k0Kz99/5S35bWorzqoAKq7cz8HZCZ/eL3E5amrXxGGsnNWSIIv11hVq9V4J0mKki NXBx/ajdOCryOyU6XwzKvh0sFx5DCzvLzaBLt/YUzRHjn/BalAYdqC5j3xRU+tlN QbTB3mIikMdwZ44xPubvA8vWBFyOvZnlHBEfzBfjyFagbZDx3915p4G3Vg3b3rNk tgGIToqrhP2RqVu9fDMGrpNQyrhkZhEToOLddD76P+5q0Uhvc2oejKDbBsw== 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 4feuex35nj-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:15:56 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cce02cb769so46832065ad.1 for ; Thu, 16 Jul 2026 13:15:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232956; x=1784837756; 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:content-type; bh=6DIg0hlu8qfHUQoWpRSk0/2wgFEbxEIf2WTCugbqRdk=; b=ENBiS9r3B+djCDUYyxXBuwxDUXmFt/su/TQtRNJVt6Y58QKxGNWMV4xtFpZ/RhI5tU OiOFHevi3Iv8dAa0Z3tDAtXbDPDAYWHqN/zmXtqOqSRmO8J3iQzwdIyLfomNsUMey77h sAbd0cqBFXl3OZj6YplhSzig1S8BzLU7aTUJT5I+JjLvvKgL5AH3AE2KJBCsS3RpP4lq B+/94FEy6k228+9ljLAf45ZJcX4U7f2OlCa380EmIyRkyf5df92QL0Ab8FccT7LTOCGF M9OSpbITjrtY7fhDmU8zZTNQJR5z2gmrQqLplrTFGi8xUVu4HgUczlo9/9xTbztAYKH3 O6bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232956; x=1784837756; 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:content-type; bh=6DIg0hlu8qfHUQoWpRSk0/2wgFEbxEIf2WTCugbqRdk=; b=VsfpHG1SnhHnnwJrLOMnB37Mni3smVbhVH0GtSRxANuMTM/7xd7dkslwoAqRK4bgo9 QZQEr1wxYQDZW/uHMr/lI3dWy8NbcN9iMMadd8auS6i+x8f+eq8pVaO4wvMeh8+uD9/Z 1Fqjkv1q3SAw3kLNZKflmHUrPKZlfqE/Blvk48DfBHdTQOTjhZRs0eMjSJmUW2cAeXmB lMH0ehTzrzM+b+fk7XVwivgGdozLxvsFJTF+CQkU67L6LML6xiLKkydvKGLamN/klni2 tqWU5Vg52qrQ+hvsSIGqvw3NX5uJZJjLI6SogpN7vtFpyISnL2qrdov0TLiiRpp2NgTL IoGQ== X-Forwarded-Encrypted: i=1; AHgh+RoLBiD3LB3Cwgk+6kxVMayiVdufNAx61lF3D4NgqR8Kx+uSG0x0kJc3S8+9SlQ8uIK1Nq8McepdEgygiCo=@vger.kernel.org X-Gm-Message-State: AOJu0YzVV73rd1wo9HWQQ0teEKP9jdiKnwnaMu8nQ9raiXT/RNlbdBfI FYKyAwibNGr//mTjCkazFrrN19EoA8S8WLwWGpure4I0oVck0AlWf9ggHhO7w2OdPnK28aoadfb 04lPIfYoNES9ioiSnB7IfBcjjoRbF7OiD9NL9z7h4xhhWgx8I01aJI/AFDuC8IRGS/oQ= X-Gm-Gg: AfdE7ckwse5++7IcnxUgp8BR1Tp5C6Nmi26iR5n+Xsv6jqLSQNi6NYLKeX+Vh1wEPOO cwsjtuST+8ANsy/gDtXFxYfjgpCgaIF8Hzx0xI55jvI963hAH0vthLBGUCChz8k8MsLkl6JdN1y /VbKVN9X74R08J+iERz8NUeklMGkcHq2sPa9XVFrd9+gAYmmUTpRTcK9TMWjxJyLNK6n7rbtEJh rg5Qwno9JKqtDb4xHzalEWpmc8Q6rxi5pa17Y1CHKylvySjpMmvMCUVhWNSIvHdFJUwqZH3djan UWAbKSaRuE7h6PX9bdBHDhnlLQX9TDllu8FnoOF804P6eRtWvsRTUy3q3MG4CuDk1qPZ+ZCsrtL zmSAXWrfEAKhGiab9y5fcGKYuGn1GtRNcFyWd96qdAhn1mOQ= X-Received: by 2002:a17:903:1210:b0:2c9:c517:d078 with SMTP id d9443c01a7336-2cf2ec54ea4mr9006335ad.36.1784232955671; Thu, 16 Jul 2026 13:15:55 -0700 (PDT) X-Received: by 2002:a17:903:1210:b0:2c9:c517:d078 with SMTP id d9443c01a7336-2cf2ec54ea4mr9006155ad.36.1784232955241; Thu, 16 Jul 2026 13:15:55 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf1055cde6sm25822265ad.52.2026.07.16.13.15.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:54 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sean Paul , Konrad Dybcio , Akhil P Oommen , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 05/10] drm/msm: Add helper to check for per-process pgtables VM Date: Thu, 16 Jul 2026 13:15:28 -0700 Message-ID: <20260716201538.365824-6-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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=JeeMa0KV c=1 sm=1 tr=0 ts=6a593bfc cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=ZpdpYltYx_vBUK5n70dp:22 a=EUspDBNiAAAA:8 a=4aDCzPfTH0uMOhJcsooA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-ORIG-GUID: uVODf-LVGMHfrZGhoHZeE0TK0bIsPMAa X-Proofpoint-GUID: uVODf-LVGMHfrZGhoHZeE0TK0bIsPMAa X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfXx4OORi4fhpGv 43QOHV892FTm4DhW+UeRrKMU392yNLHPdUnB8QuZ3FO30Pd6z6o+NBqeJ6GIJTEnv8HF7B8guhI /1xnu4NbWfkDdoGMi2fWJw6SxwhHIQg= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX41U4gIa/kaGs AAnZjcSSkNmkXiq69cdOM23Kn+q6HMDsDBKXg1DO+zLeSdWHl4uux03607kjBRGMvcxL6yNirtY sVIKArWcVE7JQvuPZciv/kCsEqzxrTvYLoxD78c4WMdFvouQ9YouToBS3THrxVWUyh62SRJC8G4 1YQiXbv0wyFgmUrwgEcub/Nh/sG6fbFFFt0mlroFn4CN2rJS8RReSBsjRnwDNBy28Knw+htMqil e1X0z60wY2Tt9Nq+BcfKx/EjhpZnWMggcUYkIrd03QdO+9P1v1wmaE4mdan2wG3Xago8x8fhqyl X+JbFHtmBv1knwynmLLesKJ3lLRtfZ0mxMgsWcKQLr5qeKYFN03pl/NQMcUe4a9d/ICnmrpeTAO yxGj6Yr6UvyPqv3Y8fZHcpYlXJ+xfncSnPeaqpYMWYK0RoDjz0ixRHhG1hhCCwNsJTmyC3U9Zbg Z01wCjkPSZ4ozC74Bvw== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 adultscore=0 clxscore=1015 suspectscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 phishscore=0 malwarescore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" This will simplify a following commit to allow lazy VM creation to fail. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/= adreno/adreno_gpu.c index 0d54141ff089..5738eac9aebd 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -356,6 +356,12 @@ int adreno_fault_handler(struct msm_gpu *gpu, unsigned= long iova, int flags, return 0; } =20 +static bool +valid_per_process_vm(struct msm_gpu *gpu, struct drm_gpuvm *vm) +{ + return (vm !=3D gpu->vm); +} + int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx, uint32_t param, uint64_t *value, uint32_t *len) { @@ -414,12 +420,12 @@ int adreno_get_param(struct msm_gpu *gpu, struct msm_= context *ctx, *value =3D gpu->suspend_count; return 0; case MSM_PARAM_VA_START: - if (vm =3D=3D gpu->vm) + if (!valid_per_process_vm(gpu, vm)) return UERR(EINVAL, drm, "requires per-process pgtables"); *value =3D vm->mm_start; return 0; case MSM_PARAM_VA_SIZE: - if (vm =3D=3D gpu->vm) + if (!valid_per_process_vm(gpu, vm)) return UERR(EINVAL, drm, "requires per-process pgtables"); *value =3D vm->mm_range; return 0; --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 002DD377034 for ; Thu, 16 Jul 2026 20:16:01 +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=1784232966; cv=none; b=JVWQri5aj0N4V7Zvn2JhtdVtUO2WtkxxVlTG2C+JJDDQhAynZE5vJ9vk7gipzGNdDbPpRMu5WNPn7bEh7qB5L6qK6ymjhs7C/G8JF/ugWGE2JYxC5B2eo2GNbVx4oV/v/ATsmsA8S1P1OV4h7pe+5L9zrncf2xm+S7sSleqmu34= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232966; c=relaxed/simple; bh=dDq/w5Zt9A21I+qyfSrEbDkTgE4Q8w7Bx6gWjUlOg3Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=GJcQjsOqziCl7nPe95maYpD5ivErmBQUFwY4EMKQNQv0hok0pjYu4Hb9u4yF/FAjrcYmFE3z7c/04Ih2Vz7NXUzFUv694T14o/toOYfUXW3YYxtIpNPEGQwUJMy8Qz3vRpFFSxi3zcvvLfz7H9ponMy5VrBYsZEPsLhsOgWZdSQ= 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=SWEy2sK7; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=IO7ld6l+; 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="SWEy2sK7"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="IO7ld6l+" Received: from pps.filterd (m0279873.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJoZas3728739 for ; Thu, 16 Jul 2026 20:15: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=LujJ1KSO930 tqHv74HoyQH95wcpHqgeGc+KYfb6IauA=; b=SWEy2sK7bVkSPkLctO2/qGLzYqn T3OoftgwKAXQTnMvEnnY/rpg8I/tJZaJfiOlbwI6fi/VPN+gKFOs2gU42xXZbr+6 ltTP8Zqvcd6sDblciL+IRUhkjLZOw9AuroDajEZ4MRuqleFTc67JZ0drxq1SahgU 9Z9lPKoj+s1d9Y6sSGubfP7NeioonJ+S0R1rIiIqkKqKXnfe2qnbTpvJGuxkGN8O 8oLLPya0iJrCyQ5d0hwpxD0ae4ljpAV169AYXYR9fJZv2WMkG0lt9fS8cU/bDRw6 M35Kb95HWQsuyeoYh3M+CGP9bqJlZWzM1lmqxhi6DdbaUG/yM9RD097Kptg== 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 4ff2f2s2x2-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:15:58 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2ccafc5e82cso48021245ad.3 for ; Thu, 16 Jul 2026 13:15:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232958; x=1784837758; 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:content-type; bh=LujJ1KSO930tqHv74HoyQH95wcpHqgeGc+KYfb6IauA=; b=IO7ld6l+/cqlDeYvpxybB3olf10EVHqz/jzMr85/BVBej2QT0vKloGf3Z0kLpsdxa7 hmnSKVCZ3K2jaMQjR2TPkk5ST6r2bClaes3qWI3WGJJIRzqPctC9z/APf51Hy3/wmWeZ nlwa8Z8sjnnJOFCd0egFK4ywoZjnl3O2Nv01hxL2MG5J6BkIfq0wX4IKgV4govFnCKC2 HYWCdPL0glsmL9SzYBVom/lkf1Fc+FKcQ6NehXkIa/rPyfwB15XzPgGtezPfRjycOqtT 6P207JcAYnMAco6pd5Q5z5ziN4HBirHbFXVKLnmHlk+ywguLK/HM7l79en046M/GRWVs J7uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232958; x=1784837758; 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:content-type; bh=LujJ1KSO930tqHv74HoyQH95wcpHqgeGc+KYfb6IauA=; b=TQ+jg+ZH2+xi5VnhLN0lW40mBt8f875ln4XRwKeeSBCBy90F5X8OmkqIsSe+Z8IPbb Yhw6xj7S/ojMhNLUVaBwaQDrb6+hz+740C68e++LnVzDOrFz7rrpy0D+PpH1AYU9xy5c 5d+gFBfEdhPvKhBwM+IIoxYfvtZAaOhmmCFasVeoe83N8IGHRSLgjJE1mEqu3c7hMOGO +ONCAIDC78pGPo3JeuUi6FQoiLdgml86tfxACsj5HcZMNtRbiSf/RWRTJMbHY2jDnk+T EFe6XnLw7OhweKu6sBYicpnmKD5ZF1jS/ouTibxd9HX9SirEm0jIzWlvB3cJqPQqCISS fF6w== X-Forwarded-Encrypted: i=1; AHgh+RqisLw4ayodeMRBVAHeLoYT/3000uEYX5NpUwJJAR40gzITflqIYhbZasU4KMiirD4e5TQ5jWIQXvwFX1w=@vger.kernel.org X-Gm-Message-State: AOJu0YyV87gIPCNSN18cNLD/VxoI0uUxVkge3obko3x2BUk1YEaJWqYn dFMHzmmrQZEHpqcOQiCt03y5+dod8EXR2Ik0uYo7zuLlTzYPPk+0TOyvWa+SB2HDpXDttNZQ82E gHWgnrntOx+qI5oX9/fYUdmxZ42LV39U1ytnjqPUlLKKckaB+tNNp9aGHCCn9p+mC1Tc= X-Gm-Gg: AfdE7cms7TjazLAAPwPjV1HDTLCDbvvlxj5qJ3YwgZ6ahig78G/KnPRVhTvJbivKJjX QhTlVZIAnl+bHwfeL82xY5piXLr2JEx5IkQqBtXlpvQvsC51kDC/otERRoNLiO6Zk6dfYE3y5/E bvFGyAOwnB2JehHKqqXc/jZikBdT6feXbPaT7WqAXn19ramqTQ30f/tjtaojVsmoLTGkpITDvqO wG2sGn6z0fNC0LTX2FrPVLZ8jW/Lq43Gd5IC8Um16pDqd7sZKn5VNXJIT18tVBlHp4H7e+tJxI6 +fpCBJldUSBLrPF/wgbCKvN+n7L0XlZMCkiij1zNZIUYhVMm0YU8D0qZaj0IBZ85MZidStPHo7Q YTXCw2D2R0WM50UaZXOvIbSCMh/K+DCBdrRLZpQgj1Fel0To= X-Received: by 2002:a17:902:e884:b0:2ca:106c:7122 with SMTP id d9443c01a7336-2cf2ea5094bmr10160805ad.9.1784232957688; Thu, 16 Jul 2026 13:15:57 -0700 (PDT) X-Received: by 2002:a17:902:e884:b0:2ca:106c:7122 with SMTP id d9443c01a7336-2cf2ea5094bmr10160475ad.9.1784232957120; Thu, 16 Jul 2026 13:15:57 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf1073a3c2sm24865685ad.83.2026.07.16.13.15.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:56 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sean Paul , Konrad Dybcio , Akhil P Oommen , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 06/10] drm/msm: Allow lazy VM creation to fail Date: Thu, 16 Jul 2026 13:15:29 -0700 Message-ID: <20260716201538.365824-7-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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: Pqk23Vniyl2vG2cnoOTsF8q44HeqYaq3 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX7QvacHauqR3U hfYo8+TrLzO1mprIRWyCep53WZ6yffwQt7wKknXUWDkj/NWsw4YOkfclZXvoyi18cla+flUs+DI ztW+m9A3uoexp+bMlxmOmbps0SGgIgk= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX9v6mbDkBXyEb nUO5JqpW/Xe+TiBphHBdk4BQEgUKJ4+Prtmi+bQGmksQbKzDUQuxV6sVxiT2iO2bKIpsfzRDGLl Wex1VjrfU11Q/F8WRWoZIeSLket+u3/dQBOIe/nj4e/JHkwddo0I0wq8Lvyo8DnuO7rVLtlBaX5 jScV9TIYfpgEssFQc8fDR/sUQ4II1ExQGOyzOpIP+l9nJqiGkDAzDtu9XdFu8n2Tvg7697cZwKD BDYIcWcMCyMfPM3Vcf0Eg3gNbA3aJN9gjXbIEIVkTKFBEV51gAT0siV4Bl/fv6JBPRc5Dycim9V zMgzCzJH/81YPLiepNQ004qPaY/stHKW2nsb/M751omKwgruKazt3YoS8SXiaPCU043zox5o5hk Yh3usAY5YTQFiVRafEj5RymFLzCrOy29qLtxazm136CkKbnRfzCQPh3X+oevfZKQS7lzyTI2WYW Xax900NEoRfgVvP8fHg== X-Authority-Analysis: v=2.4 cv=NcTWEWD4 c=1 sm=1 tr=0 ts=6a593bfe cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=rJkE3RaqiGZ5pbrm-msn:22 a=EUspDBNiAAAA:8 a=RFCq6YHzeVPHqihPuhoA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: Pqk23Vniyl2vG2cnoOTsF8q44HeqYaq3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 malwarescore=0 priorityscore=1501 lowpriorityscore=0 clxscore=1015 phishscore=0 bulkscore=0 spamscore=0 adultscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" In the next commit, we'll stop falling back to shared VM if private VM creation fails. This isn't expected to happen in practice, it would either require small memory allocations to fail, or missing support in arm-smmu-qcom for setting up per-process pgtable support (ie. missing patch during bringup). Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +- drivers/gpu/drm/msm/msm_drv.c | 9 ++++++++- drivers/gpu/drm/msm/msm_gem_submit.c | 12 ++++++++---- drivers/gpu/drm/msm/msm_gem_vma.c | 12 ++++++++---- drivers/gpu/drm/msm/msm_submitqueue.c | 8 +++++++- 5 files changed, 32 insertions(+), 11 deletions(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/= adreno/adreno_gpu.c index 5738eac9aebd..84101e534ebe 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -359,7 +359,7 @@ int adreno_fault_handler(struct msm_gpu *gpu, unsigned = long iova, int flags, static bool valid_per_process_vm(struct msm_gpu *gpu, struct drm_gpuvm *vm) { - return (vm !=3D gpu->vm); + return vm && (vm !=3D gpu->vm); } =20 int adreno_get_param(struct msm_gpu *gpu, struct msm_context *ctx, diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 2fd1b717d8e6..52ff72d8e17a 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -422,10 +422,14 @@ static int msm_ioctl_gem_info_iova(struct drm_device = *dev, { struct msm_drm_private *priv =3D dev->dev_private; struct msm_context *ctx =3D file->driver_priv; + struct drm_gpuvm *vm =3D msm_context_vm(dev, ctx); =20 if (!priv->gpu) return -EINVAL; =20 + if (!vm) + return UERR(ENOMEM, dev, "no VM"); + if (msm_context_is_vmbind(ctx)) return UERR(EINVAL, dev, "VM_BIND is enabled"); =20 @@ -436,7 +440,7 @@ static int msm_ioctl_gem_info_iova(struct drm_device *d= ev, * Don't pin the memory here - just get an address so that userspace can * be productive */ - return msm_gem_get_iova(obj, msm_context_vm(dev, ctx), iova); + return msm_gem_get_iova(obj, vm, iova); } =20 static int msm_ioctl_gem_info_set_iova(struct drm_device *dev, @@ -450,6 +454,9 @@ static int msm_ioctl_gem_info_set_iova(struct drm_devic= e *dev, if (!priv->gpu) return -EINVAL; =20 + if (!vm) + return UERR(ENOMEM, dev, "no VM"); + if (msm_context_is_vmbind(ctx)) return UERR(EINVAL, dev, "VM_BIND is enabled"); =20 diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm= _gem_submit.c index 3c6bc90c3d48..ab33d499a0e8 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -30,7 +30,7 @@ */ =20 static struct msm_gem_submit *submit_create(struct drm_device *dev, - struct msm_gpu *gpu, + struct msm_gpu *gpu, struct drm_gpuvm *vm, struct msm_gpu_submitqueue *queue, uint32_t nr_bos, uint32_t nr_cmds, u64 drm_client_id) { @@ -66,7 +66,7 @@ static struct msm_gem_submit *submit_create(struct drm_de= vice *dev, =20 kref_init(&submit->ref); submit->dev =3D dev; - submit->vm =3D msm_context_vm(dev, queue->ctx); + submit->vm =3D vm; submit->gpu =3D gpu; submit->cmd =3D (void *)&submit->bos[nr_bos]; submit->queue =3D queue; @@ -554,6 +554,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *= data, struct msm_drm_private *priv =3D dev->dev_private; struct drm_msm_gem_submit *args =3D data; struct msm_context *ctx =3D file->driver_priv; + struct drm_gpuvm *vm =3D msm_context_vm(dev, ctx); struct msm_gem_submit *submit =3D NULL; struct msm_gpu *gpu =3D priv->gpu; struct msm_gpu_submitqueue *queue; @@ -569,10 +570,13 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void= *data, if (!gpu) return -ENXIO; =20 + if (!vm) + return UERR(ENOMEM, dev, "no VM"); + if (args->pad) return -EINVAL; =20 - if (to_msm_vm(ctx->vm)->unusable) + if (to_msm_vm(vm)->unusable) return UERR(EPIPE, dev, "context is unusable"); =20 /* for now, we just have 3d pipe.. eventually this would need to @@ -609,7 +613,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *= data, } } =20 - submit =3D submit_create(dev, gpu, queue, args->nr_bos, args->nr_cmds, + submit =3D submit_create(dev, gpu, vm, queue, args->nr_bos, args->nr_cmds, file->client_id); if (IS_ERR(submit)) { ret =3D PTR_ERR(submit); diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_ge= m_vma.c index 3ed05ab0eeef..1fd4789f2be3 100644 --- a/drivers/gpu/drm/msm/msm_gem_vma.c +++ b/drivers/gpu/drm/msm/msm_gem_vma.c @@ -954,7 +954,7 @@ msm_gem_vm_close(struct drm_gpuvm *gpuvm) =20 =20 static struct msm_vm_bind_job * -vm_bind_job_create(struct drm_device *dev, struct drm_file *file, +vm_bind_job_create(struct drm_device *dev, struct drm_file *file, struct d= rm_gpuvm *vm, struct msm_gpu_submitqueue *queue, uint32_t nr_ops) { struct msm_vm_bind_job *job; @@ -971,7 +971,7 @@ vm_bind_job_create(struct drm_device *dev, struct drm_f= ile *file, return ERR_PTR(ret); } =20 - job->vm =3D msm_context_vm(dev, queue->ctx); + job->vm =3D vm; job->queue =3D queue; INIT_LIST_HEAD(&job->vm_ops); =20 @@ -1430,6 +1430,7 @@ msm_ioctl_vm_bind(struct drm_device *dev, void *data,= struct drm_file *file) struct msm_drm_private *priv =3D dev->dev_private; struct drm_msm_vm_bind *args =3D data; struct msm_context *ctx =3D file->driver_priv; + struct drm_gpuvm *vm =3D msm_context_vm(dev, ctx); struct msm_vm_bind_job *job =3D NULL; struct msm_gpu *gpu =3D priv->gpu; struct msm_gpu_submitqueue *queue; @@ -1444,11 +1445,14 @@ msm_ioctl_vm_bind(struct drm_device *dev, void *dat= a, struct drm_file *file) if (!gpu) return -ENXIO; =20 + if (!vm) + return UERR(ENOMEM, dev, "no VM"); + /* * Maybe we could allow just UNMAP ops? OTOH userspace should just * immediately close the device file and all will be torn down. */ - if (to_msm_vm(msm_context_vm(dev, ctx))->unusable) + if (to_msm_vm(vm)->unusable) return UERR(EPIPE, dev, "context is unusable"); =20 /* @@ -1479,7 +1483,7 @@ msm_ioctl_vm_bind(struct drm_device *dev, void *data,= struct drm_file *file) } } =20 - job =3D vm_bind_job_create(dev, file, queue, args->nr_ops); + job =3D vm_bind_job_create(dev, file, vm, queue, args->nr_ops); if (IS_ERR(job)) { ret =3D PTR_ERR(job); goto out_post_unlock; diff --git a/drivers/gpu/drm/msm/msm_submitqueue.c b/drivers/gpu/drm/msm/ms= m_submitqueue.c index 8b5980d5a6a7..9a4c4e6425bf 100644 --- a/drivers/gpu/drm/msm/msm_submitqueue.c +++ b/drivers/gpu/drm/msm/msm_submitqueue.c @@ -172,6 +172,7 @@ int msm_submitqueue_create(struct drm_device *drm, stru= ct msm_context *ctx, struct msm_drm_private *priv =3D drm->dev_private; struct msm_gpu_submitqueue *queue; enum drm_sched_priority sched_prio; + struct drm_gpuvm *vm =3D NULL; unsigned ring_nr; int ret; =20 @@ -184,6 +185,11 @@ int msm_submitqueue_create(struct drm_device *drm, str= uct msm_context *ctx, if (flags & MSM_SUBMITQUEUE_VM_BIND) { unsigned sz; =20 + vm =3D msm_context_vm(drm, ctx); + + if (!vm) + return UERR(ENOMEM, drm, "no VM"); + /* Not allowed for kernel managed VMs (ie. kernel allocs VA) */ if (!msm_context_is_vmbind(ctx)) return -EINVAL; @@ -215,7 +221,7 @@ int msm_submitqueue_create(struct drm_device *drm, stru= ct msm_context *ctx, queue->flags =3D flags; =20 if (flags & MSM_SUBMITQUEUE_VM_BIND) { - struct drm_gpu_scheduler *sched =3D &to_msm_vm(msm_context_vm(drm, ctx))= ->sched; + struct drm_gpu_scheduler *sched =3D &to_msm_vm(vm)->sched; =20 queue->entity =3D &queue->_vm_bind_entity[0]; =20 --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 88324372EF7 for ; Thu, 16 Jul 2026 20:16:00 +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=1784232965; cv=none; b=mf1dGTDToBgOVUHGQJT9JKPzSFyq3ZXTiEpjPwMcdUx5w/sp4wlgg4Qcu2RrLua/bGk0bQ0qI4YZAqUN4eMYlNkw78pkmF20P5bh6ADnNJsVHIJiJZB3Ei9KyWB/UwHrIXsgFo2IV7f6EpTysjBWykM0N540lmtNpXd6vG33GhA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232965; c=relaxed/simple; bh=plPG4Pa//cZWcSBZyuDX/H43p72/a2X/5oHyz9R8Qs0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SrgiCjyV5Qjkd13J5h0aYqch7LIVz261QMkcwi+/zUNIGR/8hWeH/hqVRJG0VoT0rILdSGbm8lTIoYXGvBkoFWb8FtQU3gSmUytoGegc57wcvCro5/ltg5HiulM82gySoc8DaTlnAaTVLoReON4WJKQ8vo0XwjfXdlw1p5OMcUI= 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=BOba50vT; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=QYT9SMV3; 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="BOba50vT"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="QYT9SMV3" Received: from pps.filterd (m0279863.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJoWBU3841500 for ; Thu, 16 Jul 2026 20:16:00 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=WnSM4lxQZEs mTxwUeMg+vWDIzmfUTyWcy5ySJC3KBaU=; b=BOba50vTP5/8GNhmwJ5nFp+W5O8 8wEng31bEDk4F2kmXZ/ez6WW5b8LWVc4xRonLY60iIl5tpEyrKLcyqpcbEL5h//O z73bUO4jZUsEZMokqSQ+7kT6o1BSV4Tq1wuXFysNN+Sl4PHESnWK2QYg0Mgfgx0c 9s5sU42PleRa4z+JRMcl6znNEsZnZy1hWacgPrnP7mNWrDgxwtHFti3vliMD5VKg rpxD32jNNWn+XcoMim/DxwGnfpIvUq3LzdBVYbCEHwjHETljqdSTkN+/MchoPLOR As1pdTCqtI5nnX0Pfhkq+Vn36HpxMzzPA4cIvvEtHqz2C4dNIB+lDzoAcMA== Received: from mail-pg1-f197.google.com (mail-pg1-f197.google.com [209.85.215.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ff3u80kh0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:15:59 +0000 (GMT) Received: by mail-pg1-f197.google.com with SMTP id 41be03b00d2f7-c88da04b719so3433144a12.2 for ; Thu, 16 Jul 2026 13:15:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232959; x=1784837759; 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:content-type; bh=WnSM4lxQZEsmTxwUeMg+vWDIzmfUTyWcy5ySJC3KBaU=; b=QYT9SMV3FRjfaJSAJ0t3SAGYRcx7/fXi+vprWz+fZwkugaHNUpKNrkNhn1MHvge7cP wjhHvzOS8iTUXgyXBS0mbmiWEgjoQV6UzIPuBSlDkX6ESHN9LBOE6ytvm4W8iyYT9Cus usSalWMsD0PBNKzMLsL5dsyWlAilpDo4W4Bz23PXcT7hk8pP3CbtCzUrjdUPqgviM3I2 o7kFiPHG4w1nZVZiVWOXUfa5uHENXe2vAeBUQecrGjyjv+QhE46tpQqKiteeAA95Ws0Y s1yruKvugGhSSUHh2nEE9EG2vRrMfYfpzOO0crSKaS3ZLX/PlbPY70WSh7c/bbf9fiAj BDcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232959; x=1784837759; 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:content-type; bh=WnSM4lxQZEsmTxwUeMg+vWDIzmfUTyWcy5ySJC3KBaU=; b=YreoSZskH43puY7rz5zsC1FQ3HlanE4E8+WyiZNXYUQomoI18LL/WRy7RYytbrU2ZA 7imHbMk5jdCWw2L8CISonDx7ZWgbwF6EAynVJTCxuGODUvTuNYdhwoxa2himnzFyR5oU mfPyT3WSQbTVYAFEjotPt9LdlS8V1UBT5UDg9afHHc3J0bgNc5zi88DsETviXeBsNnTF e2Mue35BUbi2d4/8yzD0wwH2akfuqcsB2V2JZ2OlWeD5phbJfaWndoM81LOXQWvdqv4C Aa6GDuvY9HoKTinlV81Q7zAoW/6ZMCOqjgiuSNAK/kBv/jyI2QZ8HqLiOCr+wzTdFI8n xxow== X-Forwarded-Encrypted: i=1; AHgh+Rq+C7v2q8kIm/GrajkNZWIDCPhxqwQDrUjI5poCGBj4BLnxQA0KDEnbXUAyD2wZ9IP8Ubm0G23G1epSZic=@vger.kernel.org X-Gm-Message-State: AOJu0YxpOHLMjjuYYir9N3jBEgXMX/d3QGr1x65w833vSYfdxK4pMovJ 5jyTnO1vT7+jwJ4gmpeMu99PdPEjTb6Ui+V8/yST8u1xZN1MwEqJCPzam76SZC0BLbkAlN/U4Pe Ru5GTnU6KntNG8JoLdfWCDZoMw+TCqcxWdfO4GsFKPnkAM1sk7D/igSiBeAJdK/MLOLM= X-Gm-Gg: AfdE7ckTPuHuJdU2IblUgQLHxGnhpUeWvAxCDVVij243rDtDRG9neTeA+Wtd5ZR2Ufw aTcHteswgDSborD+QOGpmZFIV7abRcgFbzbkg9K6RppWs/KvFU83qgW0rBv6W1kkvnGS+qKN64T W9k9B+zZeDnaaXdtGmJiB2do+hxrlMtvq+QaDiJ+WJPJ+0z2R5ttHgSPYSzd28p5mhNMIy9uO50 EkiK8bBttrEmCcFomy2IK25Ps01GctM/ThNKBV/C2CugLC5h6o2qjYjq05ayW7q0KRu4Tu9qZ3+ ZHL5l0kwRPwZHa0eprByI0JLTz3Om3R0kBaYQ4X0o8Pja7UKCyrZGtli6lIqf2yq6M9QlsORB6m ilzPI63o5rPMI9/eMayquJ6rpKP6iY8pK4/VJ6PIp61GYoog= X-Received: by 2002:a05:6a20:ae2f:b0:3c3:7481:7a03 with SMTP id adf61e73a8af0-3c3a5cf5b48mr670981637.34.1784232959072; Thu, 16 Jul 2026 13:15:59 -0700 (PDT) X-Received: by 2002:a05:6a20:ae2f:b0:3c3:7481:7a03 with SMTP id adf61e73a8af0-3c3a5cf5b48mr670951637.34.1784232958595; Thu, 16 Jul 2026 13:15:58 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-cb258ff4402sm2291627a12.25.2026.07.16.13.15.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:58 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , Konrad Dybcio , Akhil P Oommen , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 07/10] drm/msm: Don't fallback to shared VM for VM_BIND Date: Thu, 16 Jul 2026 13:15:30 -0700 Message-ID: <20260716201538.365824-8-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfXwNlJ1jjocsSK Rpbt27plnPnNYJnwqvIRo74x2yTaMZ0osfUFUoZdeQaE8w4WyrEuz3DlUuc34hsqzWh5fSkAS3K qdlxKkpS3EuWiFc3EZshIU5lNkEKZwbSJhlZCzX7o/5zyzKE5DWMLtuOlMz7xC60ov58hsdW0+N 95Lx+OGeZnGFJjkFlJb8fyCJJY5bKWa+2eVzDwLQQ/a3p2KXT5fhAegJlWmJCCNSkGjznNZPcJA l26OnqwxtEkzKpxPtHku6/GK1wEYXzb39l7oWLm+OVUWcdiR+/v6VHhuVpZq6DRPneR5zZXaUWu 7GFs9KbPTt6AU1uMhofktq9gHr3+EWWv9HLFqqQ7NpcmDqFRwCD7MUfuboMFTungZtzU+bd+hZp eNo6cgUFyuvayWk6uaNs3Xx17Iq2/qgijm5t/Y33v9cIL1Nr5kLIh5ZgEWvlqQaY5E2LZ6TYgFL ase3qsv7ElXtR3/ANXQ== X-Proofpoint-ORIG-GUID: 0hsyn2pJi54AyqEiG-Z-DHIjz3ZVml3v X-Proofpoint-GUID: 0hsyn2pJi54AyqEiG-Z-DHIjz3ZVml3v X-Authority-Analysis: v=2.4 cv=VMvtWdPX c=1 sm=1 tr=0 ts=6a593bff cx=c_pps a=rz3CxIlbcmazkYymdCej/Q==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=yOCtJkima9RkubShWh1s:22 a=EUspDBNiAAAA:8 a=isCY8TonHXl0-fnU9HAA:9 a=0bXxn9q0MV6snEgNplNhOjQmxlI=:19 a=bFCP_H2QrGi7Okbo017w:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX9o8oY8F3PpfG oWaBHrjnLh4cwvrANvbx/ErccF4XFVl/OIoSEeQijxM6gT++mvAby1kyzFbf1kwGK4q85ZH+qN8 mWliDj7gx72Ff7bGFngIhdjlEcP1Pcw= X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 bulkscore=0 priorityscore=1501 malwarescore=0 adultscore=0 phishscore=0 spamscore=0 suspectscore=0 impostorscore=0 clxscore=1015 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" If the user wants a userspace managed VM (EN_VM_BIND) don't silently fall back to shared VM. Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_drv.c | 3 ++- drivers/gpu/drm/msm/msm_gpu.c | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_drv.c b/drivers/gpu/drm/msm/msm_drv.c index 52ff72d8e17a..73d99bde26f1 100644 --- a/drivers/gpu/drm/msm/msm_drv.c +++ b/drivers/gpu/drm/msm/msm_drv.c @@ -234,7 +234,8 @@ struct drm_gpuvm *msm_context_vm(struct drm_device *dev= , struct msm_context *ctx if (!ctx->vm) { vm =3D msm_gpu_create_private_vm( priv->gpu, current, !ctx->userspace_managed_vm); - smp_store_release(&ctx->vm, vm); + if (!IS_ERR_OR_NULL(vm)) + smp_store_release(&ctx->vm, vm); } =20 return ctx->vm; diff --git a/drivers/gpu/drm/msm/msm_gpu.c b/drivers/gpu/drm/msm/msm_gpu.c index 18ed00e5f143..d02c37380414 100644 --- a/drivers/gpu/drm/msm/msm_gpu.c +++ b/drivers/gpu/drm/msm/msm_gpu.c @@ -875,7 +875,7 @@ msm_gpu_create_private_vm(struct msm_gpu *gpu, struct t= ask_struct *task, to_msm_vm(vm)->pid =3D get_pid(task_pid(task)); } =20 - if (IS_ERR_OR_NULL(vm)) + if (IS_ERR_OR_NULL(vm) && !kernel_managed) vm =3D drm_gpuvm_get(gpu->vm); =20 return vm; --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 CC4D1375AC4 for ; Thu, 16 Jul 2026 20:16:01 +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=1784232966; cv=none; b=q3q1/YIm4k0RKKpw8EmcufuTDpqiUteAOW7Zd+Ugiq3m0yFM221qF+whoqL+SogrcgoYu02khkRG3YhlEph+SiupbRhw6TN9PcqCsPEW6D7CLDIgVcVCsh46ex6PLkcKSBbXfCy8p9fgMGQju83aGw1RD57P7+Apr/57L5j1gZE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232966; c=relaxed/simple; bh=BIEYTFuB75r+2z2PSfxl7XWWnk2BAVfT6zAz5sKAhjY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qet+o/f7DHubjWkW/wBSPJwanR5pOL2IYi4pimJSny1L5FYCwq31rLlDtooi4u3fTKgYVawyfyMbZR1b7hze59FQw71pJ4w1es4KvL1yr1Pz9Wgde6XtM+qc6PZ3TZcCDAD7zQNk+1U9RhRcdAYlANF8oSoNpzlhS8tiYA/vhIw= 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=Z1jx/h6E; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Tj/F4QT5; 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="Z1jx/h6E"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Tj/F4QT5" Received: from pps.filterd (m0279867.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66GJojqi682285 for ; Thu, 16 Jul 2026 20:16:01 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=lVmTyponL2t d2Vgd9VyadgypYllVDsYovlktjbjmFb4=; b=Z1jx/h6ECaP+0UGsopfv3e3DiHm kZaweQRbd1+x3BgyE/UNPXYUEQT0MHEjj7zmL5Q/Jt1gBWwjFZkjGvnlj1DXY8Hf GvTHW9XVhzW2jDiwV1fEC/txUDFbG2li6kGYBkWxgjUEvMOCImV8TQris7CYLxzf p43BHp9QCHSqwdGMkM/szJKvPr1TZn2fo8iHJFbGqSJpQKpmNxH9Yr1slKi7zIS+ 4bJ3CLC+rOIcHBcCSPhBhHYHofxyKBDzkxOPpqAL8jfWLlbVr3+fRTAYts5yJxZG Eg08bXAyzUzn3YQrsjdwINJWbxuNPs8cu8J/LRe0dhHUsE3/Ipa02xdH3IA== 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 4ff3u6gkch-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:16:01 +0000 (GMT) Received: by mail-pl1-f198.google.com with SMTP id d9443c01a7336-2cc5faecf01so135011115ad.1 for ; Thu, 16 Jul 2026 13:16:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232960; x=1784837760; 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:content-type; bh=lVmTyponL2td2Vgd9VyadgypYllVDsYovlktjbjmFb4=; b=Tj/F4QT5HPeC1dRwVnhr7/FFbCeh7QFRJVTX+yle3s9wEy5OvGs+HeD2cCF4AKa56+ VpqDwg4hJTnGW/BQK8+MnmzaJcQZ5Q/Q7Y4YFO4Nt/YV23efclpj89kgOysunFyyMENv BJv4Yro/rJwa9eTvgh68dmcfbO2pr/0OsHp2hwncRRDjg0e0ZvgQzZjc7SZ5s7QdwCJ8 t8PJF2ObVgRIQJmX0/QdY26T6JUIsRforXxJPGH+ncANRdl/B2Sc4Lk2RoxPjUhcEn2i 6oHpGIjUgJzGxaHpi928Qx/+1jvFbAlKCh7brtzUHVkD02kLQ4YC1zzxPsdZmDIq57x+ 0KJQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232960; x=1784837760; 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:content-type; bh=lVmTyponL2td2Vgd9VyadgypYllVDsYovlktjbjmFb4=; b=VaHwjOiykN9GDqfhshLhC+Lt20AhfehUw9u3o+Qq7FXq3QgirAgTOoG3RrJVmRB79c ODTOuS60K7EuZN4LQ33gaCXwgFsm1uP5AbnE/ga++PHCYwhJH4CYG1+Wxd82IlOkYLXJ UDLmBavuboSdhFHMab/39XMlTz87Rbsa1Sq9MdVq9fDUsZHmU3ngMLJ7C1D3a3Q5EF4x BvmxKMjzfZDfdzlczsWEoYvDH03T9i7GqGd9E2G72pvErodyKiYBkh54KUSxHSuc32r4 +RX7NSq74aIEcwBb3O6OGiRFTloAcwXViVVivF7p4HPuuEnVN4Byf8uIIgPx2smksn1z eIyw== X-Forwarded-Encrypted: i=1; AHgh+RqaNyik9rudYEGiNwwMK/pNroBnMZPZ+7EslbFdpirBd/DCnngglIswRcigPwXsicstOtPeYnYPWoAb4KY=@vger.kernel.org X-Gm-Message-State: AOJu0Yz4vp8XDFZCBNLkbzq2En5IfJKcQQhxL98BuVgGe11MOs+3mDz3 rV+6HlLtuGXSwlk/XEIV5M0Yq+DFVqmeY8oDKgy/QNAA4/IRFz5ZRrMjH9awJRqGKXM/SHOyEu8 onvPg9pJ97aygHe6PYlWRFgN4oaX2BPSq9Ao1isP/OV23/H9+56uugVaZ/TvXRczSJ3g= X-Gm-Gg: AfdE7cm1c1Koqq6ld1nN7xQx+AL2VEMxGh7J9I2ER0FkreufCQdPne3lhIUyTbGNeOF SLGhGvJrYRY0fH35SGjSQXkxFCuk2bvag0UkshhqmVaQNBY1Av7Ts8pXvmHIPxbdprMDGLmXT+z dH3tvBkARZ/l0KekyO/TyrdEAPyn78qTQI4GFTBqaEWkwETqT3kvw0mMAePAUOgbTxMqPBIGhxi n98jhCyGC946smItqAxO+qmucIhpYnYMnFtZAZJt3n/hY6kwOqzUIk1mP6b19z2WZYthnR0Pp7j 1CYCSVsQlzsykexXtyTbFxjuATJ7JIL9CwxUxNVy1zXCff/KCLNWv5Z1x2xo1yUv18uJIhIApFc yOfMbq/gWJx9Nx+0WpeaBSODzewuTX9L+ZPm4IyWzpb+SoI4= X-Received: by 2002:a17:90b:4c45:b0:38d:56aa:6f32 with SMTP id 98e67ed59e1d1-38e17f9e673mr12368732a91.38.1784232960540; Thu, 16 Jul 2026 13:16:00 -0700 (PDT) X-Received: by 2002:a17:90b:4c45:b0:38d:56aa:6f32 with SMTP id 98e67ed59e1d1-38e17f9e673mr12368705a91.38.1784232960145; Thu, 16 Jul 2026 13:16:00 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-38e39e1b8c4sm1804137a91.6.2026.07.16.13.15.59 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:15:59 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sashiko , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 08/10] drm/msm: Validate lazy VM in GEM_NEW Date: Thu, 16 Jul 2026 13:15:31 -0700 Message-ID: <20260716201538.365824-9-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX9NfAYWs6oER7 Ifj56zTo/ZcnertnCIOcLTSOE1EuUNUO9vY5XoEmwJcyYPuCH3hNqbkIcQ9S1R/7Qg07wCNmYzp fI0dqgXP+JIKBZcfJ5YnRdq3CYIQ6+StNSfxYZBWsReoXbp67eQ0/xsT70fxYuVkfETadWy9zbk rn8wY/m0c6vJezlT/cBHgtYfByuuDeOH0be9sDlRtxhj1omehN8jl+IOjHJRrB8PntiICMfgHQx aeVyl1nLRInd94KZYLY+xtSlIbiX+L9JkgeFBKNQucGAfHrPOyKELm6M58ZxlItL3eoe3iS8P22 +xdcEvCjkYVt/jWsZmYyMOl0pzHc1rRQ2xThv15LA53v+8vG0EJWqg9ErpfBQyKPDFjpQ/L+eXB BOU/ByCsL9JCPptn2Fdi1eaUW4rA3D3RfWOh4JkYaxJ8wkukJ4+JZ/MEVOu2eJKI2KJxzRh2iJb LrKJOYYpYfcMTgq3r7Q== X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX7ZpTyiPBY1E8 WqGTYg5+9Vx1MHc8TvyTTK37huYPryePbMWuFj65P5n6vd+mX/6gMHIEHP3Mu0NcmhRA7znFDee GiwHQG/EzxEAMUlcWXJ0Qva6R0yN4oU= X-Authority-Analysis: v=2.4 cv=DYMnbPtW c=1 sm=1 tr=0 ts=6a593c01 cx=c_pps a=MTSHoo12Qbhz2p7MsH1ifg==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=eoimf2acIAo5FJnRuUoq:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=mcLY6QNbnPi337aWdgEA:9 a=GvdueXVYPmCkWapjIL-Q:22 X-Proofpoint-GUID: 7lP5wzGTIy9NPPMxiTXPN085RWyz4xo_ X-Proofpoint-ORIG-GUID: 7lP5wzGTIy9NPPMxiTXPN085RWyz4xo_ X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 impostorscore=0 lowpriorityscore=0 bulkscore=0 phishscore=0 adultscore=0 priorityscore=1501 spamscore=0 malwarescore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" Otherwise creating a _NO_SHARE BO before any BOs are mapped could cause a NPE. Reported-by: Sashiko Fixes: b58e12a66e47 ("drm/msm: Add _NO_SHARE flag") Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_gem.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/msm_gem.c b/drivers/gpu/drm/msm/msm_gem.c index efd3d3c9a449..afe0373f693a 100644 --- a/drivers/gpu/drm/msm/msm_gem.c +++ b/drivers/gpu/drm/msm/msm_gem.c @@ -1146,8 +1146,16 @@ int msm_gem_new_handle(struct drm_device *dev, struc= t drm_file *file, msm_gem_object_set_name(obj, "%s", name); =20 if (flags & MSM_BO_NO_SHARE) { + struct msm_drm_private *priv =3D dev->dev_private; struct msm_context *ctx =3D file->driver_priv; - struct drm_gem_object *r_obj =3D drm_gpuvm_resv_obj(ctx->vm); + struct drm_gpuvm *vm =3D msm_context_vm(dev, ctx); + + if (!priv->gpu || !vm) { + ret =3D UERR(EINVAL, dev, "not supported with shared VM"); + goto out_put; + } + + struct drm_gem_object *r_obj =3D drm_gpuvm_resv_obj(vm); =20 drm_gem_object_get(r_obj); =20 @@ -1157,6 +1165,7 @@ int msm_gem_new_handle(struct drm_device *dev, struct= drm_file *file, ret =3D drm_gem_handle_create(file, obj, handle); =20 /* drop reference from allocate - handle holds it now */ +out_put: drm_gem_object_put(obj); =20 return ret; --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 DD094265CDD for ; Thu, 16 Jul 2026 20:16:03 +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=1784232966; cv=none; b=QMxv9+/R9hI0odlQJoNdJeBc5fGu9WHvEvVmr/+DVR5u7MWY3YCvgqH0pF/Gmw29YkqfcBq9du/wlJyXD+6oYsO9q4ZRlIA9PFx0kFc/vr9EchQAgPvsxZzdkDCvLOha6AGBNyh+uoXaUe9XVG7/au9H4COcGB/WB6rGYIYRITQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232966; c=relaxed/simple; bh=e4d49gtt0VA6EJ79AsY3IVsSMq+vGF/Qot02h5uy8Ac=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=hPQk7i7gfhJuQmVomCchBbawdIv+mkMkhng3jGUW7v4/0n7REbWsDWYasvNLjIkUCFMgohEWEcsAdaqIiGqroehP4kFqZuOdf19b1nfo448v/x3iFO09wOtf3KbQs/jf6mnVwwFfmup6q1sd4tSS2jID0U1V01OHCJykBBX4P+c= 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=jUdnP2LP; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=Gp1h347A; 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="jUdnP2LP"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="Gp1h347A" 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 66GJoY853606549 for ; Thu, 16 Jul 2026 20:16:03 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=+pCiq/Qy0Lo ydinUbSokabUuk5OYFJlIyBFzOoKUkG4=; b=jUdnP2LP1nJy0NY7V2mjhocw1N+ IvWULgS3auzaJf7W3Jg6GH5SxYlMv4rN1YMapHvnbQYLtKhAMfr7T3govXuhoBu4 fl0sBEl5bWHYkP//iiwsAUGlcgWcUIaBG6MQccx6ng06DLzK7BIX/B3aCXiyqh44 k8RiGViI6QjYoQtJKmYlXZY653C/2BY61ega2lUzfuUcQztqXgBZUR5QDEyHQC3U DTj0AkyAQahs0ZYr2avxnKVyn3NBTsUGwkw5wjPj6r4yLNY+L6HLooXUDzyNIq7a GRRMrI5jGpIyLnyn6wi9yJQiPgj6tJ1mNa7pvL3UoKTxb5d9+vIXRSBWTXA== Received: from mail-pl1-f199.google.com (mail-pl1-f199.google.com [209.85.214.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ff1we974c-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:16:03 +0000 (GMT) Received: by mail-pl1-f199.google.com with SMTP id d9443c01a7336-2cc88e22f92so142908295ad.1 for ; Thu, 16 Jul 2026 13:16:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232962; x=1784837762; 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:content-type; bh=+pCiq/Qy0LoydinUbSokabUuk5OYFJlIyBFzOoKUkG4=; b=Gp1h347AdlemURooLwC80OBRAKrZNsE4+NRzlg4rkqeEtj3QmlOz1APZQzbgPaVDYY Y/X+Gj27hgeFsEyZ+pTleUodunTgcneKNwdsRc/JUkL4+WxxaNKfWvLzWDDmtpxtKA0n QMPnWMMLqmIHXspjw1w/dzMqEA0OP9EyIcTPfgBdjM1oa/3XHRnihfMXdodJSP6JwGlc lM8K1ujP604cL+asVwSSzQEUwUw5nLpSlTY1OsoMJhnW69GdwyGV33YnlF7IeU/DOOq1 UqFr4zbmd/unH3bCqfV8SshkyJQF1CvBYqrN4foPcA5umk6K3VZViDjUgXe8KPC1ZpIw DEBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232962; x=1784837762; 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:content-type; bh=+pCiq/Qy0LoydinUbSokabUuk5OYFJlIyBFzOoKUkG4=; b=jqYwxnIyc9f/aDtuKd4/ztOvxFG5AwSEbvaGVJetYrk74Z4iKrATLQ6WXaZg3yB6IX H7lr6vWqtSydxMp4PNUAg0r+UkCtf34B/JHEQo7kYR7uZLV1hZHIaQe0dyR5dMphDNEB mVcL1hNSp/LtCDYrbZ2GFZDTNoIji7McRV0FQhvKGFuPnxLVZHHbX+Lm0WDD4t8w3Y4U 8MITLIn8FnW+v3pQIJRiAss8v0MPTuv6W4oEeqgICmiz/7lgJC82kUtXmUagnjr7AUMl u+CY8ltP0HJXPqN7VycPVojzYAegH4kWBuJfi0u3qF1CuRf7B5J/tbTC9SqkiQscSc2U i9NQ== X-Forwarded-Encrypted: i=1; AHgh+RrYdejpaiuk5CkNiiXAv3WCLrXAsnVmbL9cqMay0i2ACAXXTvwyk8mWcmcxzjVWygKzSUUz0ERC4Vpv5RQ=@vger.kernel.org X-Gm-Message-State: AOJu0YxRSDoMVofojNUWA7D9ZLbaWqDVCQ/wQUM3S5aEhm6CgsPMt2+l 0fqf3OpNbjloi02nLEcIpVMO9z3YiBryrfCzT0suHqbDTk+bn+Ri3U1bz8T43/IXpBQRThyb9w7 3oflPKxC3ybKnx+hjYlUtCwux7PDqj/6MUJpQuaPrEbk95CX+FjYyub1PXHxaIWQgyNo= X-Gm-Gg: AfdE7cly6i5dVTTsU+VL/ewJvGUc1ZzACaVkymRes/MXE6X4GWwtJzzMxigCJwBn13Q 9BW7A42fcGtyxf9iAeYo3Xs0Jiz88DkCYSBKxa1hF7xwUuTXmycJHS0ixLBNQ715JzrkIHuk/tQ 0VT21IMkqyphNFsm+cTWVDcCaShSpfut6On7NRqve/j5nr35xkeIKciM9xIKHNDra4wxNc3wrtG VC35YBdur7I3339cZ072lT2e3ckNuxIYrEIh69ZQ8UT8qdY9SKTRHy3Ckm9fEZ87LnWJJ5ibp7A v1DO9PpEgWClIHXeilR9KxpKAY2ueu9eWL6Jbp+Qs9UCV8g6s20W71JtK4N9xnedsLaJISJ135+ 9b4a/tqOTC2OZ5ampuX11QrNCX9iFgNCJm6NukjK/wvFmFrQ= X-Received: by 2002:a17:903:2ec5:b0:2ca:17e2:2acc with SMTP id d9443c01a7336-2cf03cef19amr92452515ad.21.1784232962525; Thu, 16 Jul 2026 13:16:02 -0700 (PDT) X-Received: by 2002:a17:903:2ec5:b0:2ca:17e2:2acc with SMTP id d9443c01a7336-2cf03cef19amr92452135ad.21.1784232961998; Thu, 16 Jul 2026 13:16:01 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2cf105b244asm25206495ad.61.2026.07.16.13.16.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:16:01 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sashiko , Sean Paul , Konrad Dybcio , Akhil P Oommen , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 09/10] drm/msm: Fix per-process-pgtables check Date: Thu, 16 Jul 2026 13:15:32 -0700 Message-ID: <20260716201538.365824-10-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfXz2HubilzbXa6 sNC8YS06J4+WsBMBpeOorhPX2M78f3+XKki8ry6dJDOip/2zsmOLJWrOsvvjQF5KQHxhzUqDtfY qG6TTQrI1F5zhWmCTO7zDkFTkxhEzstSXFzbo0ISCF5+f8iM3BDtcdsP4iLsPWXKX5V7ZzQcAhK d8K+2rx/Pq9s1O71Efj8nBMropnaVH9zDsWD+JniFxspGRouj8KPdHM8R3Z8XZz+vKpNk78F89m 4w0VKOGHGopXt1L8BEdsm8cPtsBXdy4L5QIlhJtxMsz7wmlgFjy7KTUp3/FsPx58OLTmzxetCY8 tDB4MQ0M/1TaKlyPDyPF9cfy+mt1frdgqq/NvO4AduLlcpEVtaafaLVj4CF3KKJd3Tt8Q/ptktq DT0xzKoFgLdivs7L6SGxumL0GW/hOdOIGyBPv4Pf3FsOxKMdSr1LKz+cY++vrGwJ+PPEyGJ2LtN QLZQ5DEzHCkXPNEa26g== X-Authority-Analysis: v=2.4 cv=JJ8LdcKb c=1 sm=1 tr=0 ts=6a593c03 cx=c_pps a=JL+w9abYAAE89/QcEU+0QA==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_K5XuSEh1TEqbUxoQ0s3:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=vtH2vi951kckHO5NeAIA:9 a=324X-CrmTo6CU4MGRt3R:22 X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX6Tjwf+3Ds4lJ L13+Ff2tPmW4fJKs/ReXA++ygg4Tfn6+ApPIDy3kTjcARb+KYTudx49QakGo+G3HXONdE3cguWj AQPngcGau0gACXNlZjg1RarawxmhTBM= X-Proofpoint-ORIG-GUID: A1VsrV3hgEO5lNXWo-9eWU26qsO54gEg X-Proofpoint-GUID: A1VsrV3hgEO5lNXWo-9eWU26qsO54gEg X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 bulkscore=0 lowpriorityscore=0 clxscore=1015 priorityscore=1501 adultscore=0 suspectscore=0 phishscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" ctx->vm should not be inialized yet (or if it has, an error is returned immediately following this check), so this isn't a valid way to check for per-process-pgtable support. Instead just check if create_private_vm() is supported. Reported-by: Sashiko Fixes: feb8ef4636a4 ("drm/msm: Add opt-in for VM_BIND") Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/= adreno/adreno_gpu.c index 84101e534ebe..3370cd44382f 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -513,7 +513,7 @@ int adreno_set_param(struct msm_gpu *gpu, struct msm_co= ntext *ctx, guard(rwsem_read)(&ctx->ctxlock); =20 /* We can only support VM_BIND with per-process pgtables: */ - if (ctx->vm =3D=3D gpu->vm) + if (!gpu->funcs->create_private_vm) return UERR(EINVAL, drm, "requires per-process pgtables"); =20 /* --=20 2.55.0 From nobody Sat Jul 25 15:28:27 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 CB8EB373BF1 for ; Thu, 16 Jul 2026 20:16:06 +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=1784232968; cv=none; b=EAQFhex7F1LS5JQQSzGNtpFoxxTtKVnEC1e2fW2j/Gw+odrxsKxd0a1yXW8VKUAcCgR4WwWEqU4sTl3J3yGVQ/OoLnIfW/pJRywwoRoWqaNK+HGE2cDvoCRO7wBgqQlZ0cmrf6xoSiN5BpWeafxGaUMDG/+2wkRkRGWhXLiv7OI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1784232968; c=relaxed/simple; bh=KuRE2G+9WZSgtg+s9COPO+3ULtlKav3rewHMFppxllY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=m2mrRck5sy1Up8ZB5agJUlL3juuPI8RJjfQRaaS3aCruEeTlIEaVrEpJr79AxCATsA5Ag0bPGJQBPhMXLjid4PqXOCTCA0wtoppZ8WPvI1c5D+mwmD6z/DEf7QP1Cmy6KFA5gMNem+tHxt2rcQn/0Gs52dUiZO25Wh0VAIjTJeo= 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=mxhsdYpU; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=dhLN2Y/G; 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="mxhsdYpU"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="dhLN2Y/G" 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 66GJoY4r3577081 for ; Thu, 16 Jul 2026 20:16:06 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=R5rQRmby/aI qaDxi3lDE9FH/pFFSKzh2fmPcewxXgX4=; b=mxhsdYpUIkz1c0vF+NQrAtW2Q+h eXErsuuxIrCsGdLYDqKAfC9GgLmNQcKKmQFwU5gZC5qiDflCtp6elpKFDz3fPFNG N2oSRhGUDongA+fwF4RF9GGuX4FlN9jnGU3MnuWj+/lku9+1g5Wg/+rXUn0GDknr F7ffst7sZvWyAWAkUONO++fYNvogB+dnm3LfecRSjLItQ1Y5eCOAm21Za35qHVDH 3YlpynzIxgXv0KtYxSWwq0n8gvB+ZPmuT3L1seui86mhscc0HpokoejTjPEjie6f 9C20+X+jxYiN+EEHeXBiy1uobPSPT27XB1z3G/A+xIy504IGs6JSU9HWMHg== Received: from mail-pf1-f199.google.com (mail-pf1-f199.google.com [209.85.210.199]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4ff3u8gks0-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 16 Jul 2026 20:16:06 +0000 (GMT) Received: by mail-pf1-f199.google.com with SMTP id d2e1a72fcca58-8487eb67173so11088272b3a.2 for ; Thu, 16 Jul 2026 13:16:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1784232965; x=1784837765; 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:content-type; bh=R5rQRmby/aIqaDxi3lDE9FH/pFFSKzh2fmPcewxXgX4=; b=dhLN2Y/GIsvL+2BUtEXs6aH9RODYIozK2+4Z00ddq6IGAIcGF5g9uII3iBYOYWGl5B fnu/yl07sZ4P7Kx6mwUV7RCvXU8hD+aZsq1QTzCneCBjuy6HsLI57UKLHEzKTilsllAG hHj/xJ26U5XDQAxayP/PIs+8MSnppvkSkSYDJTO7dAw+itO+Hld2q+IF7fVaVvxiCvUJ Sza7BoVX2zhStf1k1yUnkXdLH8fRdhmWo5UIJFh6wNzS75uP2S1/eF5ykQQlMHRr5J5T czzk7jHXUA5aEbk6M7PqzC3Adraz2d9PUKwZPpwEh4vjgOG+X34aW/tHXxbVWQ82YeV3 SIOA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1784232965; x=1784837765; 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:content-type; bh=R5rQRmby/aIqaDxi3lDE9FH/pFFSKzh2fmPcewxXgX4=; b=aN8Iej/oRP0J4GAcS8oJaS5WeHfapCePTFRRCfVRfgWH4+fzUWJGRyTt2hEEyzQOIM DtdQjNWxaY+pwboL0XKxTq8N/Gi0XEEBm5kI2DcTbRRJ7kJPZQ8I1jGwP0OODORdqXrr jdOoFKYdXHvH/ZdgdZvvE3g0M/Ngm4d4nP4FOGyiJ6O6LG6FB+odUmHr0AGwcED6OojV 5AzDXVnzpAN8Cr7IRwnCWkfbICdi6F5m5bR2DajD+XLc3ZyHRFdJM8TI+4Bz9HWqpnsu 2F8I+6814mtoknyoeS2rgLMglSWrLlVRlRfr2bR9CygImsBcgWMOKSiuAjkBR45iJvkP zeDQ== X-Forwarded-Encrypted: i=1; AHgh+Rogl1nPnmmOntPcDEEWQkOjFEeuwemk32it2V7VLtkGVuU6xMttYlZPRqc5dn44X4d2l3pMbW0uo1PyFNQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3YCVqU7xU2qObbwnBXOUtrDMG8rSrKNyQotrz8eEMEpDCR8hk sO85ikYQa1q+jgSrnnUNM+Y6aF2FXF3RN2UoHAGTw76zfe2keJJWFmPkJ/ClxMXgteqpvg943gY T5PKeM4IR0Z0+aambqEzXmdYDUklqL+KK1O55R82Otq0ovG+AO9uTSgSm9zJ8P1ZIWRs= X-Gm-Gg: AfdE7cnoVQ1+NTk46FJphSbxtowSBtHfPgqvByWFR6v4FcqEQ+PcdVpnvhG/6ci9PlF xnD78wQG0RIfg2oMZutQXOklnKG/v0Juck/oB+T4ZlQBJlD43KC2QIT7ET5jSWlG2BUIeCzOhRP kyQCGBtIkWaM0KWvAgDWoZZf8gTW5dy3xx31vhfG6wZtI/bh8oCJ83EuT8FIwga/K1QdRwJWwJ4 Bwows0r6fmsTxKNuRkt5/3xxHOi7A+g2LJ7s8+5WvraGoGbZoD7KKDc0+LxkVqezJzUvtC+CKjW +FKOx78b7sW+mUOfn22TYOZIhJGu8y9TxrjhUUKfLSwJjSRA5k0d8oKt/jf+g9e4c4v//ehffjq KN7wHe8JmzHKhRCdOskd79iaC6XO/pP7sS704YqEWwiZzt5E= X-Received: by 2002:a05:6a00:4484:b0:847:9367:e054 with SMTP id d2e1a72fcca58-84a5162fac2mr11522945b3a.57.1784232965215; Thu, 16 Jul 2026 13:16:05 -0700 (PDT) X-Received: by 2002:a05:6a00:4484:b0:847:9367:e054 with SMTP id d2e1a72fcca58-84a5162fac2mr11522902b3a.57.1784232964749; Thu, 16 Jul 2026 13:16:04 -0700 (PDT) Received: from localhost (c-73-37-105-206.hsd1.or.comcast.net. [73.37.105.206]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-84a4f2389f8sm5296283b3a.4.2026.07.16.13.16.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Jul 2026 13:16:03 -0700 (PDT) From: Rob Clark To: dri-devel@lists.freedesktop.org Cc: linux-arm-msm@vger.kernel.org, freedreno@lists.freedesktop.org, Rob Clark , Sashiko , Dmitry Baryshkov , Abhinav Kumar , Jessica Zhang , Sean Paul , Marijn Suijten , David Airlie , Simona Vetter , linux-kernel@vger.kernel.org (open list) Subject: [PATCH v5 10/10] drm/msm: Remove invalid overflow check Date: Thu, 16 Jul 2026 13:15:33 -0700 Message-ID: <20260716201538.365824-11-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260716201538.365824-1-robin.clark@oss.qualcomm.com> References: <20260716201538.365824-1-robin.clark@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-GUID: 2mTEYmJEDTV0wSnbVxwGS5xBiPdnVMYn X-Proofpoint-ORIG-GUID: 2mTEYmJEDTV0wSnbVxwGS5xBiPdnVMYn X-Proofpoint-Spam-Info: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX0hMsM0SKaphr PAP5hLggUfIMb+P3iRnR4uTRB0+aJUrOEqoTHDUSSMnTWwCx/J4SuYut8W3I0aTPLs/vu3t9Q+X wUhwIZe/54ePpTMVEQzFy0TLtUR70yY= X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzE2MDIwNiBTYWx0ZWRfX+aMtuMr8GZi6 fcwae/UEoSuow5BdXwShttr8I2So8J9rsQHRdFJjHx1EvuoXCecBb7RVUQc95As4aar+Hi6VAs+ ci1NTh677EleGUYEvvf3Zc6BuAmNN75dpIhmYL+7/GruQAlO1YWpHwULyYXOuW1MyzXhi9NVkK6 xDDsshgzRa4VaSm1bUsJoX9xXe+iKrKLe+nldofymM8FKyLVDtIQe9IL0j9CkjUFzu4HRHHsqh1 2tea0CS67BD87cJYS/RDZWB+c5VrEDhiAtTFcf8EfMjNz7dbjWRJkh+1kA/mvsO44aG36gyKF10 4BKISSZnQX35YQcz4UJL481T1U2N38SRrFBhFHV+h8cWZxUNro9mU3x5jA9dYFsdE4ZLap4lQiK Ud/hSIoSIQy/bNb231HYnRI1Ki+Cs0eDqZoxPvEwLIYaOYaWQ44kKMEN2YeoB/OQOHXY0tYeyj8 aHlxDz5/g85fnSmf0WQ== X-Authority-Analysis: v=2.4 cv=TL11jVla c=1 sm=1 tr=0 ts=6a593c06 cx=c_pps a=WW5sKcV1LcKqjgzy2JUPuA==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=YMgV9FUhrdKAYTUUvYB2:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=0g9OVxrcTuodNeR8YWUA:9 a=OpyuDcXvxspvyRM73sMx:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.134,FMLib:17.12.100.49 definitions=2026-07-16_07,2026-07-15_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 priorityscore=1501 clxscore=1015 lowpriorityscore=0 spamscore=0 bulkscore=0 malwarescore=0 suspectscore=0 adultscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607160206 Content-Type: text/plain; charset="utf-8" On overflow struct_size() would return SIZE_MAX. But kzalloc() (and friends) check this already, so we can just remove the check. Reported-by: Sashiko Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_gem_submit.c | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm= _gem_submit.c index ab33d499a0e8..ddd52142c1cf 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -36,15 +36,11 @@ static struct msm_gem_submit *submit_create(struct drm_= device *dev, { static atomic_t ident =3D ATOMIC_INIT(0); struct msm_gem_submit *submit; - uint64_t sz; + size_t sz; int ret; =20 sz =3D struct_size(submit, bos, nr_bos) + ((u64)nr_cmds * sizeof(submit->cmd[0])); - - if (sz > SIZE_MAX) - return ERR_PTR(-ENOMEM); - submit =3D kzalloc(sz, GFP_KERNEL | __GFP_NOWARN); if (!submit) return ERR_PTR(-ENOMEM); --=20 2.55.0