Commit 6ac6172a authored by Mimi Zohar's avatar Mimi Zohar Committed by James Morris

encrypted-keys: fix rcu and sparse messages

Enabling CONFIG_PROVE_RCU and CONFIG_SPARSE_RCU_POINTER resulted in
"suspicious rcu_dereference_check() usage!" and "incompatible types
in comparison expression (different address spaces)" messages.

Access the masterkey directly when holding the rwsem.

Changelog v1:
- Use either rcu_read_lock()/rcu_derefence_key()/rcu_read_unlock()
or remove the unnecessary rcu_derefence() - David Howells
Reported-by: default avatarDmitry Kasatkin <dmitry.kasatkin@intel.com>
Signed-off-by: default avatarMimi Zohar <zohar@us.ibm.com>
Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
Signed-off-by: default avatarJames Morris <jmorris@namei.org>
parent ee0b31a2
...@@ -314,7 +314,7 @@ static struct key *request_user_key(const char *master_desc, u8 **master_key, ...@@ -314,7 +314,7 @@ static struct key *request_user_key(const char *master_desc, u8 **master_key,
goto error; goto error;
down_read(&ukey->sem); down_read(&ukey->sem);
upayload = rcu_dereference(ukey->payload.data); upayload = ukey->payload.data;
*master_key = upayload->data; *master_key = upayload->data;
*master_keylen = upayload->datalen; *master_keylen = upayload->datalen;
error: error:
......
...@@ -39,7 +39,7 @@ struct key *request_trusted_key(const char *trusted_desc, ...@@ -39,7 +39,7 @@ struct key *request_trusted_key(const char *trusted_desc,
goto error; goto error;
down_read(&tkey->sem); down_read(&tkey->sem);
tpayload = rcu_dereference(tkey->payload.data); tpayload = tkey->payload.data;
*master_key = tpayload->key; *master_key = tpayload->key;
*master_keylen = tpayload->key_len; *master_keylen = tpayload->key_len;
error: error:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment