Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f72e1112 authored by Bjorn Helgaas's avatar Bjorn Helgaas
Browse files

Merge branch 'pci/deletion' into next

* pci/deletion:
  PCI/portdrv: Remove extra get_device()/put_device() for pcie_device
  PCI/portdrv: Add put_device() after device_register() failure
  PCI/portdrv: Cleanup error paths
parents 9dc1d43f e75f34ce
Loading
Loading
Loading
Loading
+13 −14
Original line number Diff line number Diff line
@@ -344,13 +344,14 @@ static int pcie_device_init(struct pci_dev *pdev, int service, int irq)
	device_enable_async_suspend(device);

	retval = device_register(device);
	if (retval)
		kfree(pcie);
	else
		get_device(device);
	if (retval) {
		put_device(device);
		return retval;
	}

	return 0;
}

/**
 * pcie_port_device_register - register PCI Express port
 * @dev: PCI Express port to register
@@ -454,10 +455,8 @@ int pcie_port_device_resume(struct device *dev)

static int remove_iter(struct device *dev, void *data)
{
	if (dev->bus == &pcie_port_bus_type) {
		put_device(dev);
	if (dev->bus == &pcie_port_bus_type)
		device_unregister(dev);
	}
	return 0;
}

@@ -498,12 +497,12 @@ static int pcie_port_probe_service(struct device *dev)

	pciedev = to_pcie_device(dev);
	status = driver->probe(pciedev);
	if (!status) {
		dev_printk(KERN_DEBUG, dev, "service driver %s loaded\n",
			driver->name);
		get_device(dev);
	}
	if (status)
		return status;

	dev_printk(KERN_DEBUG, dev, "service driver %s loaded\n", driver->name);
	get_device(dev);
	return 0;
}

/**