> -     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);

The semaphore is used to ensure dev->driver doesn't change under us. This
patch appears to remove the neccessary locking without replacing it with
anything viable. A local lock would do but the simple removal appears to
be unsafe.


> @@ -327,7 +325,6 @@ static int ide_replace_subdriver(ide_drive_t *drive, 
> const char *driver)
>       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));
> @@ -345,7 +342,6 @@ static int ide_replace_subdriver(ide_drive_t *drive, 
> const char *driver)
>       }
>       if (dev->driver && !strcmp(dev->driver->name, driver))
>               ret = 0;
> -     up_write(&dev->bus->subsys.rwsem);

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to