diff options
author | Mika Westerberg <mika.westerberg@linux.intel.com> | 2021-06-07 12:37:46 +0200 |
---|---|---|
committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2021-06-11 10:42:54 +0200 |
commit | a0d36fa1065901f939b04587a09c65303a64ac88 (patch) | |
tree | 71f56e2a42c62ca5ba3d34408a2139eec64092c3 /drivers/thunderbolt | |
parent | thunderbolt: Check for NVM authentication status after the operation started (diff) | |
download | linux-a0d36fa1065901f939b04587a09c65303a64ac88.tar.xz linux-a0d36fa1065901f939b04587a09c65303a64ac88.zip |
thunderbolt: Bond lanes only when dual_link_port != NULL in alloc_dev_default()
We should not dereference ->dual_link_port if it is NULL and lane bonding
is requested. For this reason move lane bonding configuration happen
inside the block where ->dual_link_port != NULL.
Fixes: 54509f5005ca ("thunderbolt: Add KUnit tests for path walking")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Reviewed-by: Yehezkel Bernat <YehezkelShB@gmail.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'drivers/thunderbolt')
-rw-r--r-- | drivers/thunderbolt/test.c | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/drivers/thunderbolt/test.c b/drivers/thunderbolt/test.c index cf34c1ecf5d5..ba5afd471766 100644 --- a/drivers/thunderbolt/test.c +++ b/drivers/thunderbolt/test.c @@ -303,18 +303,18 @@ static struct tb_switch *alloc_dev_default(struct kunit *test, if (port->dual_link_port && upstream_port->dual_link_port) { port->dual_link_port->remote = upstream_port->dual_link_port; upstream_port->dual_link_port->remote = port->dual_link_port; - } - if (bonded) { - /* Bonding is used */ - port->bonded = true; - port->total_credits *= 2; - port->dual_link_port->bonded = true; - port->dual_link_port->total_credits = 0; - upstream_port->bonded = true; - upstream_port->total_credits *= 2; - upstream_port->dual_link_port->bonded = true; - upstream_port->dual_link_port->total_credits = 0; + if (bonded) { + /* Bonding is used */ + port->bonded = true; + port->total_credits *= 2; + port->dual_link_port->bonded = true; + port->dual_link_port->total_credits = 0; + upstream_port->bonded = true; + upstream_port->total_credits *= 2; + upstream_port->dual_link_port->bonded = true; + upstream_port->dual_link_port->total_credits = 0; + } } return sw; |