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 8875a3d0e6d91bb6d4b40218c7c66ef78e009681..dd809e247521386c92543c4a8dc118b93b2776d5 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;