> Please try this diff.
> I suspect this bug is causing all sorts of problems.
>
> Index: ieee80211.c
> ===================================================================
> RCS file: /cvs/src/sys/net80211/ieee80211.c,v
> retrieving revision 1.57
> diff -u -p -r1.57 ieee80211.c
> --- ieee80211.c 12 Jan 2016 09:28:09 -0000 1.57
> +++ ieee80211.c 13 Jan 2016 14:19:26 -0000
> @@ -749,8 +749,10 @@ ieee80211_setmode(struct ieee80211com *i
> modeflags = chanflags[mode];
> for (i = 0; i <= IEEE80211_CHAN_MAX; i++) {
> c = &ic->ic_channels[i];
> - if (mode == IEEE80211_MODE_AUTO ||
> - (c->ic_flags & modeflags) == modeflags)
> + if (mode == IEEE80211_MODE_AUTO) {
> + if (c->ic_flags != 0)
> + break;
> + } else if ((c->ic_flags & modeflags) == modeflags)
> break;
> }
> if (i > IEEE80211_CHAN_MAX) {
> @@ -764,8 +766,10 @@ ieee80211_setmode(struct ieee80211com *i
> memset(ic->ic_chan_active, 0, sizeof(ic->ic_chan_active));
> for (i = 0; i <= IEEE80211_CHAN_MAX; i++) {
> c = &ic->ic_channels[i];
> - if (mode == IEEE80211_MODE_AUTO ||
> - (c->ic_flags & modeflags) == modeflags)
> + if (mode == IEEE80211_MODE_AUTO) {
> + if (c->ic_flags != 0)
> + setbit(ic->ic_chan_active, i);
> + } else if ((c->ic_flags & modeflags) == modeflags)
> setbit(ic->ic_chan_active, i);
> }
> /*
>
Hello !
I tried the patch with the snapshot from yesterday but the result was
the same - no link ... sleeping in a, b and g mode.