All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH] net: e1000: Add initialized eth_device & e1000_hw structure
@ 2010-11-12 10:13 Kumar Gala
  2010-11-12 17:59 ` Paul Gortmaker
  2010-11-14 22:24 ` Wolfgang Denk
  0 siblings, 2 replies; 6+ messages in thread
From: Kumar Gala @ 2010-11-12 10:13 UTC (permalink / raw)
  To: u-boot

nic and hw structures are allocated via malloc i.e. return memory
is not zero initialized. Because of this few structure member like
"function pointers" are initialized with garbage values.

It may cause problem. for eg. during eth_initialize, dev->write_hwaddr
is used.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
---
 drivers/net/e1000.c |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/drivers/net/e1000.c b/drivers/net/e1000.c
index 2825342..911eb2c 100644
--- a/drivers/net/e1000.c
+++ b/drivers/net/e1000.c
@@ -5177,7 +5177,21 @@ e1000_initialize(bd_t * bis)
 		}
 
 		nic = (struct eth_device *) malloc(sizeof (*nic));
+		if (!nic) {
+			printf("Error: e1000 - Can not alloc memory\n");
+			return 0;
+		}
+
 		hw = (struct e1000_hw *) malloc(sizeof (*hw));
+		if (!nic) {
+			free(nic);
+			printf("Error: e1000 - Can not alloc memory\n");
+			return 0;
+		}
+
+		memset(nic, 0, sizeof(*dev));
+		memset(hw, 0, sizeof(*hw));
+
 		hw->pdev = devno;
 		nic->priv = hw;
 
-- 
1.7.2.3

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2010-11-17 21:05 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-11-12 10:13 [U-Boot] [PATCH] net: e1000: Add initialized eth_device & e1000_hw structure Kumar Gala
2010-11-12 17:59 ` Paul Gortmaker
2010-11-14 22:24 ` Wolfgang Denk
2010-11-15 15:10   ` Kumar Gala
2010-11-16  0:02     ` [U-Boot] [PATCH] net: e1000: typo using wrong argument to sizeof Matthew McClintock
2010-11-17 21:05       ` Wolfgang Denk

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.