Revert "nl80211: add src and dst addr attributes for control port tx/rx"
This reverts commit8c3ed7aa2b
. As Jouni points out, there's really no need for this, since the RSN pre-authentication frames are normal data frames, not port control frames (locally). We can still revert this now since it hasn't actually gone beyond -next. Fixes:8c3ed7aa2b
("nl80211: add src and dst addr attributes for control port tx/rx") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Link: https://lore.kernel.org/r/20200224101910.b746e263287a.I9eb15d6895515179d50964dec3550c9dc784bb93@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
@@ -634,8 +634,6 @@ const struct nla_policy nl80211_policy[NUM_NL80211_ATTR] = {
|
||||
[NL80211_ATTR_HE_OBSS_PD] = NLA_POLICY_NESTED(he_obss_pd_policy),
|
||||
[NL80211_ATTR_VLAN_ID] = NLA_POLICY_RANGE(NLA_U16, 1, VLAN_N_VID - 2),
|
||||
[NL80211_ATTR_HE_BSS_COLOR] = NLA_POLICY_NESTED(he_bss_color_policy),
|
||||
[NL80211_ATTR_SRC_MAC] = NLA_POLICY_ETH_ADDR,
|
||||
[NL80211_ATTR_DST_MAC] = NLA_POLICY_ETH_ADDR,
|
||||
};
|
||||
|
||||
/* policy for the key attributes */
|
||||
@@ -13698,7 +13696,6 @@ static int nl80211_tx_control_port(struct sk_buff *skb, struct genl_info *info)
|
||||
const u8 *buf;
|
||||
size_t len;
|
||||
u8 *dest;
|
||||
u8 src[ETH_ALEN];
|
||||
u16 proto;
|
||||
bool noencrypt;
|
||||
int err;
|
||||
@@ -13736,13 +13733,6 @@ static int nl80211_tx_control_port(struct sk_buff *skb, struct genl_info *info)
|
||||
goto out;
|
||||
}
|
||||
|
||||
/* copy src address under wdev_lock, as we may copy wdev_address */
|
||||
if (info->attrs[NL80211_ATTR_SRC_MAC])
|
||||
ether_addr_copy(src,
|
||||
nla_data(info->attrs[NL80211_ATTR_SRC_MAC]));
|
||||
else
|
||||
ether_addr_copy(src, wdev_address(wdev));
|
||||
|
||||
wdev_unlock(wdev);
|
||||
|
||||
buf = nla_data(info->attrs[NL80211_ATTR_FRAME]);
|
||||
@@ -13753,7 +13743,7 @@ static int nl80211_tx_control_port(struct sk_buff *skb, struct genl_info *info)
|
||||
nla_get_flag(info->attrs[NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT]);
|
||||
|
||||
return rdev_tx_control_port(rdev, dev, buf, len,
|
||||
dest, src, cpu_to_be16(proto), noencrypt);
|
||||
dest, cpu_to_be16(proto), noencrypt);
|
||||
|
||||
out:
|
||||
wdev_unlock(wdev);
|
||||
@@ -16010,8 +16000,7 @@ static int __nl80211_rx_control_port(struct net_device *dev,
|
||||
struct wireless_dev *wdev = dev->ieee80211_ptr;
|
||||
struct cfg80211_registered_device *rdev = wiphy_to_rdev(wdev->wiphy);
|
||||
struct ethhdr *ehdr = eth_hdr(skb);
|
||||
const u8 *daddr = ehdr->h_dest;
|
||||
const u8 *saddr = ehdr->h_source;
|
||||
const u8 *addr = ehdr->h_source;
|
||||
u16 proto = be16_to_cpu(skb->protocol);
|
||||
struct sk_buff *msg;
|
||||
void *hdr;
|
||||
@@ -16036,8 +16025,7 @@ static int __nl80211_rx_control_port(struct net_device *dev,
|
||||
nla_put_u32(msg, NL80211_ATTR_IFINDEX, dev->ifindex) ||
|
||||
nla_put_u64_64bit(msg, NL80211_ATTR_WDEV, wdev_id(wdev),
|
||||
NL80211_ATTR_PAD) ||
|
||||
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, saddr) ||
|
||||
nla_put(msg, NL80211_ATTR_DST_MAC, ETH_ALEN, daddr) ||
|
||||
nla_put(msg, NL80211_ATTR_MAC, ETH_ALEN, addr) ||
|
||||
nla_put_u16(msg, NL80211_ATTR_CONTROL_PORT_ETHERTYPE, proto) ||
|
||||
(unencrypted && nla_put_flag(msg,
|
||||
NL80211_ATTR_CONTROL_PORT_NO_ENCRYPT)))
|
||||
|
@@ -734,14 +734,14 @@ static inline int rdev_mgmt_tx(struct cfg80211_registered_device *rdev,
|
||||
static inline int rdev_tx_control_port(struct cfg80211_registered_device *rdev,
|
||||
struct net_device *dev,
|
||||
const void *buf, size_t len,
|
||||
const u8 *dest, const u8 *src,
|
||||
__be16 proto, const bool noencrypt)
|
||||
const u8 *dest, __be16 proto,
|
||||
const bool noencrypt)
|
||||
{
|
||||
int ret;
|
||||
trace_rdev_tx_control_port(&rdev->wiphy, dev, buf, len,
|
||||
dest, src, proto, noencrypt);
|
||||
dest, proto, noencrypt);
|
||||
ret = rdev->ops->tx_control_port(&rdev->wiphy, dev, buf, len,
|
||||
dest, src, proto, noencrypt);
|
||||
dest, proto, noencrypt);
|
||||
trace_rdev_return_int(&rdev->wiphy, ret);
|
||||
return ret;
|
||||
}
|
||||
|
@@ -1928,31 +1928,27 @@ TRACE_EVENT(rdev_mgmt_tx,
|
||||
|
||||
TRACE_EVENT(rdev_tx_control_port,
|
||||
TP_PROTO(struct wiphy *wiphy, struct net_device *netdev,
|
||||
const u8 *buf, size_t len,
|
||||
const u8 *dest, const u8 *src, __be16 proto,
|
||||
const u8 *buf, size_t len, const u8 *dest, __be16 proto,
|
||||
bool unencrypted),
|
||||
TP_ARGS(wiphy, netdev, buf, len, dest, src, proto, unencrypted),
|
||||
TP_ARGS(wiphy, netdev, buf, len, dest, proto, unencrypted),
|
||||
TP_STRUCT__entry(
|
||||
WIPHY_ENTRY
|
||||
NETDEV_ENTRY
|
||||
MAC_ENTRY(dest)
|
||||
MAC_ENTRY(src)
|
||||
__field(u16, proto)
|
||||
__field(__be16, proto)
|
||||
__field(bool, unencrypted)
|
||||
),
|
||||
TP_fast_assign(
|
||||
WIPHY_ASSIGN;
|
||||
NETDEV_ASSIGN;
|
||||
MAC_ASSIGN(dest, dest);
|
||||
MAC_ASSIGN(src, src);
|
||||
__entry->proto = be16_to_cpu(proto);
|
||||
__entry->proto = proto;
|
||||
__entry->unencrypted = unencrypted;
|
||||
),
|
||||
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", dest: " MAC_PR_FMT
|
||||
", src: " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s",
|
||||
WIPHY_PR_ARG, NETDEV_PR_ARG,
|
||||
MAC_PR_ARG(dest), MAC_PR_ARG(src),
|
||||
__entry->proto,
|
||||
TP_printk(WIPHY_PR_FMT ", " NETDEV_PR_FMT ", " MAC_PR_FMT ","
|
||||
" proto: 0x%x, unencrypted: %s",
|
||||
WIPHY_PR_ARG, NETDEV_PR_ARG, MAC_PR_ARG(dest),
|
||||
be16_to_cpu(__entry->proto),
|
||||
BOOL_TO_STR(__entry->unencrypted))
|
||||
);
|
||||
|
||||
@@ -2844,7 +2840,6 @@ TRACE_EVENT(cfg80211_rx_control_port,
|
||||
TP_STRUCT__entry(
|
||||
NETDEV_ENTRY
|
||||
__field(int, len)
|
||||
MAC_ENTRY(to)
|
||||
MAC_ENTRY(from)
|
||||
__field(u16, proto)
|
||||
__field(bool, unencrypted)
|
||||
@@ -2852,14 +2847,12 @@ TRACE_EVENT(cfg80211_rx_control_port,
|
||||
TP_fast_assign(
|
||||
NETDEV_ASSIGN;
|
||||
__entry->len = skb->len;
|
||||
MAC_ASSIGN(to, eth_hdr(skb)->h_dest);
|
||||
MAC_ASSIGN(from, eth_hdr(skb)->h_source);
|
||||
__entry->proto = be16_to_cpu(skb->protocol);
|
||||
__entry->unencrypted = unencrypted;
|
||||
),
|
||||
TP_printk(NETDEV_PR_FMT ", len=%d, dest: " MAC_PR_FMT
|
||||
", src: " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s",
|
||||
NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(to), MAC_PR_ARG(from),
|
||||
TP_printk(NETDEV_PR_FMT ", len=%d, " MAC_PR_FMT ", proto: 0x%x, unencrypted: %s",
|
||||
NETDEV_PR_ARG, __entry->len, MAC_PR_ARG(from),
|
||||
__entry->proto, BOOL_TO_STR(__entry->unencrypted))
|
||||
);
|
||||
|
||||
|
Reference in New Issue
Block a user