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 4BFD93438BF for ; Thu, 25 Jun 2026 19:15:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=205.220.180.131 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782414949; cv=none; b=fsOUW7Guh+KQRf91VP7ysC30oNEpbuT/H65AOQzrSAh10vgqjFv4IXrDDphHWgGyU3BEiORr2+EkNrMXJmQcsySG/csQr7HbIn7vhsebcGmsdBfsXXOc9zojBFnSy48MeXjvKyILAky3kKvdqLOKO5ZwAONJmJVDuIL5YG5o9i8= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1782414949; c=relaxed/simple; bh=/p15D98oWQTSYv5HabnMOz6/z7N7M8gk/34A7MEKXiE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OpMmzp/wiDr+HMiRbxLdjva8IJEFU+kBHHvmSkPV6P4YuyR+7bizxB1a2YNniJWC9qyr2xCnHhC8XoY1uEDKaAsvaQuTylV5bJylLH0qGPd+g6dBJAzSFQIDBFaTJtV8j5CNKf/4WFXa7PR+e1aXIYS7gIyfkHT1wQfrp5O4874= 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=gC9PAyCO; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b=PZiLIjk7; 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="gC9PAyCO"; dkim=pass (2048-bit key) header.d=oss.qualcomm.com header.i=@oss.qualcomm.com header.b="PZiLIjk7" Received: from pps.filterd (m0279871.ppops.net [127.0.0.1]) by mx0a-0031df01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 65PFeJPB2737258 for ; Thu, 25 Jun 2026 19:15:47 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qualcomm.com; h= cc:content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=qcppdkim1; bh=7V7Err/Z+6B Igi6OReMeeTwMA3vE41djVqJiMjm/22I=; b=gC9PAyCOZ5Bl5QHzHhezRGKj3sq tUw9NpPq9E5rpuZ0GVmFyDTb3DaB5kHRPf9bWFqhvsin/ejgfKcrrPzhcvpY/yCj 1i1tr5ju8PES7NbSmcWvCxZkxD4vqDIiupI1szSPHvljElaYnfzlQnK4HzVpdQfc 04q1G38bC4ktyNO1OhLrKQ4ixWOQjRvqihhMQMg917QUZFMygYzHtFzyZ0lmzXd9 3j6LGnvR038ehGflw7CE4Xb5Yss//Re+YrhpvVSA2zaZpXBzLhpdSBrEhB+wNVE+ 8RvFZbiyqefhDeakuwZbGChxw08/gosWo2uvIVNvxtpPlgKpBYq7TYIB9GQ== Received: from mail-pf1-f197.google.com (mail-pf1-f197.google.com [209.85.210.197]) by mx0a-0031df01.pphosted.com (PPS) with ESMTPS id 4f0ya8u1sd-1 (version=TLSv1.3 cipher=TLS_AES_128_GCM_SHA256 bits=128 verify=NOT) for ; Thu, 25 Jun 2026 19:15:47 +0000 (GMT) Received: by mail-pf1-f197.google.com with SMTP id d2e1a72fcca58-8423f1fe39eso92226b3a.1 for ; Thu, 25 Jun 2026 12:15:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oss.qualcomm.com; s=google; t=1782414946; x=1783019746; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=7V7Err/Z+6BIgi6OReMeeTwMA3vE41djVqJiMjm/22I=; b=PZiLIjk7iUADVU2sih/2DJ3kzPJeifEP4OxNzJUNgxfao5pRCnxvkF9IRbfehB4Fzv YlvHnL2IHEdtGtb9fzA9ixE4CJo4obDgSHj18JBPmVHi0JRoz5Tm+1NvRrZj3kWk7QeG ccGw4puu9NirrfMK9lfUv0iI+u/c9ltOCXB7194UrObkgv+JkhBtBEr6vcMuJxnGh3c0 QsWB2m9G/9Ue2FzJiJGXqm+8RpdTQ/qHgFk2YAgrBXpuPz3xgwMLIYiq3QJYL0Qw7RF8 pA3hnt5uAFOCtIiF02TnPYbwM5CFRNxSTV6DEli/11pp9GZtRtd5tPEm/0m902alPxJy yixA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1782414946; x=1783019746; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=7V7Err/Z+6BIgi6OReMeeTwMA3vE41djVqJiMjm/22I=; b=bSNer6EL42Ov1+QnWgPWP/mA+VkkFGspeaivlqIeVJRmzaZV0Jz8pbIEVr9IJ/JCmK +HpJAZuDLd8HNdgL3LWH0aK42kB/HFM5xnLlAziI2VXoQc8F/TwXv/Ve7a/YShJ5S4ZA m1Sa74mW0vsx+APSK/WSz28srH85PO2eJo93ahcCtTbwiNq9MtwgRPUZfuwX17hba9xj MOxZtMHG3fU1yQIsfAaiHAjj74HdmTtpLyAa7LXHHuV7dq2P/KP36z8VaRVtAnbLDiFm ii9Hs7LiufpqRixTgQhaGtTcuArftyMiHr9AE7TXKCZr3KqWswG0dOaVicSJRR2ac1Cq lxWQ== X-Forwarded-Encrypted: i=1; AHgh+Rqyh1R7jWdUFywoAnb3yx0OtgR8UYL0dSZWz/h4mu7DaywI/ZZAf2wQiMBUDn79Rv/MsIQQEwUL2NAGLSo=@vger.kernel.org X-Gm-Message-State: AOJu0YxgubVHdHle/uwkq5SCqlDjyEyy2QCBla6JgIku9WzkurzHV4Yp 1prcZRDzo5aMl1AN2JIKZ0e7t8k3y48w/5/nA9IsOobxwINmKWNrzLAD8+jfA2DUsc23BQeKOlP VpDohBJdFItFq5772X5z7A5MtUumg74mgGlSSRxx8QbrM1BvuYUYo+qB6oHBnN6Z6pZM= X-Gm-Gg: AfdE7cksOt68UxWVQohk6ZciLEm1hprge56JZ0dHALgSyLj/zz8wtyeVwUz3X4w2KJk FyN5vyYMv6K4bc5JowmMdenh+1lhM3oW/SHDKlD6B7oPDkalNUtFCBIN3kBe8VjVsYryN1pBPeF 6hrN0VWo6gBizzI96pdbScHj9p/8/EuQtXpBts40RsYlupXA8BK94FoEmRyhIdxO05iLYJlOsIE MbiRP1m+raf93ZAnu0cFuU6XY7i9/mRkUzb4g2xHQQIdubQrtWuFS4ZqJBOQixNLKfoXhGe3DUg BdI1JGRXty4aPCVaKERsN7rnGOK6RM5LCPamAdHLsrlGtNb+HQK0X8+7jApGP9b2MXh1EH2UaK8 IHFQ4SKDdvBiI2bKqVVvRloKpLZJe/NDa50i12ebSQE9Zc8Y1MianECcI1Q== X-Received: by 2002:a05:6a00:10c5:b0:82f:425b:4c27 with SMTP id d2e1a72fcca58-845b3abb83amr4599822b3a.14.1782414946114; Thu, 25 Jun 2026 12:15:46 -0700 (PDT) X-Received: by 2002:a05:6a00:10c5:b0:82f:425b:4c27 with SMTP id d2e1a72fcca58-845b3abb83amr4599797b3a.14.1782414945593; Thu, 25 Jun 2026 12:15:45 -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-845a40d2459sm5133513b3a.32.2026.06.25.12.15.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 25 Jun 2026 12:15:44 -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 v2 2/3] drm/msm: Validate lazy VM is created in GEM_SUBMIT Date: Thu, 25 Jun 2026 12:15:34 -0700 Message-ID: <20260625191537.47965-3-robin.clark@oss.qualcomm.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: <20260625191537.47965-1-robin.clark@oss.qualcomm.com> References: <20260625191537.47965-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-Info: AW1haW4tMjYwNjI1MDE2NSBTYWx0ZWRfX+FBkLqeuB+yd lb94xzCBW51nJxyVrNCGLLj50MWqVYAnPQR/WveccS30fABCpjoZHBnoI3Eirt85/PpnaDP4IAy xTnhTYXujbYuP//hzFB+QAfqG+K+unU= X-Proofpoint-GUID: MV_OPxYppIxu9H3V8TLebXgyLtRkO4fB X-Proofpoint-ORIG-GUID: MV_OPxYppIxu9H3V8TLebXgyLtRkO4fB X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNjI1MDE2NSBTYWx0ZWRfX0MLU+GKTEO1J 0NSVGa/DJGVay8wrDkqqGrBxPHJEwhWjcGfMxCLTklMQIhnQZz/kqXcJ+NiSojMQJ9xIk+5Kl01 AtatXNaD2wkCdJQO8kFyqgwDhZ1X2YgIrYoLiGfL793xlnavBnA6eeIGPCtLC4Rrk0JImqGz7LX 9eqsOY14SEEZkjN44EhpZs9w3Z51C1TKNd0MS1P7pzpgIpvfnATxoCUH+EpZzyEl1ItSiuE36oJ v1U0JY1THzLhtACwiglrpZ/1Lv7BZor2YhdewSRZr3JA2TVMOd6P0cEvqPjSjlrW5JN5wnHtRm7 elppeBorI8cM2uVQGffnBiDA5QYTk/8Vq02h4p8jb6y/lwjGJbtOxAcGNJw0VI6InDtP4yZ4XlQ ci0gtX0N4oCSUc8M0OrF3YoHIBpgYwsH5otMCh7r1eOMpF2iCaNK3z+pvoKJKbJKuan5yNT86cM 6lB9+GM3I3vodbDV62A== X-Authority-Analysis: v=2.4 cv=Z+Xc2nRA c=1 sm=1 tr=0 ts=6a3d7e63 cx=c_pps a=rEQLjTOiSrHUhVqRoksmgQ==:117 a=19Wyn7e3V/0aNffMjNCMQw==:17 a=FelO9ux0wxsA:10 a=s4-Qcg_JpJYA:10 a=VkNPw1HP01LnGYTKEx00:22 a=u7WPNUs3qKkmUXheDGA7:22 a=3WHJM1ZQz_JShphwDgj5:22 a=VwQbUJbxAAAA:8 a=EUspDBNiAAAA:8 a=ZH_LIYEqPuu6AAuj7cUA:9 a=2VI0MkxyNR6bbpdq8BZq:22 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.125,FMLib:17.12.100.49 definitions=2026-06-25_02,2026-06-24_01,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 clxscore=1015 malwarescore=0 bulkscore=0 suspectscore=0 phishscore=0 spamscore=0 adultscore=0 lowpriorityscore=0 priorityscore=1501 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2606150000 definitions=main-2606250165 Otherwise a GEM_SUBMIT ioctl before any BOs are mapped could cause a NPE. Reported-by: Sashiko Fixes: 6a4d287a1ae6 ("drm/msm: Mark VM as unusable on GPU hangs") Signed-off-by: Rob Clark --- drivers/gpu/drm/msm/msm_gem_submit.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c index 3c6bc90c3d48..56929e821200 100644 --- a/drivers/gpu/drm/msm/msm_gem_submit.c +++ b/drivers/gpu/drm/msm/msm_gem_submit.c @@ -30,7 +30,7 @@ */ 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_device *dev, kref_init(&submit->ref); submit->dev = dev; - submit->vm = msm_context_vm(dev, queue->ctx); + submit->vm = vm; submit->gpu = gpu; submit->cmd = (void *)&submit->bos[nr_bos]; submit->queue = queue; @@ -554,6 +554,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, struct msm_drm_private *priv = dev->dev_private; struct drm_msm_gem_submit *args = data; struct msm_context *ctx = file->driver_priv; + struct drm_gpuvm *vm = msm_context_vm(dev, ctx); struct msm_gem_submit *submit = NULL; struct msm_gpu *gpu = priv->gpu; struct msm_gpu_submitqueue *queue; @@ -572,7 +573,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, if (args->pad) return -EINVAL; - if (to_msm_vm(ctx->vm)->unusable) + if (vm && to_msm_vm(vm)->unusable) return UERR(EPIPE, dev, "context is unusable"); /* for now, we just have 3d pipe.. eventually this would need to @@ -609,7 +610,7 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data, } } - submit = submit_create(dev, gpu, queue, args->nr_bos, args->nr_cmds, + submit = submit_create(dev, gpu, vm, queue, args->nr_bos, args->nr_cmds, file->client_id); if (IS_ERR(submit)) { ret = PTR_ERR(submit); -- 2.54.0