public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks
@ 2026-04-20  0:25 Yuho Choi
  2026-04-20  6:21 ` Thomas Zimmermann
  2026-04-21  5:58 ` [PATCH v1] " Thomas Zimmermann
  0 siblings, 2 replies; 6+ messages in thread
From: Yuho Choi @ 2026-04-20  0:25 UTC (permalink / raw)
  To: Thomas Zimmermann, Javier Martinez Canillas, dri-devel
  Cc: Maarten Lankhorst, Maxime Ripard, David Airlie, Simona Vetter,
	linux-kernel, Myeonghun Pak, Ijae Kim, Taegyu Kim, Yuho Choi

display_get_pci_dev_of() gets a referenced PCI device via
pci_get_device(). Drop that reference when pci_enable_device() fails and
release it during the managed teardown path after pci_disable_device().

Without that, ofdrm leaks the pci_dev reference on both the error path
and the normal cleanup path.

Fixes: c8a17756c425 ("drm/ofdrm: Add ofdrm for Open Firmware framebuffers")
Co-developed-by: Myeonghun Pak <mhun512@gmail.com>
Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
Co-developed-by: Ijae Kim <ae878000@gmail.com>
Signed-off-by: Ijae Kim <ae878000@gmail.com>
Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
---
 drivers/gpu/drm/sysfb/ofdrm.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/drivers/gpu/drm/sysfb/ofdrm.c b/drivers/gpu/drm/sysfb/ofdrm.c
index d38ba70f4e0d3..247cf13c80a05 100644
--- a/drivers/gpu/drm/sysfb/ofdrm.c
+++ b/drivers/gpu/drm/sysfb/ofdrm.c
@@ -350,6 +350,7 @@ static void ofdrm_pci_release(void *data)
 	struct pci_dev *pcidev = data;
 
 	pci_disable_device(pcidev);
+	pci_dev_put(pcidev);
 }
 
 static int ofdrm_device_init_pci(struct ofdrm_device *odev)
@@ -375,6 +376,7 @@ static int ofdrm_device_init_pci(struct ofdrm_device *odev)
 	if (ret) {
 		drm_err(dev, "pci_enable_device(%s) failed: %d\n",
 			dev_name(&pcidev->dev), ret);
+		pci_dev_put(pcidev);
 		return ret;
 	}
 	ret = devm_add_action_or_reset(&pdev->dev, ofdrm_pci_release, pcidev);
-- 
2.50.1 (Apple Git-155)


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks
  2026-04-20  0:25 [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks Yuho Choi
@ 2026-04-20  6:21 ` Thomas Zimmermann
  2026-04-20 20:55   ` 최유호
  2026-04-21  5:58 ` [PATCH v1] " Thomas Zimmermann
  1 sibling, 1 reply; 6+ messages in thread
From: Thomas Zimmermann @ 2026-04-20  6:21 UTC (permalink / raw)
  To: Yuho Choi, Javier Martinez Canillas, dri-devel
  Cc: Maarten Lankhorst, Maxime Ripard, David Airlie, Simona Vetter,
	linux-kernel, Myeonghun Pak, Ijae Kim, Taegyu Kim

Hi,

thanks for the patch.

Am 20.04.26 um 02:25 schrieb Yuho Choi:
> display_get_pci_dev_of() gets a referenced PCI device via
> pci_get_device(). Drop that reference when pci_enable_device() fails and
> release it during the managed teardown path after pci_disable_device().
>
> Without that, ofdrm leaks the pci_dev reference on both the error path
> and the normal cleanup path.

Did you use an AI to find or fix this bug?

https://docs.kernel.org/process/coding-assistants.html

Best regards
Thomas

>
> Fixes: c8a17756c425 ("drm/ofdrm: Add ofdrm for Open Firmware framebuffers")
> Co-developed-by: Myeonghun Pak <mhun512@gmail.com>
> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
> Co-developed-by: Ijae Kim <ae878000@gmail.com>
> Signed-off-by: Ijae Kim <ae878000@gmail.com>
> Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
> Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
> Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
> ---
>   drivers/gpu/drm/sysfb/ofdrm.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/sysfb/ofdrm.c b/drivers/gpu/drm/sysfb/ofdrm.c
> index d38ba70f4e0d3..247cf13c80a05 100644
> --- a/drivers/gpu/drm/sysfb/ofdrm.c
> +++ b/drivers/gpu/drm/sysfb/ofdrm.c
> @@ -350,6 +350,7 @@ static void ofdrm_pci_release(void *data)
>   	struct pci_dev *pcidev = data;
>   
>   	pci_disable_device(pcidev);
> +	pci_dev_put(pcidev);
>   }
>   
>   static int ofdrm_device_init_pci(struct ofdrm_device *odev)
> @@ -375,6 +376,7 @@ static int ofdrm_device_init_pci(struct ofdrm_device *odev)
>   	if (ret) {
>   		drm_err(dev, "pci_enable_device(%s) failed: %d\n",
>   			dev_name(&pcidev->dev), ret);
> +		pci_dev_put(pcidev);
>   		return ret;
>   	}
>   	ret = devm_add_action_or_reset(&pdev->dev, ofdrm_pci_release, pcidev);

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks
  2026-04-20  6:21 ` Thomas Zimmermann
@ 2026-04-20 20:55   ` 최유호
  2026-04-21  5:54     ` Thomas Zimmermann
  2026-04-21 11:33     ` Markus Elfring
  0 siblings, 2 replies; 6+ messages in thread
From: 최유호 @ 2026-04-20 20:55 UTC (permalink / raw)
  To: Thomas Zimmermann
  Cc: Javier Martinez Canillas, dri-devel, Maarten Lankhorst,
	Maxime Ripard, David Airlie, Simona Vetter, linux-kernel,
	Myeonghun Pak, Ijae Kim, Taegyu Kim

Dear Thomas,

This issue was identified during our ongoing static-analysis research
while reviewing
kernel code. Specifically, an experimental static analysis tool found
that we are currently
developing. The tool is not public yet, so I prefer not to disclose
further project details
at this stage. AI was used only for cross-review, not as the primary
means of finding or
fixing the bug. I manually reviewed the code and verified the issue
before sending
the patch.

Best regards,
Yuho Choi


On Mon, 20 Apr 2026 at 02:21, Thomas Zimmermann <tzimmermann@suse.de> wrote:
>
> Hi,
>
> thanks for the patch.
>
> Am 20.04.26 um 02:25 schrieb Yuho Choi:
> > display_get_pci_dev_of() gets a referenced PCI device via
> > pci_get_device(). Drop that reference when pci_enable_device() fails and
> > release it during the managed teardown path after pci_disable_device().
> >
> > Without that, ofdrm leaks the pci_dev reference on both the error path
> > and the normal cleanup path.
>
> Did you use an AI to find or fix this bug?
>
> https://docs.kernel.org/process/coding-assistants.html
>
> Best regards
> Thomas
>
> >
> > Fixes: c8a17756c425 ("drm/ofdrm: Add ofdrm for Open Firmware framebuffers")
> > Co-developed-by: Myeonghun Pak <mhun512@gmail.com>
> > Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
> > Co-developed-by: Ijae Kim <ae878000@gmail.com>
> > Signed-off-by: Ijae Kim <ae878000@gmail.com>
> > Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
> > Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
> > Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
> > ---
> >   drivers/gpu/drm/sysfb/ofdrm.c | 2 ++
> >   1 file changed, 2 insertions(+)
> >
> > diff --git a/drivers/gpu/drm/sysfb/ofdrm.c b/drivers/gpu/drm/sysfb/ofdrm.c
> > index d38ba70f4e0d3..247cf13c80a05 100644
> > --- a/drivers/gpu/drm/sysfb/ofdrm.c
> > +++ b/drivers/gpu/drm/sysfb/ofdrm.c
> > @@ -350,6 +350,7 @@ static void ofdrm_pci_release(void *data)
> >       struct pci_dev *pcidev = data;
> >
> >       pci_disable_device(pcidev);
> > +     pci_dev_put(pcidev);
> >   }
> >
> >   static int ofdrm_device_init_pci(struct ofdrm_device *odev)
> > @@ -375,6 +376,7 @@ static int ofdrm_device_init_pci(struct ofdrm_device *odev)
> >       if (ret) {
> >               drm_err(dev, "pci_enable_device(%s) failed: %d\n",
> >                       dev_name(&pcidev->dev), ret);
> > +             pci_dev_put(pcidev);
> >               return ret;
> >       }
> >       ret = devm_add_action_or_reset(&pdev->dev, ofdrm_pci_release, pcidev);
>
> --
> --
> Thomas Zimmermann
> Graphics Driver Developer
> SUSE Software Solutions Germany GmbH
> Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
> GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)
>
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks
  2026-04-20 20:55   ` 최유호
@ 2026-04-21  5:54     ` Thomas Zimmermann
  2026-04-21 11:33     ` Markus Elfring
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Zimmermann @ 2026-04-21  5:54 UTC (permalink / raw)
  To: 최유호
  Cc: Javier Martinez Canillas, dri-devel, Maarten Lankhorst,
	Maxime Ripard, David Airlie, Simona Vetter, linux-kernel,
	Myeonghun Pak, Ijae Kim, Taegyu Kim

Hi

Am 20.04.26 um 22:55 schrieb 최유호:
> Dear Thomas,
>
> This issue was identified during our ongoing static-analysis research
> while reviewing
> kernel code. Specifically, an experimental static analysis tool found
> that we are currently
> developing. The tool is not public yet, so I prefer not to disclose
> further project details
> at this stage. AI was used only for cross-review, not as the primary
> means of finding or
> fixing the bug. I manually reviewed the code and verified the issue
> before sending
> the patch.

Thanks.

Best regards
Thomas

>
> Best regards,
> Yuho Choi
>
>
> On Mon, 20 Apr 2026 at 02:21, Thomas Zimmermann <tzimmermann@suse.de> wrote:
>> Hi,
>>
>> thanks for the patch.
>>
>> Am 20.04.26 um 02:25 schrieb Yuho Choi:
>>> display_get_pci_dev_of() gets a referenced PCI device via
>>> pci_get_device(). Drop that reference when pci_enable_device() fails and
>>> release it during the managed teardown path after pci_disable_device().
>>>
>>> Without that, ofdrm leaks the pci_dev reference on both the error path
>>> and the normal cleanup path.
>> Did you use an AI to find or fix this bug?
>>
>> https://docs.kernel.org/process/coding-assistants.html
>>
>> Best regards
>> Thomas
>>
>>> Fixes: c8a17756c425 ("drm/ofdrm: Add ofdrm for Open Firmware framebuffers")
>>> Co-developed-by: Myeonghun Pak <mhun512@gmail.com>
>>> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
>>> Co-developed-by: Ijae Kim <ae878000@gmail.com>
>>> Signed-off-by: Ijae Kim <ae878000@gmail.com>
>>> Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
>>> Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
>>> Signed-off-by: Yuho Choi <dbgh9129@gmail.com>
>>> ---
>>>    drivers/gpu/drm/sysfb/ofdrm.c | 2 ++
>>>    1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/gpu/drm/sysfb/ofdrm.c b/drivers/gpu/drm/sysfb/ofdrm.c
>>> index d38ba70f4e0d3..247cf13c80a05 100644
>>> --- a/drivers/gpu/drm/sysfb/ofdrm.c
>>> +++ b/drivers/gpu/drm/sysfb/ofdrm.c
>>> @@ -350,6 +350,7 @@ static void ofdrm_pci_release(void *data)
>>>        struct pci_dev *pcidev = data;
>>>
>>>        pci_disable_device(pcidev);
>>> +     pci_dev_put(pcidev);
>>>    }
>>>
>>>    static int ofdrm_device_init_pci(struct ofdrm_device *odev)
>>> @@ -375,6 +376,7 @@ static int ofdrm_device_init_pci(struct ofdrm_device *odev)
>>>        if (ret) {
>>>                drm_err(dev, "pci_enable_device(%s) failed: %d\n",
>>>                        dev_name(&pcidev->dev), ret);
>>> +             pci_dev_put(pcidev);
>>>                return ret;
>>>        }
>>>        ret = devm_add_action_or_reset(&pdev->dev, ofdrm_pci_release, pcidev);
>> --
>> --
>> Thomas Zimmermann
>> Graphics Driver Developer
>> SUSE Software Solutions Germany GmbH
>> Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
>> GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)
>>
>>

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks
  2026-04-20  0:25 [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks Yuho Choi
  2026-04-20  6:21 ` Thomas Zimmermann
@ 2026-04-21  5:58 ` Thomas Zimmermann
  1 sibling, 0 replies; 6+ messages in thread
From: Thomas Zimmermann @ 2026-04-21  5:58 UTC (permalink / raw)
  To: Yuho Choi, Javier Martinez Canillas, dri-devel
  Cc: Maarten Lankhorst, Maxime Ripard, David Airlie, Simona Vetter,
	linux-kernel, Myeonghun Pak, Ijae Kim, Taegyu Kim



Am 20.04.26 um 02:25 schrieb Yuho Choi:
> display_get_pci_dev_of() gets a referenced PCI device via
> pci_get_device(). Drop that reference when pci_enable_device() fails and
> release it during the managed teardown path after pci_disable_device().
>
> Without that, ofdrm leaks the pci_dev reference on both the error path
> and the normal cleanup path.
>
> Fixes: c8a17756c425 ("drm/ofdrm: Add ofdrm for Open Firmware framebuffers")
> Co-developed-by: Myeonghun Pak <mhun512@gmail.com>
> Signed-off-by: Myeonghun Pak <mhun512@gmail.com>
> Co-developed-by: Ijae Kim <ae878000@gmail.com>
> Signed-off-by: Ijae Kim <ae878000@gmail.com>
> Co-developed-by: Taegyu Kim <tmk5904@psu.edu>
> Signed-off-by: Taegyu Kim <tmk5904@psu.edu>
> Signed-off-by: Yuho Choi <dbgh9129@gmail.com>

Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>

> ---
>   drivers/gpu/drm/sysfb/ofdrm.c | 2 ++
>   1 file changed, 2 insertions(+)
>
> diff --git a/drivers/gpu/drm/sysfb/ofdrm.c b/drivers/gpu/drm/sysfb/ofdrm.c
> index d38ba70f4e0d3..247cf13c80a05 100644
> --- a/drivers/gpu/drm/sysfb/ofdrm.c
> +++ b/drivers/gpu/drm/sysfb/ofdrm.c
> @@ -350,6 +350,7 @@ static void ofdrm_pci_release(void *data)
>   	struct pci_dev *pcidev = data;
>   
>   	pci_disable_device(pcidev);
> +	pci_dev_put(pcidev);
>   }
>   
>   static int ofdrm_device_init_pci(struct ofdrm_device *odev)
> @@ -375,6 +376,7 @@ static int ofdrm_device_init_pci(struct ofdrm_device *odev)
>   	if (ret) {
>   		drm_err(dev, "pci_enable_device(%s) failed: %d\n",
>   			dev_name(&pcidev->dev), ret);
> +		pci_dev_put(pcidev);
>   		return ret;
>   	}
>   	ret = devm_add_action_or_reset(&pdev->dev, ofdrm_pci_release, pcidev);

-- 
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, Werner Knoblich, (HRB 36809, AG Nürnberg)



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: drm/sysfb: ofdrm: fix PCI device reference leaks
  2026-04-20 20:55   ` 최유호
  2026-04-21  5:54     ` Thomas Zimmermann
@ 2026-04-21 11:33     ` Markus Elfring
  1 sibling, 0 replies; 6+ messages in thread
From: Markus Elfring @ 2026-04-21 11:33 UTC (permalink / raw)
  To: Yuho Choi, Taegyu Kim, Myeonghun Pak, Ijae Kim, dri-devel
  Cc: LKML, David Airlie, Javier Martinez Canillas, Maarten Lankhorst,
	Maxime Ripard, Simona Vetter, Thomas Zimmermann

> This issue was identified during our ongoing static-analysis research
> while reviewing kernel code. Specifically, an experimental static analysis tool found
> that we are currently developing. The tool is not public yet, so I prefer not to disclose
> further project details at this stage. …

Will any additional background information become available?
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/researcher-guidelines.rst?h=v7.0#n5

Regards,
Markus

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2026-04-21 11:34 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-20  0:25 [PATCH v1] drm/sysfb: ofdrm: fix PCI device reference leaks Yuho Choi
2026-04-20  6:21 ` Thomas Zimmermann
2026-04-20 20:55   ` 최유호
2026-04-21  5:54     ` Thomas Zimmermann
2026-04-21 11:33     ` Markus Elfring
2026-04-21  5:58 ` [PATCH v1] " Thomas Zimmermann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox