[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250626084107.2710306-1-zhangjianrong5@huawei.com>
Date: Thu, 26 Jun 2025 16:41:07 +0800
From: zhangjianrong <zhangjianrong5@...wei.com>
To: <andreas.noever@...il.com>, <michael.jamet@...el.com>,
<mika.westerberg@...ux.intel.com>, <YehezkelShB@...il.com>,
<linux-usb@...r.kernel.org>, <linux-kernel@...r.kernel.org>
CC: <guhengsheng@...ilicon.com>, <caiyadong@...wei.com>,
<xuetao09@...wei.com>, <lixinghang1@...wei.com>
Subject: [PATCH] thunderbolt: Confirm the necessity to configure asym link first
Current implementation can cause allocation failures in
tb_alloc_dp_bandwidth() in some cases. For example:
allocated_down(30Gbps), allocated_up(50Gbps),
requested_down(10Gbps).
Signed-off-by: zhangjianrong <zhangjianrong5@...wei.com>
---
drivers/thunderbolt/tb.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/thunderbolt/tb.c b/drivers/thunderbolt/tb.c
index a7c6919fbf97..558455d9716b 100644
--- a/drivers/thunderbolt/tb.c
+++ b/drivers/thunderbolt/tb.c
@@ -1039,6 +1039,9 @@ static int tb_configure_asym(struct tb *tb, struct tb_port *src_port,
break;
if (downstream) {
+ /* Does consumed + requested exceed the threshold */
+ if (consumed_down + requested_down < asym_threshold)
+ continue;
/*
* Downstream so make sure upstream is within the 36G
* (40G - guard band 10%), and the requested is above
@@ -1048,20 +1051,17 @@ static int tb_configure_asym(struct tb *tb, struct tb_port *src_port,
ret = -ENOBUFS;
break;
}
- /* Does consumed + requested exceed the threshold */
- if (consumed_down + requested_down < asym_threshold)
- continue;
width_up = TB_LINK_WIDTH_ASYM_RX;
width_down = TB_LINK_WIDTH_ASYM_TX;
} else {
/* Upstream, the opposite of above */
+ if (consumed_up + requested_up < asym_threshold)
+ continue;
if (consumed_down + requested_down >= TB_ASYM_MIN) {
ret = -ENOBUFS;
break;
}
- if (consumed_up + requested_up < asym_threshold)
- continue;
width_up = TB_LINK_WIDTH_ASYM_TX;
width_down = TB_LINK_WIDTH_ASYM_RX;
--
2.34.1
Powered by blists - more mailing lists