mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 17:59:32 +00:00
Three little fixes:
* revert a recent wext patch, which Ben Hutchings noticed was wrong, and it turns out not to be necessary for any driver * fix an infinite loop that can occur under certain conditions in mac80211's TDLS code (depending on regulatory information) * add a cfg80211_get_station() static inline when cfg80211 isn't built, to allow other modules to not have to depend on it for it -----BEGIN PGP SIGNATURE----- iQIcBAABCgAGBQJXxSR4AAoJEGt7eEactAAdl3EP/AiUwqrYqbLnnFy6C7obFS3p eBBMxQAZbT+q+fFlZvqRrt5tPdkYriPLhm/0sAzuapnyS+Q6seNJ/vPoo91uC1jU ZI/j97v9NwUtRLfNCq+0Jwvs7ma0U1VEcPV9wDdV5JgnKk0Z1CUIcsErYr1+v0YQ EpRwxczhzJNTULW36UP7RvVQpxwIGldPhxSZ0t1uHWaYTFliaTlnJUAk0ql44Lmm WLvoMSjFgX99P11ToCe81MPEzF2IXILvxPwtNZmn5tldEN2xknKEoEmmbN65fYDf OIJIJ3s1CijQvnkgXtU0RWWCMnyOoJjsLckgSDdy0euhbS5xRIfxBN2n+kqaI9WV a/aIvWNNhvAy2vNdWUJk0FrVBnDjlTtG1afIEAgJyP7uxTQqepQfyaRENLtH+kKe lWbOITUZztyagGIn8Bv1pDrrqwO+fSjiEsVEVAQMMmNKBpUWf8urhDQmabCLYGDB Nxh2e3wjv5ZQ+55uJIGRDCcPIrddh86FVtQBqTID+86r4a1RwPaWfhzFZYVj84fg 504UzwtYlw1ITUhGbdMwribLVkwtBMVuEvpPrh6avwzS8wAH4upkhp4GGl/tfd/Z De0LqpxCKbDiI+VmmDo8FD4nx4wu4nTYIaecLjNoUSXhbjbPyI6V8/hIXqKiQUA3 ObkKlGicZJmhMa4zna0q =dFzv -----END PGP SIGNATURE----- Merge tag 'mac80211-for-davem-2016-08-30' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Three little fixes: * revert a recent wext patch, which Ben Hutchings noticed was wrong, and it turns out not to be necessary for any driver * fix an infinite loop that can occur under certain conditions in mac80211's TDLS code (depending on regulatory information) * add a cfg80211_get_station() static inline when cfg80211 isn't built, to allow other modules to not have to depend on it for it ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
15543692a0
3 changed files with 15 additions and 26 deletions
|
@ -1102,6 +1102,7 @@ struct station_info {
|
|||
struct cfg80211_tid_stats pertid[IEEE80211_NUM_TIDS + 1];
|
||||
};
|
||||
|
||||
#if IS_ENABLED(CONFIG_CFG80211)
|
||||
/**
|
||||
* cfg80211_get_station - retrieve information about a given station
|
||||
* @dev: the device where the station is supposed to be connected to
|
||||
|
@ -1114,6 +1115,14 @@ struct station_info {
|
|||
*/
|
||||
int cfg80211_get_station(struct net_device *dev, const u8 *mac_addr,
|
||||
struct station_info *sinfo);
|
||||
#else
|
||||
static inline int cfg80211_get_station(struct net_device *dev,
|
||||
const u8 *mac_addr,
|
||||
struct station_info *sinfo)
|
||||
{
|
||||
return -ENOENT;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* enum monitor_flags - monitor flags
|
||||
|
|
|
@ -333,10 +333,11 @@ ieee80211_tdls_chandef_vht_upgrade(struct ieee80211_sub_if_data *sdata,
|
|||
if (!uc.center_freq1)
|
||||
return;
|
||||
|
||||
/* proceed to downgrade the chandef until usable or the same */
|
||||
/* proceed to downgrade the chandef until usable or the same as AP BW */
|
||||
while (uc.width > max_width ||
|
||||
!cfg80211_reg_can_beacon_relax(sdata->local->hw.wiphy, &uc,
|
||||
sdata->wdev.iftype))
|
||||
(uc.width > sta->tdls_chandef.width &&
|
||||
!cfg80211_reg_can_beacon_relax(sdata->local->hw.wiphy, &uc,
|
||||
sdata->wdev.iftype)))
|
||||
ieee80211_chandef_downgrade(&uc);
|
||||
|
||||
if (!cfg80211_chandef_identical(&uc, &sta->tdls_chandef)) {
|
||||
|
|
|
@ -958,29 +958,8 @@ static int wireless_process_ioctl(struct net *net, struct ifreq *ifr,
|
|||
return private(dev, iwr, cmd, info, handler);
|
||||
}
|
||||
/* Old driver API : call driver ioctl handler */
|
||||
if (dev->netdev_ops->ndo_do_ioctl) {
|
||||
#ifdef CONFIG_COMPAT
|
||||
if (info->flags & IW_REQUEST_FLAG_COMPAT) {
|
||||
int ret = 0;
|
||||
struct iwreq iwr_lcl;
|
||||
struct compat_iw_point *iwp_compat = (void *) &iwr->u.data;
|
||||
|
||||
memcpy(&iwr_lcl, iwr, sizeof(struct iwreq));
|
||||
iwr_lcl.u.data.pointer = compat_ptr(iwp_compat->pointer);
|
||||
iwr_lcl.u.data.length = iwp_compat->length;
|
||||
iwr_lcl.u.data.flags = iwp_compat->flags;
|
||||
|
||||
ret = dev->netdev_ops->ndo_do_ioctl(dev, (void *) &iwr_lcl, cmd);
|
||||
|
||||
iwp_compat->pointer = ptr_to_compat(iwr_lcl.u.data.pointer);
|
||||
iwp_compat->length = iwr_lcl.u.data.length;
|
||||
iwp_compat->flags = iwr_lcl.u.data.flags;
|
||||
|
||||
return ret;
|
||||
} else
|
||||
#endif
|
||||
return dev->netdev_ops->ndo_do_ioctl(dev, ifr, cmd);
|
||||
}
|
||||
if (dev->netdev_ops->ndo_do_ioctl)
|
||||
return dev->netdev_ops->ndo_do_ioctl(dev, ifr, cmd);
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue