]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
thunderbolt: Bond lanes only when dual_link_port != NULL in alloc_dev_default()
authorMika Westerberg <mika.westerberg@linux.intel.com>
Mon, 7 Jun 2021 10:37:46 +0000 (13:37 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 14 Jul 2021 15:00:20 +0000 (17:00 +0200)
[ Upstream commit a0d36fa1065901f939b04587a09c65303a64ac88 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/thunderbolt/test.c

index 464c2d37b992e507b0ca76a907ac8d1e4a46c8a0..e254f8c37cb7393720600d982851b7847959883b 100644 (file)
@@ -259,14 +259,14 @@ 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->dual_link_port->bonded = true;
-               upstream_port->bonded = true;
-               upstream_port->dual_link_port->bonded = true;
+               if (bonded) {
+                       /* Bonding is used */
+                       port->bonded = true;
+                       port->dual_link_port->bonded = true;
+                       upstream_port->bonded = true;
+                       upstream_port->dual_link_port->bonded = true;
+               }
        }
 
        return sw;