lkml.org 
[lkml]   [2015]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH V4 7/8] PCI: OF: Move of_pci_dma_configure() to pci_dma_configure()
Hi Suravee,

On Wed, Oct 21, 2015 at 08:52:10AM -0700, Suravee Suthikulpanit wrote:
> This patch move of_pci_dma_configure() to a more generic
> pci_dma_configure(), which can be extended by non-OF code (e.g. ACPI).

> -void of_pci_dma_configure(struct pci_dev *pci_dev)
> -{
> - struct device *dev = &pci_dev->dev;
> - struct device *bridge = pci_get_host_bridge_device(pci_dev);
> -
> - if (!bridge->parent)
> - return;
> -
> - of_dma_configure(dev, bridge->parent->of_node);
> - pci_put_host_bridge_device(bridge);
> -}

> +static void pci_dma_configure(struct pci_dev *dev)
> +{
> + struct device *bridge = pci_get_host_bridge_device(dev);
> +
> + if (IS_ENABLED(CONFIG_OF) && dev->dev.of_node) {
> + if (!bridge->parent)
> + return;

Don't we leak a bridge reference here? This looks like it was a problem in
the original code, not something you added. Ideally I guess I would add a
new patch that only fixes the leak in the original code, followed by this
patch that moves it from of_pci_dma_configure() to pci_dma_configure().

> +
> + of_dma_configure(&dev->dev, bridge->parent->of_node);
> + }
> +
> + pci_put_host_bridge_device(bridge);
> +}


\
 
 \ /
  Last update: 2015-10-27 16:01    [W:0.146 / U:0.436 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site