Commit 8766c815 authored by Sarah Sharp's avatar Sarah Sharp

usb: Make usb_hcd_pci_probe labels more descriptive.

Make the labels for the goto statements in usb_hcd_pci_probe()
describe the cleanup they do, rather than being numbered err[1-4].
This makes it easier to add error handling later.

The error handling for this function looks a little fishy, since
set_hs_companion() isn't called until the very end of the function, and
clear_hs_companion() is called if this function fails earlier than that.
But it should be harmless to clear a NULL pointer, so leave the error
handling as-is.
Signed-off-by: default avatarSarah Sharp <sarah.a.sharp@linux.intel.com>
parent b02d0ed6
...@@ -192,13 +192,13 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) ...@@ -192,13 +192,13 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
"Found HC with no IRQ. Check BIOS/PCI %s setup!\n", "Found HC with no IRQ. Check BIOS/PCI %s setup!\n",
pci_name(dev)); pci_name(dev));
retval = -ENODEV; retval = -ENODEV;
goto err1; goto disable_pci;
} }
hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev)); hcd = usb_create_hcd(driver, &dev->dev, pci_name(dev));
if (!hcd) { if (!hcd) {
retval = -ENOMEM; retval = -ENOMEM;
goto err1; goto disable_pci;
} }
if (driver->flags & HCD_MEMORY) { if (driver->flags & HCD_MEMORY) {
...@@ -209,13 +209,13 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) ...@@ -209,13 +209,13 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
driver->description)) { driver->description)) {
dev_dbg(&dev->dev, "controller already in use\n"); dev_dbg(&dev->dev, "controller already in use\n");
retval = -EBUSY; retval = -EBUSY;
goto err2; goto clear_companion;
} }
hcd->regs = ioremap_nocache(hcd->rsrc_start, hcd->rsrc_len); hcd->regs = ioremap_nocache(hcd->rsrc_start, hcd->rsrc_len);
if (hcd->regs == NULL) { if (hcd->regs == NULL) {
dev_dbg(&dev->dev, "error mapping memory\n"); dev_dbg(&dev->dev, "error mapping memory\n");
retval = -EFAULT; retval = -EFAULT;
goto err3; goto release_mem_region;
} }
} else { } else {
...@@ -236,7 +236,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) ...@@ -236,7 +236,7 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
if (region == PCI_ROM_RESOURCE) { if (region == PCI_ROM_RESOURCE) {
dev_dbg(&dev->dev, "no i/o regions available\n"); dev_dbg(&dev->dev, "no i/o regions available\n");
retval = -EBUSY; retval = -EBUSY;
goto err2; goto clear_companion;
} }
} }
...@@ -244,24 +244,24 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id) ...@@ -244,24 +244,24 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
retval = usb_add_hcd(hcd, dev->irq, IRQF_DISABLED | IRQF_SHARED); retval = usb_add_hcd(hcd, dev->irq, IRQF_DISABLED | IRQF_SHARED);
if (retval != 0) if (retval != 0)
goto err4; goto unmap_registers;
set_hs_companion(dev, hcd); set_hs_companion(dev, hcd);
if (pci_dev_run_wake(dev)) if (pci_dev_run_wake(dev))
pm_runtime_put_noidle(&dev->dev); pm_runtime_put_noidle(&dev->dev);
return retval; return retval;
err4: unmap_registers:
if (driver->flags & HCD_MEMORY) { if (driver->flags & HCD_MEMORY) {
iounmap(hcd->regs); iounmap(hcd->regs);
err3: release_mem_region:
release_mem_region(hcd->rsrc_start, hcd->rsrc_len); release_mem_region(hcd->rsrc_start, hcd->rsrc_len);
} else } else
release_region(hcd->rsrc_start, hcd->rsrc_len); release_region(hcd->rsrc_start, hcd->rsrc_len);
err2: clear_companion:
clear_hs_companion(dev, hcd); clear_hs_companion(dev, hcd);
usb_put_hcd(hcd); usb_put_hcd(hcd);
err1: disable_pci:
pci_disable_device(dev); pci_disable_device(dev);
dev_err(&dev->dev, "init %s fail, %d\n", pci_name(dev), retval); dev_err(&dev->dev, "init %s fail, %d\n", pci_name(dev), retval);
return retval; return retval;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment