| .. | .. |
|---|
| 113 | 113 | { |
|---|
| 114 | 114 | unsigned long flags, ttbr; |
|---|
| 115 | 115 | |
|---|
| 116 | | - local_irq_save(flags); |
|---|
| 116 | + flags = hard_local_irq_save(); |
|---|
| 117 | 117 | ttbr = read_sysreg(ttbr1_el1); |
|---|
| 118 | 118 | ttbr &= ~TTBR_ASID_MASK; |
|---|
| 119 | 119 | /* reserved_pg_dir placed before swapper_pg_dir */ |
|---|
| .. | .. |
|---|
| 122 | 122 | /* Set reserved ASID */ |
|---|
| 123 | 123 | write_sysreg(ttbr, ttbr1_el1); |
|---|
| 124 | 124 | isb(); |
|---|
| 125 | | - local_irq_restore(flags); |
|---|
| 125 | + hard_local_irq_restore(flags); |
|---|
| 126 | 126 | } |
|---|
| 127 | 127 | |
|---|
| 128 | 128 | static inline void __uaccess_ttbr0_enable(void) |
|---|
| .. | .. |
|---|
| 134 | 134 | * variable and the MSR. A context switch could trigger an ASID |
|---|
| 135 | 135 | * roll-over and an update of 'ttbr0'. |
|---|
| 136 | 136 | */ |
|---|
| 137 | | - local_irq_save(flags); |
|---|
| 137 | + flags = hard_local_irq_save(); |
|---|
| 138 | 138 | ttbr0 = READ_ONCE(current_thread_info()->ttbr0); |
|---|
| 139 | 139 | |
|---|
| 140 | 140 | /* Restore active ASID */ |
|---|
| .. | .. |
|---|
| 147 | 147 | /* Restore user page table */ |
|---|
| 148 | 148 | write_sysreg(ttbr0, ttbr0_el1); |
|---|
| 149 | 149 | isb(); |
|---|
| 150 | | - local_irq_restore(flags); |
|---|
| 150 | + hard_local_irq_restore(flags); |
|---|
| 151 | 151 | } |
|---|
| 152 | 152 | |
|---|
| 153 | 153 | static inline bool uaccess_ttbr0_disable(void) |
|---|