Hi Przemyslaw, > The function mmc_block_op() is the last function before > the physicall data write, but the mmc device pointer is not > checked. If mmc device not exists, then data abort will occur. > To avoid this, first the mmc device pointer is checked. > > Signed-off-by: Przemyslaw Marczak <p.marc...@samsung.com> > --- > drivers/dfu/dfu_mmc.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/drivers/dfu/dfu_mmc.c b/drivers/dfu/dfu_mmc.c > index 72fa03e..41ac188 100644 > --- a/drivers/dfu/dfu_mmc.c > +++ b/drivers/dfu/dfu_mmc.c > @@ -40,10 +40,16 @@ static int mmc_access_part(struct dfu_entity > *dfu, struct mmc *mmc, int part) static int mmc_block_op(enum dfu_op > op, struct dfu_entity *dfu, u64 offset, void *buf, long *len) > { > - struct mmc *mmc = find_mmc_device(dfu->data.mmc.dev_num); > + struct mmc *mmc; > u32 blk_start, blk_count, n = 0; > int ret, part_num_bkp = 0; > > + mmc = find_mmc_device(dfu->data.mmc.dev_num); > + if (!mmc) { > + printf("Device MMC %d - not found!", > dfu->data.mmc.dev_num);
Please change printf() -> error(); > + return -ENODEV; > + } > + > /* > * We must ensure that we work in lba_blk_size chunks, so > ALIGN > * this value. -- Best regards, Lukasz Majewski Samsung R&D Institute Poland (SRPOL) | Linux Platform Group _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot