Colin Ian King
2017-Aug-17 22:16 UTC
[Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
On 17/08/17 23:07, Ilia Mirkin wrote:> On Thu, Aug 17, 2017 at 6:03 PM, Colin King <colin.king at canonical.com> wrote: >> From: Colin Ian King <colin.king at 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 at 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 at vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >
Ben Skeggs
2017-Aug-17 22:20 UTC
[Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
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 at canonical.com> wrote: >>> From: Colin Ian King <colin.king at 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 at 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 at vger.kernel.org >> More majordomo info at http://vger.kernel.org/majordomo-info.html >> > > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/nouveau >-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20170818/9d5a144f/attachment.sig>
Ben Skeggs
2017-Aug-17 22:23 UTC
[Nouveau] [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
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 at canonical.com> wrote: >>>> From: Colin Ian King <colin.king at 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 at 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 at vger.kernel.org >>> More majordomo info at http://vger.kernel.org/majordomo-info.html >>> >> >> _______________________________________________ >> Nouveau mailing list >> Nouveau at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/nouveau >> >-------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: OpenPGP digital signature URL: <https://lists.freedesktop.org/archives/nouveau/attachments/20170818/f7a82505/attachment-0001.sig>
Apparently Analagous Threads
- [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
- [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
- [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto
- [PATCH] drm/nouveau: remove redundant null check on array mstm->msto
- [PATCH] drm/nouveau: remove redundant null check on array mstm->msto