Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux

Pull arm64 fixes from Will Deacon:

- Fix spurious CPU hotplug warning message from SETEND emulation code

- Fix the build when GCC wasn't inlining our I/O accessor internals

* tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
arm64/io: add constant-argument check
arm64: armv8_deprecated: Fix warning in isndep cpuhp starting process

+19 -20
+16 -20
arch/arm64/include/asm/io.h
··· 153 153 * emit the large TLP from the CPU. 154 154 */ 155 155 156 - static inline void __const_memcpy_toio_aligned32(volatile u32 __iomem *to, 157 - const u32 *from, size_t count) 156 + static __always_inline void 157 + __const_memcpy_toio_aligned32(volatile u32 __iomem *to, const u32 *from, 158 + size_t count) 158 159 { 159 160 switch (count) { 160 161 case 8: ··· 197 196 198 197 void __iowrite32_copy_full(void __iomem *to, const void *from, size_t count); 199 198 200 - static inline void __const_iowrite32_copy(void __iomem *to, const void *from, 201 - size_t count) 199 + static __always_inline void 200 + __iowrite32_copy(void __iomem *to, const void *from, size_t count) 202 201 { 203 - if (count == 8 || count == 4 || count == 2 || count == 1) { 202 + if (__builtin_constant_p(count) && 203 + (count == 8 || count == 4 || count == 2 || count == 1)) { 204 204 __const_memcpy_toio_aligned32(to, from, count); 205 205 dgh(); 206 206 } else { 207 207 __iowrite32_copy_full(to, from, count); 208 208 } 209 209 } 210 + #define __iowrite32_copy __iowrite32_copy 210 211 211 - #define __iowrite32_copy(to, from, count) \ 212 - (__builtin_constant_p(count) ? \ 213 - __const_iowrite32_copy(to, from, count) : \ 214 - __iowrite32_copy_full(to, from, count)) 215 - 216 - static inline void __const_memcpy_toio_aligned64(volatile u64 __iomem *to, 217 - const u64 *from, size_t count) 212 + static __always_inline void 213 + __const_memcpy_toio_aligned64(volatile u64 __iomem *to, const u64 *from, 214 + size_t count) 218 215 { 219 216 switch (count) { 220 217 case 8: ··· 254 255 255 256 void __iowrite64_copy_full(void __iomem *to, const void *from, size_t count); 256 257 257 - static inline void __const_iowrite64_copy(void __iomem *to, const void *from, 258 - size_t count) 258 + static __always_inline void 259 + __iowrite64_copy(void __iomem *to, const void *from, size_t count) 259 260 { 260 - if (count == 8 || count == 4 || count == 2 || count == 1) { 261 + if (__builtin_constant_p(count) && 262 + (count == 8 || count == 4 || count == 2 || count == 1)) { 261 263 __const_memcpy_toio_aligned64(to, from, count); 262 264 dgh(); 263 265 } else { 264 266 __iowrite64_copy_full(to, from, count); 265 267 } 266 268 } 267 - 268 - #define __iowrite64_copy(to, from, count) \ 269 - (__builtin_constant_p(count) ? \ 270 - __const_iowrite64_copy(to, from, count) : \ 271 - __iowrite64_copy_full(to, from, count)) 269 + #define __iowrite64_copy __iowrite64_copy 272 270 273 271 /* 274 272 * I/O memory mapping functions.
+3
arch/arm64/kernel/armv8_deprecated.c
··· 462 462 for (int i = 0; i < ARRAY_SIZE(insn_emulations); i++) { 463 463 struct insn_emulation *insn = insn_emulations[i]; 464 464 bool enable = READ_ONCE(insn->current_mode) == INSN_HW; 465 + if (insn->status == INSN_UNAVAILABLE) 466 + continue; 467 + 465 468 if (insn->set_hw_mode && insn->set_hw_mode(enable)) { 466 469 pr_warn("CPU[%u] cannot support the emulation of %s", 467 470 cpu, insn->name);