Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753910AbdHQWQu (ORCPT ); Thu, 17 Aug 2017 18:16:50 -0400 Received: from youngberry.canonical.com ([91.189.89.112]:43387 "EHLO youngberry.canonical.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753310AbdHQWQt (ORCPT ); Thu, 17 Aug 2017 18:16:49 -0400 Subject: Re: [PATCH][V2] drm/nouveau: perform null check on msto[i] rathern than msto To: Ilia Mirkin References: <20170817220323.26717-1-colin.king@canonical.com> Cc: Ben Skeggs , David Airlie , "dri-devel@lists.freedesktop.org" , "nouveau@lists.freedesktop.org" , kernel-janitors@vger.kernel.org, "linux-kernel@vger.kernel.org" From: Colin Ian King Message-ID: <83ec451a-ceaa-5d62-948e-c34bbd670c0e@canonical.com> Date: Thu, 17 Aug 2017 23:16:47 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2232 Lines: 57 On 17/08/17 23:07, Ilia Mirkin wrote: > On Thu, Aug 17, 2017 at 6:03 PM, Colin King wrote: >> From: Colin Ian King >> >> 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 >> --- >> 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 >