From 766270061305eb0ad18f241f907b321744b692bc Mon Sep 17 00:00:00 2001 From: David Bauer Date: Tue, 28 Feb 2023 19:53:44 +0100 Subject: [PATCH 1/4] fritz-tools: fix segfault in caldata-extract * Fix incorrect error message in case input file opening fails * Don't close files in case the pointers are invalid Signed-off-by: David Bauer --- package/utils/fritz-tools/Makefile | 2 +- package/utils/fritz-tools/src/fritz_cal_extract.c | 8 +++++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/package/utils/fritz-tools/Makefile b/package/utils/fritz-tools/Makefile index a4d69bdf71..6e20b56ff8 100644 --- a/package/utils/fritz-tools/Makefile +++ b/package/utils/fritz-tools/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fritz-tools -PKG_RELEASE:=1 +PKG_RELEASE:=2 CMAKE_INSTALL:=1 include $(INCLUDE_DIR)/package.mk diff --git a/package/utils/fritz-tools/src/fritz_cal_extract.c b/package/utils/fritz-tools/src/fritz_cal_extract.c index 8156dfd1a7..2978d86e0c 100644 --- a/package/utils/fritz-tools/src/fritz_cal_extract.c +++ b/package/utils/fritz-tools/src/fritz_cal_extract.c @@ -210,7 +210,7 @@ int main(int argc, char **argv) if (argc > 1 && optind <= argc) { in = fopen(argv[optind], "r"); if (!in) { - perror("Failed to create output file"); + perror("Failed to open input file"); goto out_bad; } } @@ -253,7 +253,9 @@ out_bad: ret = EXIT_FAILURE; out: - fclose(in); - fclose(out); + if (in) + fclose(in); + if (out) + fclose(out); return ret; } From 05603df730a5f9c24f433bf6ecf4dc1088e5fe23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Thu, 2 Mar 2023 18:00:40 +0100 Subject: [PATCH 2/4] bcm63xx: loader-lzma: drop unused RAMSIZE parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This parameter has never been used. Signed-off-by: Álvaro Fernández Rojas --- target/linux/bcm63xx/image/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/target/linux/bcm63xx/image/Makefile b/target/linux/bcm63xx/image/Makefile index 9137971fa5..45b526878d 100644 --- a/target/linux/bcm63xx/image/Makefile +++ b/target/linux/bcm63xx/image/Makefile @@ -8,8 +8,7 @@ include $(INCLUDE_DIR)/image.mk KERNEL_LOADADDR = 0x80010000 # RAM start + 64K LOADER_ENTRY = 0x80a00000 # RAM start + 10M, for relocate -RAMSIZE = 0x02000000 # 32MB -LZMA_TEXT_START = 0x81800000 # 32MB - 8MB +LZMA_TEXT_START = 0x81800000 # RAM start + 24M RELOCATE_MAKEOPTS= \ CACHELINE_SIZE=16 \ @@ -37,7 +36,6 @@ define Build/loader-lzma KDIR=$(KDIR) \ LOADER_ADDR=$(if $(DEVICE_LOADADDR),$(DEVICE_LOADADDR),$(LOADER_ENTRY)) \ KERNEL_ADDR=$(KERNEL_LOADADDR) \ - RAMSIZE=$(RAMSIZE) \ LZMA_TEXT_START=$(LZMA_TEXT_START) \ CHIP_ID=$(CHIP_ID) \ PKG_BUILD_DIR="$@.src" \ From 12a3c863d27d078766c84d5db170f0d7ba2d263a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Thu, 2 Mar 2023 18:32:29 +0100 Subject: [PATCH 3/4] bmips: loader-lzma: drop unused RAMSIZE parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This parameter has never been used. Signed-off-by: Álvaro Fernández Rojas --- target/linux/bmips/image/Makefile | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/target/linux/bmips/image/Makefile b/target/linux/bmips/image/Makefile index 86ab68d244..af2fd98d1f 100644 --- a/target/linux/bmips/image/Makefile +++ b/target/linux/bmips/image/Makefile @@ -5,8 +5,7 @@ include $(INCLUDE_DIR)/image.mk KERNEL_LOADADDR := 0x80010000 # RAM start + 64K LOADER_ENTRY := 0x80a00000 # RAM start + 10M, for relocate -RAMSIZE := 0x02000000 # 32MB -LZMA_TEXT_START := 0x81800000 # 32MB - 8MB +LZMA_TEXT_START := 0x81800000 # RAM start + 24M DEVICE_VARS += CHIP_ID DEVICE_LOADADDR @@ -32,7 +31,6 @@ define Build/loader-lzma LOADER_NAME="$(notdir $@)" \ LZMA_TEXT_START=$(LZMA_TEXT_START) \ PKG_BUILD_DIR="$@.src" \ - RAMSIZE=$(RAMSIZE) \ TARGET_DIR="$(dir $@)" \ compile loader.$(1) @mv "$@.$(1)" "$@" From f6a7ce2501ecd650bc92251e3f39758603e617ca Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 3 Mar 2023 11:20:46 +0100 Subject: [PATCH 4/4] mac80211: fix regression in sw a-msdu tx introduced in mesh improvement patches Fixes: 6262d3eb068c ("mac80211: sync mesh fast xmit patch with upstream requested changes") Signed-off-by: Felix Fietkau --- ...wifi-mac80211-mesh-fast-xmit-support.patch | 29 +++++++------------ ...e-mesh-header-cache-to-speed-up-mesh.patch | 2 +- ...troduce-ieee80211_refresh_tx_agg_ses.patch | 2 +- 3 files changed, 12 insertions(+), 21 deletions(-) diff --git a/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch b/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch index e1c5027cde..12e9cf5744 100644 --- a/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch +++ b/package/kernel/mac80211/patches/subsys/319-wifi-mac80211-mesh-fast-xmit-support.patch @@ -137,8 +137,7 @@ Signed-off-by: Felix Fietkau + if (!entry) + return false; + -+ if (skb_headroom(skb) + 2 * ETH_ALEN < entry->hdrlen + -+ entry->fast_tx.hdr_len) ++ if (skb_headroom(skb) < entry->hdrlen + entry->fast_tx.hdr_len) + return false; + + sta = rcu_dereference(entry->mpath->next_hop); @@ -177,6 +176,7 @@ Signed-off-by: Felix Fietkau + if (copy_sa) + ether_addr_copy(meshhdr->eaddr2, sa); + ++ skb_push(skb, 2 * ETH_ALEN); + __ieee80211_xmit_fast(sdata, sta, &entry->fast_tx, skb, tid_tx, + entry->mpath->dst, sdata->vif.addr); + @@ -764,28 +764,20 @@ Signed-off-by: Felix Fietkau { struct ieee80211_local *local = sdata->local; struct ieee80211_hdr *hdr = (void *)fast_tx->hdr; -@@ -3645,8 +3652,6 @@ static void __ieee80211_xmit_fast(struct - struct ieee80211_tx_data tx; +@@ -3646,7 +3653,6 @@ static void __ieee80211_xmit_fast(struct ieee80211_tx_result r; int hw_headroom = sdata->local->hw.extra_tx_headroom; -- int extra_head = fast_tx->hdr_len - (ETH_HLEN - 2); + int extra_head = fast_tx->hdr_len - (ETH_HLEN - 2); - struct ethhdr eth; skb = skb_share_check(skb, GFP_ATOMIC); if (unlikely(!skb)) -@@ -3661,16 +3666,15 @@ static void __ieee80211_xmit_fast(struct - * more room than we already have in 'extra_head' - */ - if (unlikely(ieee80211_skb_resize(sdata, skb, -- max_t(int, extra_head + hw_headroom - -+ max_t(int, fast_tx->hdr_len + hw_headroom - - skb_headroom(skb), 0), +@@ -3666,11 +3672,10 @@ static void __ieee80211_xmit_fast(struct ENCRYPT_NO))) goto free; - memcpy(ð, skb->data, ETH_HLEN - 2); -- hdr = skb_push(skb, extra_head); -+ hdr = skb_push(skb, fast_tx->hdr_len); + hdr = skb_push(skb, extra_head); memcpy(skb->data, fast_tx->hdr, fast_tx->hdr_len); - memcpy(skb->data + fast_tx->da_offs, eth.h_dest, ETH_ALEN); - memcpy(skb->data + fast_tx->sa_offs, eth.h_source, ETH_ALEN); @@ -794,7 +786,7 @@ Signed-off-by: Felix Fietkau info = IEEE80211_SKB_CB(skb); memset(info, 0, sizeof(*info)); -@@ -3689,7 +3693,8 @@ static void __ieee80211_xmit_fast(struct +@@ -3689,7 +3694,8 @@ static void __ieee80211_xmit_fast(struct #endif if (hdr->frame_control & cpu_to_le16(IEEE80211_STYPE_QOS_DATA)) { @@ -804,7 +796,7 @@ Signed-off-by: Felix Fietkau *ieee80211_get_qos_ctl(hdr) = tid; } -@@ -3732,6 +3737,7 @@ static bool ieee80211_xmit_fast(struct i +@@ -3732,6 +3738,7 @@ static bool ieee80211_xmit_fast(struct i struct ieee80211_hdr *hdr = (void *)fast_tx->hdr; struct tid_ampdu_tx *tid_tx = NULL; struct sk_buff *next; @@ -812,17 +804,16 @@ Signed-off-by: Felix Fietkau u8 tid = IEEE80211_NUM_TIDS; /* control port protocol needs a lot of special handling */ -@@ -3757,14 +3763,18 @@ static bool ieee80211_xmit_fast(struct i +@@ -3757,6 +3764,8 @@ static bool ieee80211_xmit_fast(struct i } } + memcpy(ð, skb->data, ETH_HLEN - 2); + /* after this point (skb is modified) we cannot return false */ -+ skb_pull(skb, ETH_HLEN - 2); skb = ieee80211_tx_skb_fixup(skb, ieee80211_sdata_netdev_features(sdata)); if (!skb) - return true; +@@ -3764,7 +3773,8 @@ static bool ieee80211_xmit_fast(struct i skb_list_walk_safe(skb, skb, next) { skb_mark_not_on_list(skb); diff --git a/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch b/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch index 3b0bae67a5..7ec8f3db1a 100644 --- a/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch +++ b/package/kernel/mac80211/patches/subsys/320-wifi-mac80211-use-mesh-header-cache-to-speed-up-mesh.patch @@ -64,7 +64,7 @@ Signed-off-by: Felix Fietkau + + skb->dev = sdata->dev; + memcpy(ð, skb->data, ETH_HLEN - 2); -+ skb_pull(skb, sizeof(eth)); ++ skb_pull(skb, 2); + __ieee80211_xmit_fast(sdata, sta, &entry->fast_tx, skb, tid_tx, + eth.h_dest, eth.h_source); + IEEE80211_IFSTA_MESH_CTR_INC(ifmsh, fwded_unicast); diff --git a/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch b/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch index acd6c126aa..f6d3d78d7c 100644 --- a/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch +++ b/package/kernel/mac80211/patches/subsys/325-wifi-mac80211-introduce-ieee80211_refresh_tx_agg_ses.patch @@ -13,7 +13,7 @@ Signed-off-by: Ryder Lee --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -5970,6 +5970,18 @@ void ieee80211_queue_delayed_work(struct +@@ -5968,6 +5968,18 @@ void ieee80211_queue_delayed_work(struct unsigned long delay); /**