complete = test_bit(SMP_FLAG_COMPLETE, &smp->flags);
        mgmt_smp_complete(hcon, complete);
 
-       kfree(smp->csrk);
-       kfree(smp->slave_csrk);
-       kfree(smp->link_key);
+       kzfree(smp->csrk);
+       kzfree(smp->slave_csrk);
+       kzfree(smp->link_key);
 
        crypto_free_blkcipher(smp->tfm_aes);
        crypto_free_hash(smp->tfm_cmac);
        }
 
        chan->data = NULL;
-       kfree(smp);
+       kzfree(smp);
        hci_conn_drop(hcon);
 }
 
                return;
 
        if (smp_h6(smp->tfm_cmac, smp->tk, tmp1, smp->link_key)) {
-               kfree(smp->link_key);
+               kzfree(smp->link_key);
                smp->link_key = NULL;
                return;
        }
 
        if (smp_h6(smp->tfm_cmac, smp->link_key, lebr, smp->link_key)) {
-               kfree(smp->link_key);
+               kzfree(smp->link_key);
                smp->link_key = NULL;
                return;
        }
        smp->tfm_aes = crypto_alloc_blkcipher("ecb(aes)", 0, CRYPTO_ALG_ASYNC);
        if (IS_ERR(smp->tfm_aes)) {
                BT_ERR("Unable to create ECB crypto context");
-               kfree(smp);
+               kzfree(smp);
                return NULL;
        }
 
        if (IS_ERR(smp->tfm_cmac)) {
                BT_ERR("Unable to create CMAC crypto context");
                crypto_free_blkcipher(smp->tfm_aes);
-               kfree(smp);
+               kzfree(smp);
                return NULL;
        }