--- /dev/null
+From 8e3341257e3b5774ec8cd3ef1ba0c0d3fada322b Mon Sep 17 00:00:00 2001
+From: Mika Westerberg <mika.westerberg@linux.intel.com>
+Date: Tue, 27 Jul 2021 17:25:01 +0300
+Subject: Revert "thunderbolt: Hide authorized attribute if router does not support PCIe tunnels"
+
+From: Mika Westerberg <mika.westerberg@linux.intel.com>
+
+commit 8e3341257e3b5774ec8cd3ef1ba0c0d3fada322b upstream.
+
+This reverts commit 6f3badead6a078cf3c71f381f9d84ac922984a00.
+
+It turns out bolt depends on having authorized attribute visible under
+each device. Hiding it makes bolt crash as several people have reported
+on various bug trackers. For this reason revert the commit.
+
+Link: https://gitlab.freedesktop.org/bolt/bolt/-/issues/174
+Link: https://bugzilla.redhat.com/show_bug.cgi?id=1979765
+Link: https://bugs.archlinux.org/task/71569
+Cc: stable@vger.kernel.org
+Cc: Christian Kellner <ckellner@redhat.com>
+Fixes: 6f3badead6a0 ("thunderbolt: Hide authorized attribute if router does not support PCIe tunnels")
+Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
+Link: https://lore.kernel.org/r/20210727142501.27476-1-mika.westerberg@linux.intel.com
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+---
+ drivers/thunderbolt/switch.c | 15 +--------------
+ 1 file changed, 1 insertion(+), 14 deletions(-)
+
+--- a/drivers/thunderbolt/switch.c
++++ b/drivers/thunderbolt/switch.c
+@@ -1740,18 +1740,6 @@ static struct attribute *switch_attrs[]
+ NULL,
+ };
+
+-static bool has_port(const struct tb_switch *sw, enum tb_port_type type)
+-{
+- const struct tb_port *port;
+-
+- tb_switch_for_each_port(sw, port) {
+- if (!port->disabled && port->config.type == type)
+- return true;
+- }
+-
+- return false;
+-}
+-
+ static umode_t switch_attr_is_visible(struct kobject *kobj,
+ struct attribute *attr, int n)
+ {
+@@ -1760,8 +1748,7 @@ static umode_t switch_attr_is_visible(st
+
+ if (attr == &dev_attr_authorized.attr) {
+ if (sw->tb->security_level == TB_SECURITY_NOPCIE ||
+- sw->tb->security_level == TB_SECURITY_DPONLY ||
+- !has_port(sw, TB_TYPE_PCIE_UP))
++ sw->tb->security_level == TB_SECURITY_DPONLY)
+ return 0;
+ } else if (attr == &dev_attr_device.attr) {
+ if (!sw->device)