summaryrefslogtreecommitdiffstats
path: root/drivers/thunderbolt
diff options
context:
space:
mode:
authorMario Limonciello <mario.limonciello@amd.com>2022-03-03 14:13:25 +0100
committerMika Westerberg <mika.westerberg@linux.intel.com>2022-03-04 15:10:36 +0100
commita283de3ec646f19b09f3c8e4c8f57c0e017c9b2b (patch)
tree21b2c543c4cffe1cf7ac114cc51eb6b7e5409fce /drivers/thunderbolt
parentthunderbolt: Retry DROM reads for more failure scenarios (diff)
downloadlinux-a283de3ec646f19b09f3c8e4c8f57c0e017c9b2b.tar.xz
linux-a283de3ec646f19b09f3c8e4c8f57c0e017c9b2b.zip
thunderbolt: Do not resume routers if UID is not set
Routers might not have a UID set if the DROM read failed during initialization previously. Normally upon resume the UID is re-read to confirm it's the same device connected. * If the DROM read failed during init but then succeeded during resume it could either be a new device or faulty device * If the DROM read failed during init and also failed during resume it might be a different device plugged in all together. Detect this situation and prevent re-using the same configuration in these cirucmstances. Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Diffstat (limited to 'drivers/thunderbolt')
-rw-r--r--drivers/thunderbolt/switch.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index b5fb3e76ed09..294518af4ee4 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -2980,6 +2980,10 @@ int tb_switch_resume(struct tb_switch *sw)
return err;
}
+ /* We don't have any way to confirm this was the same device */
+ if (!sw->uid)
+ return -ENODEV;
+
if (tb_switch_is_usb4(sw))
err = usb4_switch_read_uid(sw, &uid);
else