diff --git a/lib/functions/compilation/patch/drivers_network.sh b/lib/functions/compilation/patch/drivers_network.sh index 94ef6fc370..5aa7927c9a 100644 --- a/lib/functions/compilation/patch/drivers_network.sh +++ b/lib/functions/compilation/patch/drivers_network.sh @@ -666,6 +666,7 @@ driver_uwe5622() { fi process_patch_file "${SRC}/patch/misc/wireless-uwe5622/wireless-uwe5622-Fix-compilation-with-6.7-kernel.patch" "applying" + process_patch_file "${SRC}/patch/misc/wireless-uwe5622/wireless-uwe5622-reduce-system-load.patch" "applying" fi } diff --git a/patch/misc/wireless-uwe5622/wireless-uwe5622-reduce-system-load.patch b/patch/misc/wireless-uwe5622/wireless-uwe5622-reduce-system-load.patch new file mode 100644 index 0000000000..25f2400ca4 --- /dev/null +++ b/patch/misc/wireless-uwe5622/wireless-uwe5622-reduce-system-load.patch @@ -0,0 +1,29 @@ +From 2bf93d6cfe24f56baa12f75a57b71dfc33fe322a Mon Sep 17 00:00:00 2001 +From: Gunjan Gupta +Date: Tue, 2 Jan 2024 13:23:23 +0000 +Subject: [PATCH] wireless: uwe5622: reduce system load + +Based on https://github.com/pyavitz/debian-image-builder/commit/cbed5020641ad2d2a6c2df0a2ce68586da1b1635 +--- + drivers/net/wireless/uwe5622/unisocwifi/tx_msg.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/wireless/uwe5622/unisocwifi/tx_msg.c b/drivers/net/wireless/uwe5622/unisocwifi/tx_msg.c +index 40d51a7130d9..040193d3115d 100644 +--- a/drivers/net/wireless/uwe5622/unisocwifi/tx_msg.c ++++ b/drivers/net/wireless/uwe5622/unisocwifi/tx_msg.c +@@ -317,7 +317,10 @@ void sprdwl_dequeue_data_list(struct mbuf_t *head, int num) + /* seam for tx_thread */ + void tx_down(struct sprdwl_tx_msg *tx_msg) + { +- wait_for_completion(&tx_msg->tx_completed); ++ int ret; ++ do { ++ ret = wait_for_completion_interruptible(&tx_msg->tx_completed); ++ } while (ret == -ERESTARTSYS); + } + + void tx_up(struct sprdwl_tx_msg *tx_msg) +-- +2.34.1 +