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

Commit 966f3a75 authored by Bjorn Helgaas's avatar Bjorn Helgaas Committed by Jesse Barnes
Browse files

PCI: for address space collisions, show conflicting resource



With request_resource_conflict(), we can learn what the actual conflict is,
so print that info for debugging purposes.

Signed-off-by: default avatarBjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: default avatarJesse Barnes <jbarnes@virtuousgeek.org>
parent 66f1207b
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -93,8 +93,7 @@ void pci_update_resource(struct pci_dev *dev, int resno)
int pci_claim_resource(struct pci_dev *dev, int resource)
{
	struct resource *res = &dev->resource[resource];
	struct resource *root;
	int err;
	struct resource *root, *conflict;

	root = pci_find_parent_resource(dev, res);
	if (!root) {
@@ -103,12 +102,15 @@ int pci_claim_resource(struct pci_dev *dev, int resource)
		return -EINVAL;
	}

	err = request_resource(root, res);
	if (err)
	conflict = request_resource_conflict(root, res);
	if (conflict) {
		dev_err(&dev->dev,
			"address space collision: %pR already in use\n", res);
			"address space collision: %pR conflicts with %s %pR\n",
			res, conflict->name, conflict);
		return -EBUSY;
	}

	return err;
	return 0;
}
EXPORT_SYMBOL(pci_claim_resource);