srm_env: don't bother with pointer to srm_env_t
authorAl Viro <viro@zeniv.linux.org.uk>
Mon, 1 Apr 2013 01:45:09 +0000 (21:45 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 9 Apr 2013 18:13:33 +0000 (14:13 -0400)
Since the only thing in it the methods actually care about is
variable id, just store that directly.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/alpha/kernel/srm_env.c

index 97b4f3f..ffe996a 100644 (file)
@@ -56,7 +56,6 @@ typedef struct _srm_env {
 static struct proc_dir_entry   *base_dir;
 static struct proc_dir_entry   *named_dir;
 static struct proc_dir_entry   *numbered_dir;
-static char                    number[256][4];
 
 static srm_env_t       srm_named_entries[] = {
        { "auto_action",        ENV_AUTO_ACTION         },
@@ -76,21 +75,18 @@ static srm_env_t    srm_named_entries[] = {
        { "tty_dev",            ENV_TTY_DEV             },
        { NULL,                 0                       },
 };
-static srm_env_t       srm_numbered_entries[256];
-
 
 static int srm_env_proc_show(struct seq_file *m, void *v)
 {
        unsigned long   ret;
-       srm_env_t       *entry;
+       unsigned long   id = (unsigned long)m->private;
        char            *page;
 
-       entry = m->private;
        page = (char *)__get_free_page(GFP_USER);
        if (!page)
                return -ENOMEM;
 
-       ret = callback_getenv(entry->id, page, PAGE_SIZE);
+       ret = callback_getenv(id, page, PAGE_SIZE);
 
        if ((ret >> 61) == 0) {
                seq_write(m, page, ret);
@@ -110,7 +106,7 @@ static ssize_t srm_env_proc_write(struct file *file, const char __user *buffer,
                                  size_t count, loff_t *pos)
 {
        int res;
-       srm_env_t       *entry = PDE_DATA(file_inode(file));
+       unsigned long   id = (unsigned long)PDE_DATA(file_inode(file));
        char            *buf = (char *) __get_free_page(GFP_USER);
        unsigned long   ret1, ret2;
 
@@ -126,7 +122,7 @@ static ssize_t srm_env_proc_write(struct file *file, const char __user *buffer,
                goto out;
        buf[count] = '\0';
 
-       ret1 = callback_setenv(entry->id, buf, count);
+       ret1 = callback_setenv(id, buf, count);
        if ((ret1 >> 61) == 0) {
                do
                        ret2 = callback_save_env();
@@ -166,12 +162,6 @@ srm_env_init(void)
        }
 
        /*
-        * Init numbers
-        */
-       for (var_num = 0; var_num <= 255; var_num++)
-               sprintf(number[var_num], "%ld", var_num);
-
-       /*
         * Create base directory
         */
        base_dir = proc_mkdir(BASE_DIR, NULL);
@@ -208,7 +198,7 @@ srm_env_init(void)
        entry = srm_named_entries;
        while (entry->name && entry->id) {
                if (!proc_create_data(entry->name, 0644, named_dir,
-                                            &srm_env_proc_fops, entry))
+                            &srm_env_proc_fops, (void *)entry->id))
                        goto cleanup;
                entry++;
        }
@@ -217,14 +207,11 @@ srm_env_init(void)
         * Create all numbered nodes
         */
        for (var_num = 0; var_num <= 255; var_num++) {
-               entry = &srm_numbered_entries[var_num];
-               entry->name = number[var_num];
-
-               if (!proc_create_data(entry->name, 0644, numbered_dir,
-                                            &srm_env_proc_fops, entry))
+               char name[4];
+               sprintf(name, "%ld", var_num);
+               if (!proc_create_data(name, 0644, numbered_dir,
+                            &srm_env_proc_fops, (void *)var_num))
                        goto cleanup;
-
-               entry->id                       = var_num;
        }
 
        printk(KERN_INFO "%s: version %s loaded successfully\n", NAME,
@@ -242,8 +229,6 @@ srm_env_exit(void)
 {
        remove_proc_subtree(BASE_DIR, NULL);
        printk(KERN_INFO "%s: unloaded successfully\n", NAME);
-
-       return;
 }
 
 module_init(srm_env_init);