thunderbolt: Do not fail if DROM data CRC32 is invalid
authorMika Westerberg <mika.westerberg@linux.intel.com>
Tue, 6 Jun 2017 12:25:03 +0000 (15:25 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 9 Jun 2017 09:42:42 +0000 (11:42 +0200)
There are devices out there where CRC32 of the DROM is not correct. One
reason for this is that the ICM firmware does not validate it and it
seems that neither does the Apple driver. To be able to support such
devices we continue parsing the DROM contents regardless of whether
CRC32 failed or not. We still keep the warning there.

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/eeprom.c

index 7e485e3ef27e34967f9d0b3a4b320082ff828ec5..e2c1f8a455229acdec5bb02707d93ff0bde4439b 100644 (file)
@@ -485,9 +485,8 @@ parse:
        crc = tb_crc32(sw->drom + TB_DROM_DATA_START, header->data_len);
        if (crc != header->data_crc32) {
                tb_sw_warn(sw,
-                       "drom data crc32 mismatch (expected: %#x, got: %#x), aborting\n",
+                       "drom data crc32 mismatch (expected: %#x, got: %#x), continuing\n",
                        header->data_crc32, crc);
-               goto err;
        }
 
        if (header->device_rom_revision > 2)