summaryrefslogtreecommitdiff
path: root/net/wireless
diff options
context:
space:
mode:
authorArend van Spriel <arend.vanspriel@broadcom.com>2026-07-31 14:35:08 +0200
committerJohannes Berg <johannes.berg@intel.com>2026-08-02 17:40:08 +0200
commit51ba92052ebd84c36f93d6a17e779b5d024c8732 (patch)
tree2552f4cdcbaa3ec4cfb522d95fd746bea01d6fc4 /net/wireless
parent914781c72813989b512609a51f8abb68417f722d (diff)
wifi: cfg80211: convert tx_control_port cookie to input parameter
The tx_control_port op was excluded from the previous commit because a NULL cookie was affecting different behavior, ie. signalling that no TX status is wanted. Since cfg80211_assign_cookie() guarantees a non-zero value, cookie value 0 can be used instead. So pass 0 when dont_wait_for_ack is set, otherwise pass value returned from cfg80211_assign_cookie() call. Assisted-by: Claude:claude-sonnet-4-6 Signed-off-by: Arend van Spriel <arend.vanspriel@broadcom.com> Link: https://patch.msgid.link/20260731123509.1975281-13-arend.vanspriel@broadcom.com Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/wireless')
-rw-r--r--net/wireless/nl80211.c7
-rw-r--r--net/wireless/rdev-ops.h4
2 files changed, 5 insertions, 6 deletions
diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
index 8a46101bfdd0..d12bef11b94f 100644
--- a/net/wireless/nl80211.c
+++ b/net/wireless/nl80211.c
@@ -18589,12 +18589,11 @@ static int nl80211_tx_control_port(struct sk_buff *skb, struct genl_info *info)
link_id = nl80211_link_id_or_invalid(info->attrs);
- if (!dont_wait_for_ack)
- cookie = cfg80211_assign_cookie(rdev);
+ cookie = dont_wait_for_ack ? 0 : cfg80211_assign_cookie(rdev);
err = rdev_tx_control_port(rdev, dev, buf, len,
dest, cpu_to_be16(proto), noencrypt, link_id,
- dont_wait_for_ack ? NULL : &cookie);
- if (!err && !dont_wait_for_ack)
+ cookie);
+ if (!err && cookie)
nl_set_extack_cookie_u64(info->extack, cookie);
return err;
}
diff --git a/net/wireless/rdev-ops.h b/net/wireless/rdev-ops.h
index c46e97c90fdc..46849fe8d0b3 100644
--- a/net/wireless/rdev-ops.h
+++ b/net/wireless/rdev-ops.h
@@ -775,7 +775,7 @@ static inline int rdev_tx_control_port(struct cfg80211_registered_device *rdev,
const void *buf, size_t len,
const u8 *dest, __be16 proto,
const bool noencrypt, int link,
- u64 *cookie)
+ u64 cookie)
{
int ret;
trace_rdev_tx_control_port(&rdev->wiphy, dev, buf, len,
@@ -783,7 +783,7 @@ static inline int rdev_tx_control_port(struct cfg80211_registered_device *rdev,
ret = rdev->ops->tx_control_port(&rdev->wiphy, dev, buf, len,
dest, proto, noencrypt, link, cookie);
if (cookie)
- trace_rdev_return_int_cookie(&rdev->wiphy, ret, *cookie);
+ trace_rdev_return_int_cookie(&rdev->wiphy, ret, cookie);
else
trace_rdev_return_int(&rdev->wiphy, ret);
return ret;