All non-root switches are expected to have DROM so if the operation
fails, it might be due the user unlugging the device. There is no point
continuing adding the switch further in that case. Just bail out.

For root switches (hosts) the DROM is either retrieved from a EFI
variable, NVM or hard-coded.

Signed-off-by: Mika Westerberg <[email protected]>
Reviewed-by: Yehezkel Bernat <[email protected]>
Reviewed-by: Michael Jamet <[email protected]>
Reviewed-by: Andy Shevchenko <[email protected]>
---
 drivers/thunderbolt/switch.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index 8b7ac592866a..86ebce28e257 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -533,8 +533,11 @@ int tb_switch_add(struct tb_switch *sw)
        int i, ret;
 
        /* read drom */
-       if (tb_drom_read(sw))
-               tb_sw_warn(sw, "tb_eeprom_read_rom failed, continuing\n");
+       ret = tb_drom_read(sw);
+       if (ret) {
+               tb_sw_warn(sw, "tb_eeprom_read_rom failed\n");
+               return ret;
+       }
        tb_sw_info(sw, "uid: %#llx\n", sw->uid);
 
        tb_switch_set_uuid(sw);
-- 
2.11.0

Reply via email to