diff options
| author | Bartlomiej Zolnierkiewicz <bzolnier@trik.(none)> | 2005-03-10 20:00:07 +0100 |
|---|---|---|
| committer | Bartlomiej Zolnierkiewicz <bzolnier@trik.(none)> | 2005-03-10 20:00:07 +0100 |
| commit | a32ec5211491b6afba45a8bbd29441bc286b99de (patch) | |
| tree | f8af46721fdefb5cf343c0f161970ce709891bfa /include/linux | |
| parent | d1c1bba5adc3cbdf3917322149d059b1baea9dcc (diff) | |
[ide] fix some rare ide-default vs ide-disk races
Some rare races between ide-default and ide-disk are possible, i.e.:
* ide-default is used, I/O request is triggered (ie. /proc/ide/hd?/identify),
drive->special is cleared silently (so CHS is not initialized properly),
ide-disk is loaded and fails if drive uses CHS
* ide-disk is used, drive is resetted, ide-disk is unloaded, ide-default
takes control over drive and on the first I/O request silently clears
drive->special without restoring settings
Fix them by moving idedisk_{special,pre_reset}() and company to IDE core.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/ide.h | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h index 25683ad25806..810647a617c9 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h @@ -1099,7 +1099,6 @@ typedef struct ide_driver_s { int (*ioctl)(ide_drive_t *, struct inode *, struct file *, unsigned int, unsigned long); void (*pre_reset)(ide_drive_t *); sector_t (*capacity)(ide_drive_t *); - ide_startstop_t (*special)(ide_drive_t *); ide_proc_entry_t *proc; int (*attach)(ide_drive_t *); void (*ata_prebuilder)(ide_drive_t *); |
