diff options
author | Bartlomiej Zolnierkiewicz <bzolnier@gmail.com> | 2009-06-23 07:29:11 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-08-07 13:42:59 -0400 |
commit | fa56d4cb4022c8b313c3b99236e1b87effc3655b (patch) | |
tree | b51b1e66ac75b1412f57f7e41e3aff4bc8f0f0f7 /include | |
parent | 2d5abcedeb41f4af9582c60cef70749c3ab90a3b (diff) |
ide: allow ide_dev_read_id() to be called from the IRQ context
* Un-static __ide_wait_stat().
* Allow ide_dev_read_id() helper to be called from the IRQ context by
adding irq_ctx flag and using mdelay()/__ide_wait_stat() when needed.
* Switch ide_driveid_update() to set irq_ctx flag.
This change is needed for the consecutive patch which fixes races in
handling of user-space SET XFER commands but for improved bisectability
and clarity it is better to do it in a separate patch.
Signed-off-by: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/ide.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h index edc93a6d931d..cb6cd0459a5e 100644 --- a/include/linux/ide.h +++ b/include/linux/ide.h | |||
@@ -1081,6 +1081,7 @@ extern void ide_fixstring(u8 *, const int, const int); | |||
1081 | 1081 | ||
1082 | int ide_busy_sleep(ide_drive_t *, unsigned long, int); | 1082 | int ide_busy_sleep(ide_drive_t *, unsigned long, int); |
1083 | 1083 | ||
1084 | int __ide_wait_stat(ide_drive_t *, u8, u8, unsigned long, u8 *); | ||
1084 | int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long); | 1085 | int ide_wait_stat(ide_startstop_t *, ide_drive_t *, u8, u8, unsigned long); |
1085 | 1086 | ||
1086 | ide_startstop_t ide_do_park_unpark(ide_drive_t *, struct request *); | 1087 | ide_startstop_t ide_do_park_unpark(ide_drive_t *, struct request *); |
@@ -1169,7 +1170,7 @@ int ide_no_data_taskfile(ide_drive_t *, struct ide_cmd *); | |||
1169 | 1170 | ||
1170 | int ide_taskfile_ioctl(ide_drive_t *, unsigned long); | 1171 | int ide_taskfile_ioctl(ide_drive_t *, unsigned long); |
1171 | 1172 | ||
1172 | int ide_dev_read_id(ide_drive_t *, u8, u16 *); | 1173 | int ide_dev_read_id(ide_drive_t *, u8, u16 *, int); |
1173 | 1174 | ||
1174 | extern int ide_driveid_update(ide_drive_t *); | 1175 | extern int ide_driveid_update(ide_drive_t *); |
1175 | extern int ide_config_drive_speed(ide_drive_t *, u8); | 1176 | extern int ide_config_drive_speed(ide_drive_t *, u8); |