1 From d21df5f1b37481178e02d55844fbfe66d49083da Mon Sep 17 00:00:00 2001
2 From: Ingo Molnar <mingo@elte.hu>
3 Date: Fri, 3 Jul 2009 08:30:16 -0500
4 Subject: [PATCH 040/366] ide: Do not disable interrupts for PREEMPT-RT
6 Use the local_irq_*_nort variants.
8 Signed-off-by: Ingo Molnar <mingo@elte.hu>
9 Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
11 drivers/ide/alim15x3.c | 4 ++--
12 drivers/ide/hpt366.c | 4 ++--
13 drivers/ide/ide-io-std.c | 8 ++++----
14 drivers/ide/ide-io.c | 2 +-
15 drivers/ide/ide-iops.c | 4 ++--
16 drivers/ide/ide-probe.c | 4 ++--
17 drivers/ide/ide-taskfile.c | 6 +++---
18 7 files changed, 16 insertions(+), 16 deletions(-)
20 diff --git a/drivers/ide/alim15x3.c b/drivers/ide/alim15x3.c
21 index 36f76e2..394f142f 100644
22 --- a/drivers/ide/alim15x3.c
23 +++ b/drivers/ide/alim15x3.c
24 @@ -234,7 +234,7 @@ static int init_chipset_ali15x3(struct pci_dev *dev)
26 isa_dev = pci_get_device(PCI_VENDOR_ID_AL, PCI_DEVICE_ID_AL_M1533, NULL);
28 - local_irq_save(flags);
29 + local_irq_save_nort(flags);
31 if (m5229_revision < 0xC2) {
33 @@ -325,7 +325,7 @@ out:
37 - local_irq_restore(flags);
38 + local_irq_restore_nort(flags);
42 diff --git a/drivers/ide/hpt366.c b/drivers/ide/hpt366.c
43 index 696b6c1..0d0a966 100644
44 --- a/drivers/ide/hpt366.c
45 +++ b/drivers/ide/hpt366.c
46 @@ -1241,7 +1241,7 @@ static int init_dma_hpt366(ide_hwif_t *hwif,
48 dma_old = inb(base + 2);
50 - local_irq_save(flags);
51 + local_irq_save_nort(flags);
54 pci_read_config_byte(dev, hwif->channel ? 0x4b : 0x43, &masterdma);
55 @@ -1252,7 +1252,7 @@ static int init_dma_hpt366(ide_hwif_t *hwif,
56 if (dma_new != dma_old)
57 outb(dma_new, base + 2);
59 - local_irq_restore(flags);
60 + local_irq_restore_nort(flags);
62 printk(KERN_INFO " %s: BM-DMA at 0x%04lx-0x%04lx\n",
63 hwif->name, base, base + 7);
64 diff --git a/drivers/ide/ide-io-std.c b/drivers/ide/ide-io-std.c
65 index 1976397..4169433 100644
66 --- a/drivers/ide/ide-io-std.c
67 +++ b/drivers/ide/ide-io-std.c
68 @@ -175,7 +175,7 @@ void ide_input_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
69 unsigned long uninitialized_var(flags);
71 if ((io_32bit & 2) && !mmio) {
72 - local_irq_save(flags);
73 + local_irq_save_nort(flags);
74 ata_vlb_sync(io_ports->nsect_addr);
77 @@ -186,7 +186,7 @@ void ide_input_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
78 insl(data_addr, buf, words);
80 if ((io_32bit & 2) && !mmio)
81 - local_irq_restore(flags);
82 + local_irq_restore_nort(flags);
84 if (((len + 1) & 3) < 2)
86 @@ -219,7 +219,7 @@ void ide_output_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
87 unsigned long uninitialized_var(flags);
89 if ((io_32bit & 2) && !mmio) {
90 - local_irq_save(flags);
91 + local_irq_save_nort(flags);
92 ata_vlb_sync(io_ports->nsect_addr);
95 @@ -230,7 +230,7 @@ void ide_output_data(ide_drive_t *drive, struct ide_cmd *cmd, void *buf,
96 outsl(data_addr, buf, words);
98 if ((io_32bit & 2) && !mmio)
99 - local_irq_restore(flags);
100 + local_irq_restore_nort(flags);
102 if (((len + 1) & 3) < 2)
104 diff --git a/drivers/ide/ide-io.c b/drivers/ide/ide-io.c
105 index 669ea1e..e12e43e 100644
106 --- a/drivers/ide/ide-io.c
107 +++ b/drivers/ide/ide-io.c
108 @@ -659,7 +659,7 @@ void ide_timer_expiry (unsigned long data)
109 /* disable_irq_nosync ?? */
110 disable_irq(hwif->irq);
111 /* local CPU only, as if we were handling an interrupt */
112 - local_irq_disable();
113 + local_irq_disable_nort();
115 startstop = handler(drive);
116 } else if (drive_is_ready(drive)) {
117 diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
118 index 376f2dc..f014dd1 100644
119 --- a/drivers/ide/ide-iops.c
120 +++ b/drivers/ide/ide-iops.c
121 @@ -129,12 +129,12 @@ int __ide_wait_stat(ide_drive_t *drive, u8 good, u8 bad,
122 if ((stat & ATA_BUSY) == 0)
125 - local_irq_restore(flags);
126 + local_irq_restore_nort(flags);
131 - local_irq_restore(flags);
132 + local_irq_restore_nort(flags);
135 * Allow status to settle, then read it again.
136 diff --git a/drivers/ide/ide-probe.c b/drivers/ide/ide-probe.c
137 index 0b63fac..4ceba37 100644
138 --- a/drivers/ide/ide-probe.c
139 +++ b/drivers/ide/ide-probe.c
140 @@ -196,10 +196,10 @@ static void do_identify(ide_drive_t *drive, u8 cmd, u16 *id)
143 /* local CPU only; some systems need this */
144 - local_irq_save(flags);
145 + local_irq_save_nort(flags);
146 /* read 512 bytes of id info */
147 hwif->tp_ops->input_data(drive, NULL, id, SECTOR_SIZE);
148 - local_irq_restore(flags);
149 + local_irq_restore_nort(flags);
151 drive->dev_flags |= IDE_DFLAG_ID_READ;
153 diff --git a/drivers/ide/ide-taskfile.c b/drivers/ide/ide-taskfile.c
154 index a716693..be0568c 100644
155 --- a/drivers/ide/ide-taskfile.c
156 +++ b/drivers/ide/ide-taskfile.c
157 @@ -250,7 +250,7 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd,
159 page_is_high = PageHighMem(page);
161 - local_irq_save(flags);
162 + local_irq_save_nort(flags);
164 buf = kmap_atomic(page) + offset;
166 @@ -271,7 +271,7 @@ void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd,
170 - local_irq_restore(flags);
171 + local_irq_restore_nort(flags);
175 @@ -414,7 +414,7 @@ static ide_startstop_t pre_task_out_intr(ide_drive_t *drive,
178 if ((drive->dev_flags & IDE_DFLAG_UNMASK) == 0)
179 - local_irq_disable();
180 + local_irq_disable_nort();
182 ide_set_handler(drive, &task_pio_intr, WAIT_WORSTCASE);