summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiloslav Trmač <mitr@redhat.com>2010-08-16 15:08:29 +0200
committerMiloslav Trmač <mitr@redhat.com>2010-08-24 23:09:34 +0200
commit9aa6874612bf258f0a9795371db9b3dc514376aa (patch)
tree2fb3e731666af97eea275c69765727522b419dce
parentaf980a4453d1d36486c5d75c49d389b0cc7e2c79 (diff)
downloadcryptodev-linux-9aa6874612bf258f0a9795371db9b3dc514376aa.tar.gz
cryptodev-linux-9aa6874612bf258f0a9795371db9b3dc514376aa.tar.xz
cryptodev-linux-9aa6874612bf258f0a9795371db9b3dc514376aa.zip
Convert *_KEY_DEINIT
-rw-r--r--ncr-int.h2
-rw-r--r--ncr-key.c10
-rw-r--r--ncr.c13
3 files changed, 13 insertions, 12 deletions
diff --git a/ncr-int.h b/ncr-int.h
index 79bdc14..ff7e08e 100644
--- a/ncr-int.h
+++ b/ncr-int.h
@@ -120,7 +120,7 @@ void ncr_key_assign_flags(struct key_item_st* item, unsigned int flags);
/* key handling */
int ncr_key_init(struct ncr_lists *lst);
-int ncr_key_deinit(struct ncr_lists *lst, void __user* arg);
+int ncr_key_deinit(struct ncr_lists *lst, ncr_key_t desc);
int ncr_key_export(struct ncr_lists *lst, const struct ncr_key_export *data,
struct nlattr *tb[]);
int ncr_key_import(struct ncr_lists *lst, const struct ncr_key_import *data,
diff --git a/ncr-key.c b/ncr-key.c
index 01109c7..56708d8 100644
--- a/ncr-key.c
+++ b/ncr-key.c
@@ -196,17 +196,9 @@ err_limits:
return ret;
}
-int ncr_key_deinit(struct ncr_lists *lst, void __user* arg)
+int ncr_key_deinit(struct ncr_lists *lst, ncr_key_t desc)
{
- ncr_key_t desc;
-
- if (unlikely(copy_from_user(&desc, arg, sizeof(desc)))) {
- err();
- return -EFAULT;
- }
-
_ncr_key_remove(lst, desc);
-
return 0;
}
diff --git a/ncr.c b/ncr.c
index 2244253..fb8645c 100644
--- a/ncr.c
+++ b/ncr.c
@@ -168,8 +168,16 @@ ncr_ioctl(struct ncr_lists *lst, unsigned int cmd, unsigned long arg_)
}
CASE_NO_OUTPUT(NCRIO_KEY_EXPORT, ncr_key_export, ncr_key_export);
CASE_NO_OUTPUT(NCRIO_KEY_IMPORT, ncr_key_import, ncr_key_import);
- case NCRIO_KEY_DEINIT:
- return ncr_key_deinit(lst, arg);
+ case NCRIO_KEY_DEINIT: {
+ ncr_key_t key;
+
+ ret = get_user(key, (const ncr_key_t __user *)arg);
+ if (unlikely(ret)) {
+ err();
+ return ret;
+ }
+ return ncr_key_deinit(lst, key);
+ }
case NCRIO_KEY_WRAP:
return ncr_key_wrap(lst, arg);
case NCRIO_KEY_UNWRAP:
@@ -249,6 +257,7 @@ ncr_compat_ioctl(struct ncr_lists *lst, unsigned int cmd, unsigned long arg_)
case NCRIO_KEY_GENERATE_PAIR:
case NCRIO_KEY_DERIVE:
case NCRIO_KEY_GET_INFO:
+ case NCRIO_KEY_DEINIT:
return ncr_ioctl(lst, cmd, arg_);
#define CASE_NO_OUTPUT(LABEL, STRUCT, FUNCTION) \