diff options
author | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-05-28 16:05:58 +0200 |
---|---|---|
committer | Nikos Mavrogiannopoulos <nmav@gnutls.org> | 2010-06-17 20:47:38 +0200 |
commit | d3c211c2e46125ea98a45f2dad9af4669c347fa6 (patch) | |
tree | cffed929cfb1f6fe9b0c9f41d5fa2130571f123b | |
parent | c3695ab5f06af533deaf1de75cdd4631a9d77d00 (diff) | |
download | kernel-crypto-d3c211c2e46125ea98a45f2dad9af4669c347fa6.tar.gz kernel-crypto-d3c211c2e46125ea98a45f2dad9af4669c347fa6.tar.xz kernel-crypto-d3c211c2e46125ea98a45f2dad9af4669c347fa6.zip |
Compilation and initialization fixes.
-rw-r--r-- | examples/new.c | 9 | ||||
-rw-r--r-- | ncr-limits.c | 11 | ||||
-rw-r--r-- | ncr.c | 2 | ||||
-rw-r--r-- | ncr_int.h | 1 |
4 files changed, 15 insertions, 8 deletions
diff --git a/examples/new.c b/examples/new.c index 8d0adb5bee1..afe9cf0feb1 100644 --- a/examples/new.c +++ b/examples/new.c @@ -128,22 +128,21 @@ test_ncr_data(int cfd) kdata.append_flag = 0; if (ioctl(cfd, NCRIO_DATA_GET, &kdata)) { - perror("ioctl"); fprintf(stderr, "Verified that unexportable data cannot be exported\n"); } else { fprintf(stderr, "Unexportable data were exported!?\n"); - return 1; /* ok */ + return 1; } - for (i=0;i<512;i++ ) { + for (i=0;i<256;i++ ) { init.max_object_size = DATA_SIZE; init.flags = 0; init.initial_data = data; init.initial_data_size = sizeof(data); if (ioctl(cfd, NCRIO_DATA_INIT, &init)) { - perror("ioctl(NCRIO_DATA_INIT)"); - fprintf(stderr, "Reached maximum limit at: %d data\n", i); + fprintf(stderr, "Reached maximum limit at: %d data items\n", i); + break; } } diff --git a/ncr-limits.c b/ncr-limits.c index c65b7b333d7..df6be74ca5b 100644 --- a/ncr-limits.c +++ b/ncr-limits.c @@ -26,6 +26,8 @@ #include "cryptodev.h" #include <asm/atomic.h> #include <linux/version.h> +#include <linux/file.h> +#include <linux/cred.h> #include "ncr.h" #include "ncr_int.h" @@ -57,7 +59,9 @@ struct limit_process_item_st { struct limit_st { struct list_sem_st users; struct list_sem_st processes; -} limits; +}; + +static struct limit_st limits; void ncr_limits_init(void) { @@ -87,6 +91,7 @@ int add = 1; list_for_each_entry(uitem, &limits.users.list, list) { if (uitem->uid == uid && uitem->type == type) { add = 0; +printk("user: %d max: %d, count: %d\n", (int)uid, max_per_user[type], atomic_read(&uitem->cnt)); if (atomic_add_unless(&uitem->cnt, 1, max_per_user[type])==0) { err(); up(&limits.users.sem); @@ -96,7 +101,7 @@ int add = 1; } if (add) { - uitem = kmalloc(GFP_KERNEL, sizeof(*uitem)); + uitem = kmalloc( sizeof(*uitem), GFP_KERNEL); if (uitem == NULL) { err(); return -ENOMEM; @@ -125,7 +130,7 @@ int add = 1; if (add) { - pitem = kmalloc(GFP_KERNEL, sizeof(*pitem)); + pitem = kmalloc(sizeof(*pitem), GFP_KERNEL); if (uitem == NULL) { err(); return -ENOMEM; @@ -50,6 +50,8 @@ void* ncr_init_lists(void) init_MUTEX(&lst->key.sem); INIT_LIST_HEAD(&lst->key.list); + ncr_limits_init(); + return lst; } diff --git a/ncr_int.h b/ncr_int.h index 82141ac6112..58fda2255cd 100644 --- a/ncr_int.h +++ b/ncr_int.h @@ -91,5 +91,6 @@ typedef enum { void ncr_limits_remove(struct file *filp, limits_type_t type); int ncr_limits_add_and_check(struct file *filp, limits_type_t type); +void ncr_limits_init(void); #endif |