Changeset f278930 in mainline for uspace/srv/devman/main.c


Ignore:
Timestamp:
2011-09-03T12:02:08Z (13 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7fff38c1
Parents:
f480d7e
Message:

ISA bridge remove support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/devman/main.c

    rf480d7e rf278930  
    320320                        fibril_rwlock_write_unlock(&device_tree.rwlock);
    321321                       
    322                         rc = driver_dev_remove(&device_tree, dev);
    323                         if (rc != EOK) {
    324                                 dev_del_ref(dev);
    325                                 return ENOTSUP;
     322                        /* If device is owned by driver, ask driver to give it up. */
     323                        if (dev->state == DEVICE_USABLE) {
     324                                rc = driver_dev_remove(&device_tree, dev);
     325                                if (rc != EOK) {
     326                                        dev_del_ref(dev);
     327                                        return ENOTSUP;
     328                                }
    326329                        }
    327330                       
     
    332335                                return EIO;
    333336                        }
     337                        driver_t *driver = dev->drv;
    334338                        fibril_rwlock_read_unlock(&device_tree.rwlock);
    335339                       
    336                         detach_driver(&device_tree, dev);
     340                        if (driver)
     341                                detach_driver(&device_tree, dev);
    337342                       
    338343                        fibril_rwlock_write_lock(&device_tree.rwlock);
Note: See TracChangeset for help on using the changeset viewer.