diff mbox series

drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data()

Message ID 20250305112038.43852-1-i.abramov@mt-integration.ru (mailing list archive)
State New
Headers show
Series drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data() | expand

Commit Message

Ivan Abramov March 5, 2025, 11:20 a.m. UTC
Since pci_get_domain_bus_and_slot() can return NULL, add NULL check for
pci_gfx_root in the mid_get_vbt_data().

This change is similar to the checks implemented in mid_get_fuse_settings()
and mid_get_pci_revID(), which were introduced by commit 0cecdd818cd7
("gma500: Final enables for Oaktrail") as "additional minor
bulletproofing".

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: ba99d8348864 ("drm/gma500: Deprecate pci_get_bus_and_slot()")

Signed-off-by: Ivan Abramov <i.abramov@mt-integration.ru>
---
 drivers/gpu/drm/gma500/mid_bios.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Patrik Jakobsson March 6, 2025, 10:02 a.m. UTC | #1
On Wed, Mar 5, 2025 at 12:20 PM Ivan Abramov
<i.abramov@mt-integration.ru> wrote:
>
> Since pci_get_domain_bus_and_slot() can return NULL, add NULL check for
> pci_gfx_root in the mid_get_vbt_data().
>
> This change is similar to the checks implemented in mid_get_fuse_settings()
> and mid_get_pci_revID(), which were introduced by commit 0cecdd818cd7
> ("gma500: Final enables for Oaktrail") as "additional minor
> bulletproofing".
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: ba99d8348864 ("drm/gma500: Deprecate pci_get_bus_and_slot()")

Patch looks good but pci_get_bus_and_slot() also returned a struct
pci_dev so the issue was present before ba99d8348864.
The correct fixes tag should be:
Fixes: f910b411053f ("gma500: Add the glue to the various BIOS and
firmware interfaces")

-Patrik

>
> Signed-off-by: Ivan Abramov <i.abramov@mt-integration.ru>
> ---
>  drivers/gpu/drm/gma500/mid_bios.c | 5 +++++
>  1 file changed, 5 insertions(+)
>
> diff --git a/drivers/gpu/drm/gma500/mid_bios.c b/drivers/gpu/drm/gma500/mid_bios.c
> index 7e76790c6a81..cba97d7db131 100644
> --- a/drivers/gpu/drm/gma500/mid_bios.c
> +++ b/drivers/gpu/drm/gma500/mid_bios.c
> @@ -279,6 +279,11 @@ static void mid_get_vbt_data(struct drm_psb_private *dev_priv)
>                                             0, PCI_DEVFN(2, 0));
>         int ret = -1;
>
> +       if (pci_gfx_root == NULL) {
> +               WARN_ON(1);
> +               return;
> +       }
> +
>         /* Get the address of the platform config vbt */
>         pci_read_config_dword(pci_gfx_root, 0xFC, &addr);
>         pci_dev_put(pci_gfx_root);
> --
> 2.48.1
>
diff mbox series

Patch

diff --git a/drivers/gpu/drm/gma500/mid_bios.c b/drivers/gpu/drm/gma500/mid_bios.c
index 7e76790c6a81..cba97d7db131 100644
--- a/drivers/gpu/drm/gma500/mid_bios.c
+++ b/drivers/gpu/drm/gma500/mid_bios.c
@@ -279,6 +279,11 @@  static void mid_get_vbt_data(struct drm_psb_private *dev_priv)
 					    0, PCI_DEVFN(2, 0));
 	int ret = -1;
 
+	if (pci_gfx_root == NULL) {
+		WARN_ON(1);
+		return;
+	}
+
 	/* Get the address of the platform config vbt */
 	pci_read_config_dword(pci_gfx_root, 0xFC, &addr);
 	pci_dev_put(pci_gfx_root);