at master 22 lines 505 B view raw
1/* SPDX-License-Identifier: GPL-2.0 */ 2#ifndef _ASM_SIMD_H 3#define _ASM_SIMD_H 4 5#include <linux/cleanup.h> 6#include <linux/compiler_attributes.h> 7#include <linux/preempt.h> 8#include <linux/types.h> 9 10#include <asm/neon.h> 11 12static __must_check inline bool may_use_simd(void) 13{ 14 return IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && !in_hardirq() 15 && !irqs_disabled(); 16} 17 18DEFINE_LOCK_GUARD_0(ksimd, kernel_neon_begin(), kernel_neon_end()) 19 20#define scoped_ksimd() scoped_guard(ksimd) 21 22#endif /* _ASM_SIMD_H */