{
        struct sun8i_cipher_tfm_ctx *op = crypto_tfm_ctx(tfm);
 
-       if (op->key) {
-               memzero_explicit(op->key, op->keylen);
-               kfree(op->key);
-       }
+       kfree_sensitive(op->key);
        crypto_free_skcipher(op->fallback_tfm);
        pm_runtime_put_sync(op->ss->dev);
 }
                dev_dbg(ss->dev, "ERROR: Invalid keylen %u\n", keylen);
                return -EINVAL;
        }
-       if (op->key) {
-               memzero_explicit(op->key, op->keylen);
-               kfree(op->key);
-       }
+       kfree_sensitive(op->key);
        op->keylen = keylen;
        op->key = kmemdup(key, keylen, GFP_KERNEL | GFP_DMA);
        if (!op->key)
                return -EINVAL;
        }
 
-       if (op->key) {
-               memzero_explicit(op->key, op->keylen);
-               kfree(op->key);
-       }
+       kfree_sensitive(op->key);
        op->keylen = keylen;
        op->key = kmemdup(key, keylen, GFP_KERNEL | GFP_DMA);
        if (!op->key)