mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2024-12-26 11:19:32 +03:00
Fix build for Linux/powerpc without CONFIG_ALTIVEC or CONFIG_VSX
This fixes building ZFS for Linux 4.7+ powerpc* architecture, where Linux was configured without CONFIG_ALTIVEC or CONFIG_VSX. Reviewed-by: Tino Reichardt <milky-zfs@mcmilk.de> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: WHR <msl0000023508@gmail.com> Closes #14591
This commit is contained in:
parent
b988f32c70
commit
1f196e3107
@ -66,32 +66,46 @@
|
|||||||
#define kfpu_allowed() 1
|
#define kfpu_allowed() 1
|
||||||
|
|
||||||
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)
|
||||||
|
#ifdef CONFIG_ALTIVEC
|
||||||
|
#define ENABLE_KERNEL_ALTIVEC enable_kernel_altivec()
|
||||||
|
#define DISABLE_KERNEL_ALTIVEC disable_kernel_altivec()
|
||||||
|
#else
|
||||||
|
#define ENABLE_KERNEL_ALTIVEC
|
||||||
|
#define DISABLE_KERNEL_ALTIVEC
|
||||||
|
#endif
|
||||||
|
#ifdef CONFIG_VSX
|
||||||
|
#define ENABLE_KERNEL_VSX enable_kernel_vsx()
|
||||||
|
#define DISABLE_KERNEL_VSX disable_kernel_vsx()
|
||||||
|
#else
|
||||||
|
#define ENABLE_KERNEL_VSX
|
||||||
|
#define DISABLE_KERNEL_VSX
|
||||||
|
#endif
|
||||||
#ifdef CONFIG_SPE
|
#ifdef CONFIG_SPE
|
||||||
#define kfpu_begin() \
|
#define kfpu_begin() \
|
||||||
{ \
|
{ \
|
||||||
preempt_disable(); \
|
preempt_disable(); \
|
||||||
enable_kernel_altivec(); \
|
ENABLE_KERNEL_ALTIVEC \
|
||||||
enable_kernel_vsx(); \
|
ENABLE_KERNEL_VSX \
|
||||||
enable_kernel_spe(); \
|
enable_kernel_spe(); \
|
||||||
}
|
}
|
||||||
#define kfpu_end() \
|
#define kfpu_end() \
|
||||||
{ \
|
{ \
|
||||||
disable_kernel_spe(); \
|
disable_kernel_spe(); \
|
||||||
disable_kernel_vsx(); \
|
DISABLE_KERNEL_VSX \
|
||||||
disable_kernel_altivec(); \
|
DISABLE_KERNEL_ALTIVEC \
|
||||||
preempt_enable(); \
|
preempt_enable(); \
|
||||||
}
|
}
|
||||||
#else /* CONFIG_SPE */
|
#else /* CONFIG_SPE */
|
||||||
#define kfpu_begin() \
|
#define kfpu_begin() \
|
||||||
{ \
|
{ \
|
||||||
preempt_disable(); \
|
preempt_disable(); \
|
||||||
enable_kernel_altivec(); \
|
ENABLE_KERNEL_ALTIVEC \
|
||||||
enable_kernel_vsx(); \
|
ENABLE_KERNEL_VSX \
|
||||||
}
|
}
|
||||||
#define kfpu_end() \
|
#define kfpu_end() \
|
||||||
{ \
|
{ \
|
||||||
disable_kernel_vsx(); \
|
DISABLE_KERNEL_VSX \
|
||||||
disable_kernel_altivec(); \
|
DISABLE_KERNEL_ALTIVEC \
|
||||||
preempt_enable(); \
|
preempt_enable(); \
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user