svn commit: r270830 - head/sys/dev/if_ndis
John Baldwin
jhb at FreeBSD.org
Fri Aug 29 22:01:48 UTC 2014
Author: jhb
Date: Fri Aug 29 22:01:47 2014
New Revision: 270830
URL: http://svnweb.freebsd.org/changeset/base/270830
Log:
When anouncing link state changes on an 802.11 interface with a vap,
announce the change on the vap's ifnet instead of the main ifnet. This
matches the behavior of other wireless drivers in the tree and allows the
default devd configuration to correctly start dhclient automatically after
an ndis wireless device associates.
MFC after: 2 weeks
Modified:
head/sys/dev/if_ndis/if_ndis.c
Modified: head/sys/dev/if_ndis/if_ndis.c
==============================================================================
--- head/sys/dev/if_ndis/if_ndis.c Fri Aug 29 21:50:32 2014 (r270829)
+++ head/sys/dev/if_ndis/if_ndis.c Fri Aug 29 22:01:47 2014 (r270830)
@@ -1710,23 +1710,26 @@ ndis_ticktask(d, xsc)
if (sc->ndis_link == 0 &&
sc->ndis_sts == NDIS_STATUS_MEDIA_CONNECT) {
sc->ndis_link = 1;
- NDIS_UNLOCK(sc);
if ((sc->ndis_80211 != 0) && (vap != NULL)) {
+ NDIS_UNLOCK(sc);
ndis_getstate_80211(sc);
ieee80211_new_state(vap, IEEE80211_S_RUN, -1);
- }
- NDIS_LOCK(sc);
- if_link_state_change(sc->ifp, LINK_STATE_UP);
+ NDIS_LOCK(sc);
+ if_link_state_change(vap->iv_ifp, LINK_STATE_UP);
+ } else
+ if_link_state_change(sc->ifp, LINK_STATE_UP);
}
if (sc->ndis_link == 1 &&
sc->ndis_sts == NDIS_STATUS_MEDIA_DISCONNECT) {
sc->ndis_link = 0;
- NDIS_UNLOCK(sc);
- if ((sc->ndis_80211 != 0) && (vap != NULL))
+ if ((sc->ndis_80211 != 0) && (vap != NULL)) {
+ NDIS_UNLOCK(sc);
ieee80211_new_state(vap, IEEE80211_S_SCAN, 0);
- NDIS_LOCK(sc);
- if_link_state_change(sc->ifp, LINK_STATE_DOWN);
+ NDIS_LOCK(sc);
+ if_link_state_change(vap->iv_ifp, LINK_STATE_DOWN);
+ } else
+ if_link_state_change(sc->ifp, LINK_STATE_DOWN);
}
NDIS_UNLOCK(sc);
More information about the svn-src-head
mailing list