Skip to contentSkip to conversation

Coverity: nouveau_dp_irq(): Null pointer dereferences

DISCUSSION coverity-bot 3 participants 7 messages Nov 10, 2022 – Nov 14, 2022 Linux-next tree

lore
Share & tools
lore
#0 lore raw

Hello!

This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:

Mon Aug 31 19:10:08 2020 -0400

    a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Coverity reported the following:

*** CID 1527266: Null pointer dereferences (REVERSE_INULL) drivers/gpu/drm/nouveau/nouveau_dp.c:237 in nouveau_dp_irq()

231     	struct nouveau_encoder *outp = find_encoder(connector, DCB_OUTPUT_DP);
232     	struct nouveau_drm *drm = nouveau_drm(outp->base.base.dev);
233     	struct nv50_mstm *mstm;
234     	u64 hpd = 0;
235     	int ret;
236
vvv     CID 1527266:  Null pointer dereferences  (REVERSE_INULL)
vvv     Null-checking "outp" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
237     	if (!outp)
238     		return;

239
240 mstm = outp->dp.mstm;
241 NV_DEBUG(drm, "service %s\n", connector->name);
242

If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):

Addresses-Coverity-ID: 1527266 ("Null pointer dereferences")

Fixes a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Thanks for your attention!

Signature · 1 line
Coverity-bot
#1 lore raw
Quoted 11 lines · coverity-bot

Hello!

This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:

Mon Aug 31 19:10:08 2020 -0400

    a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Hi Kees, this looks like a good idea, but maybe double check the Cc list generation? I was Cc'd on four mails today that I thought were irrelevant to me.

Thanks,
Jani.

Quoted 30 lines

Coverity reported the following:

*** CID 1527266: Null pointer dereferences (REVERSE_INULL) drivers/gpu/drm/nouveau/nouveau_dp.c:237 in nouveau_dp_irq()

231     	struct nouveau_encoder *outp = find_encoder(connector, DCB_OUTPUT_DP);
232     	struct nouveau_drm *drm = nouveau_drm(outp->base.base.dev);
233     	struct nv50_mstm *mstm;
234     	u64 hpd = 0;
235     	int ret;
236
vvv     CID 1527266:  Null pointer dereferences  (REVERSE_INULL)
vvv     Null-checking "outp" suggests that it may be null, but it has already been dereferenced on all paths leading to the check.
237     	if (!outp)
238     		return;

239
240 mstm = outp->dp.mstm;
241 NV_DEBUG(drm, "service %s\n", connector->name);
242

If this is a false positive, please let us know so we can mark it as such, or teach the Coverity rules to be smarter. If not, please make sure fixes get into linux-next. :) For patches fixing this, please include these lines (but double-check the "Fixes" first):

Addresses-Coverity-ID: 1527266 ("Null pointer dereferences")

Fixes a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Thanks for your attention!

Signature · 1 line
Jani Nikula, Intel Open Source Graphics Center
author
#2 lore raw
Quoted 10 lines · Jani Nikula
Quoted 9 lines · coverity-bot

Hello!

This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:

Quoted 6 lines
Quoted 2 lines

Mon Aug 31 19:10:08 2020 -0400

    a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Hi Kees, this looks like a good idea, but maybe double check the Cc list generation? I was Cc'd on four mails today that I thought were irrelevant to me.

Hi!

Heh, I was recently asked to _expand_ the CC list. :)

For these last pass of reports, I added a get_maintainers.pl run to the identified commit. In this instance, the commit touched:

 drivers/gpu/drm/nouveau/dispnv04/disp.c     |    6 +
 drivers/gpu/drm/nouveau/dispnv50/disp.c     |  192 ++++++++++++++++++++++--------------------------
 drivers/gpu/drm/nouveau/nouveau_connector.c |   14 ---
 drivers/gpu/drm/nouveau/nouveau_display.c   |    2 
 drivers/gpu/drm/nouveau/nouveau_display.h   |    2 
 drivers/gpu/drm/nouveau/nouveau_dp.c        |  132 ++++++++++++++++++++++++++++-----
 drivers/gpu/drm/nouveau/nouveau_encoder.h   |   33 +++++++-
 7 files changed, 244 insertions(+), 137 deletions(-)

And the get_maintainers.pl rationale was:

Ben Skeggs <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:1/1=100%,commit_signer:6/16=38%,authored:4/16=25%,added_lines:23/124=19%,removed_lines:36/152=24%) Karol Herbst <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:2/1=100%)
Lyude Paul <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:9/16=56%,authored:6/16=38%,added_lines:92/124=74%,removed_lines:107/152=70%) David Airlie <[email protected]> (maintainer:DRM DRIVERS)
Daniel Vetter <[email protected]> (maintainer:DRM DRIVERS)
Ilia Mirkin <[email protected]> (commit_signer:1/1=100%,authored:1/1=100%,added_lines:2/2=100%,removed_lines:2/2=100%)
"Nathan E. Egge" <[email protected]> (commit_signer:1/1=100%)
Jani Nikula <[email protected]> (commit_signer:6/16=38%)
Dave Airlie <[email protected]> (commit_signer:5/16=31%)
Thomas Zimmermann <[email protected]> (commit_signer:4/16=25%,authored:4/16=25%)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)

Signature · 1 line
Kees Cook
#3 lore raw
Quoted 37 lines · Kees Cook
Quoted 10 lines · Jani Nikula
Quoted 9 lines · coverity-bot

Hello!

This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:

Quoted 6 lines
Quoted 2 lines

Mon Aug 31 19:10:08 2020 -0400

    a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Hi Kees, this looks like a good idea, but maybe double check the Cc list generation? I was Cc'd on four mails today that I thought were irrelevant to me.

Hi!

Heh, I was recently asked to _expand_ the CC list. :)

For these last pass of reports, I added a get_maintainers.pl run to the identified commit. In this instance, the commit touched:

 drivers/gpu/drm/nouveau/dispnv04/disp.c     |    6 +
 drivers/gpu/drm/nouveau/dispnv50/disp.c     |  192 ++++++++++++++++++++++--------------------------
 drivers/gpu/drm/nouveau/nouveau_connector.c |   14 ---
 drivers/gpu/drm/nouveau/nouveau_display.c   |    2
 drivers/gpu/drm/nouveau/nouveau_display.h   |    2
 drivers/gpu/drm/nouveau/nouveau_dp.c        |  132 ++++++++++++++++++++++++++++-----
 drivers/gpu/drm/nouveau/nouveau_encoder.h   |   33 +++++++-
 7 files changed, 244 insertions(+), 137 deletions(-)

And the get_maintainers.pl rationale was:

Quoted 13 lines

Ben Skeggs <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:1/1=100%,commit_signer:6/16=38%,authored:4/16=25%,added_lines:23/124=19%,removed_lines:36/152=24%) Karol Herbst <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:2/1=100%)
Lyude Paul <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:9/16=56%,authored:6/16=38%,added_lines:92/124=74%,removed_lines:107/152=70%) David Airlie <[email protected]> (maintainer:DRM DRIVERS)
Daniel Vetter <[email protected]> (maintainer:DRM DRIVERS)
Ilia Mirkin <[email protected]> (commit_signer:1/1=100%,authored:1/1=100%,added_lines:2/2=100%,removed_lines:2/2=100%)
"Nathan E. Egge" <[email protected]> (commit_signer:1/1=100%)
Jani Nikula <[email protected]> (commit_signer:6/16=38%)
Dave Airlie <[email protected]> (commit_signer:5/16=31%)
Thomas Zimmermann <[email protected]> (commit_signer:4/16=25%,authored:4/16=25%)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)

I'd say it's good enough to message supporters and the mailing lists for at least Nouveau code, maybe even all drm drivers.

Not sure what to do about actual maintainers, but I doubt Dave and Daniel want to be CCed on every Coverity report here either.

Karol

Quoted 4 lines

--
Kees Cook

author
#4 lore raw
Quoted 52 lines · Karol Herbst
Quoted 37 lines · Kees Cook
Quoted 10 lines · Jani Nikula
Quoted 9 lines · coverity-bot

Hello!

This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:

Quoted 6 lines
Quoted 2 lines

Mon Aug 31 19:10:08 2020 -0400

    a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Hi Kees, this looks like a good idea, but maybe double check the Cc list generation? I was Cc'd on four mails today that I thought were irrelevant to me.

Hi!

Heh, I was recently asked to _expand_ the CC list. :)

For these last pass of reports, I added a get_maintainers.pl run to the identified commit. In this instance, the commit touched:

 drivers/gpu/drm/nouveau/dispnv04/disp.c     |    6 +
 drivers/gpu/drm/nouveau/dispnv50/disp.c     |  192 ++++++++++++++++++++++--------------------------
 drivers/gpu/drm/nouveau/nouveau_connector.c |   14 ---
 drivers/gpu/drm/nouveau/nouveau_display.c   |    2
 drivers/gpu/drm/nouveau/nouveau_display.h   |    2
 drivers/gpu/drm/nouveau/nouveau_dp.c        |  132 ++++++++++++++++++++++++++++-----
 drivers/gpu/drm/nouveau/nouveau_encoder.h   |   33 +++++++-
 7 files changed, 244 insertions(+), 137 deletions(-)

And the get_maintainers.pl rationale was:

Quoted 13 lines

Ben Skeggs <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:1/1=100%,commit_signer:6/16=38%,authored:4/16=25%,added_lines:23/124=19%,removed_lines:36/152=24%) Karol Herbst <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:2/1=100%)
Lyude Paul <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:9/16=56%,authored:6/16=38%,added_lines:92/124=74%,removed_lines:107/152=70%) David Airlie <[email protected]> (maintainer:DRM DRIVERS)
Daniel Vetter <[email protected]> (maintainer:DRM DRIVERS)
Ilia Mirkin <[email protected]> (commit_signer:1/1=100%,authored:1/1=100%,added_lines:2/2=100%,removed_lines:2/2=100%)
"Nathan E. Egge" <[email protected]> (commit_signer:1/1=100%)
Jani Nikula <[email protected]> (commit_signer:6/16=38%)
Dave Airlie <[email protected]> (commit_signer:5/16=31%)
Thomas Zimmermann <[email protected]> (commit_signer:4/16=25%,authored:4/16=25%)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)

Quoted 2 lines

I'd say it's good enough to message supporters and the mailing lists for at least Nouveau code, maybe even all drm drivers.

i.e. leave out the commit_signer hits?

Quoted 2 lines

Not sure what to do about actual maintainers, but I doubt Dave and Daniel want to be CCed on every Coverity report here either.

I updated the CC logic based on this feedback:
https://lore.kernel.org/linux-hardening/[email protected]/

So maybe just mailing lists?

Signature · 1 line
Kees Cook
#5 lore raw
Quoted 54 lines · Kees Cook
Quoted 52 lines · Karol Herbst
Quoted 50 lines · Kees Cook
Quoted 10 lines · Jani Nikula
Quoted 9 lines · coverity-bot

Hello!

This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:

Quoted 6 lines
Quoted 2 lines

Mon Aug 31 19:10:08 2020 -0400

    a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Hi Kees, this looks like a good idea, but maybe double check the Cc list generation? I was Cc'd on four mails today that I thought were irrelevant to me.

Hi!

Heh, I was recently asked to _expand_ the CC list. :)

For these last pass of reports, I added a get_maintainers.pl run to the identified commit. In this instance, the commit touched:

 drivers/gpu/drm/nouveau/dispnv04/disp.c     |    6 +
 drivers/gpu/drm/nouveau/dispnv50/disp.c     |  192 ++++++++++++++++++++++--------------------------
 drivers/gpu/drm/nouveau/nouveau_connector.c |   14 ---
 drivers/gpu/drm/nouveau/nouveau_display.c   |    2
 drivers/gpu/drm/nouveau/nouveau_display.h   |    2
 drivers/gpu/drm/nouveau/nouveau_dp.c        |  132 ++++++++++++++++++++++++++++-----
 drivers/gpu/drm/nouveau/nouveau_encoder.h   |   33 +++++++-
 7 files changed, 244 insertions(+), 137 deletions(-)

And the get_maintainers.pl rationale was:

Ben Skeggs <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:1/1=100%,commit_signer:6/16=38%,authored:4/16=25%,added_lines:23/124=19%,removed_lines:36/152=24%) Karol Herbst <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:2/1=100%)
Lyude Paul <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:9/16=56%,authored:6/16=38%,added_lines:92/124=74%,removed_lines:107/152=70%) David Airlie <[email protected]> (maintainer:DRM DRIVERS)
Daniel Vetter <[email protected]> (maintainer:DRM DRIVERS)
Ilia Mirkin <[email protected]> (commit_signer:1/1=100%,authored:1/1=100%,added_lines:2/2=100%,removed_lines:2/2=100%)
"Nathan E. Egge" <[email protected]> (commit_signer:1/1=100%)
Jani Nikula <[email protected]> (commit_signer:6/16=38%)
Dave Airlie <[email protected]> (commit_signer:5/16=31%)
Thomas Zimmermann <[email protected]> (commit_signer:4/16=25%,authored:4/16=25%)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)

Quoted 5 lines
Quoted 2 lines

I'd say it's good enough to message supporters and the mailing lists for at least Nouveau code, maybe even all drm drivers.

i.e. leave out the commit_signer hits?

yes.

Quoted 8 lines
Quoted 2 lines

Not sure what to do about actual maintainers, but I doubt Dave and Daniel want to be CCed on every Coverity report here either.

I updated the CC logic based on this feedback:
https://lore.kernel.org/linux-hardening/[email protected]/

So maybe just mailing lists?

That should be good enough, but maybe the DRM subsystem is big enough so it's reasonable to add special rules. For Nouveau either way is fine.

Quoted 3 lines

--
Kees Cook

#6 lore raw
Quoted 55 lines · Karol Herbst
Quoted 54 lines · Kees Cook
Quoted 52 lines · Karol Herbst
Quoted 50 lines · Kees Cook
Quoted 10 lines · Jani Nikula
Quoted 9 lines · coverity-bot

Hello!

This is an experimental semi-automated report about issues detected by Coverity from a scan of next-20221110 as part of the linux-next scan project:
https://scan.coverity.com/projects/linux-next-weekly-scan

You're getting this email because you were associated with the identified lines of code (noted below) that were touched by commits:

Quoted 6 lines
Quoted 2 lines

Mon Aug 31 19:10:08 2020 -0400

    a0922278f83e ("drm/nouveau/kms/nv50-: Refactor and cleanup DP HPD handling")

Hi Kees, this looks like a good idea, but maybe double check the Cc list generation? I was Cc'd on four mails today that I thought were irrelevant to me.

Hi!

Heh, I was recently asked to _expand_ the CC list. :)

For these last pass of reports, I added a get_maintainers.pl run to the identified commit. In this instance, the commit touched:

 drivers/gpu/drm/nouveau/dispnv04/disp.c     |    6 +
 drivers/gpu/drm/nouveau/dispnv50/disp.c     |  192 ++++++++++++++++++++++--------------------------
 drivers/gpu/drm/nouveau/nouveau_connector.c |   14 ---
 drivers/gpu/drm/nouveau/nouveau_display.c   |    2
 drivers/gpu/drm/nouveau/nouveau_display.h   |    2
 drivers/gpu/drm/nouveau/nouveau_dp.c        |  132 ++++++++++++++++++++++++++++-----
 drivers/gpu/drm/nouveau/nouveau_encoder.h   |   33 +++++++-
 7 files changed, 244 insertions(+), 137 deletions(-)

And the get_maintainers.pl rationale was:

Ben Skeggs <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:1/1=100%,commit_signer:6/16=38%,authored:4/16=25%,added_lines:23/124=19%,removed_lines:36/152=24%) Karol Herbst <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:2/1=100%)
Lyude Paul <[email protected]> (supporter:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS,commit_signer:9/16=56%,authored:6/16=38%,added_lines:92/124=74%,removed_lines:107/152=70%) David Airlie <[email protected]> (maintainer:DRM DRIVERS)
Daniel Vetter <[email protected]> (maintainer:DRM DRIVERS)
Ilia Mirkin <[email protected]> (commit_signer:1/1=100%,authored:1/1=100%,added_lines:2/2=100%,removed_lines:2/2=100%)
"Nathan E. Egge" <[email protected]> (commit_signer:1/1=100%)
Jani Nikula <[email protected]> (commit_signer:6/16=38%)
Dave Airlie <[email protected]> (commit_signer:5/16=31%)
Thomas Zimmermann <[email protected]> (commit_signer:4/16=25%,authored:4/16=25%)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)
[email protected] (open list:DRM DRIVER FOR NVIDIA GEFORCE/QUADRO GPUS)

Quoted 7 lines
Quoted 5 lines
Quoted 2 lines

I'd say it's good enough to message supporters and the mailing lists for at least Nouveau code, maybe even all drm drivers.

i.e. leave out the commit_signer hits?

yes.

Agreed.

I understand the point of commit_signer, but I don't think get_maintainers.pl does a very good job with the heuristics, or filtering out "insignificant" contributions to the files being changed.

BR,
Jani.

Quoted 18 lines
Quoted 9 lines
Quoted 3 lines

Not sure what to do about actual maintainers, but I doubt Dave and Daniel want to be CCed on every Coverity report here either.

I updated the CC logic based on this feedback:
https://lore.kernel.org/linux-hardening/[email protected]/

So maybe just mailing lists?

That should be good enough, but maybe the DRM subsystem is big enough so it's reasonable to add special rules. For Nouveau either way is fine.

Quoted 3 lines

--
Kees Cook

Signature · 1 line
Jani Nikula, Intel Open Source Graphics Center