diff options
author | Mario Limonciello <mario.limonciello@amd.com> | 2022-03-03 07:13:25 -0600 |
---|---|---|
committer | Mika Westerberg <mika.westerberg@linux.intel.com> | 2022-03-04 17:10:36 +0300 |
commit | a283de3ec646f19b09f3c8e4c8f57c0e017c9b2b (patch) | |
tree | 21b2c543c4cffe1cf7ac114cc51eb6b7e5409fce /drivers/thunderbolt/switch.c | |
parent | e87491a9fd4e33eaf18ef69d8295bb07b31452b2 (diff) |
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/switch.c')
-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 |