All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Rob Clark" <robin.clark@oss.qualcomm.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v5 06/10] drm/msm: Allow lazy VM creation to fail
Date: Thu, 16 Jul 2026 20:33:42 +0000	[thread overview]
Message-ID: <20260716203342.C84741F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260716201538.365824-7-robin.clark@oss.qualcomm.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:

Pre-existing issues:
- [High] Direct access to `ctx->vm` via `drm_gpuvm_resv_obj()` in `msm_gem_new_handle()` causes a NULL pointer dereference when called before the VM is lazily initialized.
--

--- Patch [6]: [PATCH v5 06/10] drm/msm: Allow lazy VM creation to fail ---
commit b8fda3fb0d624d38526d9746f2057050a7931a85
Author: Rob Clark <robin.clark@oss.qualcomm.com>

drm/msm: Allow lazy VM creation to fail

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.

> diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
> index 26ea8a28be474..06b142d82e4d0 100644
> --- a/drivers/gpu/drm/msm/msm_gem_submit.c
> +++ b/drivers/gpu/drm/msm/msm_gem_submit.c
[ ... ]
> @@ -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);

[Severity: High]
This is a pre-existing issue, but seeing msm_context_vm() added here made
me look at other places where ctx->vm is accessed, and I noticed a potential
issue in msm_gem_new_handle().

If a user opens the DRM device and directly issues the DRM_IOCTL_MSM_GEM_NEW
ioctl with the MSM_BO_NO_SHARE flag before the VM is lazily initialized
(e.g., before creating a submitqueue), could this result in a NULL pointer
dereference?

> drivers/gpu/drm/msm/msm_gem.c:msm_gem_new_handle() {
> 	...
> 	if (flags & MSM_BO_NO_SHARE) {
> 		struct msm_context *ctx = file->driver_priv;
> 		struct drm_gem_object *r_obj = drm_gpuvm_resv_obj(ctx->vm);

Because drm_gpuvm_resv_obj(ctx->vm) directly dereferences the pointer
without calling msm_context_vm() first to ensure it is created, it seems
this could crash the kernel if ctx->vm is still NULL.

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20260716201538.365824-1-robin.clark@oss.qualcomm.com?part=6

  reply	other threads:[~2026-07-16 20:33 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-16 20:15 [PATCH v5 00/10] drm/msm: A couple lazy-vm fixes Rob Clark
2026-07-16 20:15 ` [PATCH v5 01/10] drm/msm: Fix barriers accessing ctx vm Rob Clark
2026-07-16 20:31   ` sashiko-bot
2026-07-16 20:15 ` [PATCH v5 02/10] drm/msm: Rework queuelock Rob Clark
2026-07-16 20:39   ` sashiko-bot
2026-07-16 20:15 ` [PATCH v5 03/10] drm/msm: Synchronize VM creation on ctxlock Rob Clark
2026-07-16 20:33   ` sashiko-bot
2026-07-16 20:15 ` [PATCH v5 04/10] drm/msm/a6xx: Access VM directly in submit path Rob Clark
2026-07-16 20:43   ` sashiko-bot
2026-07-16 20:15 ` [PATCH v5 05/10] drm/msm: Add helper to check for per-process pgtables VM Rob Clark
2026-07-16 20:15 ` [PATCH v5 06/10] drm/msm: Allow lazy VM creation to fail Rob Clark
2026-07-16 20:33   ` sashiko-bot [this message]
2026-07-16 20:15 ` [PATCH v5 07/10] drm/msm: Don't fallback to shared VM for VM_BIND Rob Clark
2026-07-16 20:28   ` sashiko-bot
2026-07-16 20:15 ` [PATCH v5 08/10] drm/msm: Validate lazy VM in GEM_NEW Rob Clark
2026-07-16 20:29   ` sashiko-bot
2026-07-16 20:15 ` [PATCH v5 09/10] drm/msm: Fix per-process-pgtables check Rob Clark
2026-07-16 20:48   ` sashiko-bot
2026-07-16 20:15 ` [PATCH v5 10/10] drm/msm: Remove invalid overflow check Rob Clark
2026-07-16 20:34   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260716203342.C84741F000E9@smtp.kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=robin.clark@oss.qualcomm.com \
    --cc=sashiko-reviews@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.