Message ID | 1541648845-194984-3-git-send-email-chi-hsien.lin@cypress.com (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | brcmfmac: p2p/miracast/apsta fixes | expand |
On Wed, Nov 7, 2018 at 7:48 PM Chi-Hsien Lin <Chi-Hsien.Lin@cypress.com> wrote: > > From: Wright Feng <wright.feng@cypress.com> > > 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" Shouldn't brcmf_inetaddr_changed get called when the interface up again? Thanks, - Franky > > Signed-off-by: Wright Feng <wright.feng@cypress.com> > Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com> > --- > drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 -- > 1 file changed, 2 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c > index b1f702faff4f..e1666cf3801c 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c > @@ -533,8 +533,6 @@ static int brcmf_netdev_stop(struct net_device *ndev) > > brcmf_cfg80211_down(ndev); > > - brcmf_fil_iovar_data_set(ifp, "arp_hostip_clear", NULL, 0); > - > brcmf_net_setcarrier(ifp, false); > > return 0; > -- > 2.1.0 >
On 2018/11/9 上午 03:19, Franky Lin wrote: > On Wed, Nov 7, 2018 at 7:48 PM Chi-Hsien Lin <Chi-Hsien.Lin@cypress.com> wrote: >> >> From: Wright Feng <wright.feng@cypress.com> >> >> 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" > > Shouldn't brcmf_inetaddr_changed get called when the interface up again? > > Thanks, > - Franky > The brcmf_inetaddr_changed only be called in inet_del_ifa and inet_insert_ifa. If the IP address is not changed when the interface up again, the brcmf_inetaddr_changed will not be called. -Wright >> >> Signed-off-by: Wright Feng <wright.feng@cypress.com> >> Signed-off-by: Chi-Hsien Lin <chi-hsien.lin@cypress.com> >> --- >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 -- >> 1 file changed, 2 deletions(-) >> >> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c >> index b1f702faff4f..e1666cf3801c 100644 >> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c >> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c >> @@ -533,8 +533,6 @@ static int brcmf_netdev_stop(struct net_device *ndev) >> >> brcmf_cfg80211_down(ndev); >> >> - brcmf_fil_iovar_data_set(ifp, "arp_hostip_clear", NULL, 0); >> - >> brcmf_net_setcarrier(ifp, false); >> >> return 0; >> -- >> 2.1.0 >> > > > ---------- > > You're receiving this message because you're a member of the brcm80211-dev-list group. >
On Sun, Nov 11, 2018 at 6:10 PM Wright Feng <Wright.Feng@cypress.com> wrote: > > > > On 2018/11/9 上午 03:19, Franky Lin wrote: > > On Wed, Nov 7, 2018 at 7:48 PM Chi-Hsien Lin <Chi-Hsien.Lin@cypress.com> wrote: > >> > >> From: Wright Feng <wright.feng@cypress.com> > >> > >> 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" > > > > Shouldn't brcmf_inetaddr_changed get called when the interface up again? > > > > Thanks, > > - Franky > > > The brcmf_inetaddr_changed only be called in inet_del_ifa and > inet_insert_ifa. If the IP address is not changed when the interface up > again, the brcmf_inetaddr_changed will not be called. Thanks, looks good to me. > > -Wright > >> > >> 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> > >> --- > >> drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c | 2 -- > >> 1 file changed, 2 deletions(-) > >> > >> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c > >> index b1f702faff4f..e1666cf3801c 100644 > >> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c > >> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c > >> @@ -533,8 +533,6 @@ static int brcmf_netdev_stop(struct net_device *ndev) > >> > >> brcmf_cfg80211_down(ndev); > >> > >> - brcmf_fil_iovar_data_set(ifp, "arp_hostip_clear", NULL, 0); > >> - > >> brcmf_net_setcarrier(ifp, false); > >> > >> return 0; > >> -- > >> 2.1.0 > >> > > > > > > ---------- > > > > You're receiving this message because you're a member of the brcm80211-dev-list group. > >
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c index b1f702faff4f..e1666cf3801c 100644 --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c @@ -533,8 +533,6 @@ static int brcmf_netdev_stop(struct net_device *ndev) brcmf_cfg80211_down(ndev); - brcmf_fil_iovar_data_set(ifp, "arp_hostip_clear", NULL, 0); - brcmf_net_setcarrier(ifp, false); return 0;