diff options
author | Mario Limonciello <mario.limonciello@amd.com> | 2022-03-03 14:13:25 +0100 |
---|---|---|
committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2022-03-04 15:10:36 +0100 |
commit | a283de3ec646f19b09f3c8e4c8f57c0e017c9b2b (patch) | |
tree | 21b2c543c4cffe1cf7ac114cc51eb6b7e5409fce /drivers/thunderbolt | |
parent | thunderbolt: Retry DROM reads for more failure scenarios (diff) | |
download | linux-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.c | 4 |
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 |