Two more fixes for now:
* a fix for a long-standing iwpriv 32/64 compat issue * two fairly recently introduced (4.6) warning asking for symmetric operations are erroneous and I remove them -----BEGIN PGP SIGNATURE----- iQIcBAABCgAGBQJXWWVNAAoJEGt7eEactAAd2HMP/RGyAWN/uXJVNySsqvBSqiew t5ZTopRfL2YEcO1EUF749bncfJo6P9KUtuM72gYYRYART5viucdYFk53Ky8EtKh8 QQ7WTGyiuQP7XvderfXmrjV/J35KFiPTnf83KUfOnBTVOCtw6doIBIMutUmR7FPV cyH4e56j9agzbBJ7mjeLYGBMmyhq2uZ85vXqk/mnpn5fH9+lGojcoIVZfhXWmMoI d5O/giARzjDM7LTMIwgepY5w/j8RX1rMJCXfxiZsGMuiSTYH8FETbe3Go9CL/qHS 8cZCCQRMCpjMK+SOmNr7xYx70YjIJQabwo9luYmcdCkhw6VHRxHl47lk/2XLp4F9 G+ReA1A7izV2XSyJIWTl+Or1qzgzsf6SfZHKszSdY47NXzK5aCprRfUvXyxLv6GZ IGcHzNWOFF/1fKhh3w2NylhTd/omkvtZzt5Xuom94OPXdyxzy/PmViZ+xuhutrGt dYxhmzPZcw+/OeTGgbt2YfYFUdMZqbHkaHPE0wia03r1yXzQD/x05/QET2vwIA0L C+ATyaykSCCOm/ovwm5rada151Iai1engCWIVw/pZ3HUj6C8xqwyDS3+xsTRmKzI oBp1O3K3yR0c0T9KJNmORnnrYQAbSBIQNhdioXVCBpByTOjYfATKVQtaSIV/uu4/ 2r1KQmrT4z5OrL6lm2wv =0I3T -----END PGP SIGNATURE----- Merge tag 'mac80211-for-davem-2016-06-09' of git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211 Johannes Berg says: ==================== Two more fixes for now: * a fix for a long-standing iwpriv 32/64 compat issue * two fairly recently introduced (4.6) warning asking for symmetric operations are erroneous and I remove them ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
commit
e71ba91e48
|
@ -363,8 +363,6 @@ struct wiphy *wiphy_new_nm(const struct cfg80211_ops *ops, int sizeof_priv,
|
|||
WARN_ON(ops->remain_on_channel && !ops->cancel_remain_on_channel);
|
||||
WARN_ON(ops->tdls_channel_switch && !ops->tdls_cancel_channel_switch);
|
||||
WARN_ON(ops->add_tx_ts && !ops->del_tx_ts);
|
||||
WARN_ON(ops->set_tx_power && !ops->get_tx_power);
|
||||
WARN_ON(ops->set_antenna && !ops->get_antenna);
|
||||
|
||||
alloc_size = sizeof(*rdev) + sizeof_priv;
|
||||
|
||||
|
|
|
@ -958,8 +958,29 @@ 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)
|
||||
return dev->netdev_ops->ndo_do_ioctl(dev, ifr, cmd);
|
||||
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);
|
||||
}
|
||||
return -EOPNOTSUPP;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue