diff mbox series

PCI: Free released resource

Message ID 20230906110846.225369-1-ross.lagerwall@citrix.com (mailing list archive)
State Accepted
Commit 8ec9c1d5d0a5a4744516adb483b97a238892f9d5
Delegated to: Bjorn Helgaas
Headers show
Series PCI: Free released resource | expand

Commit Message

Ross Lagerwall Sept. 6, 2023, 11:08 a.m. UTC
release_resource() doesn't actually free the resource or resource list
entry so free the resource list entry to avoid a leak.

Fixes: e54223275ba1 ("PCI: Release resource invalidated by coalescing")
Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
Reported-by: Kalle Valo <kvalo@kernel.org>
Closes: https://lore.kernel.org/r/878r9sga1t.fsf@kernel.org/
Tested-by: Kalle Valo <kvalo@kernel.org>
Cc: stable@vger.kernel.org      # v5.16+
---
 drivers/pci/probe.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Bjorn Helgaas Sept. 6, 2023, 8:04 p.m. UTC | #1
On Wed, Sep 06, 2023 at 12:08:46PM +0100, Ross Lagerwall wrote:
> release_resource() doesn't actually free the resource or resource list
> entry so free the resource list entry to avoid a leak.
> 
> Fixes: e54223275ba1 ("PCI: Release resource invalidated by coalescing")
> Signed-off-by: Ross Lagerwall <ross.lagerwall@citrix.com>
> Reported-by: Kalle Valo <kvalo@kernel.org>
> Closes: https://lore.kernel.org/r/878r9sga1t.fsf@kernel.org/
> Tested-by: Kalle Valo <kvalo@kernel.org>
> Cc: stable@vger.kernel.org      # v5.16+

Applied to for-linus for v6.6-rc1.

> ---
>  drivers/pci/probe.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
> index ab2a4a3a4c06..795534589b98 100644
> --- a/drivers/pci/probe.c
> +++ b/drivers/pci/probe.c
> @@ -997,6 +997,7 @@ static int pci_register_host_bridge(struct pci_host_bridge *bridge)
>  		res = window->res;
>  		if (!res->flags && !res->start && !res->end) {
>  			release_resource(res);
> +			resource_list_destroy_entry(window);
>  			continue;
>  		}
>  
> -- 
> 2.41.0
>
diff mbox series

Patch

diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
index ab2a4a3a4c06..795534589b98 100644
--- a/drivers/pci/probe.c
+++ b/drivers/pci/probe.c
@@ -997,6 +997,7 @@  static int pci_register_host_bridge(struct pci_host_bridge *bridge)
 		res = window->res;
 		if (!res->flags && !res->start && !res->end) {
 			release_resource(res);
+			resource_list_destroy_entry(window);
 			continue;
 		}