mirror of https://github.com/hak5/openwrt.git
mac80211: Update to version 4.19.79
Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>openwrt-19.07
parent
6fe6853d7e
commit
cabd12d2e3
|
@ -10,10 +10,10 @@ include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=mac80211
|
PKG_NAME:=mac80211
|
||||||
|
|
||||||
PKG_VERSION:=4.19.66-1
|
PKG_VERSION:=4.19.79-1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.66/
|
PKG_SOURCE_URL:=@KERNEL/linux/kernel/projects/backports/stable/v4.19.79/
|
||||||
PKG_HASH:=1f3c6a58cb45b247f6e473d1b52236bfbb41cb3e11e38a74526727e911b51a02
|
PKG_HASH:=ee03b16949e4968092cfed3cd763ff4682bc29fa3b52ebc239aa915583413cf3
|
||||||
|
|
||||||
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz
|
||||||
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/backports-$(PKG_VERSION)
|
||||||
|
|
|
@ -12,15 +12,12 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||||
drivers/net/wireless/ath/ath9k/dynack.c | 37 ++++++++++++++-----------
|
drivers/net/wireless/ath/ath9k/dynack.c | 37 ++++++++++++++-----------
|
||||||
1 file changed, 21 insertions(+), 16 deletions(-)
|
1 file changed, 21 insertions(+), 16 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/ath/ath9k/dynack.c b/drivers/net/wireless/ath/ath9k/dynack.c
|
|
||||||
index f112fa5b2eac..38dbe25919f7 100644
|
|
||||||
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
@@ -78,6 +78,24 @@ static inline bool ath_dynack_bssidmask(struct ath_hw *ah, const u8 *mac)
|
@@ -79,6 +79,24 @@ static inline bool ath_dynack_bssidmask(
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
+/**
|
/**
|
||||||
+ * ath_dynack_set_timeout - configure timeouts/slottime registers
|
+ * ath_dynack_set_timeout - configure timeouts/slottime registers
|
||||||
+ * @ah: ath hw
|
+ * @ah: ath hw
|
||||||
+ * @to: timeout value
|
+ * @to: timeout value
|
||||||
|
@ -38,10 +35,11 @@ index f112fa5b2eac..38dbe25919f7 100644
|
||||||
+ ath9k_hw_set_cts_timeout(ah, to);
|
+ ath9k_hw_set_cts_timeout(ah, to);
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
/**
|
+/**
|
||||||
* ath_dynack_compute_ackto - compute ACK timeout as the maximum STA timeout
|
* ath_dynack_compute_ackto - compute ACK timeout as the maximum STA timeout
|
||||||
* @ah: ath hw
|
* @ah: ath hw
|
||||||
@@ -86,7 +104,6 @@ static inline bool ath_dynack_bssidmask(struct ath_hw *ah, const u8 *mac)
|
*
|
||||||
|
@@ -86,7 +104,6 @@ static inline bool ath_dynack_bssidmask(
|
||||||
*/
|
*/
|
||||||
static void ath_dynack_compute_ackto(struct ath_hw *ah)
|
static void ath_dynack_compute_ackto(struct ath_hw *ah)
|
||||||
{
|
{
|
||||||
|
@ -49,7 +47,7 @@ index f112fa5b2eac..38dbe25919f7 100644
|
||||||
struct ath_dynack *da = &ah->dynack;
|
struct ath_dynack *da = &ah->dynack;
|
||||||
struct ath_node *an;
|
struct ath_node *an;
|
||||||
int to = 0;
|
int to = 0;
|
||||||
@@ -96,15 +113,8 @@ static void ath_dynack_compute_ackto(struct ath_hw *ah)
|
@@ -96,15 +113,8 @@ static void ath_dynack_compute_ackto(str
|
||||||
to = an->ackto;
|
to = an->ackto;
|
||||||
|
|
||||||
if (to && da->ackto != to) {
|
if (to && da->ackto != to) {
|
||||||
|
@ -66,7 +64,7 @@ index f112fa5b2eac..38dbe25919f7 100644
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -198,10 +208,7 @@ void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
|
@@ -198,10 +208,7 @@ void ath_dynack_sample_tx_ts(struct ath_
|
||||||
ieee80211_is_assoc_resp(hdr->frame_control) ||
|
ieee80211_is_assoc_resp(hdr->frame_control) ||
|
||||||
ieee80211_is_auth(hdr->frame_control)) {
|
ieee80211_is_auth(hdr->frame_control)) {
|
||||||
ath_dbg(common, DYNACK, "late ack\n");
|
ath_dbg(common, DYNACK, "late ack\n");
|
||||||
|
@ -89,6 +87,3 @@ index f112fa5b2eac..38dbe25919f7 100644
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(ath_dynack_reset);
|
EXPORT_SYMBOL(ath_dynack_reset);
|
||||||
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,6 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||||
drivers/net/wireless/ath/ath9k/dynack.c | 2 +-
|
drivers/net/wireless/ath/ath9k/dynack.c | 2 +-
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/ath/ath9k/dynack.c b/drivers/net/wireless/ath/ath9k/dynack.c
|
|
||||||
index 38dbe25919f7..398ea872751f 100644
|
|
||||||
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
@@ -338,7 +338,7 @@ void ath_dynack_reset(struct ath_hw *ah)
|
@@ -338,7 +338,7 @@ void ath_dynack_reset(struct ath_hw *ah)
|
||||||
|
@ -27,6 +25,3 @@ index 38dbe25919f7..398ea872751f 100644
|
||||||
da->ackto = ackto;
|
da->ackto = ackto;
|
||||||
|
|
||||||
da->st_rbf.t_rb = 0;
|
da->st_rbf.t_rb = 0;
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
|
|
|
@ -12,11 +12,9 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||||
drivers/net/wireless/ath/ath9k/dynack.c | 38 +++++++++++++++++++------
|
drivers/net/wireless/ath/ath9k/dynack.c | 38 +++++++++++++++++++------
|
||||||
1 file changed, 30 insertions(+), 8 deletions(-)
|
1 file changed, 30 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/ath/ath9k/dynack.c b/drivers/net/wireless/ath/ath9k/dynack.c
|
|
||||||
index 398ea872751f..fe9181533de3 100644
|
|
||||||
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
@@ -20,11 +20,30 @@
|
@@ -20,12 +20,31 @@
|
||||||
|
|
||||||
#define COMPUTE_TO (5 * HZ)
|
#define COMPUTE_TO (5 * HZ)
|
||||||
#define LATEACK_DELAY (10 * HZ)
|
#define LATEACK_DELAY (10 * HZ)
|
||||||
|
@ -25,7 +23,7 @@ index 398ea872751f..fe9181533de3 100644
|
||||||
#define EWMA_LEVEL 96
|
#define EWMA_LEVEL 96
|
||||||
#define EWMA_DIV 128
|
#define EWMA_DIV 128
|
||||||
|
|
||||||
+/**
|
/**
|
||||||
+ * ath_dynack_get_max_to - set max timeout according to channel width
|
+ * ath_dynack_get_max_to - set max timeout according to channel width
|
||||||
+ * @ah: ath hw
|
+ * @ah: ath hw
|
||||||
+ *
|
+ *
|
||||||
|
@ -46,10 +44,11 @@ index 398ea872751f..fe9181533de3 100644
|
||||||
+ return 600;
|
+ return 600;
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
/**
|
+/**
|
||||||
* ath_dynack_ewma - EWMA (Exponentially Weighted Moving Average) calculation
|
* ath_dynack_ewma - EWMA (Exponentially Weighted Moving Average) calculation
|
||||||
*
|
*
|
||||||
@@ -126,15 +145,16 @@ static void ath_dynack_compute_ackto(struct ath_hw *ah)
|
*/
|
||||||
|
@@ -126,15 +145,16 @@ static void ath_dynack_compute_ackto(str
|
||||||
*/
|
*/
|
||||||
static void ath_dynack_compute_to(struct ath_hw *ah)
|
static void ath_dynack_compute_to(struct ath_hw *ah)
|
||||||
{
|
{
|
||||||
|
@ -70,7 +69,7 @@ index 398ea872751f..fe9181533de3 100644
|
||||||
while (da->st_rbf.h_rb != da->st_rbf.t_rb &&
|
while (da->st_rbf.h_rb != da->st_rbf.t_rb &&
|
||||||
da->ack_rbf.h_rb != da->ack_rbf.t_rb) {
|
da->ack_rbf.h_rb != da->ack_rbf.t_rb) {
|
||||||
ack_ts = da->ack_rbf.tstamp[da->ack_rbf.h_rb];
|
ack_ts = da->ack_rbf.tstamp[da->ack_rbf.h_rb];
|
||||||
@@ -150,7 +170,7 @@ static void ath_dynack_compute_to(struct ath_hw *ah)
|
@@ -150,7 +170,7 @@ static void ath_dynack_compute_to(struct
|
||||||
if (ack_ts > st_ts->tstamp + st_ts->dur) {
|
if (ack_ts > st_ts->tstamp + st_ts->dur) {
|
||||||
ackto = ack_ts - st_ts->tstamp - st_ts->dur;
|
ackto = ack_ts - st_ts->tstamp - st_ts->dur;
|
||||||
|
|
||||||
|
@ -79,7 +78,7 @@ index 398ea872751f..fe9181533de3 100644
|
||||||
sta = ieee80211_find_sta_by_ifaddr(ah->hw, dst,
|
sta = ieee80211_find_sta_by_ifaddr(ah->hw, dst,
|
||||||
src);
|
src);
|
||||||
if (sta) {
|
if (sta) {
|
||||||
@@ -207,8 +227,10 @@ void ath_dynack_sample_tx_ts(struct ath_hw *ah, struct sk_buff *skb,
|
@@ -207,8 +227,10 @@ void ath_dynack_sample_tx_ts(struct ath_
|
||||||
if (ieee80211_is_assoc_req(hdr->frame_control) ||
|
if (ieee80211_is_assoc_req(hdr->frame_control) ||
|
||||||
ieee80211_is_assoc_resp(hdr->frame_control) ||
|
ieee80211_is_assoc_resp(hdr->frame_control) ||
|
||||||
ieee80211_is_auth(hdr->frame_control)) {
|
ieee80211_is_auth(hdr->frame_control)) {
|
||||||
|
@ -91,6 +90,3 @@ index 398ea872751f..fe9181533de3 100644
|
||||||
if (sta) {
|
if (sta) {
|
||||||
struct ath_node *an;
|
struct ath_node *an;
|
||||||
|
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
|
|
|
@ -16,8 +16,6 @@ Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
|
||||||
drivers/net/wireless/ath/ath9k/dynack.c | 20 +++++++++++++-------
|
drivers/net/wireless/ath/ath9k/dynack.c | 20 +++++++++++++-------
|
||||||
1 file changed, 13 insertions(+), 7 deletions(-)
|
1 file changed, 13 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
diff --git a/drivers/net/wireless/ath/ath9k/dynack.c b/drivers/net/wireless/ath/ath9k/dynack.c
|
|
||||||
index fe9181533de3..f786be04d0ac 100644
|
|
||||||
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
--- a/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
+++ b/drivers/net/wireless/ath/ath9k/dynack.c
|
||||||
@@ -321,11 +321,9 @@ EXPORT_SYMBOL(ath_dynack_sample_ack_ts);
|
@@ -321,11 +321,9 @@ EXPORT_SYMBOL(ath_dynack_sample_ack_ts);
|
||||||
|
@ -73,6 +71,3 @@ index fe9181533de3..f786be04d0ac 100644
|
||||||
|
|
||||||
ah->hw->wiphy->features |= NL80211_FEATURE_ACKTO_ESTIMATION;
|
ah->hw->wiphy->features |= NL80211_FEATURE_ACKTO_ESTIMATION;
|
||||||
}
|
}
|
||||||
--
|
|
||||||
2.17.1
|
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
|
||||||
|
|
||||||
--- a/include/net/cfg80211.h
|
--- a/include/net/cfg80211.h
|
||||||
+++ b/include/net/cfg80211.h
|
+++ b/include/net/cfg80211.h
|
||||||
@@ -6597,6 +6597,11 @@ int cfg80211_external_auth_request(struc
|
@@ -6612,6 +6612,11 @@ bool cfg80211_iftype_allowed(struct wiph
|
||||||
#define wiphy_info(wiphy, format, args...) \
|
#define wiphy_info(wiphy, format, args...) \
|
||||||
dev_info(&(wiphy)->dev, format, ##args)
|
dev_info(&(wiphy)->dev, format, ##args)
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
--- a/net/mac80211/cfg.c
|
--- a/net/mac80211/cfg.c
|
||||||
+++ b/net/mac80211/cfg.c
|
+++ b/net/mac80211/cfg.c
|
||||||
@@ -2237,7 +2237,7 @@ static int ieee80211_scan(struct wiphy *
|
@@ -2238,7 +2238,7 @@ static int ieee80211_scan(struct wiphy *
|
||||||
* the frames sent while scanning on other channel will be
|
* the frames sent while scanning on other channel will be
|
||||||
* lost)
|
* lost)
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -148,7 +148,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||||
MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
|
MAX_NL80211_EXT_FEATURES = NUM_NL80211_EXT_FEATURES - 1
|
||||||
--- a/net/wireless/nl80211.c
|
--- a/net/wireless/nl80211.c
|
||||||
+++ b/net/wireless/nl80211.c
|
+++ b/net/wireless/nl80211.c
|
||||||
@@ -430,6 +430,7 @@ static const struct nla_policy nl80211_p
|
@@ -462,6 +462,7 @@ static const struct nla_policy nl80211_p
|
||||||
[NL80211_ATTR_TXQ_QUANTUM] = { .type = NLA_U32 },
|
[NL80211_ATTR_TXQ_QUANTUM] = { .type = NLA_U32 },
|
||||||
[NL80211_ATTR_HE_CAPABILITY] = { .type = NLA_BINARY,
|
[NL80211_ATTR_HE_CAPABILITY] = { .type = NLA_BINARY,
|
||||||
.len = NL80211_HE_MAX_CAPABILITY_LEN },
|
.len = NL80211_HE_MAX_CAPABILITY_LEN },
|
||||||
|
@ -156,7 +156,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||||
};
|
};
|
||||||
|
|
||||||
/* policy for the key attributes */
|
/* policy for the key attributes */
|
||||||
@@ -4664,6 +4665,11 @@ static int nl80211_send_station(struct s
|
@@ -4702,6 +4703,11 @@ static int nl80211_send_station(struct s
|
||||||
PUT_SINFO(PLID, plid, u16);
|
PUT_SINFO(PLID, plid, u16);
|
||||||
PUT_SINFO(PLINK_STATE, plink_state, u8);
|
PUT_SINFO(PLINK_STATE, plink_state, u8);
|
||||||
PUT_SINFO_U64(RX_DURATION, rx_duration);
|
PUT_SINFO_U64(RX_DURATION, rx_duration);
|
||||||
|
@ -168,7 +168,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||||
|
|
||||||
switch (rdev->wiphy.signal_type) {
|
switch (rdev->wiphy.signal_type) {
|
||||||
case CFG80211_SIGNAL_TYPE_MBM:
|
case CFG80211_SIGNAL_TYPE_MBM:
|
||||||
@@ -5300,6 +5306,15 @@ static int nl80211_set_station(struct sk
|
@@ -5338,6 +5344,15 @@ static int nl80211_set_station(struct sk
|
||||||
nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]);
|
nla_get_u8(info->attrs[NL80211_ATTR_OPMODE_NOTIF]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -184,7 +184,7 @@ Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
||||||
/* Include parameters for TDLS peer (will check later) */
|
/* Include parameters for TDLS peer (will check later) */
|
||||||
err = nl80211_set_station_tdls(info, ¶ms);
|
err = nl80211_set_station_tdls(info, ¶ms);
|
||||||
if (err)
|
if (err)
|
||||||
@@ -5438,6 +5453,15 @@ static int nl80211_new_station(struct sk
|
@@ -5476,6 +5491,15 @@ static int nl80211_new_station(struct sk
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
__NL80211_ATTR_AFTER_LAST,
|
__NL80211_ATTR_AFTER_LAST,
|
||||||
--- a/net/mac80211/cfg.c
|
--- a/net/mac80211/cfg.c
|
||||||
+++ b/net/mac80211/cfg.c
|
+++ b/net/mac80211/cfg.c
|
||||||
@@ -2505,6 +2505,19 @@ static int ieee80211_get_tx_power(struct
|
@@ -2506,6 +2506,19 @@ static int ieee80211_get_tx_power(struct
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -77,7 +77,7 @@
|
||||||
static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
|
static int ieee80211_set_wds_peer(struct wiphy *wiphy, struct net_device *dev,
|
||||||
const u8 *addr)
|
const u8 *addr)
|
||||||
{
|
{
|
||||||
@@ -3872,6 +3885,7 @@ const struct cfg80211_ops mac80211_confi
|
@@ -3873,6 +3886,7 @@ const struct cfg80211_ops mac80211_confi
|
||||||
.set_wiphy_params = ieee80211_set_wiphy_params,
|
.set_wiphy_params = ieee80211_set_wiphy_params,
|
||||||
.set_tx_power = ieee80211_set_tx_power,
|
.set_tx_power = ieee80211_set_tx_power,
|
||||||
.get_tx_power = ieee80211_get_tx_power,
|
.get_tx_power = ieee80211_get_tx_power,
|
||||||
|
@ -129,7 +129,7 @@
|
||||||
local->user_power_level = IEEE80211_UNSET_POWER_LEVEL;
|
local->user_power_level = IEEE80211_UNSET_POWER_LEVEL;
|
||||||
--- a/net/wireless/nl80211.c
|
--- a/net/wireless/nl80211.c
|
||||||
+++ b/net/wireless/nl80211.c
|
+++ b/net/wireless/nl80211.c
|
||||||
@@ -431,6 +431,7 @@ static const struct nla_policy nl80211_p
|
@@ -463,6 +463,7 @@ static const struct nla_policy nl80211_p
|
||||||
[NL80211_ATTR_HE_CAPABILITY] = { .type = NLA_BINARY,
|
[NL80211_ATTR_HE_CAPABILITY] = { .type = NLA_BINARY,
|
||||||
.len = NL80211_HE_MAX_CAPABILITY_LEN },
|
.len = NL80211_HE_MAX_CAPABILITY_LEN },
|
||||||
[NL80211_ATTR_AIRTIME_WEIGHT] = NLA_POLICY_MIN(NLA_U16, 1),
|
[NL80211_ATTR_AIRTIME_WEIGHT] = NLA_POLICY_MIN(NLA_U16, 1),
|
||||||
|
@ -137,7 +137,7 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
/* policy for the key attributes */
|
/* policy for the key attributes */
|
||||||
@@ -2588,6 +2589,20 @@ static int nl80211_set_wiphy(struct sk_b
|
@@ -2622,6 +2623,20 @@ static int nl80211_set_wiphy(struct sk_b
|
||||||
if (result)
|
if (result)
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue