|
@@ -503,7 +503,8 @@ static int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad, unsigned long ti
|
|
stat = tp_ops->read_status(hwif);
|
|
stat = tp_ops->read_status(hwif);
|
|
|
|
|
|
if (stat & ATA_BUSY) {
|
|
if (stat & ATA_BUSY) {
|
|
- local_irq_set(flags);
|
|
|
|
|
|
+ local_irq_save(flags);
|
|
|
|
+ local_irq_enable_in_hardirq();
|
|
timeout += jiffies;
|
|
timeout += jiffies;
|
|
while ((stat = tp_ops->read_status(hwif)) & ATA_BUSY) {
|
|
while ((stat = tp_ops->read_status(hwif)) & ATA_BUSY) {
|
|
if (time_after(jiffies, timeout)) {
|
|
if (time_after(jiffies, timeout)) {
|