From mboxrd@z Thu Jan 1 00:00:00 1970 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 843133B0598 for ; Wed, 29 Jul 2026 15:56:58 +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=1785340620; cv=none; b=N+qFCwN5lZyurCMvK98aGfA5Y+nSPzYHllh9zyVgJItLdW0XiQKc4M+Dk1A65HCBxzANgEfigTqySwTeRc563VTK55Yc5yDNICmbWS+2/VurrasOKrnC6iviPPH8MM6PFKcW24kV92ThLnw1AQ1WNWK+QArDBywWM1H0YBTHcyE= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1785340620; c=relaxed/simple; bh=haNJTpsgx0TlfqzWawzbQIaFPz/UgQjWPCitxeNqB0U=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jPtfpBqw/6HXebiVqE4z28nx9CV6BxbVHqBU3HMpM/VupDajGCiJCz5nH8XEmQbkgUmwu58hQVfFUfbQBptpxW4VV9WosSoNF0Yn4pCrUPZhkCR5UijG1tyUZqsUIey4miF4NIbxLrLHdDjfvRGj2DUSgpZ2LwfAnfbAWd1IgOY= 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=Drx6JVgO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=SJyp5ScK; 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="Drx6JVgO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="SJyp5ScK" Received: from pps.filterd (m0279869.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 66TF3eQC2412606 for ; Wed, 29 Jul 2026 15:56:57 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=Drx6JVgOR6wh/NzjaJ0aUi7xdXG qEueoCPDOEw20d5RTebm9aIUM5JGq4HDW1Wb9CB2X9J7HB3NHhesLYTKaoZ/v6HB eVEpBcvAh8ZTc5JlNOQbAzcgNYxXuW3GO3291orO7ZUawK3IUusRPm9zyZnzAwXb FlmkHi0zV+Ykm7XTJ8+Bcd5rH9/3ni/TRxn/+QE4BoV52eoNBhlJBEVc7NdmP2fN lmtxmRiBo3s1EKVeQlYCW9/PN3tnaRAT+DHZxAFDCHjCSk9entlVxuBFAaJ6Bic2 FuJ1dU1J56ror5t6FGesCHMy1jN41hL6RY9wVhYwwPr039xtznAULIy9Wyg== Received: from mail-pf1-f200.google.com (mail-pf1-f200.google.com [209.85.210.200]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4fqh3gh6yd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Wed, 29 Jul 2026 15:56:57 +0000 (GMT) Received: by mail-pf1-f200.google.com with SMTP id d2e1a72fcca58-84e0234967aso941885b3a.3 for ; Wed, 29 Jul 2026 08:56:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1785340616; x=1785945416; 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=SJyp5ScK5cNENGIr/a0RhHzQI9N1w8shB9nyjeU03rssgthNZr7zyLKERhp8JySN0r 0Zd3hyZVp1wz6Z3PYESgUNrPrkLuO70avElY+dFE+M08zCBaj2m/PyPmTGyegbaDkMKL Mq75nXeGJH0AZUucqGrUxecgCwuPhPUwhWmCzpvCEfb/3hMEtSjvhIfJMsSqHRsHUPVw O5UY4SrUxh+fbyVnqIu9/eM7EFRy1O7XawVJzWbyzAp8kGdZLhmmsk8miVUOjxceYY1j XD+ke1zNitQ+m/T8FFKgYC3NQDoGPvXyJicYA7flXkOFITz2WgiNvuC5IdED2xk8d+US YYjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1785340616; x=1785945416; 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=iu88KxWoBJbxBUntqJxHn0QzuSMTSpnCFW9aCUgvPGY7if0W2sOSVY0m6/srxM5voI ZSaRq3sh3RD6Lh8zwMvJa2W9H85Sj1i7dVL1c48FMp6sVfZlBLKDdPJ0XE0BXiBioC5G 9AJNASWWtFAGpNuXMmUD2v81LFtFRtQ5z5ejh+lDgcJmAHGidqMi1ukEyOcSrvJirPWm XnOzwkEyrP1ycMrO+hX5G8FrT7lOghOwn4dQd3hnNYCuVGtlbfhem240pvoEf5vLYIUf bJHoAjIbDRinP5dfiysGEc6ZOyRIcpZ3eO+VakYwwjYl5D9f+gH3F+1Ob6ME3blYb63T pESQ== X-Forwarded-Encrypted: i=1; AHgh+Rp8DCOt91bYkEk1KyQlR0czBn+NefwHXDQpLULnL7r017Xaf+wvIiKsKjGq+jxDZDgq70shnYaJwdPYEz0=@vger.kernel.org X-Gm-Message-State: AOJu0YwHj97CNbNzCP8+8MIcAc0WfaNvzWxSl7f4tHCQTRBlIg1nxRFr dtk0dyhE4NgjbIRWVe+gD0wNhngqhq0giQxaPVE0NeGTGXy6Aut7hWU3NK3QM9i6ASJxS1G3ZYS EGqbdV5n9ZSw+ZUyMwxsjYbUIOBVCAaTwO0fUlN0EKTp7G3atXcUPtODL10O0bXx+6pU= X-Gm-Gg: AR+sD13bx+tPyipH61VGy6fYpm2vnd0Rfvb0fvPWfitz5YpB6lzP3AkYtqeiZjRkCr1 BnP0PYkBCvpCLIiAxaR790ULe7dsxGELIPP5h5os6EMElUyrZeek/SnLTTN1y853RLBYys5Dqe/ rvANOnLAtfqH3F3GaXyJ6Ea8f9ZXXFjJqmxLYZsQlkr6mSG2YXgTT23ZVXXhGQZg+2FIMuE7wn+ +39w1JzTZ29hQCSOW7Tsj9GAgBUU0QasBPDDRl44IDaOkbcNiB2uALK02WLWtd3fnk+n3kfya4m STW4y9XN3urpdbrHnco3pY1jtz3t2IWT4Z6/Hg/sSQGpXzYATUkjBIsDYznabPCTOcwDC1crs2b BwP29aNLwM8R5+LaiyXXi5rKZzUB3/QeWUueYIJtXyU7SVxs= X-Received: by 2002:a05:6a00:3a14:b0:847:9b9b:8981 with SMTP id d2e1a72fcca58-84e93328759mr7904833b3a.33.1785340616482; Wed, 29 Jul 2026 08:56:56 -0700 (PDT) X-Received: by 2002:a05:6a00:3a14:b0:847:9b9b:8981 with SMTP id d2e1a72fcca58-84e93328759mr7904810b3a.33.1785340616038; Wed, 29 Jul 2026 08:56:56 -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-cbdba92b0dcsm1178305a12.32.2026.07.29.08.56.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Jul 2026 08:56:55 -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 v7 03/17] drm/msm: Synchronize VM creation on ctxlock Date: Wed, 29 Jul 2026 08:55:40 -0700 Message-ID: <20260729155609.20190-4-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.55.0 In-Reply-To: <20260729155609.20190-1-robin.clark@oss.qualcomm.com> References: <20260729155609.20190-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: 8bit X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNzI5MDEyNyBTYWx0ZWRfX93EtsGpxWaXz iSBFiBrTDdOVIzlKWXnRsJcbkBpcjAkba5ZE+Xlp4YpMTHnzdtoc9iwpffsOqAhGTRl1B2Yle3G k1ai6Cv2h2cpzLCamGE57WW13XkwwRIg4nVJfsZ2+FpuCyAyDzR5gHPmvep5GMXCqD79UVPhVWI 4c78q+Ytw2Z5NqKyBJf8Kemgllr9qO4vRtAGu3GcPeI9jcXOVTpBbpoQE6IE52KTnqYGS9B5h0r PzgHWUFd30wPQvIY+JmX8mIqIUg6PYavRgPoPrIQE1182YYaPY5V04MYjlIDQN7SczkhUyrWifw eRleXTO38maHdM2rYsDN7spbnfsiC+G0/iZM7QNgu5r8/g3pDIFcbkps2Y/cxWPNfGjfrlBUk7n dvtTje2AExhwVWe1wRYmHyjYo4jYgUxhctX7psRP5zKdMTsBxtswEbQze7HOZqvWAMqdsbdmCN1 puKOxlkNpIBipm/IvYg== X-Proofpoint-ORIG-GUID: Io3qr4h2FMQDL80wzkPmq61F9CWDPevV X-Authority-Analysis: v=2.4 cv=EOw2FVZC c=1 sm=1 tr=0 ts=6a6a22c9 cx=c_pps a=mDZGXZTwRPZaeRUbqKGCBw==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=RAioF0-LDSMA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=_glEPmIy2e8OvE2BGh3C:22 a=EUspDBNiAAAA:8 a=Hu6Oc1eQfK70imYNBQsA:9 a=+jEqtf1s3R9VXZ0wqowq2kgwd+I=:19 a=zc0IvFSfCIW2DFIPzwfm:22 X-Proofpoint-GUID: Io3qr4h2FMQDL80wzkPmq61F9CWDPevV X-Proofpoint-Spam-Info: AW1haW4tMjYwNzI5MDEyNyBTYWx0ZWRfX5bFdVnfU5xXg /k5lBd/hCOcx/ZWoeldYhXMAluLjAiyWBbH5pb6xgiz5+LrWpn39dKc7J/0UoD95EXdYMjRrFi3 glIlH5yJkkxanuOPL4ntheiscKp1PPU= 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-29_06,2026-07-29_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 clxscore=1015 suspectscore=0 malwarescore=0 spamscore=0 impostorscore=0 bulkscore=0 phishscore=0 lowpriorityscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2607290127 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_context *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 == gpu->vm) return UERR(EINVAL, drm, "requires per-process pgtables"); @@ -518,6 +520,7 @@ int adreno_set_param(struct msm_gpu *gpu, struct msm_context *ctx, ctx->userspace_managed_vm = value; 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_context *ctx) { - static DEFINE_MUTEX(init_lock); struct msm_drm_private *priv = dev->dev_private; struct drm_gpuvm *vm = smp_load_acquire(&ctx->vm); @@ -230,7 +229,7 @@ struct drm_gpuvm *msm_context_vm(struct drm_device *dev, struct msm_context *ctx if (vm) return vm; - guard(mutex)(&init_lock); + guard(rwsem_write)(&ctx->ctxlock); if (!ctx->vm) { vm = msm_gpu_create_private_vm( -- 2.55.0