summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJakub Kicinski <kuba@kernel.org>2021-11-25 19:40:41 -0800
committerJakub Kicinski <kuba@kernel.org>2021-11-25 19:40:41 -0800
commit8e25fa5af89a54ad258ba90a17c90f9fc2b8c523 (patch)
tree919d0cc29f9458a9d2c183ebf6636cc8adbc063d
parent342e5f9fc73f7af0fa253c1ec8ea237512b5ebf5 (diff)
parentd1c99f365a1f51f9c7e76ea3c52605cf740b3251 (diff)
downloadlwn-8e25fa5af89a54ad258ba90a17c90f9fc2b8c523.tar.gz
lwn-8e25fa5af89a54ad258ba90a17c90f9fc2b8c523.zip
Merge branch 'mctp-serial-minor-fixes'
Jeremy Kerr says: ==================== mctp serial minor fixes We had a few minor fixes queued for a v4 of the original series, so they're sent here as separate changes. v2: - fix ordering of cancel_work vs. unregister_netdev. ==================== Link: https://lore.kernel.org/r/20211125060739.3023442-1-jk@codeconstruct.com.au Signed-off-by: Jakub Kicinski <kuba@kernel.org>
-rw-r--r--drivers/net/mctp/mctp-serial.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/drivers/net/mctp/mctp-serial.c b/drivers/net/mctp/mctp-serial.c
index 9ac0e187f36e..eaa6fb3224bc 100644
--- a/drivers/net/mctp/mctp-serial.c
+++ b/drivers/net/mctp/mctp-serial.c
@@ -410,7 +410,14 @@ static const struct net_device_ops mctp_serial_netdev_ops = {
static void mctp_serial_setup(struct net_device *ndev)
{
ndev->type = ARPHRD_MCTP;
+
+ /* we limit at the fixed MTU, which is also the MCTP-standard
+ * baseline MTU, so is also our minimum
+ */
ndev->mtu = MCTP_SERIAL_MTU;
+ ndev->max_mtu = MCTP_SERIAL_MTU;
+ ndev->min_mtu = MCTP_SERIAL_MTU;
+
ndev->hard_header_len = 0;
ndev->addr_len = 0;
ndev->tx_queue_len = DEFAULT_TX_QUEUE_LEN;
@@ -432,9 +439,6 @@ static int mctp_serial_open(struct tty_struct *tty)
if (!tty->ops->write)
return -EOPNOTSUPP;
- if (tty->disc_data)
- return -EEXIST;
-
idx = ida_alloc(&mctp_serial_ida, GFP_KERNEL);
if (idx < 0)
return idx;
@@ -479,6 +483,7 @@ static void mctp_serial_close(struct tty_struct *tty)
int idx = dev->idx;
unregister_netdev(dev->netdev);
+ cancel_work_sync(&dev->tx_work);
ida_free(&mctp_serial_ida, idx);
}