The UDP GSO output path introduced next requires a synchronous encrypt transform. Record the transform type in the immutable key slot when it is created, avoiding repeated inspection of the crypto algorithm flags in the data path.
Signed-off-by: Ralf Lici <[email protected]> --- New in v3. drivers/net/ovpn/crypto.h | 2 ++ drivers/net/ovpn/crypto_aead.c | 1 + 2 files changed, 3 insertions(+) diff --git a/drivers/net/ovpn/crypto.h b/drivers/net/ovpn/crypto.h index e3feb16d5498..8ce324e9b58f 100644 --- a/drivers/net/ovpn/crypto.h +++ b/drivers/net/ovpn/crypto.h @@ -39,6 +39,8 @@ struct ovpn_peer_key_reset { struct ovpn_crypto_key_slot { u8 key_id; + /* whether the encrypt transform is asynchronous */ + bool async; struct crypto_aead *encrypt; struct crypto_aead *decrypt; diff --git a/drivers/net/ovpn/crypto_aead.c b/drivers/net/ovpn/crypto_aead.c index 30299581422d..5e5320338165 100644 --- a/drivers/net/ovpn/crypto_aead.c +++ b/drivers/net/ovpn/crypto_aead.c @@ -462,6 +462,7 @@ ovpn_aead_crypto_key_slot_new(const struct ovpn_key_config *kc) ks->encrypt = NULL; goto destroy_ks; } + ks->async = crypto_tfm_is_async(crypto_aead_tfm(ks->encrypt)); ks->decrypt = ovpn_aead_init("decrypt", alg_name, kc->decrypt.cipher_key, -- 2.56.0 _______________________________________________ Openvpn-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openvpn-devel
