mm, treewide: rename kzfree() to kfree_sensitive()
As said by Linus: A symmetric naming is only helpful if it implies symmetries in use. Otherwise it's actively misleading. In "kzalloc()", the z is meaningful and an important part of what the caller wants. In "kzfree()", the z is actively detrimental, because maybe in the future we really _might_ want to use that "memfill(0xdeadbeef)" or something. The "zero" part of the interface isn't even _relevant_. The main reason that kzfree() exists is to clear sensitive information that should not be leaked to other future users of the same memory objects. Rename kzfree() to kfree_sensitive() to follow the example of the recently added kvfree_sensitive() and make the intention of the API more explicit. In addition, memzero_explicit() is used to clear the memory to make sure that it won't get optimized away by the compiler. The renaming is done by using the command sequence: git grep -w --name-only kzfree |\ xargs sed -i 's/kzfree/kfree_sensitive/' followed by some editing of the kfree_sensitive() kerneldoc and adding a kzfree backward compatibility macro in slab.h. [akpm@linux-foundation.org: fs/crypto/inline_crypt.c needs linux/slab.h] [akpm@linux-foundation.org: fix fs/crypto/inline_crypt.c some more] Suggested-by: Joe Perches <joe@perches.com> Signed-off-by: Waiman Long <longman@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Acked-by: David Howells <dhowells@redhat.com> Acked-by: Michal Hocko <mhocko@suse.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Cc: James Morris <jmorris@namei.org> Cc: "Serge E. Hallyn" <serge@hallyn.com> Cc: Joe Perches <joe@perches.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: David Rientjes <rientjes@google.com> Cc: Dan Carpenter <dan.carpenter@oracle.com> Cc: "Jason A . Donenfeld" <Jason@zx2c4.com> Link: http://lkml.kernel.org/r/20200616154311.12314-3-longman@redhat.com Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
57c720d414
commit
453431a549
@@ -1369,7 +1369,7 @@ static void iwl_pcie_rx_handle_rb(struct iwl_trans *trans,
|
||||
&rxcb, rxq->id);
|
||||
|
||||
if (reclaim) {
|
||||
kzfree(txq->entries[cmd_index].free_buf);
|
||||
kfree_sensitive(txq->entries[cmd_index].free_buf);
|
||||
txq->entries[cmd_index].free_buf = NULL;
|
||||
}
|
||||
|
||||
|
@@ -1026,7 +1026,7 @@ static int iwl_pcie_gen2_enqueue_hcmd(struct iwl_trans *trans,
|
||||
BUILD_BUG_ON(IWL_TFH_NUM_TBS > sizeof(out_meta->tbs) * BITS_PER_BYTE);
|
||||
out_meta->flags = cmd->flags;
|
||||
if (WARN_ON_ONCE(txq->entries[idx].free_buf))
|
||||
kzfree(txq->entries[idx].free_buf);
|
||||
kfree_sensitive(txq->entries[idx].free_buf);
|
||||
txq->entries[idx].free_buf = dup_buf;
|
||||
|
||||
trace_iwlwifi_dev_hcmd(trans->dev, cmd, cmd_size, &out_cmd->hdr_wide);
|
||||
@@ -1257,8 +1257,8 @@ static void iwl_pcie_gen2_txq_free(struct iwl_trans *trans, int txq_id)
|
||||
/* De-alloc array of command/tx buffers */
|
||||
if (txq_id == trans->txqs.cmd.q_id)
|
||||
for (i = 0; i < txq->n_window; i++) {
|
||||
kzfree(txq->entries[i].cmd);
|
||||
kzfree(txq->entries[i].free_buf);
|
||||
kfree_sensitive(txq->entries[i].cmd);
|
||||
kfree_sensitive(txq->entries[i].free_buf);
|
||||
}
|
||||
del_timer_sync(&txq->stuck_timer);
|
||||
|
||||
|
@@ -721,8 +721,8 @@ static void iwl_pcie_txq_free(struct iwl_trans *trans, int txq_id)
|
||||
/* De-alloc array of command/tx buffers */
|
||||
if (txq_id == trans->txqs.cmd.q_id)
|
||||
for (i = 0; i < txq->n_window; i++) {
|
||||
kzfree(txq->entries[i].cmd);
|
||||
kzfree(txq->entries[i].free_buf);
|
||||
kfree_sensitive(txq->entries[i].cmd);
|
||||
kfree_sensitive(txq->entries[i].free_buf);
|
||||
}
|
||||
|
||||
/* De-alloc circular buffer of TFDs */
|
||||
@@ -1765,7 +1765,7 @@ static int iwl_pcie_enqueue_hcmd(struct iwl_trans *trans,
|
||||
BUILD_BUG_ON(IWL_TFH_NUM_TBS > sizeof(out_meta->tbs) * BITS_PER_BYTE);
|
||||
out_meta->flags = cmd->flags;
|
||||
if (WARN_ON_ONCE(txq->entries[idx].free_buf))
|
||||
kzfree(txq->entries[idx].free_buf);
|
||||
kfree_sensitive(txq->entries[idx].free_buf);
|
||||
txq->entries[idx].free_buf = dup_buf;
|
||||
|
||||
trace_iwlwifi_dev_hcmd(trans->dev, cmd, cmd_size, &out_cmd->hdr_wide);
|
||||
|
@@ -31,8 +31,8 @@ static int orinoco_set_key(struct orinoco_private *priv, int index,
|
||||
enum orinoco_alg alg, const u8 *key, int key_len,
|
||||
const u8 *seq, int seq_len)
|
||||
{
|
||||
kzfree(priv->keys[index].key);
|
||||
kzfree(priv->keys[index].seq);
|
||||
kfree_sensitive(priv->keys[index].key);
|
||||
kfree_sensitive(priv->keys[index].seq);
|
||||
|
||||
if (key_len) {
|
||||
priv->keys[index].key = kzalloc(key_len, GFP_ATOMIC);
|
||||
|
Reference in New Issue
Block a user