On 2018-03-27 14:12, Vasanthakumar Thiagarajan wrote:
Use per-peer noack tid bitmap, if it is configured,
when setting up the qos header. If no per-peer configuration
is set, use the existing nedev wide noack policy configuration.
Also modifies callback set_noack_tid_bitmap() with the provision
to send per-peer NoAck policy configuration to the drivers supporting
the NoAck offload functionality (IEEE80211_HW_SUPPORTS_NOACK_POLICY).

Signed-off-by: Vasanthakumar Thiagarajan <[email protected]>
---
 include/net/mac80211.h    |  7 +++++--
net/mac80211/cfg.c | 42 +++++++++++++++++++++++++++++++++++++-----
 net/mac80211/driver-ops.h |  5 +++--
 net/mac80211/iface.c      |  2 +-
 net/mac80211/sta_info.h   |  3 +++
 net/mac80211/trace.h      |  9 ++++++---
 net/mac80211/tx.c         |  2 +-
 net/mac80211/wme.c        | 34 +++++++++++++++++++++++++++++++++-
 8 files changed, 89 insertions(+), 15 deletions(-)


<snip>

diff --git a/net/mac80211/driver-ops.h b/net/mac80211/driver-ops.h
index a0a2d3c..8a2154a 100644
--- a/net/mac80211/driver-ops.h
+++ b/net/mac80211/driver-ops.h
@@ -1252,6 +1252,7 @@ static inline void drv_del_nan_func(struct
ieee80211_local *local,

static inline int drv_set_noack_tid_bitmap(struct ieee80211_local *local,
                                           struct ieee80211_sub_if_data *sdata,
+                                          struct sta_info *sta,
                                           u16 noack_map)
 {
        int ret;
@@ -1263,9 +1264,9 @@ static inline int
drv_set_noack_tid_bitmap(struct ieee80211_local *local,
        if (!local->ops->set_noack_tid_bitmap)
                return -EOPNOTSUPP;

-       trace_drv_set_noack_tid_bitmap(local, sdata, noack_map);
+       trace_drv_set_noack_tid_bitmap(local, sdata, &sta->sta, noack_map);
        ret = local->ops->set_noack_tid_bitmap(&local->hw, &sdata->vif,
-                                              noack_map);
+                                              &sta->sta, noack_map);

Oops, we'll endup in NULL pointer dereference in accessing sta object when ndev level
configuration is sent. Ill address this in the next version.

Vasanth

Reply via email to