Re: [PATCH 1/2] drm/msm: Disallow foreign mapping of _NO_SHARE
From: Rob Clark
Date: Wed Mar 25 2026 - 14:57:09 EST
On Wed, Mar 25, 2026 at 8:17 AM Rob Clark <rob.clark@xxxxxxxxxxxxxxxx> wrote:
>
> On Tue, Mar 24, 2026 at 3:20 PM Dmitry Baryshkov
> <dmitry.baryshkov@xxxxxxxxxxxxxxxx> wrote:
> >
> > On Tue, Mar 24, 2026 at 03:05:17PM -0700, Rob Clark wrote:
> > > This restriction applies to mapping of _NO_SHARE objs in the kms vm as
> > > well as importing/exporting BOs. Since the DPU has it's own VM, scanout
> > > counts as "exporting" a BO from outside of it's host VM.
> > >
> > > Signed-off-by: Rob Clark <robin.clark@xxxxxxxxxxxxxxxx>
> > > ---
> > > v2: Fix issue with MAP_NULL
> > >
> > > drivers/gpu/drm/msm/msm_gem_vma.c | 6 ++++++
> > > 1 file changed, 6 insertions(+)
> > >
> > > diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
> > > index 1c6b0920c0d8..43d61e0919bd 100644
> > > --- a/drivers/gpu/drm/msm/msm_gem_vma.c
> > > +++ b/drivers/gpu/drm/msm/msm_gem_vma.c
> > > @@ -373,6 +373,12 @@ msm_gem_vma_new(struct drm_gpuvm *gpuvm, struct drm_gem_object *obj,
> > > struct msm_gem_vma *vma;
> > > int ret;
> > >
> > > + /* _NO_SHARE objs cannot be mapped outside of their "host" vm: */
> > > + if (obj && (to_msm_bo(obj)->flags & MSM_BO_NO_SHARE) &&
> > > + GEM_WARN_ON(obj->resv != drm_gpuvm_resv(gpuvm))) {
> >
> > Can this be used to spam the logs?
>
> yeah, perhaps it should use UERR() instead
So, for the case that I was concerned about, we should actually just
reject creating a drm fb from _NO_SHARE BO(s) (and report error w/
UERR()). I'll send a patch for that. With that, I think it is safe
to keep this WARN_ON(), since the only path to hit it should be a
driver bug.
BR,
-R
> >
> > > + return ERR_PTR(-EINVAL);
> > > + }
> > > +
> > > drm_gpuvm_resv_assert_held(&vm->base);
> > >
> > > vma = kzalloc(sizeof(*vma), GFP_KERNEL);
> > > --
> > > 2.53.0
> > >
> >
> > --
> > With best wishes
> > Dmitry