Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Sep 2019 09:23:05 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-11@freebsd.org
Subject:   svn commit: r351839 - stable/11/sys/compat/linuxkpi/common/src
Message-ID:  <201909050923.x859N5XR022392@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: hselasky
Date: Thu Sep  5 09:23:05 2019
New Revision: 351839
URL: https://svnweb.freebsd.org/changeset/base/351839

Log:
  MFC r347387:
  Fix memory leak of PCI BUS structure in the LinuxKPI.
  
  Sponsored by:	Mellanox Technologies

Modified:
  stable/11/sys/compat/linuxkpi/common/src/linux_pci.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/11/sys/compat/linuxkpi/common/src/linux_pci.c
==============================================================================
--- stable/11/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Sep  5 09:20:15 2019	(r351838)
+++ stable/11/sys/compat/linuxkpi/common/src/linux_pci.c	Thu Sep  5 09:23:05 2019	(r351839)
@@ -171,12 +171,10 @@ linux_pci_attach(device_t dev)
 		pdev->dev.irq = LINUX_IRQ_INVALID;
 	pdev->irq = pdev->dev.irq;
 
-	if (pdev->bus == NULL) {
-		pbus = malloc(sizeof(*pbus), M_DEVBUF, M_WAITOK | M_ZERO);
-		pbus->self = pdev;
-		pbus->number = pci_get_bus(dev);
-		pdev->bus = pbus;
-	}
+	pbus = malloc(sizeof(*pbus), M_DEVBUF, M_WAITOK | M_ZERO);
+	pbus->self = pdev;
+	pbus->number = pci_get_bus(dev);
+	pdev->bus = pbus;
 
 	spin_lock(&pci_lock);
 	list_add(&pdev->links, &pci_devices);
@@ -184,6 +182,7 @@ linux_pci_attach(device_t dev)
 
 	error = pdrv->probe(pdev, id);
 	if (error) {
+		free(pdev->bus, M_DEVBUF);
 		spin_lock(&pci_lock);
 		list_del(&pdev->links);
 		spin_unlock(&pci_lock);
@@ -202,6 +201,7 @@ linux_pci_detach(device_t dev)
 	pdev = device_get_softc(dev);
 
 	pdev->pdrv->remove(pdev);
+	free(pdev->bus, M_DEVBUF);
 
 	spin_lock(&pci_lock);
 	list_del(&pdev->links);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201909050923.x859N5XR022392>