forked from Openwrt/openwrt
680f8738d0
Fixes no communication with tethered iOS devices in CDC NCM mode.
Freshly booted iOS devices start in legacy mode, but are put into
NCM mode by the official Apple driver.
[1] a2d274c62e
Fixes: #12566
Tested-by: Georgi Valkov <gvalkov@gmail.com>
Signed-off-by: Foster Snowhill <forst@pen.gy>
Signed-off-by: Georgi Valkov <gvalkov@gmail.com>
[ better reference fixed issue ]
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
36 lines
1.3 KiB
Diff
36 lines
1.3 KiB
Diff
From 3e65efcca87a9bb5f3b864e0a43d167bc0a8688c Mon Sep 17 00:00:00 2001
|
|
From: Foster Snowhill <forst@pen.gy>
|
|
Date: Wed, 7 Jun 2023 15:57:00 +0200
|
|
Subject: [PATCH 2/4] usbnet: ipheth: transmit URBs without trailing padding
|
|
|
|
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 | 4 +---
|
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
|
|
|
--- a/drivers/net/usb/ipheth.c
|
|
+++ b/drivers/net/usb/ipheth.c
|
|
@@ -373,12 +373,10 @@ static netdev_tx_t ipheth_tx(struct sk_b
|
|
}
|
|
|
|
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;
|