🎄 Sync 2026-01-28 00:02:03
All checks were successful
package_kernel_mac80211 / Update package_kernel_mac80211 (openwrt-25.12) (push) Successful in 9s

This commit is contained in:
2026-01-28 00:02:03 +00:00
parent b6aae204b2
commit 92a2eec127
19 changed files with 39 additions and 122 deletions

View File

@@ -10,13 +10,13 @@ include $(INCLUDE_DIR)/kernel.mk
PKG_NAME:=mac80211
PKG_VERSION:=6.18
PKG_VERSION:=6.18.7
PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0-only
PKG_LICENSE_FILES:=COPYING
PKG_SOURCE_URL:=https://github.com/openwrt/backports/releases/download/backports-v$(PKG_VERSION)
PKG_HASH:=3bd5d84b1e56cf8addff0d1e4bcf06753c51feee88c4d7925fb7b67784529436
PKG_HASH:=623e5cf46ca8e81fd413f4f465e2580a0143e24929f9c22ce1ba7c34f2872989
PKG_SOURCE:=backports-$(PKG_VERSION).tar.zst
PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(if $(BUILD_VARIANT),$(PKG_NAME)-$(BUILD_VARIANT)/)backports-$(PKG_VERSION)

View File

@@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -3586,6 +3586,16 @@ int ath10k_core_register(struct ath10k *
@@ -3583,6 +3583,16 @@ int ath10k_core_register(struct ath10k *
queue_work(ar->workqueue, &ar->register_work);

View File

@@ -28,7 +28,7 @@ Forwarded: no
--- a/drivers/net/wireless/ath/ath10k/mac.c
+++ b/drivers/net/wireless/ath/ath10k/mac.c
@@ -1052,6 +1052,40 @@ static inline int ath10k_vdev_delete_syn
@@ -1051,6 +1051,40 @@ static inline int ath10k_vdev_delete_syn
return 0;
}
@@ -69,7 +69,7 @@ Forwarded: no
static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id)
{
struct cfg80211_chan_def *chandef = NULL;
@@ -1084,7 +1118,8 @@ static int ath10k_monitor_vdev_start(str
@@ -1083,7 +1117,8 @@ static int ath10k_monitor_vdev_start(str
arg.channel.min_power = 0;
arg.channel.max_power = channel->max_power * 2;
arg.channel.max_reg_power = channel->max_reg_power * 2;
@@ -79,7 +79,7 @@ Forwarded: no
reinit_completion(&ar->vdev_setup_done);
reinit_completion(&ar->vdev_delete_done);
@@ -1530,7 +1565,8 @@ static int ath10k_vdev_start_restart(str
@@ -1529,7 +1564,8 @@ static int ath10k_vdev_start_restart(str
arg.channel.min_power = 0;
arg.channel.max_power = chandef->chan->max_power * 2;
arg.channel.max_reg_power = chandef->chan->max_reg_power * 2;
@@ -89,7 +89,7 @@ Forwarded: no
if (arvif->vdev_type == WMI_VDEV_TYPE_AP) {
arg.ssid = arvif->u.ap.ssid;
@@ -3461,7 +3497,8 @@ static int ath10k_update_channel_list(st
@@ -3460,7 +3496,8 @@ static int ath10k_update_channel_list(st
ch->min_power = 0;
ch->max_power = channel->max_power * 2;
ch->max_reg_power = channel->max_reg_power * 2;

View File

@@ -18,7 +18,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
--- a/drivers/net/wireless/ath/ath10k/core.c
+++ b/drivers/net/wireless/ath/ath10k/core.c
@@ -11,6 +11,7 @@
@@ -10,6 +10,7 @@
#include <linux/module.h>
#include <linux/firmware.h>
#include <linux/of.h>
@@ -26,7 +26,7 @@ Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
#include <linux/property.h>
#include <linux/dmi.h>
#include <linux/ctype.h>
@@ -3458,6 +3459,8 @@ static int ath10k_core_probe_fw(struct a
@@ -3455,6 +3456,8 @@ static int ath10k_core_probe_fw(struct a
device_get_mac_address(ar->dev, ar->mac_addr);

View File

@@ -140,7 +140,7 @@ Signed-off-by: Robert Marko <robimarko@gmail.com>
int ath11k_mhi_register(struct ath11k_pci *ar_pci);
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -376,13 +376,20 @@ static void ath11k_pci_sw_reset(struct a
@@ -394,13 +394,20 @@ static void ath11k_pci_sw_reset(struct a
static void ath11k_pci_init_qmi_ce_config(struct ath11k_base *ab)
{
struct ath11k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg;

View File

@@ -99,7 +99,7 @@ Signed-off-by: George Moussalem <george.moussalem@outlook.com>
struct ath11k_targ_cap target_caps;
--- a/drivers/net/wireless/ath/ath11k/pci.c
+++ b/drivers/net/wireless/ath/ath11k/pci.c
@@ -391,6 +391,8 @@ static void ath11k_pci_init_qmi_ce_confi
@@ -409,6 +409,8 @@ static void ath11k_pci_init_qmi_ce_confi
} else
ab->qmi.service_ins_id = ab->hw_params.qmi_service_ins_id;

View File

@@ -5,7 +5,7 @@ But have issues on BPI-Rx boards.
--- a/drivers/net/wireless/ath/ath12k/pci.c
+++ b/drivers/net/wireless/ath/ath12k/pci.c
@@ -279,6 +279,9 @@ static void ath12k_pci_enable_ltssm(stru
@@ -297,6 +297,9 @@ static void ath12k_pci_enable_ltssm(stru
u32 val;
int i;

View File

@@ -130,7 +130,7 @@ Best regards,
--- a/drivers/net/wireless/ath/ath12k/wmi.c
+++ b/drivers/net/wireless/ath/ath12k/wmi.c
@@ -2891,6 +2891,9 @@ int ath12k_wmi_send_scan_chan_list_cmd(s
@@ -2894,6 +2894,9 @@ int ath12k_wmi_send_scan_chan_list_cmd(s
max_chan_limit = (wmi->wmi_ab->max_msg_len[ar->pdev_idx] - len) /
sizeof(*chan_info);

View File

@@ -124,7 +124,7 @@ Best regards,
--- a/drivers/net/wireless/ath/ath12k/mac.c
+++ b/drivers/net/wireless/ath/ath12k/mac.c
@@ -7723,9 +7723,7 @@ static void ath12k_mac_setup_ht_vht_cap(
@@ -7724,9 +7724,7 @@ static void ath12k_mac_setup_ht_vht_cap(
rate_cap_rx_chainmask);
}

View File

@@ -23,7 +23,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
struct ath12k_ce_ring *status_ring;
--- a/drivers/net/wireless/ath/ath12k/pci.c
+++ b/drivers/net/wireless/ath/ath12k/pci.c
@@ -430,9 +430,9 @@ static void ath12k_pci_sync_ce_irqs(stru
@@ -448,9 +448,9 @@ static void ath12k_pci_sync_ce_irqs(stru
}
}
@@ -35,7 +35,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
int irq_idx = ATH12K_PCI_IRQ_CE0_OFFSET + ce_pipe->pipe_num;
ath12k_ce_per_engine_service(ce_pipe->ab, ce_pipe->pipe_num);
@@ -454,7 +454,7 @@ static irqreturn_t ath12k_pci_ce_interru
@@ -472,7 +472,7 @@ static irqreturn_t ath12k_pci_ce_interru
disable_irq_nosync(ab->irq_num[irq_idx]);
@@ -44,7 +44,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
return IRQ_HANDLED;
}
@@ -684,7 +684,7 @@ static int ath12k_pci_config_irq(struct
@@ -702,7 +702,7 @@ static int ath12k_pci_config_irq(struct
irq_idx = ATH12K_PCI_IRQ_CE0_OFFSET + i;
@@ -53,7 +53,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
ret = request_irq(irq, ath12k_pci_ce_interrupt_handler,
ab_pci->irq_flags, irq_name[irq_idx],
@@ -967,7 +967,7 @@ static void ath12k_pci_aspm_restore(stru
@@ -985,7 +985,7 @@ static void ath12k_pci_aspm_restore(stru
PCI_EXP_LNKCTL_ASPMC);
}
@@ -62,7 +62,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
{
int i;
@@ -977,7 +977,7 @@ static void ath12k_pci_cancel_workqueue(
@@ -995,7 +995,7 @@ static void ath12k_pci_cancel_workqueue(
if (ath12k_ce_get_attr_flags(ab, i) & CE_ATTR_DIS_INTR)
continue;
@@ -71,7 +71,7 @@ This reverts commit cdad737160571a98cc4933a62c9f2728e965ab27.
}
}
@@ -985,7 +985,7 @@ static void ath12k_pci_ce_irq_disable_sy
@@ -1003,7 +1003,7 @@ static void ath12k_pci_ce_irq_disable_sy
{
ath12k_pci_ce_irqs_disable(ab);
ath12k_pci_sync_ce_irqs(ab);

View File

@@ -1,64 +0,0 @@
From b63f79524e6f30e58692bc9ee57c6e6e0dd10de4 Mon Sep 17 00:00:00 2001
From: Christian Marangi <ansuelsmth@gmail.com>
Date: Wed, 10 Dec 2025 22:37:03 +0100
Subject: [PATCH] backports: move __counted_by to compiler_types.h header
Port f06e108a3dc5 ("Compiler Attributes: disable __counted_by for clang
< 19.1.3") changes to align with new kernel version that moved the
__counted_by to a new header file.
Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
---
.../linux/compiler_attributes.h | 15 ------------
.../backport-include/linux/compiler_types.h | 23 +++++++++++++++++++
2 files changed, 23 insertions(+), 15 deletions(-)
create mode 100644 backport-include/linux/compiler_types.h
--- a/backport-include/linux/compiler_attributes.h
+++ b/backport-include/linux/compiler_attributes.h
@@ -31,19 +31,4 @@
#endif
#endif /* fallthrough */
-#ifndef __counted_by
-/*
- * Optional: only supported since gcc >= 14
- * Optional: only supported since clang >= 17
- *
- * gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896
- * clang: https://reviews.llvm.org/D148381
- */
-#if __has_attribute(__element_count__)
-# define __counted_by(member) __attribute__((__element_count__(#member)))
-#else
-# define __counted_by(member)
-#endif
-#endif
-
#endif /* _BACKPORTS_LINUX_COMPILER_ATTRIBUTES_H */
--- /dev/null
+++ b/backport-include/linux/compiler_types.h
@@ -0,0 +1,23 @@
+#ifndef _BACKPORTS_LINUX_COMPILER_TYPES_H
+#define _BACKPORTS_LINUX_COMPILER_TYPES_H 1
+
+#if LINUX_VERSION_IS_GEQ(6,12,1)
+#include_next <linux/compiler_types.h>
+#endif
+
+#ifndef __counted_by
+/*
+ * Optional: only supported since gcc >= 14
+ * Optional: only supported since clang >= 17
+ *
+ * gcc: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108896
+ * clang: https://reviews.llvm.org/D148381
+ */
+#if __has_attribute(__element_count__)
+# define __counted_by(member) __attribute__((__element_count__(#member)))
+#else
+# define __counted_by(member)
+#endif
+#endif
+
+#endif /* _BACKPORTS_LINUX_COMPILER_TYPES_H */

View File

@@ -40,7 +40,7 @@
}
return err;
@@ -1549,7 +1565,11 @@ static int cfg80211_netdev_notifier_call
@@ -1550,7 +1566,11 @@ static int cfg80211_netdev_notifier_call
SET_NETDEV_DEVTYPE(dev, &wiphy_type);
wdev->netdev = dev;
/* can only change netns with wiphy */

View File

@@ -1,19 +0,0 @@
diff --git a/backport-include/linux/hrtimer.h b/backport-include/linux/hrtimer.h
index 3c351922c81d..d865dbf42e9b 100644
--- a/backport-include/linux/hrtimer.h
+++ b/backport-include/linux/hrtimer.h
@@ -17,12 +17,14 @@ static inline enum hrtimer_restart hrtimer_dummy_timeout(struct hrtimer *unused)
return HRTIMER_NORESTART;
}
+#if LINUX_VERSION_IS_LESS(6,12,64)
static inline void
hrtimer_update_function(struct hrtimer *timer,
enum hrtimer_restart (*function)(struct hrtimer *))
{
timer->function = function;
}
+#endif /* < 6.12.64 */
static inline void
hrtimer_setup(struct hrtimer *timer, enum hrtimer_restart (*function)(struct hrtimer *),

View File

@@ -9,7 +9,7 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnect
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -1882,12 +1882,6 @@ static int ieee80211_stop_ap(struct wiph
@@ -1872,12 +1872,6 @@ static int ieee80211_stop_ap(struct wiph
__sta_info_flush(sdata, true, link_id, NULL);

View File

@@ -8,7 +8,7 @@ Subject: [PATCH] mac80211: allow scans in access point mode (for site survey)
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3131,6 +3131,8 @@ static int ieee80211_scan(struct wiphy *
@@ -3121,6 +3121,8 @@ static int ieee80211_scan(struct wiphy *
*/
fallthrough;
case NL80211_IFTYPE_AP:

View File

@@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -4084,7 +4084,7 @@ struct ieee80211_txq *ieee80211_next_txq
@@ -4086,7 +4086,7 @@ struct ieee80211_txq *ieee80211_next_txq
if (deficit < 0)
sta->airtime[txqi->txq.ac].deficit +=
@@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (deficit < 0 || !aql_check) {
list_move_tail(&txqi->schedule_order,
@@ -4229,7 +4229,8 @@ bool ieee80211_txq_may_transmit(struct i
@@ -4231,7 +4231,8 @@ bool ieee80211_txq_may_transmit(struct i
}
sta = container_of(iter->txq.sta, struct sta_info, sta);
if (ieee80211_sta_deficit(sta, ac) < 0)
@@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
list_move_tail(&iter->schedule_order, &local->active_txqs[ac]);
}
@@ -4237,7 +4238,7 @@ bool ieee80211_txq_may_transmit(struct i
@@ -4239,7 +4240,7 @@ bool ieee80211_txq_may_transmit(struct i
if (sta->airtime[ac].deficit >= 0)
goto out;

View File

@@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
atomic_add(tx_airtime,
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -2554,7 +2554,7 @@ static u16 ieee80211_store_ack_skb(struc
@@ -2556,7 +2556,7 @@ static u16 ieee80211_store_ack_skb(struc
spin_lock_irqsave(&local->ack_status_lock, flags);
id = idr_alloc(&local->ack_status_frames, ack_skb,
@@ -136,7 +136,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
spin_unlock_irqrestore(&local->ack_status_lock, flags);
if (id >= 0) {
@@ -3985,20 +3985,20 @@ begin:
@@ -3987,20 +3987,20 @@ begin:
encap_out:
info->control.vif = vif;
@@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
}
return skb;
@@ -4050,6 +4050,7 @@ struct ieee80211_txq *ieee80211_next_txq
@@ -4052,6 +4052,7 @@ struct ieee80211_txq *ieee80211_next_txq
struct ieee80211_txq *ret = NULL;
struct txq_info *txqi = NULL, *head = NULL;
bool found_eligible_txq = false;
@@ -175,7 +175,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
spin_lock_bh(&local->active_txq_lock[ac]);
@@ -4073,26 +4074,26 @@ struct ieee80211_txq *ieee80211_next_txq
@@ -4075,26 +4076,26 @@ struct ieee80211_txq *ieee80211_next_txq
if (!head)
head = txqi;
@@ -214,7 +214,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (txqi->schedule_round == local->schedule_round[ac])
goto out;
@@ -4159,7 +4160,8 @@ bool ieee80211_txq_airtime_check(struct
@@ -4161,7 +4162,8 @@ bool ieee80211_txq_airtime_check(struct
return true;
if (!txq->sta)
@@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (unlikely(txq->tid == IEEE80211_NUM_TIDS))
return true;
@@ -4208,15 +4210,15 @@ bool ieee80211_txq_may_transmit(struct i
@@ -4210,15 +4212,15 @@ bool ieee80211_txq_may_transmit(struct i
spin_lock_bh(&local->active_txq_lock[ac]);

View File

@@ -1,6 +1,6 @@
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -3825,6 +3825,27 @@ static bool ieee80211_is_scan_ongoing(st
@@ -3815,6 +3815,27 @@ static bool ieee80211_is_scan_ongoing(st
return false;
}
@@ -28,7 +28,7 @@
static int ieee80211_start_radar_detection(struct wiphy *wiphy,
struct net_device *dev,
struct cfg80211_chan_def *chandef,
@@ -3838,7 +3859,7 @@ static int ieee80211_start_radar_detecti
@@ -3828,7 +3849,7 @@ static int ieee80211_start_radar_detecti
lockdep_assert_wiphy(local->hw.wiphy);
@@ -37,7 +37,7 @@
return -EBUSY;
link_data = sdata_dereference(sdata->link[link_id], sdata);
@@ -4330,7 +4351,7 @@ __ieee80211_channel_switch(struct wiphy
@@ -4320,7 +4341,7 @@ __ieee80211_channel_switch(struct wiphy
lockdep_assert_wiphy(local->hw.wiphy);
@@ -387,7 +387,7 @@
* the suspend->resume cycle. Since we can't check each caller
--- a/net/wireless/util.c
+++ b/net/wireless/util.c
@@ -2964,6 +2964,9 @@ bool cfg80211_radio_chandef_valid(const
@@ -2943,6 +2943,9 @@ bool cfg80211_radio_chandef_valid(const
{
u32 freq, width;

View File

@@ -9,7 +9,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
--- a/net/mac80211/cfg.c
+++ b/net/mac80211/cfg.c
@@ -4594,7 +4594,9 @@ static int ieee80211_probe_client(struct
@@ -4584,7 +4584,9 @@ static int ieee80211_probe_client(struct
struct ieee80211_tx_info *info;
struct sta_info *sta;
struct ieee80211_chanctx_conf *chanctx_conf;
@@ -19,7 +19,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
int ret;
/* the lock is needed to assign the cookie later */
@@ -4609,7 +4611,23 @@ static int ieee80211_probe_client(struct
@@ -4599,7 +4601,23 @@ static int ieee80211_probe_client(struct
qos = sta->sta.wme;
@@ -44,7 +44,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
if (WARN_ON(!chanctx_conf)) {
ret = -EINVAL;
goto unlock;
@@ -4641,14 +4659,15 @@ static int ieee80211_probe_client(struct
@@ -4631,14 +4649,15 @@ static int ieee80211_probe_client(struct
nullfunc->frame_control = fc;
nullfunc->duration_id = 0;
memcpy(nullfunc->addr1, sta->sta.addr, ETH_ALEN);