Fix detection of IBM Power8 machines (ISA 2.07)

An IBM POWER7 system with Power ISA 2.06 tried to execute
zfs_sha256_power8() - which should only be run on ISA 2.07
machines.

The detection is implemented via the zfs_isa207_available() call,
but this check was not used.

This pull request will fix this.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Signed-off-by: Tino Reichardt <milky-zfs@mcmilk.de>
Signed-off-by: Low-power <msl0000023508@gmail.com>
Closes #14576
This commit is contained in:
Tino Reichardt 2023-03-07 02:01:01 +01:00 committed by GitHub
parent 28bf26acb6
commit 84a1c48c86
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 6 deletions

View File

@ -151,9 +151,9 @@ const sha256_ops_t sha256_armv8_impl = {
}; };
#elif defined(__PPC64__) #elif defined(__PPC64__)
static boolean_t sha256_have_vsx(void) static boolean_t sha256_have_isa207(void)
{ {
return (kfpu_allowed() && zfs_vsx_available()); return (kfpu_allowed() && zfs_isa207_available());
} }
TF(zfs_sha256_ppc, tf_sha256_ppc); TF(zfs_sha256_ppc, tf_sha256_ppc);
@ -165,7 +165,7 @@ const sha256_ops_t sha256_ppc_impl = {
TF(zfs_sha256_power8, tf_sha256_power8); TF(zfs_sha256_power8, tf_sha256_power8);
const sha256_ops_t sha256_power8_impl = { const sha256_ops_t sha256_power8_impl = {
.is_supported = sha256_have_vsx, .is_supported = sha256_have_isa207,
.transform = tf_sha256_power8, .transform = tf_sha256_power8,
.name = "power8" .name = "power8"
}; };

View File

@ -136,14 +136,14 @@ const sha512_ops_t sha512_ppc_impl = {
.name = "ppc" .name = "ppc"
}; };
static boolean_t sha512_have_vsx(void) static boolean_t sha512_have_isa207(void)
{ {
return (kfpu_allowed() && zfs_vsx_available()); return (kfpu_allowed() && zfs_isa207_available());
} }
TF(zfs_sha512_power8, tf_sha512_power8); TF(zfs_sha512_power8, tf_sha512_power8);
const sha512_ops_t sha512_power8_impl = { const sha512_ops_t sha512_power8_impl = {
.is_supported = sha512_have_vsx, .is_supported = sha512_have_isa207,
.transform = tf_sha512_power8, .transform = tf_sha512_power8,
.name = "power8" .name = "power8"
}; };