thunderbolt: Fail switch adding operation if reading DROM fails
authorMika Westerberg <mika.westerberg@linux.intel.com>
Tue, 6 Jun 2017 12:25:02 +0000 (15:25 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Jun 2017 09:42:42 +0000 (11:42 +0200)
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 <mika.westerberg@linux.intel.com>
Reviewed-by: Yehezkel Bernat <yehezkel.bernat@intel.com>
Reviewed-by: Michael Jamet <michael.jamet@intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Andreas Noever <andreas.noever@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/thunderbolt/switch.c

index 0475bfc6c208b09a05f74bd97665f097e98ff2a7..2390f08b94da697e3190b8461ef28ce5552b397c 100644 (file)
@@ -535,8 +535,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);