187 lines
5.5 KiB
Diff
187 lines
5.5 KiB
Diff
From 7db075372cc9b7643a7e5baf95cc0a41db410047 Mon Sep 17 00:00:00 2001
|
|
From: Ingo Molnar <mingo@elte.hu>
|
|
Date: Fri, 3 Jul 2009 08:30:16 -0500
|
|
Subject: [PATCH 082/352] ide: Do not disable interrupts for PREEMPT-RT
|
|
|
|
Use the local_irq_*_nort variants.
|
|
|
|
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
|
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
|
|
---
|
|
drivers/ide/alim15x3.c | 4 ++--
|
|
drivers/ide/hpt366.c | 4 ++--
|
|
drivers/ide/ide-io-std.c | 8 ++++----
|
|
drivers/ide/ide-io.c | 2 +-
|
|
drivers/ide/ide-iops.c | 4 ++--
|
|
drivers/ide/ide-probe.c | 4 ++--
|
|
drivers/ide/ide-taskfile.c | 6 +++---
|
|
7 files changed, 16 insertions(+), 16 deletions(-)
|
|
|
|
diff --git a/drivers/ide/alim15x3.c b/drivers/ide/alim15x3.c
|
|
index 36f76e2..394f142f 100644
|
|
--- a/drivers/ide/alim15x3.c
|
|
+++ b/drivers/ide/alim15x3.c
|
|
@@ -234,7 +234,7 @@ static int init_chipset_ali15x3(struct pci_dev *dev)
|
|
|
|
isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
|
|
|
|
- local_irq_save(flags);
|
|
+ local_irq_save_nort(flags);
|
|
|
|
if (m5229_revision < 0xC2) {
|
|
/*
|
|
@@ -325,7 +325,7 @@ static int init_chipset_ali15x3(struct pci_dev *dev)
|
|
}
|
|
pci_dev_put(north);
|
|
pci_dev_put(isa_dev);
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
return 0;
|
|
}
|
|
|
|
diff --git a/drivers/ide/hpt366.c b/drivers/ide/hpt366.c
|
|
index 0ceae5c..c212e85 100644
|
|
--- a/drivers/ide/hpt366.c
|
|
+++ b/drivers/ide/hpt366.c
|
|
@@ -1236,7 +1236,7 @@ static int init_dma_hpt366(ide_hwif_t *hwif,
|
|
|
|
dma_old = inb(base + 2);
|
|
|
|
- local_irq_save(flags);
|
|
+ local_irq_save_nort(flags);
|
|
|
|
dma_new = dma_old;
|
|
pci_read_config_byte(dev, hwif->channel ? 0x4b : 0x43, &masterdma);
|
|
@@ -1247,7 +1247,7 @@ static int init_dma_hpt366(ide_hwif_t *hwif,
|
|
if (dma_new != dma_old)
|
|
outb(dma_new, base + 2);
|
|
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
|
|
printk(KERN_INFO " %s: BM-DMA at 0x%04lx-0x%04lx\n",
|
|
hwif->name, base, base + 7);
|
|
diff --git a/drivers/ide/ide-io-std.c b/drivers/ide/ide-io-std.c
|
|
index 1976397..4169433 100644
|
|
--- a/drivers/ide/ide-io-std.c
|
|
+++ b/drivers/ide/ide-io-std.c
|
|
@@ -175,7 +175,7 @@ void ide_input_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
|
|
unsigned long uninitialized_var(flags);
|
|
|
|
if ((io_32bit & 2) && !mmio) {
|
|
- local_irq_save(flags);
|
|
+ local_irq_save_nort(flags);
|
|
ata_vlb_sync(io_ports->nsect_addr);
|
|
}
|
|
|
|
@@ -186,7 +186,7 @@ void ide_input_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
|
|
insl(data_addr, buf, words);
|
|
|
|
if ((io_32bit & 2) && !mmio)
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
|
|
if (((len + 1) & 3) < 2)
|
|
return;
|
|
@@ -219,7 +219,7 @@ void ide_output_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
|
|
unsigned long uninitialized_var(flags);
|
|
|
|
if ((io_32bit & 2) && !mmio) {
|
|
- local_irq_save(flags);
|
|
+ local_irq_save_nort(flags);
|
|
ata_vlb_sync(io_ports->nsect_addr);
|
|
}
|
|
|
|
@@ -230,7 +230,7 @@ void ide_output_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
|
|
outsl(data_addr, buf, words);
|
|
|
|
if ((io_32bit & 2) && !mmio)
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
|
|
if (((len + 1) & 3) < 2)
|
|
return;
|
|
diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
|
|
index 669ea1e..e12e43e 100644
|
|
--- a/drivers/ide/ide-io.c
|
|
+++ b/drivers/ide/ide-io.c
|
|
@@ -659,7 +659,7 @@ void ide_timer_expiry (unsigned long data)
|
|
/* disable_irq_nosync ?? */
|
|
disable_irq(hwif->irq);
|
|
/* local CPU only, as if we were handling an interrupt */
|
|
- local_irq_disable();
|
|
+ local_irq_disable_nort();
|
|
if (hwif->polling) {
|
|
startstop = handler(drive);
|
|
} else if (drive_is_ready(drive)) {
|
|
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
|
|
index 376f2dc..f014dd1 100644
|
|
--- a/drivers/ide/ide-iops.c
|
|
+++ b/drivers/ide/ide-iops.c
|
|
@@ -129,12 +129,12 @@ int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad,
|
|
if ((stat & ATA_BUSY) == 0)
|
|
break;
|
|
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
*rstat = stat;
|
|
return -EBUSY;
|
|
}
|
|
}
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
}
|
|
/*
|
|
* Allow status to settle, then read it again.
|
|
diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
|
|
index 0b63fac..4ceba37 100644
|
|
--- a/drivers/ide/ide-probe.c
|
|
+++ b/drivers/ide/ide-probe.c
|
|
@@ -196,10 +196,10 @@ static void do_identify(ide_drive_t *drive, u8 cmd, u16 *id)
|
|
int bswap = 1;
|
|
|
|
/* local CPU only; some systems need this */
|
|
- local_irq_save(flags);
|
|
+ local_irq_save_nort(flags);
|
|
/* read 512 bytes of id info */
|
|
hwif->tp_ops->input_data(drive, NULL, id, SECTOR_SIZE);
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
|
|
drive->dev_flags |= IDE_DFLAG_ID_READ;
|
|
#ifdef DEBUG
|
|
diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
|
|
index a716693..be0568c 100644
|
|
--- a/drivers/ide/ide-taskfile.c
|
|
+++ b/drivers/ide/ide-taskfile.c
|
|
@@ -250,7 +250,7 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd,
|
|
|
|
page_is_high = PageHighMem(page);
|
|
if (page_is_high)
|
|
- local_irq_save(flags);
|
|
+ local_irq_save_nort(flags);
|
|
|
|
buf = kmap_atomic(page) + offset;
|
|
|
|
@@ -271,7 +271,7 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd,
|
|
kunmap_atomic(buf);
|
|
|
|
if (page_is_high)
|
|
- local_irq_restore(flags);
|
|
+ local_irq_restore_nort(flags);
|
|
|
|
len -= nr_bytes;
|
|
}
|
|
@@ -414,7 +414,7 @@ static ide_startstop_t pre_task_out_intr(ide_drive_t *drive,
|
|
}
|
|
|
|
if ((drive->dev_flags & IDE_DFLAG_UNMASK) == 0)
|
|
- local_irq_disable();
|
|
+ local_irq_disable_nort();
|
|
|
|
ide_set_handler(drive, &task_pio_intr, WAIT_WORSTCASE);
|
|
|
|
--
|
|
2.7.4
|
|
|