tty: synclink_gt: don't allocate and pass dummy flags
authorJiri Slaby (SUSE) <jirislaby@kernel.org>
Thu, 20 Apr 2023 09:35:30 +0000 (11:35 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 20 Apr 2023 11:32:53 +0000 (13:32 +0200)
In synclinc_gt, the flag_buf is allocated, zeroed and passed to ldisc's
receive_buf(). It is never written to, so it serves as a dummy buffer.
That's unneeded because all ldiscs accept NULL as flags. That NULL
resolves to the TTY_NORMAL flag.

So drop all this nonsense.

Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Link: https://lore.kernel.org/r/20230420093530.13133-1-jirislaby@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/synclink_gt.c

index 543b3224dce9d1f5608004ae26ca72a46fceb9a0..16e469e581eccfe237deecf1ef73b20ae9f6f26a 100644 (file)
@@ -287,7 +287,6 @@ struct slgt_info {
        unsigned char *tx_buf;
        int tx_count;
 
-       char *flag_buf;
        bool drop_rts_on_tx_done;
        struct  _input_signal_events    input_signal_events;
 
@@ -3244,13 +3243,7 @@ static int alloc_tmp_rbuf(struct slgt_info *info)
        info->tmp_rbuf = kmalloc(info->max_frame_size + 5, GFP_KERNEL);
        if (info->tmp_rbuf == NULL)
                return -ENOMEM;
-       /* unused flag buffer to satisfy receive_buf calling interface */
-       info->flag_buf = kzalloc(info->max_frame_size + 5, GFP_KERNEL);
-       if (!info->flag_buf) {
-               kfree(info->tmp_rbuf);
-               info->tmp_rbuf = NULL;
-               return -ENOMEM;
-       }
+
        return 0;
 }
 
@@ -3258,8 +3251,6 @@ static void free_tmp_rbuf(struct slgt_info *info)
 {
        kfree(info->tmp_rbuf);
        info->tmp_rbuf = NULL;
-       kfree(info->flag_buf);
-       info->flag_buf = NULL;
 }
 
 /*
@@ -4657,7 +4648,8 @@ check_again:
                                hdlcdev_rx(info,info->tmp_rbuf, framesize);
                        else
 #endif
-                               ldisc_receive_buf(tty, info->tmp_rbuf, info->flag_buf, framesize);
+                               ldisc_receive_buf(tty, info->tmp_rbuf, NULL,
+                                                 framesize);
                }
        }
        free_rbufs(info, start, end);
@@ -4691,8 +4683,8 @@ static bool rx_get_buf(struct slgt_info *info)
        DBGDATA(info, info->rbufs[i].buf, count, "rx");
        DBGINFO(("rx_get_buf size=%d\n", count));
        if (count)
-               ldisc_receive_buf(info->port.tty, info->rbufs[i].buf,
-                                 info->flag_buf, count);
+               ldisc_receive_buf(info->port.tty, info->rbufs[i].buf, NULL,
+                                 count);
        free_rbufs(info, i, i);
        return true;
 }