mirror of
https://github.com/Ysurac/openmptcprouter.git
synced 2025-02-13 03:41:54 +00:00
Should fix issues with iPhone
This commit is contained in:
parent
682debff69
commit
e5205730ea
1 changed files with 52 additions and 0 deletions
|
@ -0,0 +1,52 @@
|
|||
From dd109ded2b526636fff438d33433ab64ffd21583 Mon Sep 17 00:00:00 2001
|
||||
From: Georgi Valkov <gvalkov@abv.bg>
|
||||
Date: Fri, 16 Apr 2021 20:44:36 +0300
|
||||
Subject: [PATCH] ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback
|
||||
|
||||
When rx_buf is allocated we need to account for IPHETH_IP_ALIGN,
|
||||
which reduces the usable size by 2 bytes. Otherwise we have 1512
|
||||
bytes usable instead of 1514, and if we receive more than 1512
|
||||
bytes, ipheth_rcvbulk_callback is called with status -EOVERFLOW,
|
||||
after which the driver malfunctiones and all communication stops.
|
||||
|
||||
Fixes: ipheth 2-1:4.2: ipheth_rcvbulk_callback: urb status: -75
|
||||
|
||||
Signed-off-by: Georgi Valkov <gvalkov@abv.bg>
|
||||
---
|
||||
drivers/net/usb/ipheth.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c
|
||||
index 207e59e74935..06d9f19ca142 100644
|
||||
--- a/drivers/net/usb/ipheth.c
|
||||
+++ b/drivers/net/usb/ipheth.c
|
||||
@@ -121,7 +121,7 @@ static int ipheth_alloc_urbs(struct ipheth_device *iphone)
|
||||
if (tx_buf == NULL)
|
||||
goto free_rx_urb;
|
||||
|
||||
- rx_buf = usb_alloc_coherent(iphone->udev, IPHETH_BUF_SIZE,
|
||||
+ rx_buf = usb_alloc_coherent(iphone->udev, IPHETH_BUF_SIZE + IPHETH_IP_ALIGN,
|
||||
GFP_KERNEL, &rx_urb->transfer_dma);
|
||||
if (rx_buf == NULL)
|
||||
goto free_tx_buf;
|
||||
@@ -146,7 +146,7 @@ static int ipheth_alloc_urbs(struct ipheth_device *iphone)
|
||||
|
||||
static void ipheth_free_urbs(struct ipheth_device *iphone)
|
||||
{
|
||||
- usb_free_coherent(iphone->udev, IPHETH_BUF_SIZE, iphone->rx_buf,
|
||||
+ usb_free_coherent(iphone->udev, IPHETH_BUF_SIZE + IPHETH_IP_ALIGN, iphone->rx_buf,
|
||||
iphone->rx_urb->transfer_dma);
|
||||
usb_free_coherent(iphone->udev, IPHETH_BUF_SIZE, iphone->tx_buf,
|
||||
iphone->tx_urb->transfer_dma);
|
||||
@@ -317,7 +317,7 @@ static int ipheth_rx_submit(struct ipheth_device *dev, gfp_t mem_flags)
|
||||
|
||||
usb_fill_bulk_urb(dev->rx_urb, udev,
|
||||
usb_rcvbulkpipe(udev, dev->bulk_in),
|
||||
- dev->rx_buf, IPHETH_BUF_SIZE,
|
||||
+ dev->rx_buf, IPHETH_BUF_SIZE + IPHETH_IP_ALIGN,
|
||||
ipheth_rcvbulk_callback,
|
||||
dev);
|
||||
dev->rx_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
|
||||
--
|
||||
2.31.1
|
||||
|
Loading…
Reference in a new issue