Fix DPRAM memory leak when CFG_ALLOC_DPRAM is defined, which
authorWolfgang Denk <wd@denx.de>
Mon, 22 Sep 2008 20:23:06 +0000 (22:23 +0200)
committerWolfgang Denk <wd@denx.de>
Mon, 22 Sep 2008 20:23:06 +0000 (22:23 +0200)
eventually leads to a machine check. This change assures that DPRAM
is allocated only once in that case.

Signed-off-by: Gary Jennejohn <garyj@denx.de>
Signed-off-by: Wolfgang Denk <wd@denx.de>
cpu/mpc8xx/scc.c

index 09a3db107b7237b67edca48c816ddd243c62779e..09a6348fd0ee93ba01aaa072778e028986343776 100644 (file)
@@ -215,12 +215,14 @@ static int scc_init (struct eth_device *dev, bd_t * bis)
        rxIdx = 0;
        txIdx = 0;
 
+       if (!rtx) {
 #ifdef CFG_ALLOC_DPRAM
-       rtx = (RTXBD *) (immr->im_cpm.cp_dpmem +
-                        dpram_alloc_align (sizeof (RTXBD), 8));
+               rtx = (RTXBD *) (immr->im_cpm.cp_dpmem +
+                                dpram_alloc_align (sizeof (RTXBD), 8));
 #else
-       rtx = (RTXBD *) (immr->im_cpm.cp_dpmem + CPM_SCC_BASE);
-#endif /* 0 */
+               rtx = (RTXBD *) (immr->im_cpm.cp_dpmem + CPM_SCC_BASE);
+#endif
+       }
 
 #if (defined(PA_ENET_RXD) && defined(PA_ENET_TXD))
        /* Configure port A pins for Txd and Rxd.