Commit ad827727 authored by Chaitanya Sakinam's avatar Chaitanya Sakinam Committed by Priyanka Jain
Browse files

ls1012a, pfe_eth: Update probe to avoid resource leak



PFE DDR addresses are now stored on to a stack varaiable rather
dynamic allocation.
Signed-off-by: default avatarChaitanya Sakinam <chaitanya.sakinam@nxp.com>
Reviewed-by: default avatarPriyanka Jain <priyanka.jain@nxp.com>
parent 0649ab49
...@@ -214,27 +214,22 @@ static int pfe_eth_recv(struct udevice *dev, int flags, uchar **packetp) ...@@ -214,27 +214,22 @@ static int pfe_eth_recv(struct udevice *dev, int flags, uchar **packetp)
static int pfe_eth_probe(struct udevice *dev) static int pfe_eth_probe(struct udevice *dev)
{ {
struct pfe_eth_dev *priv = dev_get_priv(dev); struct pfe_eth_dev *priv = dev_get_priv(dev);
struct pfe_ddr_address *pfe_addr; struct pfe_ddr_address pfe_addr;
struct pfe_eth_pdata *pdata = dev_get_platdata(dev); struct pfe_eth_pdata *pdata = dev_get_platdata(dev);
int ret = 0; int ret = 0;
static int init_done; static int init_done;
if (!init_done) { if (!init_done) {
pfe_addr = (struct pfe_ddr_address *)malloc(sizeof pfe_addr.ddr_pfe_baseaddr =
(struct pfe_ddr_address));
if (!pfe_addr)
return -ENOMEM;
pfe_addr->ddr_pfe_baseaddr =
(void *)pdata->pfe_ddr_addr.ddr_pfe_baseaddr; (void *)pdata->pfe_ddr_addr.ddr_pfe_baseaddr;
pfe_addr->ddr_pfe_phys_baseaddr = pfe_addr.ddr_pfe_phys_baseaddr =
(unsigned long)pdata->pfe_ddr_addr.ddr_pfe_phys_baseaddr; (unsigned long)pdata->pfe_ddr_addr.ddr_pfe_phys_baseaddr;
debug("ddr_pfe_baseaddr: %p, ddr_pfe_phys_baseaddr: %08x\n", debug("ddr_pfe_baseaddr: %p, ddr_pfe_phys_baseaddr: %08x\n",
pfe_addr->ddr_pfe_baseaddr, pfe_addr.ddr_pfe_baseaddr,
(u32)pfe_addr->ddr_pfe_phys_baseaddr); (u32)pfe_addr.ddr_pfe_phys_baseaddr);
ret = pfe_drv_init(pfe_addr); ret = pfe_drv_init(&pfe_addr);
if (ret) if (ret)
return ret; return ret;
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment