diff options
author | Miloslav Trmač <mitr@redhat.com> | 2010-08-16 14:30:45 +0200 |
---|---|---|
committer | Miloslav Trmač <mitr@redhat.com> | 2010-08-24 23:09:33 +0200 |
commit | af980a4453d1d36486c5d75c49d389b0cc7e2c79 (patch) | |
tree | a0fa05935094757d33c794cc3dcf8d59f63a10ab /ncr.c | |
parent | 827e65e77c32da30ce675e8e7c05de73d9aeab5a (diff) | |
download | kernel-crypto-af980a4453d1d36486c5d75c49d389b0cc7e2c79.tar.gz kernel-crypto-af980a4453d1d36486c5d75c49d389b0cc7e2c79.tar.xz kernel-crypto-af980a4453d1d36486c5d75c49d389b0cc7e2c79.zip |
Convert *_KEY_IMPORT
Diffstat (limited to 'ncr.c')
-rw-r--r-- | ncr.c | 21 |
1 files changed, 19 insertions, 2 deletions
@@ -167,10 +167,9 @@ ncr_ioctl(struct ncr_lists *lst, unsigned int cmd, unsigned long arg_) break; } 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_IMPORT: - return ncr_key_import(lst, arg); case NCRIO_KEY_WRAP: return ncr_key_wrap(lst, arg); case NCRIO_KEY_UNWRAP: @@ -216,6 +215,23 @@ static void convert_ncr_key_export(struct ncr_key_export *new, new->buffer_size = old->buffer_size; } +struct compat_ncr_key_import { + __u32 input_size, output_size; + ncr_key_t key; + compat_uptr_t data; + __u32 data_size; + __NL_ATTRIBUTES; +}; +#define COMPAT_NCRIO_KEY_IMPORT _IOWR('c', 210, struct compat_ncr_key_import) + +static void convert_ncr_key_import(struct ncr_key_import *new, + const struct compat_ncr_key_import *old) +{ + new->key = old->key; + new->data = compat_ptr(old->data); + new->data_size = old->data_size; +} + long ncr_compat_ioctl(struct ncr_lists *lst, unsigned int cmd, unsigned long arg_) { @@ -251,6 +267,7 @@ ncr_compat_ioctl(struct ncr_lists *lst, unsigned int cmd, unsigned long arg_) } CASE_NO_OUTPUT(COMPAT_NCRIO_KEY_EXPORT, ncr_key_export, ncr_key_export); + CASE_NO_OUTPUT(COMPAT_NCRIO_KEY_IMPORT, ncr_key_import, ncr_key_import); default: return -EINVAL; #undef CASE_NO_OUTPUT |