In the Linux kernel, the following vulnerability has been resolved:
spi: spi-mem: Add fix to avoid divide error
For some SPI flash memory operations, dummy bytes are not mandatory. For
example, in Winbond SPINAND flash memory devices, the write_cache
and
update_cache
operation variants have zero dummy bytes. Calculating the
duration for SPI memory operations with zero dummy bytes causes
a divide error when ncycles
is calculated in the
spimemcalcopduration().
Add changes to skip the 'ncylcles' calculation for zero dummy bytes.
Following divide error is fixed by this change:
Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI ...
? dotrap+0xdb/0x100 ? doerrortrap+0x75/0xb0 ? spimemcalcopduration+0x56/0xb0 ? excdivideerror+0x3b/0x70 ? spimemcalcopduration+0x56/0xb0 ? asmexcdivideerror+0x1b/0x20 ? spimemcalcopduration+0x56/0xb0 ? spinandselectopvariant+0xee/0x190 [spinand] spinandmatchandinit+0x13e/0x1a0 [spinand] spinandmanufacturermatch+0x6e/0xa0 [spinand] spinandprobe+0x357/0x7f0 [spinand] ? kernfsactivate+0x87/0xd0 spimemprobe+0x7a/0xb0 spi_probe+0x7d/0x130