On 03.12.2018 10:20, Lukasz Majewski wrote:
> Without this change it is possible that Vybrid's NFC driver malloc() call
> will obtain some memory used (and correctly free'd) by some previous
> driver (in this case pinctrl for Vybrid).
> 
> As a result some fields of struct nfc - in out case mtd->_get_device - are
> "pre initialized" with some random values.
> 
> On the latter stage of booting, when e.g. somebody calls 'mtdparts default'
> the "data abort" is observed when __get_mtd_device() function is called.
> 
> The mtd->_get_device pointer is not NULL and wrong value is referenced.
> 
> Signed-off-by: Lukasz Majewski <[email protected]>

Looks good:

Reviewed-by: Stefan Agner <[email protected]>

--
Stefan

> 
> ---
> 
>  drivers/mtd/nand/raw/vf610_nfc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/mtd/nand/raw/vf610_nfc.c 
> b/drivers/mtd/nand/raw/vf610_nfc.c
> index fce7e5f299..3326c2b096 100644
> --- a/drivers/mtd/nand/raw/vf610_nfc.c
> +++ b/drivers/mtd/nand/raw/vf610_nfc.c
> @@ -646,7 +646,7 @@ static int vf610_nfc_nand_init(int devnum, void
> __iomem *addr)
>               .flash_bbt = 1,
>       };
>  
> -     nfc = malloc(sizeof(*nfc));
> +     nfc = calloc(1, sizeof(*nfc));
>       if (!nfc) {
>               printf(KERN_ERR "%s: Memory exhausted!\n", __func__);
>               return -ENOMEM;
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot

Reply via email to