From fb6647a62f4b27b0d17dd023f8fa4575fc3dc7b2 Mon Sep 17 00:00:00 2001 From: Adam Belay Date: Wed, 14 Apr 2004 04:28:04 +0000 Subject: [PATCH] [PNP] minor resource management fixes This patch fixes a bug in pnp_auto_config_dev in which it wouldn't always report allocation failures. It also corrects the return codes. --- drivers/pnp/manager.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/drivers/pnp/manager.c b/drivers/pnp/manager.c index bd344233e5e87..b31a33a875b56 100644 --- a/drivers/pnp/manager.c +++ b/drivers/pnp/manager.c @@ -452,23 +452,19 @@ int pnp_auto_config_dev(struct pnp_dev *dev) if (!dev->dependent) { if (pnp_assign_resources(dev, 0)) - return 1; - else return 0; + } else { + dep = dev->dependent; + do { + if (pnp_assign_resources(dev, i)) + return 0; + dep = dep->next; + i++; + } while (dep); } - dep = dev->dependent; - do { - if (pnp_assign_resources(dev, i)) - return 1; - - /* if this dependent resource failed, try the next one */ - dep = dep->next; - i++; - } while (dep); - pnp_err("Unable to assign resources to device %s.", dev->dev.bus_id); - return 0; + return -EBUSY; } /** @@ -486,7 +482,7 @@ int pnp_activate_dev(struct pnp_dev *dev) } /* ensure resources are allocated */ - if (!pnp_auto_config_dev(dev)) + if (pnp_auto_config_dev(dev)) return -EBUSY; if (!pnp_can_write(dev)) { -- 2.53.0