usbnet: ipheth: transmit URBs without trailing padding
authorFoster Snowhill <forst@pen.gy>
Wed, 7 Jun 2023 13:57:00 +0000 (15:57 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 9 Jun 2023 09:26:57 +0000 (10:26 +0100)
The behaviour of the official iOS tethering driver on macOS is to not
transmit any trailing padding at the end of URBs. This is applicable
to both NCM and legacy modes, including older devices.

Adapt the driver to not include trailing padding in TX URBs, matching
the behaviour of the official macOS driver.

Signed-off-by: Foster Snowhill <forst@pen.gy>
Tested-by: Georgi Valkov <gvalkov@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/usb/ipheth.c

index 8875a3d..dd809e2 100644 (file)
@@ -373,12 +373,10 @@ static netdev_tx_t ipheth_tx(struct sk_buff *skb, struct net_device *net)
        }
 
        memcpy(dev->tx_buf, skb->data, skb->len);
-       if (skb->len < IPHETH_BUF_SIZE)
-               memset(dev->tx_buf + skb->len, 0, IPHETH_BUF_SIZE - skb->len);
 
        usb_fill_bulk_urb(dev->tx_urb, udev,
                          usb_sndbulkpipe(udev, dev->bulk_out),
-                         dev->tx_buf, IPHETH_BUF_SIZE,
+                         dev->tx_buf, skb->len,
                          ipheth_sndbulk_callback,
                          dev);
        dev->tx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;