int sz, fnw_sz;
        int delta;
        char *first_free, *fj, *fnw;
-       int i, j, k;
+       int j, k;
        int ret;
        unsigned long flags;
+       unsigned char kb_func;
 
        if (!capable(CAP_SYS_TTY_CONFIG))
                perm = 0;
                goto reterr;
        }
        kbs->kb_string[sizeof(kbs->kb_string)-1] = '\0';
-       i = array_index_nospec(kbs->kb_func, MAX_NR_FUNC);
+       kb_func = array_index_nospec(kbs->kb_func, MAX_NR_FUNC);
 
        switch (cmd) {
        case KDGKBSENT: {
                ssize_t len = sizeof(user_kdgkb->kb_string);
 
                spin_lock_irqsave(&func_buf_lock, flags);
-               len = strlcpy(kbs->kb_string, func_table[i] ? : "", len);
+               len = strlcpy(kbs->kb_string, func_table[kb_func] ? : "", len);
                spin_unlock_irqrestore(&func_buf_lock, flags);
 
                ret = copy_to_user(user_kdgkb->kb_string, kbs->kb_string,
                /* race aginst other writers */
                again:
                spin_lock_irqsave(&func_buf_lock, flags);
-               q = func_table[i];
+               q = func_table[kb_func];
 
                /* fj pointer to next entry after 'q' */
                first_free = funcbufptr + (funcbufsize - funcbufleft);
-               for (j = i+1; j < MAX_NR_FUNC && !func_table[j]; j++)
+               for (j = kb_func + 1; j < MAX_NR_FUNC && !func_table[j]; j++)
                        ;
                if (j < MAX_NR_FUNC)
                        fj = func_table[j];
                                func_table[k] += delta;
                    }
                    if (!q)
-                     func_table[i] = fj;
+                     func_table[kb_func] = fj;
                    funcbufleft -= delta;
                } else {                        /* allocate a larger buffer */
                    sz = 256;
                    }
 
                    if (!q)
-                     func_table[i] = fj;
+                     func_table[kb_func] = fj;
                    /* copy data before insertion point to new location */
                    if (fj > funcbufptr)
                        memmove(fnw, funcbufptr, fj - funcbufptr);
                    funcbufsize = sz;
                }
                /* finally insert item itself */
-               strcpy(func_table[i], kbs->kb_string);
+               strcpy(func_table[kb_func], kbs->kb_string);
                spin_unlock_irqrestore(&func_buf_lock, flags);
                break;
        }