From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ben Warren Date: Thu, 21 Jan 2010 13:10:45 -0800 Subject: [U-Boot] [PATCH] cs8900 driver: cleanup cs8900_initialize() In-Reply-To: <20100121205646.GZ16182@darwin> References: <20100121205646.GZ16182@darwin> Message-ID: <4B58C2D5.7090206@gmail.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Matthias Kaehlcke wrote: > cs8900_initialize(): remove unecessary calls to free(), fix memory leak and > report errors in the return value > > Signed-off-by: Matthias Kaehlcke > --- > drivers/net/cs8900.c | 7 +++---- > 1 files changed, 3 insertions(+), 4 deletions(-) > > diff --git a/drivers/net/cs8900.c b/drivers/net/cs8900.c > index df36004..7895048 100644 > --- a/drivers/net/cs8900.c > +++ b/drivers/net/cs8900.c > @@ -308,15 +308,14 @@ int cs8900_initialize(u8 dev_num, int base_addr) > > dev = malloc(sizeof(*dev)); > if (!dev) { > - free(dev); > - return 0; > + return -1; > 'return 0' is actually correct. It refers to the number of devices that were initialized. Removing the 'free' calls is good, though. > } > memset(dev, 0, sizeof(*dev)); > > priv = malloc(sizeof(*priv)); > if (!priv) { > - free(priv); > - return 0; > + free(dev); > + return -1; > } > memset(priv, 0, sizeof(*priv)); > priv->regs = (struct cs8900_regs *)base_addr; > regards, Ben