diff options
author | Jakub Kicinski <kuba@kernel.org> | 2021-11-25 19:40:41 -0800 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2021-11-25 19:40:41 -0800 |
commit | 8e25fa5af89a54ad258ba90a17c90f9fc2b8c523 (patch) | |
tree | 919d0cc29f9458a9d2c183ebf6636cc8adbc063d | |
parent | 342e5f9fc73f7af0fa253c1ec8ea237512b5ebf5 (diff) | |
parent | d1c99f365a1f51f9c7e76ea3c52605cf740b3251 (diff) | |
download | lwn-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.c | 11 |
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); } |