brcmfmac: remove arp_hostip_clear from brcmf_netdev_stop
authorWright Feng <wright.feng@cypress.com>
Mon, 27 Apr 2020 07:00:00 +0000 (02:00 -0500)
committerKalle Valo <kvalo@codeaurora.org>
Mon, 4 May 2020 09:48:28 +0000 (12:48 +0300)
The firmware does not respond ARP request and causes ping failure with
following steps:

1. Bring up interface
   ifconfig wlan0 up or start wpa_supplicant
2. Set the IP address
   ifconfig wlan0 192.168.100.10
3. Bring down interface or
   ifconfig wlan0 down or kill wpa_supplicant
4. Bring up interface again and set the same IP address
5. Connect to AP(192.168.100.1) and ping to AP will be failed.

FMAC clears arp_hostip when bringing down the interface, but not set it
back if setting the same IP address. We are able to see the IP address
in interface info(inconfig wlan0) but the ping still cannot work because
the firmware ARP offload does not respond the ARP request.
Because of that, we remove "arp_hostip_clear" from function
"brcmf_netdev_stop"

Signed-off-by: Wright Feng <wright.feng@cypress.com>
Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com>
Reviewed-by: Franky Lin <franky.lin@broadcom.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/1587970803-77700-3-git-send-email-chi-hsien.lin@cypress.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c

index 23627c9..10584ee 100644 (file)
@@ -579,9 +579,6 @@ static int brcmf_netdev_stop(struct net_device *ndev)
 
        brcmf_cfg80211_down(ndev);
 
-       if (ifp->drvr->bus_if->state == BRCMF_BUS_UP)
-               brcmf_fil_iovar_data_set(ifp, "arp_hostip_clear", NULL, 0);
-
        brcmf_net_setcarrier(ifp, false);
 
        return 0;