ide_driver_t    *ide_drv;
        int             len;
 
-       down_read(&dev->bus->subsys.rwsem);
        if (dev->driver) {
                ide_drv = container_of(dev->driver, ide_driver_t, gen_driver);
                len = sprintf(page, "%s version %s\n",
                                dev->driver->name, ide_drv->version);
        } else
                len = sprintf(page, "ide-default version 0.9.newide\n");
-       up_read(&dev->bus->subsys.rwsem);
        PROC_IDE_READ_RETURN(page,start,off,count,eof,len);
 }
 
        int ret = 1;
        int err;
 
-       down_write(&dev->bus->subsys.rwsem);
        device_release_driver(dev);
        /* FIXME: device can still be in use by previous driver */
        strlcpy(drive->driver_req, driver, sizeof(drive->driver_req));
        }
        if (dev->driver && !strcmp(dev->driver->name, driver))
                ret = 0;
-       up_write(&dev->bus->subsys.rwsem);
 
        return ret;
 }