dri-devel.lists.freedesktop.org archive mirror
 help / color / mirror / Atom feed
* [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
@ 2017-08-17 22:03 Colin King
  2017-08-17 22:07 ` Ilia Mirkin
  0 siblings, 1 reply; 5+ messages in thread
From: Colin King @ 2017-08-17 22:03 UTC (permalink / raw)
  To: Ben Skeggs, David Airlie,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW
  Cc: kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA

From: Colin Ian King <colin.king@canonical.com>

The null check on the array msto is incorrect since msto is never
null. The null check should be instead on msto[i] since this is
being dereferenced in the call to drm_mode_connector_attach_encoder.

Thanks to Emil Velikov for pointing out the mistake in my original
fix and for suggesting the correct fix.

Detected by CoverityScan, CID#1375915 ("Array compared against 0")

Fixes: f479c0ba4a17 ("drm/nouveau/kms/nv50: initial support for DP 1.2 multi-stream")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
 drivers/gpu/drm/nouveau/nv50_display.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index f7b4326a4641..ed444ecd9e85 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -3141,7 +3141,7 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
 	mstc->connector.funcs->reset(&mstc->connector);
 	nouveau_conn_attach_properties(&mstc->connector);
 
-	for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto; i++)
+	for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto[i]; i++)
 		drm_mode_connector_attach_encoder(&mstc->connector, &mstm->msto[i]->encoder);
 
 	drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0);
-- 
2.11.0

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
  2017-08-17 22:03 [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto Colin King
@ 2017-08-17 22:07 ` Ilia Mirkin
       [not found]   ` <CAKb7Uvh0G_KyVjh=p59R_qLF8qz+j0_s93WhscAhMYcV1-Z1AA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Ilia Mirkin @ 2017-08-17 22:07 UTC (permalink / raw)
  To: Colin King
  Cc: Ben Skeggs, David Airlie, dri-devel, nouveau, kernel-janitors,
	linux-kernel

On Thu, Aug 17, 2017 at 6:03 PM, Colin King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> The null check on the array msto is incorrect since msto is never
> null. The null check should be instead on msto[i] since this is
> being dereferenced in the call to drm_mode_connector_attach_encoder.
>
> Thanks to Emil Velikov for pointing out the mistake in my original
> fix and for suggesting the correct fix.
>
> Detected by CoverityScan, CID#1375915 ("Array compared against 0")
>
> Fixes: f479c0ba4a17 ("drm/nouveau/kms/nv50: initial support for DP 1.2 multi-stream")
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
>  drivers/gpu/drm/nouveau/nv50_display.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
> index f7b4326a4641..ed444ecd9e85 100644
> --- a/drivers/gpu/drm/nouveau/nv50_display.c
> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
> @@ -3141,7 +3141,7 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
>         mstc->connector.funcs->reset(&mstc->connector);
>         nouveau_conn_attach_properties(&mstc->connector);
>
> -       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto; i++)
> +       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto[i]; i++)

Ben will have to rule on which way is correct, but another
interpretation is that it should be

for (...; i < ARRAY_SIZE; i++)
  if (mstm->msto[i])
    do_stuff()

I haven't the faintest clue whether the msto array can have "holes" or not.

>                 drm_mode_connector_attach_encoder(&mstc->connector, &mstm->msto[i]->encoder);
>
>         drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0);
> --
> 2.11.0
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
       [not found]   ` <CAKb7Uvh0G_KyVjh=p59R_qLF8qz+j0_s93WhscAhMYcV1-Z1AA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
@ 2017-08-17 22:16     ` Colin Ian King
  2017-08-17 22:20       ` [Nouveau] " Ben Skeggs
  0 siblings, 1 reply; 5+ messages in thread
From: Colin Ian King @ 2017-08-17 22:16 UTC (permalink / raw)
  To: Ilia Mirkin
  Cc: David Airlie, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW, Ben Skeggs

On 17/08/17 23:07, Ilia Mirkin wrote:
> On Thu, Aug 17, 2017 at 6:03 PM, Colin King <colin.king@canonical.com> wrote:
>> From: Colin Ian King <colin.king@canonical.com>
>>
>> The null check on the array msto is incorrect since msto is never
>> null. The null check should be instead on msto[i] since this is
>> being dereferenced in the call to drm_mode_connector_attach_encoder.
>>
>> Thanks to Emil Velikov for pointing out the mistake in my original
>> fix and for suggesting the correct fix.
>>
>> Detected by CoverityScan, CID#1375915 ("Array compared against 0")
>>
>> Fixes: f479c0ba4a17 ("drm/nouveau/kms/nv50: initial support for DP 1.2 multi-stream")
>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>> ---
>>  drivers/gpu/drm/nouveau/nv50_display.c | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
>> index f7b4326a4641..ed444ecd9e85 100644
>> --- a/drivers/gpu/drm/nouveau/nv50_display.c
>> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
>> @@ -3141,7 +3141,7 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
>>         mstc->connector.funcs->reset(&mstc->connector);
>>         nouveau_conn_attach_properties(&mstc->connector);
>>
>> -       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto; i++)
>> +       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto[i]; i++)
> 
> Ben will have to rule on which way is correct, but another
> interpretation is that it should be
> 
> for (...; i < ARRAY_SIZE; i++)
>   if (mstm->msto[i])
>     do_stuff()

Yes, I suspect that is a better generic solution top cope with potential
"holes".
> 
> I haven't the faintest clue whether the msto array can have "holes" or not.

Indeed. Let's see what Ben says.


> 
>>                 drm_mode_connector_attach_encoder(&mstc->connector, &mstm->msto[i]->encoder);
>>
>>         drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0);
>> --
>> 2.11.0
>>
> --
> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
  2017-08-17 22:16     ` Colin Ian King
@ 2017-08-17 22:20       ` Ben Skeggs
       [not found]         ` <53264562-fddf-8214-859c-0f491b2ca42a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Ben Skeggs @ 2017-08-17 22:20 UTC (permalink / raw)
  To: Colin Ian King, Ilia Mirkin
  Cc: nouveau, kernel-janitors, linux-kernel, dri-devel, Ben Skeggs


[-- Attachment #1.1.1: Type: text/plain, Size: 2651 bytes --]

On 08/18/2017 08:16 AM, Colin Ian King wrote:
> On 17/08/17 23:07, Ilia Mirkin wrote:
>> On Thu, Aug 17, 2017 at 6:03 PM, Colin King <colin.king@canonical.com> wrote:
>>> From: Colin Ian King <colin.king@canonical.com>
>>>
>>> The null check on the array msto is incorrect since msto is never
>>> null. The null check should be instead on msto[i] since this is
>>> being dereferenced in the call to drm_mode_connector_attach_encoder.
>>>
>>> Thanks to Emil Velikov for pointing out the mistake in my original
>>> fix and for suggesting the correct fix.
>>>
>>> Detected by CoverityScan, CID#1375915 ("Array compared against 0")
>>>
>>> Fixes: f479c0ba4a17 ("drm/nouveau/kms/nv50: initial support for DP 1.2 multi-stream")
>>> Signed-off-by: Colin Ian King <colin.king@canonical.com>
>>> ---
>>>  drivers/gpu/drm/nouveau/nv50_display.c | 2 +-
>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>
>>> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
>>> index f7b4326a4641..ed444ecd9e85 100644
>>> --- a/drivers/gpu/drm/nouveau/nv50_display.c
>>> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
>>> @@ -3141,7 +3141,7 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
>>>         mstc->connector.funcs->reset(&mstc->connector);
>>>         nouveau_conn_attach_properties(&mstc->connector);
>>>
>>> -       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto; i++)
>>> +       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto[i]; i++)
>>
>> Ben will have to rule on which way is correct, but another
>> interpretation is that it should be
>>
>> for (...; i < ARRAY_SIZE; i++)
>>   if (mstm->msto[i])
>>     do_stuff()
> 
> Yes, I suspect that is a better generic solution top cope with potential
> "holes".
>>
>> I haven't the faintest clue whether the msto array can have "holes" or not.
> 
> Indeed. Let's see what Ben says.
No, there can't be holes here.  I believe the V2 patch to be correct.

Ben.
> 
> 
>>
>>>                 drm_mode_connector_attach_encoder(&mstc->connector, &mstm->msto[i]->encoder);
>>>
>>>         drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0);
>>> --
>>> 2.11.0
>>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>
> 
> _______________________________________________
> Nouveau mailing list
> Nouveau@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/nouveau
> 


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 160 bytes --]

_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
       [not found]         ` <53264562-fddf-8214-859c-0f491b2ca42a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
@ 2017-08-17 22:23           ` Ben Skeggs
  0 siblings, 0 replies; 5+ messages in thread
From: Ben Skeggs @ 2017-08-17 22:23 UTC (permalink / raw)
  To: Ben Skeggs, Colin Ian King, Ilia Mirkin
  Cc: David Airlie, nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW,
	kernel-janitors-u79uwXL29TY76Z2rM5mHXA,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA,
	dri-devel-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW


[-- Attachment #1.1.1: Type: text/plain, Size: 2995 bytes --]

On 08/18/2017 08:20 AM, Ben Skeggs wrote:
> On 08/18/2017 08:16 AM, Colin Ian King wrote:
>> On 17/08/17 23:07, Ilia Mirkin wrote:
>>> On Thu, Aug 17, 2017 at 6:03 PM, Colin King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org> wrote:
>>>> From: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
>>>>
>>>> The null check on the array msto is incorrect since msto is never
>>>> null. The null check should be instead on msto[i] since this is
>>>> being dereferenced in the call to drm_mode_connector_attach_encoder.
>>>>
>>>> Thanks to Emil Velikov for pointing out the mistake in my original
>>>> fix and for suggesting the correct fix.
>>>>
>>>> Detected by CoverityScan, CID#1375915 ("Array compared against 0")
>>>>
>>>> Fixes: f479c0ba4a17 ("drm/nouveau/kms/nv50: initial support for DP 1.2 multi-stream")
>>>> Signed-off-by: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
>>>> ---
>>>>  drivers/gpu/drm/nouveau/nv50_display.c | 2 +-
>>>>  1 file changed, 1 insertion(+), 1 deletion(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
>>>> index f7b4326a4641..ed444ecd9e85 100644
>>>> --- a/drivers/gpu/drm/nouveau/nv50_display.c
>>>> +++ b/drivers/gpu/drm/nouveau/nv50_display.c
>>>> @@ -3141,7 +3141,7 @@ nv50_mstc_new(struct nv50_mstm *mstm, struct drm_dp_mst_port *port,
>>>>         mstc->connector.funcs->reset(&mstc->connector);
>>>>         nouveau_conn_attach_properties(&mstc->connector);
>>>>
>>>> -       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto; i++)
>>>> +       for (i = 0; i < ARRAY_SIZE(mstm->msto) && mstm->msto[i]; i++)
>>>
>>> Ben will have to rule on which way is correct, but another
>>> interpretation is that it should be
>>>
>>> for (...; i < ARRAY_SIZE; i++)
>>>   if (mstm->msto[i])
>>>     do_stuff()
>>
>> Yes, I suspect that is a better generic solution top cope with potential
>> "holes".
>>>
>>> I haven't the faintest clue whether the msto array can have "holes" or not.
>>
>> Indeed. Let's see what Ben says.
> No, there can't be holes here.  I believe the V2 patch to be correct.
Also, I've taken the patch in my tree, and will get it to Dave at some
point.

Thank you!
Ben.

> 
> Ben.
>>
>>
>>>
>>>>                 drm_mode_connector_attach_encoder(&mstc->connector, &mstm->msto[i]->encoder);
>>>>
>>>>         drm_object_attach_property(&mstc->connector.base, dev->mode_config.path_property, 0);
>>>> --
>>>> 2.11.0
>>>>
>>> --
>>> To unsubscribe from this list: send the line "unsubscribe kernel-janitors" in
>>> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
>>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>>>
>>
>> _______________________________________________
>> Nouveau mailing list
>> Nouveau-PD4FTy7X32lNgt0PjOBp9y5qC8QIuHrW@public.gmane.org
>> https://lists.freedesktop.org/mailman/listinfo/nouveau
>>
> 


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

[-- Attachment #2: Type: text/plain, Size: 154 bytes --]

_______________________________________________
Nouveau mailing list
Nouveau@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/nouveau

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-08-17 22:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-08-17 22:03 [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto Colin King
2017-08-17 22:07 ` Ilia Mirkin
     [not found]   ` <CAKb7Uvh0G_KyVjh=p59R_qLF8qz+j0_s93WhscAhMYcV1-Z1AA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2017-08-17 22:16     ` Colin Ian King
2017-08-17 22:20       ` [Nouveau] " Ben Skeggs
     [not found]         ` <53264562-fddf-8214-859c-0f491b2ca42a-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2017-08-17 22:23           ` Ben Skeggs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).