diff --git a/lib/loopaes/loopaes.c b/lib/loopaes/loopaes.c index ab61ca3b..6ad965c1 100644 --- a/lib/loopaes/loopaes.c +++ b/lib/loopaes/loopaes.c @@ -228,7 +228,7 @@ int LOOPAES_activate(struct crypt_device *cd, r = dm_create_device(cd, name, CRYPT_LOOPAES, &dmd, 0); - if (!r && !(dm_flags() & req_flags)) { + if (r < 0 && !(dm_flags() & req_flags)) { log_err(cd, _("Kernel doesn't support loop-AES compatible mapping.\n")); r = -ENOTSUP; } diff --git a/lib/tcrypt/tcrypt.c b/lib/tcrypt/tcrypt.c index eb1e2dac..239d3c79 100644 --- a/lib/tcrypt/tcrypt.c +++ b/lib/tcrypt/tcrypt.c @@ -716,7 +716,7 @@ int TCRYPT_activate(struct crypt_device *cd, break; } - if (!r && !(dm_flags() & DM_PLAIN64_SUPPORTED)) { + if (r < 0 && !(dm_flags() & DM_PLAIN64_SUPPORTED)) { log_err(cd, _("Kernel doesn't support plain64 IV.\n")); r = -ENOTSUP; } diff --git a/lib/verity/verity.c b/lib/verity/verity.c index e3285a21..c2b84051 100644 --- a/lib/verity/verity.c +++ b/lib/verity/verity.c @@ -272,7 +272,7 @@ int VERITY_activate(struct crypt_device *cd, return r; r = dm_create_device(cd, name, CRYPT_VERITY, &dmd, 0); - if (!r && !(dm_flags() & DM_VERITY_SUPPORTED)) { + if (r < 0 && !(dm_flags() & DM_VERITY_SUPPORTED)) { log_err(cd, _("Kernel doesn't support dm-verity mapping.\n")); return -ENOTSUP; } diff --git a/tests/verity-compat-test b/tests/verity-compat-test index b39dcf8c..e9c1101a 100755 --- a/tests/verity-compat-test +++ b/tests/verity-compat-test @@ -149,6 +149,7 @@ function valgrind_run() [ -n "$VALG" ] && valgrind_setup && VERITYSETUP=valgrind_run modprobe dm-verity >/dev/null 2>&1 +dmsetup targets | grep verity >/dev/null 2>&1 || skip "Cannot find dm-verity target, test skipped." # VERITYSETUP tests