Dan Carpenter
2021-Nov-18 11:13 UTC
[Nouveau] [PATCH] drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks
The nvkm_acr_lsfw_add() function never returns NULL. It returns error pointers on error. Fixes: 22dcda45a3d1 ("drm/nouveau/acr: implement new subdev to replace "secure boot"") Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com> --- drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c | 6 ++++-- drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c | 6 ++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c index cdb1ead26d84..82b4c8e1457c 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c @@ -207,11 +207,13 @@ int gm200_acr_wpr_parse(struct nvkm_acr *acr) { const struct wpr_header *hdr = (void *)acr->wpr_fw->data; + struct nvkm_acr_lsfw *lsfw; while (hdr->falcon_id != WPR_HEADER_V0_FALCON_ID_INVALID) { wpr_header_dump(&acr->subdev, hdr); - if (!nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id)) - return -ENOMEM; + lsfw = nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id); + if (IS_ERR(lsfw)) + return PTR_ERR(lsfw); } return 0; diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c index fb9132a39bb1..fd97a935a380 100644 --- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c @@ -161,11 +161,13 @@ int gp102_acr_wpr_parse(struct nvkm_acr *acr) { const struct wpr_header_v1 *hdr = (void *)acr->wpr_fw->data; + struct nvkm_acr_lsfw *lsfw; while (hdr->falcon_id != WPR_HEADER_V1_FALCON_ID_INVALID) { wpr_header_v1_dump(&acr->subdev, hdr); - if (!nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id)) - return -ENOMEM; + lsfw = nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id); + if (IS_ERR(lsfw)) + return PTR_ERR(lsfw); } return 0; -- 2.20.1
Ben Skeggs
2021-Nov-18 22:45 UTC
[Nouveau] [PATCH] drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks
On Thu, 18 Nov 2021 at 21:13, Dan Carpenter <dan.carpenter at oracle.com> wrote:> > The nvkm_acr_lsfw_add() function never returns NULL. It returns error > pointers on error. > > Fixes: 22dcda45a3d1 ("drm/nouveau/acr: implement new subdev to replace "secure boot"") > Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>Reviewed-by: Ben Skeggs <bskeggs at redhat.com>> --- > drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c | 6 ++++-- > drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c | 6 ++++-- > 2 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c > index cdb1ead26d84..82b4c8e1457c 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c > @@ -207,11 +207,13 @@ int > gm200_acr_wpr_parse(struct nvkm_acr *acr) > { > const struct wpr_header *hdr = (void *)acr->wpr_fw->data; > + struct nvkm_acr_lsfw *lsfw; > > while (hdr->falcon_id != WPR_HEADER_V0_FALCON_ID_INVALID) { > wpr_header_dump(&acr->subdev, hdr); > - if (!nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id)) > - return -ENOMEM; > + lsfw = nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id); > + if (IS_ERR(lsfw)) > + return PTR_ERR(lsfw); > } > > return 0; > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c > index fb9132a39bb1..fd97a935a380 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c > @@ -161,11 +161,13 @@ int > gp102_acr_wpr_parse(struct nvkm_acr *acr) > { > const struct wpr_header_v1 *hdr = (void *)acr->wpr_fw->data; > + struct nvkm_acr_lsfw *lsfw; > > while (hdr->falcon_id != WPR_HEADER_V1_FALCON_ID_INVALID) { > wpr_header_v1_dump(&acr->subdev, hdr); > - if (!nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id)) > - return -ENOMEM; > + lsfw = nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id); > + if (IS_ERR(lsfw)) > + return PTR_ERR(lsfw); > } > > return 0; > -- > 2.20.1 >
Lyude Paul
2021-Nov-23 19:35 UTC
[Nouveau] [PATCH] drm/nouveau/acr: fix a couple NULL vs IS_ERR() checks
Reviewed-by: Lyude Paul <lyude at redhat.com> Will push this to drm-misc in a bit On Thu, 2021-11-18 at 14:13 +0300, Dan Carpenter wrote:> The nvkm_acr_lsfw_add() function never returns NULL.? It returns error > pointers on error. > > Fixes: 22dcda45a3d1 ("drm/nouveau/acr: implement new subdev to replace > "secure boot"") > Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com> > --- > ?drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c | 6 ++++-- > ?drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c | 6 ++++-- > ?2 files changed, 8 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c > b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c > index cdb1ead26d84..82b4c8e1457c 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gm200.c > @@ -207,11 +207,13 @@ int > ?gm200_acr_wpr_parse(struct nvkm_acr *acr) > ?{ > ????????const struct wpr_header *hdr = (void *)acr->wpr_fw->data; > +???????struct nvkm_acr_lsfw *lsfw; > ? > ????????while (hdr->falcon_id != WPR_HEADER_V0_FALCON_ID_INVALID) { > ????????????????wpr_header_dump(&acr->subdev, hdr); > -???????????????if (!nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id)) > -???????????????????????return -ENOMEM; > +???????????????lsfw = nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)- > >falcon_id); > +???????????????if (IS_ERR(lsfw)) > +???????????????????????return PTR_ERR(lsfw); > ????????} > ? > ????????return 0; > diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c > b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c > index fb9132a39bb1..fd97a935a380 100644 > --- a/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c > +++ b/drivers/gpu/drm/nouveau/nvkm/subdev/acr/gp102.c > @@ -161,11 +161,13 @@ int > ?gp102_acr_wpr_parse(struct nvkm_acr *acr) > ?{ > ????????const struct wpr_header_v1 *hdr = (void *)acr->wpr_fw->data; > +???????struct nvkm_acr_lsfw *lsfw; > ? > ????????while (hdr->falcon_id != WPR_HEADER_V1_FALCON_ID_INVALID) { > ????????????????wpr_header_v1_dump(&acr->subdev, hdr); > -???????????????if (!nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)->falcon_id)) > -???????????????????????return -ENOMEM; > +???????????????lsfw = nvkm_acr_lsfw_add(NULL, acr, NULL, (hdr++)- > >falcon_id); > +???????????????if (IS_ERR(lsfw)) > +???????????????????????return PTR_ERR(lsfw); > ????????} > ? > ????????return 0;-- Cheers, Lyude Paul (she/her) Software Engineer at Red Hat