ide: use mutex instead of ide_setting_sem semaphore in IDE driver
The IDE driver uses a semaphore as mutex. Use the mutex API instead of the (binary) semaphore. Signed-off-by: Matthias Kaehlcke <matthias.kaehlcke@gmail.com> Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> --
Cette révision appartient à :

révisé par
Bartlomiej Zolnierkiewicz

Parent
1b9da32a28
révision
f9383c4269
@@ -817,9 +817,9 @@ EXPORT_SYMBOL(ide_register_hw);
|
||||
* Locks for IDE setting functionality
|
||||
*/
|
||||
|
||||
DECLARE_MUTEX(ide_setting_sem);
|
||||
DEFINE_MUTEX(ide_setting_mtx);
|
||||
|
||||
EXPORT_SYMBOL_GPL(ide_setting_sem);
|
||||
EXPORT_SYMBOL_GPL(ide_setting_mtx);
|
||||
|
||||
/**
|
||||
* ide_spin_wait_hwgroup - wait for group
|
||||
@@ -1192,11 +1192,11 @@ int generic_ide_ioctl(ide_drive_t *drive, struct file *file, struct block_device
|
||||
}
|
||||
|
||||
read_val:
|
||||
down(&ide_setting_sem);
|
||||
mutex_lock(&ide_setting_mtx);
|
||||
spin_lock_irqsave(&ide_lock, flags);
|
||||
err = *val;
|
||||
spin_unlock_irqrestore(&ide_lock, flags);
|
||||
up(&ide_setting_sem);
|
||||
mutex_unlock(&ide_setting_mtx);
|
||||
return err >= 0 ? put_user(err, (long __user *)arg) : err;
|
||||
|
||||
set_val:
|
||||
@@ -1206,9 +1206,9 @@ set_val:
|
||||
if (!capable(CAP_SYS_ADMIN))
|
||||
err = -EACCES;
|
||||
else {
|
||||
down(&ide_setting_sem);
|
||||
mutex_lock(&ide_setting_mtx);
|
||||
err = setfunc(drive, arg);
|
||||
up(&ide_setting_sem);
|
||||
mutex_unlock(&ide_setting_mtx);
|
||||
}
|
||||
}
|
||||
return err;
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur