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.
if (!dev)
return -EINVAL;
if (dev->active) {
- pnp_info("res: The PnP device '%s' is already active.", dev->dev.bus_id);
- return -EBUSY;
+ return 0; /* the device is already active */
}
/* 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 */
if (!dev)
return -EINVAL;
if (!dev->active) {
- pnp_info("res: The PnP device '%s' is already disabled.", dev->dev.bus_id);
- return -EINVAL;
+ return 0; /* the device is already disabled */
}
if (dev->status != PNP_READY){
pnp_info("res: Disable failed becuase the PnP device '%s' is busy.", dev->dev.bus_id);