Message ID | 20210124232826.1879-1-dmitry.baryshkov@linaro.org (mailing list archive) |
---|---|
State | Accepted |
Commit | c99e755a4a4c165cad6effb39faffd0f3377c02d |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | [v2] PCI: free of node in pci_scan_device's error path | expand |
On Mon, Jan 25, 2021 at 02:28:26AM +0300, Dmitry Baryshkov wrote: > In the pci_scan_device() if pci_setup_device() fails for any reason, the > code will not release device's of_node by calling pci_release_of_node(). > Fix that by calling the release function. > > Fixes: 98d9f30c820d ("pci/of: Match PCI devices to OF nodes dynamically") > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > --- > > Changes since v1: > - Changed the order of Fixes and S-o-B tags. > > --- > drivers/pci/probe.c | 1 + > 1 file changed, 1 insertion(+) > Thanks, Reviewed-by: Leon Romanovsky <leonro@nvidia.com>
On Mon, Jan 25, 2021 at 02:28:26AM +0300, Dmitry Baryshkov wrote: > In the pci_scan_device() if pci_setup_device() fails for any reason, the > code will not release device's of_node by calling pci_release_of_node(). > Fix that by calling the release function. > > Fixes: 98d9f30c820d ("pci/of: Match PCI devices to OF nodes dynamically") > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> Applied with Leon's reviewed-by to pci/enumeration for v5.13, thanks! > --- > > Changes since v1: > - Changed the order of Fixes and S-o-B tags. > > --- > drivers/pci/probe.c | 1 + > 1 file changed, 1 insertion(+) > > > diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c > index 953f15abc850..be51670572fa 100644 > --- a/drivers/pci/probe.c > +++ b/drivers/pci/probe.c > @@ -2353,6 +2353,7 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn) > pci_set_of_node(dev); > > if (pci_setup_device(dev)) { > + pci_release_of_node(dev); > pci_bus_put(dev->bus); > kfree(dev); > return NULL; > -- > 2.29.2 >
diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c index 953f15abc850..be51670572fa 100644 --- a/drivers/pci/probe.c +++ b/drivers/pci/probe.c @@ -2353,6 +2353,7 @@ static struct pci_dev *pci_scan_device(struct pci_bus *bus, int devfn) pci_set_of_node(dev); if (pci_setup_device(dev)) { + pci_release_of_node(dev); pci_bus_put(dev->bus); kfree(dev); return NULL;
In the pci_scan_device() if pci_setup_device() fails for any reason, the code will not release device's of_node by calling pci_release_of_node(). Fix that by calling the release function. Fixes: 98d9f30c820d ("pci/of: Match PCI devices to OF nodes dynamically") Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> --- Changes since v1: - Changed the order of Fixes and S-o-B tags. --- drivers/pci/probe.c | 1 + 1 file changed, 1 insertion(+)