From 4293d6b7da93133bd872991d1758f4bdca64bf68 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 9 Jan 2019 16:30:16 -0500 Subject: [PATCH] freebsd_wlan: Tweak ioctl-size hacks. This doesn't seem to fix the wpa_supplicant crashes, though. --- .../compat/freebsd_wlan/net80211/ieee80211_ioctl.c | 12 +++++++----- .../compat/freebsd_wlan/net80211/ieee80211_ioctl.h | 4 ++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c index 67d47073b2..38b8065e19 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.c @@ -720,15 +720,17 @@ ieee80211_ioctl_getdevcaps(struct ieee80211com *ic, dc->dc_vhtcaps = ic->ic_vhtcaps; #endif ci = &dc->dc_chaninfo; +#ifdef __HAIKU__ + if (maxchans != 0) { +#endif ic->ic_getradiocaps(ic, maxchans, &ci->ic_nchans, ci->ic_chans); KASSERT(ci->ic_nchans <= maxchans, ("nchans %d maxchans %d", ci->ic_nchans, maxchans)); -#ifdef __HAIKU__ - if (maxchans == 0) - dc->dc_chaninfo.ic_nchans = 1; /* HACK: so it will really be 0 */ - else -#endif ieee80211_sort_channels(ci->ic_chans, ci->ic_nchans); +#ifdef __HAIKU__ + } else + dc->dc_chaninfo.ic_nchans = 0; /* HACK */ +#endif error = copyout(dc, ireq->i_data, IEEE80211_DEVCAPS_SPACE(dc)); IEEE80211_FREE(dc, M_TEMP); return error; diff --git a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h index 0d322967af..0791b4aaf6 100644 --- a/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h +++ b/src/libs/compat/freebsd_wlan/net80211/ieee80211_ioctl.h @@ -429,8 +429,8 @@ struct ieee80211req_sta_info { uint16_t isi_ie_off; /* offset to IE data */ uint16_t isi_ie_len; /* IE length */ #ifdef __HAIKU__ - uint32_t isi_flags; /* MHz */ - uint16_t isi_freq; /* channel flags */ + uint32_t isi_flags; /* channel flags */ + uint16_t isi_freq; /* MHz */ int8_t padding[10]; #else uint16_t isi_freq; /* MHz */