misc: at25: Check proper value of chip length in FRAM case
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Thu, 25 Nov 2021 21:27:29 +0000 (23:27 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Dec 2021 13:25:22 +0000 (14:25 +0100)
Obviously the byte_len value should be checked from the chip
and not from at25->chip.

Fixes: fd307a4ad332 ("nvmem: prepare basics for FRAM support")
Acked-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20211125212729.86585-4-andriy.shevchenko@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/eeprom/at25.c

index f0b0efc..e212165 100644 (file)
@@ -433,9 +433,9 @@ static int at25_probe(struct spi_device *spi)
                        dev_err(&spi->dev, "Error: unsupported size (id %02x)\n", id[7]);
                        return -ENODEV;
                }
-               chip.byte_len = int_pow(2, id[7] - 0x21 + 4) * 1024;
 
-               if (at25->chip.byte_len > 64 * 1024)
+               chip.byte_len = int_pow(2, id[7] - 0x21 + 4) * 1024;
+               if (chip.byte_len > 64 * 1024)
                        at25->chip.flags |= EE_ADDR3;
                else
                        at25->chip.flags |= EE_ADDR2;