[PATCH 4.4 104/124] net: lan78xx: fix rx handling before first packet is send

From: Greg Kroah-Hartman
Date: Sat Aug 04 2018 - 05:12:04 EST


4.4-stable review patch. If anyone has any objections, please let me know.

------------------

From: Stefan Wahren <stefan.wahren@xxxxxxxx>

[ Upstream commit 136f55f660192ce04af091642efc75d85e017364 ]

As long the bh tasklet isn't scheduled once, no packet from the rx path
will be handled. Since the tx path also schedule the same tasklet
this situation only persits until the first packet transmission.
So fix this issue by scheduling the tasklet after link reset.

Link: https://github.com/raspberrypi/linux/issues/2617
Fixes: 55d7de9de6c3 ("Microchip's LAN7800 family USB 2/3 to 10/100/1000 Ethernet")
Suggested-by: Floris Bos <bos@xxxxxxxxxxxxxxxxxx>
Signed-off-by: Stefan Wahren <stefan.wahren@xxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>
Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
---
drivers/net/usb/lan78xx.c | 2 ++
1 file changed, 2 insertions(+)

--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -1361,6 +1361,8 @@ static void lan78xx_init_mac_address(str
netif_dbg(dev, ifup, dev->net,
"MAC address set to random addr");
}
+
+ tasklet_schedule(&dev->bh);
}

ret = lan78xx_write_reg(dev, MAF_LO(0), addr_lo);