diff --git a/security/keys/user_defined.c b/security/keys/user_defined.c index c6ca8662a468..f66baf44f32d 100644 --- a/security/keys/user_defined.c +++ b/security/keys/user_defined.c @@ -68,18 +68,6 @@ int user_instantiate(struct key *key, const void *data, size_t datalen) EXPORT_SYMBOL_GPL(user_instantiate); -/* - * dispose of the old data from an updated user defined key - */ -static void user_update_rcu_disposal(struct rcu_head *rcu) -{ - struct user_key_payload *upayload; - - upayload = container_of(rcu, struct user_key_payload, rcu); - - kfree(upayload); -} - /* * update a user defined key * - the key's semaphore is write-locked @@ -114,7 +102,7 @@ int user_update(struct key *key, const void *data, size_t datalen) key->expiry = 0; } - call_rcu(&zap->rcu, user_update_rcu_disposal); + kfree_rcu(zap, rcu); error: return ret; @@ -145,7 +133,7 @@ void user_revoke(struct key *key) if (upayload) { rcu_assign_pointer(key->payload.data, NULL); - call_rcu(&upayload->rcu, user_update_rcu_disposal); + kfree_rcu(upayload, rcu); } }