char *fp, int count)
 {
        struct gsm_mux *gsm = tty->disc_data;
-       const unsigned char *dp;
-       char *f;
-       int i;
        char flags = TTY_NORMAL;
 
        if (debug & 4)
                print_hex_dump_bytes("gsmld_receive: ", DUMP_PREFIX_OFFSET,
                                     cp, count);
 
-       for (i = count, dp = cp, f = fp; i; i--, dp++) {
-               if (f)
-                       flags = *f++;
+       for (; count; count--, cp++) {
+               if (fp)
+                       flags = *fp++;
                switch (flags) {
                case TTY_NORMAL:
-                       gsm->receive(gsm, *dp);
+                       gsm->receive(gsm, *cp);
                        break;
                case TTY_OVERRUN:
                case TTY_BREAK:
                case TTY_PARITY:
                case TTY_FRAME:
-                       gsm_error(gsm, *dp, flags);
+                       gsm_error(gsm, *cp, flags);
                        break;
                default:
                        WARN_ONCE(1, "%s: unknown flag %d\n",