diff options
Diffstat (limited to 'arch/tile/include')
-rw-r--r-- | arch/tile/include/asm/irqflags.h | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/arch/tile/include/asm/irqflags.h b/arch/tile/include/asm/irqflags.h index 45cf67c2f286..a11d4837ee4d 100644 --- a/arch/tile/include/asm/irqflags.h +++ b/arch/tile/include/asm/irqflags.h | |||
@@ -103,55 +103,57 @@ DECLARE_PER_CPU(unsigned long long, interrupts_enabled_mask); | |||
103 | #define INITIAL_INTERRUPTS_ENABLED INT_MASK(INT_MEM_ERROR) | 103 | #define INITIAL_INTERRUPTS_ENABLED INT_MASK(INT_MEM_ERROR) |
104 | 104 | ||
105 | /* Disable interrupts. */ | 105 | /* Disable interrupts. */ |
106 | #define raw_local_irq_disable() \ | 106 | #define arch_local_irq_disable() \ |
107 | interrupt_mask_set_mask(LINUX_MASKABLE_INTERRUPTS) | 107 | interrupt_mask_set_mask(LINUX_MASKABLE_INTERRUPTS) |
108 | 108 | ||
109 | /* Disable all interrupts, including NMIs. */ | 109 | /* Disable all interrupts, including NMIs. */ |
110 | #define raw_local_irq_disable_all() \ | 110 | #define arch_local_irq_disable_all() \ |
111 | interrupt_mask_set_mask(-1UL) | 111 | interrupt_mask_set_mask(-1UL) |
112 | 112 | ||
113 | /* Re-enable all maskable interrupts. */ | 113 | /* Re-enable all maskable interrupts. */ |
114 | #define raw_local_irq_enable() \ | 114 | #define arch_local_irq_enable() \ |
115 | interrupt_mask_reset_mask(__get_cpu_var(interrupts_enabled_mask)) | 115 | interrupt_mask_reset_mask(__get_cpu_var(interrupts_enabled_mask)) |
116 | 116 | ||
117 | /* Disable or enable interrupts based on flag argument. */ | 117 | /* Disable or enable interrupts based on flag argument. */ |
118 | #define raw_local_irq_restore(disabled) do { \ | 118 | #define arch_local_irq_restore(disabled) do { \ |
119 | if (disabled) \ | 119 | if (disabled) \ |
120 | raw_local_irq_disable(); \ | 120 | arch_local_irq_disable(); \ |
121 | else \ | 121 | else \ |
122 | raw_local_irq_enable(); \ | 122 | arch_local_irq_enable(); \ |
123 | } while (0) | 123 | } while (0) |
124 | 124 | ||
125 | /* Return true if "flags" argument means interrupts are disabled. */ | 125 | /* Return true if "flags" argument means interrupts are disabled. */ |
126 | #define raw_irqs_disabled_flags(flags) ((flags) != 0) | 126 | #define arch_irqs_disabled_flags(flags) ((flags) != 0) |
127 | 127 | ||
128 | /* Return true if interrupts are currently disabled. */ | 128 | /* Return true if interrupts are currently disabled. */ |
129 | #define raw_irqs_disabled() interrupt_mask_check(INT_MEM_ERROR) | 129 | #define arch_irqs_disabled() interrupt_mask_check(INT_MEM_ERROR) |
130 | 130 | ||
131 | /* Save whether interrupts are currently disabled. */ | 131 | /* Save whether interrupts are currently disabled. */ |
132 | #define raw_local_save_flags(flags) ((flags) = raw_irqs_disabled()) | 132 | #define arch_local_save_flags() arch_irqs_disabled() |
133 | 133 | ||
134 | /* Save whether interrupts are currently disabled, then disable them. */ | 134 | /* Save whether interrupts are currently disabled, then disable them. */ |
135 | #define raw_local_irq_save(flags) \ | 135 | #define arch_local_irq_save() ({ \ |
136 | do { raw_local_save_flags(flags); raw_local_irq_disable(); } while (0) | 136 | unsigned long __flags = arch_local_save_flags(); \ |
137 | arch_local_irq_disable(); \ | ||
138 | __flags; }) | ||
137 | 139 | ||
138 | /* Prevent the given interrupt from being enabled next time we enable irqs. */ | 140 | /* Prevent the given interrupt from being enabled next time we enable irqs. */ |
139 | #define raw_local_irq_mask(interrupt) \ | 141 | #define arch_local_irq_mask(interrupt) \ |
140 | (__get_cpu_var(interrupts_enabled_mask) &= ~INT_MASK(interrupt)) | 142 | (__get_cpu_var(interrupts_enabled_mask) &= ~INT_MASK(interrupt)) |
141 | 143 | ||
142 | /* Prevent the given interrupt from being enabled immediately. */ | 144 | /* Prevent the given interrupt from being enabled immediately. */ |
143 | #define raw_local_irq_mask_now(interrupt) do { \ | 145 | #define arch_local_irq_mask_now(interrupt) do { \ |
144 | raw_local_irq_mask(interrupt); \ | 146 | arch_local_irq_mask(interrupt); \ |
145 | interrupt_mask_set(interrupt); \ | 147 | interrupt_mask_set(interrupt); \ |
146 | } while (0) | 148 | } while (0) |
147 | 149 | ||
148 | /* Allow the given interrupt to be enabled next time we enable irqs. */ | 150 | /* Allow the given interrupt to be enabled next time we enable irqs. */ |
149 | #define raw_local_irq_unmask(interrupt) \ | 151 | #define arch_local_irq_unmask(interrupt) \ |
150 | (__get_cpu_var(interrupts_enabled_mask) |= INT_MASK(interrupt)) | 152 | (__get_cpu_var(interrupts_enabled_mask) |= INT_MASK(interrupt)) |
151 | 153 | ||
152 | /* Allow the given interrupt to be enabled immediately, if !irqs_disabled. */ | 154 | /* Allow the given interrupt to be enabled immediately, if !irqs_disabled. */ |
153 | #define raw_local_irq_unmask_now(interrupt) do { \ | 155 | #define arch_local_irq_unmask_now(interrupt) do { \ |
154 | raw_local_irq_unmask(interrupt); \ | 156 | arch_local_irq_unmask(interrupt); \ |
155 | if (!irqs_disabled()) \ | 157 | if (!irqs_disabled()) \ |
156 | interrupt_mask_reset(interrupt); \ | 158 | interrupt_mask_reset(interrupt); \ |
157 | } while (0) | 159 | } while (0) |