[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <1472119708.2877.24.camel@suse.com>
Date: Thu, 25 Aug 2016 12:08:28 +0200
From: Oliver Neukum <oneukum@...e.com>
To: Alban Bedel <alban.bedel@...onic-design.de>
Cc: Freddy Xin <freddy@...x.com.tw>, linux-kernel@...r.kernel.org,
linux-usb@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: [PATCH] usbnet: ax88179_178a: Add support for writing the EEPROM
On Thu, 2016-08-25 at 12:07 +0200, Alban Bedel wrote:
> On Thu, 25 Aug 2016 11:16:36 +0200
> Oliver Neukum <oneukum@...e.com> wrote:
>
> > On Wed, 2016-08-24 at 16:40 +0200, Alban Bedel wrote:
> > > On Wed, 24 Aug 2016 16:30:39 +0200
> > > Oliver Neukum <oneukum@...e.com> wrote:
> > >
> > > > On Wed, 2016-08-24 at 15:52 +0200, Alban Bedel wrote:
> >
> > > > > + if (block != data)
> > > > > + kfree(block);
> > > >
> > > > And if block == dta, what frees the memory?
> > >
> > > In this case this function didn't allocate any memory, so there is
> > > nothing to free.
> >
> > Hi,
> >
> > I see. kfree() has a check for NULL, so you could drop the
> > test, but it doesn't matter much either way.
>
> I think you misunderstand something here. data is the buffer passed
> by the caller and block is a local variable. There is two cases:
>
> 1) The data to write is block aligned, then we use the caller buffer
> as is and set block = data.
> 2) The requested data is not block aligned, then we kalloc block.
>
> In both case the writing loop then use the block pointer. Afterwards
> we only need to kfree block in case 2, that is when block != data.
Thanks for the clarification. Maybe worth a comment in the code?
Regards
Oliver
Powered by blists - more mailing lists