Commit f1ff14d8 authored by Adam Belay's avatar Adam Belay

Silently Ignore if the device is already active/disabled

Some drivers will try to activate a device even though it is already
active.  Instead of returning an error, the resource manager will now
just ignore this.  This should solve some of the recently seen problems.
Also it doesn't make sense to return an error if the device is already
in the correct state.
parent 743e83a4
...@@ -632,8 +632,7 @@ int pnp_activate_dev(struct pnp_dev *dev) ...@@ -632,8 +632,7 @@ int pnp_activate_dev(struct pnp_dev *dev)
if (!dev) if (!dev)
return -EINVAL; return -EINVAL;
if (dev->active) { if (dev->active) {
pnp_info("res: The PnP device '%s' is already active.", dev->dev.bus_id); return 0; /* the device is already active */
return -EBUSY;
} }
/* If this condition is true, advanced configuration failed, we need to get this device up and running /* If this condition is true, advanced configuration failed, we need to get this device up and running
* so we use the simple config engine which ignores cold conflicts, this of course may lead to new failures */ * so we use the simple config engine which ignores cold conflicts, this of course may lead to new failures */
...@@ -698,8 +697,7 @@ int pnp_disable_dev(struct pnp_dev *dev) ...@@ -698,8 +697,7 @@ int pnp_disable_dev(struct pnp_dev *dev)
if (!dev) if (!dev)
return -EINVAL; return -EINVAL;
if (!dev->active) { if (!dev->active) {
pnp_info("res: The PnP device '%s' is already disabled.", dev->dev.bus_id); return 0; /* the device is already disabled */
return -EINVAL;
} }
if (dev->status != PNP_READY){ if (dev->status != PNP_READY){
pnp_info("res: Disable failed becuase the PnP device '%s' is busy.", dev->dev.bus_id); pnp_info("res: Disable failed becuase the PnP device '%s' is busy.", dev->dev.bus_id);
......
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