mtd: cqspi: Fix division by zero

Both dummy.nbytes and dummy.buswidth may be zero. By not checking
the later, it is possible to trigger division by zero and a crash.
This does happen with tiny SPI NOR framework in SPL. Fix this by
adding the check and returning zero dummy bytes in such a case.

Fixes: 38b0852b0e ("spi: cadence-qspi: Add support for octal DTR flashes")
Signed-off-by: Marek Vasut <marex@denx.de>
Cc: Jagan Teki <jagan@amarulasolutions.com>
Cc: Vignesh R <vigneshr@ti.com>
Cc: Pratyush Yadav <p.yadav@ti.com>
[trini: Drop Pratyush's RB as his requested changes weren't made as
        Marek disagreed]
This commit is contained in:
Marek Vasut 2021-09-14 05:21:48 +02:00 committed by Tom Rini
parent bf9fcc2000
commit c2e0363571

View file

@ -219,6 +219,9 @@ static unsigned int cadence_qspi_calc_dummy(const struct spi_mem_op *op,
{ {
unsigned int dummy_clk; unsigned int dummy_clk;
if (!op->dummy.nbytes || !op->dummy.buswidth)
return 0;
dummy_clk = op->dummy.nbytes * (8 / op->dummy.buswidth); dummy_clk = op->dummy.nbytes * (8 / op->dummy.buswidth);
if (dtr) if (dtr)
dummy_clk /= 2; dummy_clk /= 2;