mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 05:54:26 -04:00 
			
		
		
		
	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;
 |