tty: n_gsm: introduce macro for minimal unit size
authorDaniel Starke <daniel.starke@siemens.com>
Thu, 3 Nov 2022 09:17:41 +0000 (10:17 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 9 Nov 2022 12:03:58 +0000 (13:03 +0100)
n_gsm has a minimal protocol overhead of 7 bytes. The current code already
checks whether the configured MRU/MTU size is at least one byte more than
this.

Introduce the macro MIN_MTU to make this value more obvious.

Signed-off-by: Daniel Starke <daniel.starke@siemens.com>
Link: https://lore.kernel.org/r/20221103091743.2119-1-daniel.starke@siemens.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/n_gsm.c

index 5e516f5cac5a32171428d72d510765586b61ad3e..570c40a3d78f20ba0bb736b00fbec2562420e302 100644 (file)
@@ -89,6 +89,7 @@ module_param(debug, int, 0600);
  */
 #define MAX_MRU 1500
 #define MAX_MTU 1500
+#define MIN_MTU (PROT_OVERHEAD + 1)
 /* SOF, ADDR, CTRL, LEN1, LEN2, ..., FCS, EOF */
 #define PROT_OVERHEAD 7
 #define        GSM_NET_TX_TIMEOUT (HZ*10)
@@ -2712,7 +2713,9 @@ static int gsm_config(struct gsm_mux *gsm, struct gsm_config *c)
        if ((c->adaption != 1 && c->adaption != 2) || c->k)
                return -EOPNOTSUPP;
        /* Check the MRU/MTU range looks sane */
-       if (c->mru > MAX_MRU || c->mtu > MAX_MTU || c->mru < 8 || c->mtu < 8)
+       if (c->mru < MIN_MTU || c->mtu < MIN_MTU)
+               return -EINVAL;
+       if (c->mru > MAX_MRU || c->mtu > MAX_MTU)
                return -EINVAL;
        if (c->n2 > 255)
                return -EINVAL;
@@ -3296,7 +3299,7 @@ static int gsm_create_network(struct gsm_dlci *dlci, struct gsm_netconfig *nc)
                return -ENOMEM;
        }
        net->mtu = dlci->gsm->mtu;
-       net->min_mtu = 8;
+       net->min_mtu = MIN_MTU;
        net->max_mtu = dlci->gsm->mtu;
        mux_net = netdev_priv(net);
        mux_net->dlci = dlci;