Re: [PATCH 2/5] drivers/thunderbolt: don't resume switches without uid set

From: Mika Westerberg
Date: Thu Mar 03 2022 - 02:43:51 EST


Hi Mario,

On Wed, Mar 02, 2022 at 04:07:06PM -0600, Mario Limonciello wrote:
> Switches might not have a uid set if the DROM read failed during

That's "Routers" and "UID" :)

Also $subject should have prefix "thunderbolt: " not
"drivers/thunderbolt". Please capitalize the summary too:

thunderbolt: Do not resume routers if UID is not set

The patch itself looks good to me.

> 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@xxxxxxx>
> ---
> drivers/thunderbolt/switch.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> 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
> --
> 2.34.1