Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1714415 > unrolled thread

[PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto

Started byColin King <colin.king@canonical.com>
First post2017-08-18 00:10 +0200
Last post2017-08-18 00:30 +0200
Articles 5 — 5 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto Colin King <colin.king@canonical.com> - 2017-08-18 00:10 +0200
    Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern  than msto Ilia Mirkin <imirkin@alum.mit.edu> - 2017-08-18 00:10 +0200
      Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern  than msto Colin Ian King <colin.king@canonical.com> - 2017-08-18 00:20 +0200
        Re: [Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i]  rathern than msto Ben Skeggs <bskeggs@redhat.com> - 2017-08-18 00:30 +0200
        Re: [Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i]  rathern than msto Ben Skeggs <skeggsb@gmail.com> - 2017-08-18 00:30 +0200

#1714415 — [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto

FromColin King <colin.king@canonical.com>
Date2017-08-18 00:10 +0200
Subject[PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
Message-ID<ufB9f-2BN-1@gated-at.bofh.it>
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

[toc] | [next] | [standalone]


#1714434 — Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto

FromIlia Mirkin <imirkin@alum.mit.edu>
Date2017-08-18 00:10 +0200
SubjectRe: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
Message-ID<ufB9h-2BN-47@gated-at.bofh.it>
In reply to#1714415
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
>

[toc] | [prev] | [next] | [standalone]


#1714457 — Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto

FromColin Ian King <colin.king@canonical.com>
Date2017-08-18 00:20 +0200
SubjectRe: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
Message-ID<ufBiX-2Hx-33@gated-at.bofh.it>
In reply to#1714434
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
> 

[toc] | [prev] | [next] | [standalone]


#1714465 — Re: [Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto

FromBen Skeggs <bskeggs@redhat.com>
Date2017-08-18 00:30 +0200
SubjectRe: [Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
Message-ID<ufBsC-2Lb-9@gated-at.bofh.it>
In reply to#1714457

[Multipart message — attachments visible in raw view] — view raw

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@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.
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@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
>>
> 

[toc] | [prev] | [next] | [standalone]


#1714467 — Re: [Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto

FromBen Skeggs <skeggsb@gmail.com>
Date2017-08-18 00:30 +0200
SubjectRe: [Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
Message-ID<ufBsC-2Lb-11@gated-at.bofh.it>
In reply to#1714457

[Multipart message — attachments visible in raw view] — view raw

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
> 

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web