* [PATCH 0/2] drm/msm/gem: A couple VM_BIND fixes
@ 2026-11-01 17:49 Rob Clark
2026-11-01 17:49 ` [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check Rob Clark
2026-11-01 17:49 ` [PATCH 2/2] drm/msm/gem: Disallow nr_bos for VM_BIND contexts Rob Clark
0 siblings, 2 replies; 10+ messages in thread
From: Rob Clark @ 2026-11-01 17:49 UTC (permalink / raw)
To: dri-devel
Cc: linux-arm-msm, freedreno, Rob Clark, Abhinav Kumar, David Airlie,
Dmitry Baryshkov, Jessica Zhang, open list, Marijn Suijten,
Sean Paul, Simona Vetter
Fix possible overflow in range check, and disallow passing BOs table to
GEM_SUBMIT for VM_BIND contexts.
Rob Clark (2):
drm/msm/gem: Fix VM_BIND range check
drm/msm/gem: Disallow nr_bos for VM_BIND contexts
drivers/gpu/drm/msm/msm_gem_submit.c | 5 ++++-
drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
2 files changed, 5 insertions(+), 2 deletions(-)
--
2.56.0
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check
2026-11-01 17:49 [PATCH 0/2] drm/msm/gem: A couple VM_BIND fixes Rob Clark
@ 2026-11-01 17:49 ` Rob Clark
2026-11-02 9:40 ` Konrad Dybcio
2026-11-02 10:27 ` Dmitry Baryshkov
2026-11-01 17:49 ` [PATCH 2/2] drm/msm/gem: Disallow nr_bos for VM_BIND contexts Rob Clark
1 sibling, 2 replies; 10+ messages in thread
From: Rob Clark @ 2026-11-01 17:49 UTC (permalink / raw)
To: dri-devel
Cc: linux-arm-msm, freedreno, Rob Clark, Konrad Dybcio,
Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang, Sean Paul,
Marijn Suijten, David Airlie, Simona Vetter, open list
Use size_add() to guard against overflow.
Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Fixes: 3a3bef68a6c1 ("drm/msm: Fix missing VM_BIND offset/range validation")
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
---
drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
index f687a629629d..16b3870d5e90 100644
--- a/drivers/gpu/drm/msm/msm_gem_vma.c
+++ b/drivers/gpu/drm/msm/msm_gem_vma.c
@@ -1118,7 +1118,7 @@ vm_bind_job_lookup_ops(struct msm_vm_bind_job *job, struct drm_msm_vm_bind *args
op->obj = obj;
cnt++;
- if ((op->range + op->obj_offset) > obj->size) {
+ if (size_add(op->range, op->obj_offset) > obj->size) {
ret = UERR(EINVAL, dev, "invalid range: %016llx + %016llx > %016zx\n",
op->range, op->obj_offset, obj->size);
goto out_unlock;
--
2.56.0
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check
2026-11-01 17:49 ` [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check Rob Clark
@ 2026-11-02 9:40 ` Konrad Dybcio
2026-11-02 10:27 ` Dmitry Baryshkov
2026-11-02 13:59 ` Rob Clark
2026-11-02 10:27 ` Dmitry Baryshkov
1 sibling, 2 replies; 10+ messages in thread
From: Konrad Dybcio @ 2026-11-02 9:40 UTC (permalink / raw)
To: Rob Clark, dri-devel
Cc: linux-arm-msm, freedreno, Dmitry Baryshkov, Abhinav Kumar,
Jessica Zhang, Sean Paul, Marijn Suijten, David Airlie,
Simona Vetter, open list
On 11/1/26 6:49 PM, Rob Clark wrote:
> Use size_add() to guard against overflow.
>
> Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Fixes: 3a3bef68a6c1 ("drm/msm: Fix missing VM_BIND offset/range validation")
> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> ---
> drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
> index f687a629629d..16b3870d5e90 100644
> --- a/drivers/gpu/drm/msm/msm_gem_vma.c
> +++ b/drivers/gpu/drm/msm/msm_gem_vma.c
> @@ -1118,7 +1118,7 @@ vm_bind_job_lookup_ops(struct msm_vm_bind_job *job, struct drm_msm_vm_bind *args
> op->obj = obj;
> cnt++;
>
> - if ((op->range + op->obj_offset) > obj->size) {
> + if (size_add(op->range, op->obj_offset) > obj->size) {
GPT and Sashiko are unhappy about what this does on 32b
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check
2026-11-02 9:40 ` Konrad Dybcio
@ 2026-11-02 10:27 ` Dmitry Baryshkov
2026-11-02 13:59 ` Rob Clark
1 sibling, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2026-11-02 10:27 UTC (permalink / raw)
To: Konrad Dybcio
Cc: Rob Clark, dri-devel, linux-arm-msm, freedreno, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Sean Paul, Marijn Suijten,
David Airlie, Simona Vetter, open list
On Mon, Nov 02, 2026 at 10:40:06AM +0100, Konrad Dybcio wrote:
> On 11/1/26 6:49 PM, Rob Clark wrote:
> > Use size_add() to guard against overflow.
> >
> > Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> > Fixes: 3a3bef68a6c1 ("drm/msm: Fix missing VM_BIND offset/range validation")
> > Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> > ---
> > drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
> > index f687a629629d..16b3870d5e90 100644
> > --- a/drivers/gpu/drm/msm/msm_gem_vma.c
> > +++ b/drivers/gpu/drm/msm/msm_gem_vma.c
> > @@ -1118,7 +1118,7 @@ vm_bind_job_lookup_ops(struct msm_vm_bind_job *job, struct drm_msm_vm_bind *args
> > op->obj = obj;
> > cnt++;
> >
> > - if ((op->range + op->obj_offset) > obj->size) {
> > + if (size_add(op->range, op->obj_offset) > obj->size) {
>
> GPT and Sashiko are unhappy about what this does on 32b
I'd somewhat doubt that we would ever need VM_BIND on arm32 platforms.
a2xx isn't Vulkan-compatible, a3xx is questionable.
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check
2026-11-02 9:40 ` Konrad Dybcio
2026-11-02 10:27 ` Dmitry Baryshkov
@ 2026-11-02 13:59 ` Rob Clark
2026-11-02 15:18 ` Rob Clark
1 sibling, 1 reply; 10+ messages in thread
From: Rob Clark @ 2026-11-02 13:59 UTC (permalink / raw)
To: Konrad Dybcio
Cc: dri-devel, linux-arm-msm, freedreno, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Sean Paul, Marijn Suijten,
David Airlie, Simona Vetter, open list
On Mon, Nov 2, 2026 at 1:40 AM Konrad Dybcio
<konrad.dybcio@oss.qualcomm.com> wrote:
>
> On 11/1/26 6:49 PM, Rob Clark wrote:
> > Use size_add() to guard against overflow.
> >
> > Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> > Fixes: 3a3bef68a6c1 ("drm/msm: Fix missing VM_BIND offset/range validation")
> > Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> > ---
> > drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
> > index f687a629629d..16b3870d5e90 100644
> > --- a/drivers/gpu/drm/msm/msm_gem_vma.c
> > +++ b/drivers/gpu/drm/msm/msm_gem_vma.c
> > @@ -1118,7 +1118,7 @@ vm_bind_job_lookup_ops(struct msm_vm_bind_job *job, struct drm_msm_vm_bind *args
> > op->obj = obj;
> > cnt++;
> >
> > - if ((op->range + op->obj_offset) > obj->size) {
> > + if (size_add(op->range, op->obj_offset) > obj->size) {
>
> GPT and Sashiko are unhappy about what this does on 32b
Considering that we can't have >4gb BOs on 32b, I think the concerns
are probably unwarranted. But yes, I do look at Sashiko's reports
BR,
-R
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check
2026-11-02 13:59 ` Rob Clark
@ 2026-11-02 15:18 ` Rob Clark
2026-11-02 15:26 ` Konrad Dybcio
0 siblings, 1 reply; 10+ messages in thread
From: Rob Clark @ 2026-11-02 15:18 UTC (permalink / raw)
To: Konrad Dybcio
Cc: dri-devel, linux-arm-msm, freedreno, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Sean Paul, Marijn Suijten,
David Airlie, Simona Vetter, open list
On Mon, Nov 2, 2026 at 5:59 AM Rob Clark <rob.clark@oss.qualcomm.com> wrote:
>
> On Mon, Nov 2, 2026 at 1:40 AM Konrad Dybcio
> <konrad.dybcio@oss.qualcomm.com> wrote:
> >
> > On 11/1/26 6:49 PM, Rob Clark wrote:
> > > Use size_add() to guard against overflow.
> > >
> > > Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> > > Fixes: 3a3bef68a6c1 ("drm/msm: Fix missing VM_BIND offset/range validation")
> > > Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> > > ---
> > > drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
> > > index f687a629629d..16b3870d5e90 100644
> > > --- a/drivers/gpu/drm/msm/msm_gem_vma.c
> > > +++ b/drivers/gpu/drm/msm/msm_gem_vma.c
> > > @@ -1118,7 +1118,7 @@ vm_bind_job_lookup_ops(struct msm_vm_bind_job *job, struct drm_msm_vm_bind *args
> > > op->obj = obj;
> > > cnt++;
> > >
> > > - if ((op->range + op->obj_offset) > obj->size) {
> > > + if (size_add(op->range, op->obj_offset) > obj->size) {
> >
> > GPT and Sashiko are unhappy about what this does on 32b
>
> Considering that we can't have >4gb BOs on 32b, I think the concerns
> are probably unwarranted. But yes, I do look at Sashiko's reports
Probably we should add checks that obj_offset/range are not more than SIZE_MAX?
BR,
-R
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check
2026-11-02 15:18 ` Rob Clark
@ 2026-11-02 15:26 ` Konrad Dybcio
0 siblings, 0 replies; 10+ messages in thread
From: Konrad Dybcio @ 2026-11-02 15:26 UTC (permalink / raw)
To: rob.clark
Cc: dri-devel, linux-arm-msm, freedreno, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Sean Paul, Marijn Suijten,
David Airlie, Simona Vetter, open list
On 11/2/26 4:18 PM, Rob Clark wrote:
> On Mon, Nov 2, 2026 at 5:59 AM Rob Clark <rob.clark@oss.qualcomm.com> wrote:
>>
>> On Mon, Nov 2, 2026 at 1:40 AM Konrad Dybcio
>> <konrad.dybcio@oss.qualcomm.com> wrote:
>>>
>>> On 11/1/26 6:49 PM, Rob Clark wrote:
>>>> Use size_add() to guard against overflow.
>>>>
>>>> Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
>>>> Fixes: 3a3bef68a6c1 ("drm/msm: Fix missing VM_BIND offset/range validation")
>>>> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
>>>> ---
>>>> drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
>>>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/msm/msm_gem_vma.c b/drivers/gpu/drm/msm/msm_gem_vma.c
>>>> index f687a629629d..16b3870d5e90 100644
>>>> --- a/drivers/gpu/drm/msm/msm_gem_vma.c
>>>> +++ b/drivers/gpu/drm/msm/msm_gem_vma.c
>>>> @@ -1118,7 +1118,7 @@ vm_bind_job_lookup_ops(struct msm_vm_bind_job *job, struct drm_msm_vm_bind *args
>>>> op->obj = obj;
>>>> cnt++;
>>>>
>>>> - if ((op->range + op->obj_offset) > obj->size) {
>>>> + if (size_add(op->range, op->obj_offset) > obj->size) {
>>>
>>> GPT and Sashiko are unhappy about what this does on 32b
>>
>> Considering that we can't have >4gb BOs on 32b, I think the concerns
>> are probably unwarranted. But yes, I do look at Sashiko's reports
>
> Probably we should add checks that obj_offset/range are not more than SIZE_MAX?
Wouldn't hurt
Konrad
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check
2026-11-01 17:49 ` [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check Rob Clark
2026-11-02 9:40 ` Konrad Dybcio
@ 2026-11-02 10:27 ` Dmitry Baryshkov
1 sibling, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2026-11-02 10:27 UTC (permalink / raw)
To: Rob Clark
Cc: dri-devel, linux-arm-msm, freedreno, Konrad Dybcio,
Dmitry Baryshkov, Abhinav Kumar, Jessica Zhang, Sean Paul,
Marijn Suijten, David Airlie, Simona Vetter, open list
On Sun, Nov 01, 2026 at 09:49:09AM -0800, Rob Clark wrote:
> Use size_add() to guard against overflow.
>
> Reported-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
> Fixes: 3a3bef68a6c1 ("drm/msm: Fix missing VM_BIND offset/range validation")
> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> ---
> drivers/gpu/drm/msm/msm_gem_vma.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 2/2] drm/msm/gem: Disallow nr_bos for VM_BIND contexts
2026-11-01 17:49 [PATCH 0/2] drm/msm/gem: A couple VM_BIND fixes Rob Clark
2026-11-01 17:49 ` [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check Rob Clark
@ 2026-11-01 17:49 ` Rob Clark
2026-11-02 10:28 ` Dmitry Baryshkov
1 sibling, 1 reply; 10+ messages in thread
From: Rob Clark @ 2026-11-01 17:49 UTC (permalink / raw)
To: dri-devel
Cc: linux-arm-msm, freedreno, Rob Clark, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Sean Paul, Marijn Suijten,
David Airlie, Simona Vetter, open list
If using VM_BIND, it is invalid to attach BOs to a GEM_SUBMIT ioctl.
Only the VM_BIND ioctl should be used for binding objects.
Fixes: 2e6a8a1fe2b2 ("drm/msm: Add VM_BIND ioctl")
Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
---
drivers/gpu/drm/msm/msm_gem_submit.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/msm/msm_gem_submit.c b/drivers/gpu/drm/msm/msm_gem_submit.c
index ff6cf39587c9..b558d07ed2b6 100644
--- a/drivers/gpu/drm/msm/msm_gem_submit.c
+++ b/drivers/gpu/drm/msm/msm_gem_submit.c
@@ -272,7 +272,7 @@ static int submit_lock_objects_vmbind(struct msm_gem_submit *submit)
struct drm_exec *exec = &submit->exec;
int ret = 0;
- drm_exec_init(&submit->exec, flags, submit->nr_bos);
+ drm_exec_init(&submit->exec, flags, 0);
submit->has_exec = true;
drm_exec_until_all_locked (&submit->exec) {
@@ -589,6 +589,9 @@ int msm_ioctl_gem_submit(struct drm_device *dev, void *data,
return -EINVAL;
}
+ if (msm_context_is_vmbind(ctx) && args->nr_bos)
+ return UERR(EINVAL, dev, "invalid nr_bos, must be zero for VM_BIND contexts");
+
queue = msm_submitqueue_get(ctx, args->queueid);
if (!queue)
return -ENOENT;
--
2.56.0
^ permalink raw reply [flat|nested] 10+ messages in thread* Re: [PATCH 2/2] drm/msm/gem: Disallow nr_bos for VM_BIND contexts
2026-11-01 17:49 ` [PATCH 2/2] drm/msm/gem: Disallow nr_bos for VM_BIND contexts Rob Clark
@ 2026-11-02 10:28 ` Dmitry Baryshkov
0 siblings, 0 replies; 10+ messages in thread
From: Dmitry Baryshkov @ 2026-11-02 10:28 UTC (permalink / raw)
To: Rob Clark
Cc: dri-devel, linux-arm-msm, freedreno, Dmitry Baryshkov,
Abhinav Kumar, Jessica Zhang, Sean Paul, Marijn Suijten,
David Airlie, Simona Vetter, open list
On Sun, Nov 01, 2026 at 09:49:10AM -0800, Rob Clark wrote:
> If using VM_BIND, it is invalid to attach BOs to a GEM_SUBMIT ioctl.
> Only the VM_BIND ioctl should be used for binding objects.
>
> Fixes: 2e6a8a1fe2b2 ("drm/msm: Add VM_BIND ioctl")
> Signed-off-by: Rob Clark <robin.clark@oss.qualcomm.com>
> ---
> drivers/gpu/drm/msm/msm_gem_submit.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2026-11-02 15:26 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-11-01 17:49 [PATCH 0/2] drm/msm/gem: A couple VM_BIND fixes Rob Clark
2026-11-01 17:49 ` [PATCH 1/2] drm/msm/gem: Fix VM_BIND range check Rob Clark
2026-11-02 9:40 ` Konrad Dybcio
2026-11-02 10:27 ` Dmitry Baryshkov
2026-11-02 13:59 ` Rob Clark
2026-11-02 15:18 ` Rob Clark
2026-11-02 15:26 ` Konrad Dybcio
2026-11-02 10:27 ` Dmitry Baryshkov
2026-11-01 17:49 ` [PATCH 2/2] drm/msm/gem: Disallow nr_bos for VM_BIND contexts Rob Clark
2026-11-02 10:28 ` Dmitry Baryshkov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®