This breaks at least iwm. (Other drivers not tested.) Messages below are repeatedly shown and no carrier detected. Manually reverting this commit fixes the issue. iwm0: failed to send antennas before calibration: 35 iwm_run_init_ucode: failed 35 iwm_init_hw failed 35 iwm0: could not initiate scan and lesser times messages below. iwm0: iwm_send_phy_db_data: Cannot send HCMD of Phy DB cfg section, 35 iwm_init_hw failed 35 iwm0: could not initiate scan > Author: bz > Date: Mon Sep 7 15:35:40 2020 > New Revision: 365419 > URL: https://svnweb.freebsd.org/changeset/base/365419 > > Log: > WiFi: fix ieee80211_media_change() callers > > In r178354 with the introduction of multi-bss ("vap") support factoring > out started and with r193340 ieee80211_media_change() no longer returned > ENETRESET but only 0 or error. > As ieee80211(9) tells the ieee80211_media_change() function should not > be called directly but is registered with ieee80211_vap_attach() instead. > Some drivers have not been fully converted. After fixing the return > checking some of these functions were simply wrappers between > ieee80211_vap_attach() and ieee80211_media_change(), so remove the extra > function, where possible as well. > > PR: 248955 > Submitted by: Tong Zhang (ztong0001 gmail.com) (original) > MFC after: 3 days > Sponsored by: The FreeBSD Foundation > > Modified: > head/sys/dev/ath/if_ath.c > head/sys/dev/bwi/if_bwi.c > head/sys/dev/iwm/if_iwm.c > head/sys/dev/iwn/if_iwn.c > head/sys/dev/mwl/if_mwl.c > head/sys/dev/otus/if_otus.c > head/sys/dev/usb/wlan/if_run.c > head/sys/dev/wtap/if_wtap.c > > Modified: head/sys/dev/ath/if_ath.c > ============================================================================== > --- head/sys/dev/ath/if_ath.c Mon Sep 7 14:40:33 2020 (r365418) > +++ head/sys/dev/ath/if_ath.c Mon Sep 7 15:35:40 2020 (r365419) > _at__at_ -160,7 +160,6 _at__at_ static int ath_init(struct ath_softc *); > static void ath_stop(struct ath_softc *); > static int ath_reset_vap(struct ieee80211vap *, u_long); > static int ath_transmit(struct ieee80211com *, struct mbuf *); > -static int ath_media_change(struct ifnet *); > static void ath_watchdog(void *); > static void ath_parent(struct ieee80211com *); > static void ath_fatal_proc(void *, int); (snip) > Modified: head/sys/dev/iwm/if_iwm.c > ============================================================================== > --- head/sys/dev/iwm/if_iwm.c Mon Sep 7 14:40:33 2020 (r365418) > +++ head/sys/dev/iwm/if_iwm.c Mon Sep 7 15:35:40 2020 (r365419) > _at__at_ -4426,8 +4426,8 _at__at_ iwm_media_change(struct ifnet *ifp) > int error; > > error = ieee80211_media_change(ifp); > - if (error != ENETRESET) > - return error; > + if (error != 0) > + return (error); > > IWM_LOCK(sc); > if (ic->ic_nrunning > 0) { > _at__at_ -4435,7 +4435,7 _at__at_ iwm_media_change(struct ifnet *ifp) > iwm_init(sc); > } > IWM_UNLOCK(sc); > - return error; > + return (0); > } > > static void (snip) -- Tomoaki AOKI <junchoon_at_dec.sakura.ne.jp>Received on Wed Sep 09 2020 - 20:41:46 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:25 UTC