Re: [PATCH] usbnet: ax88179_178a: Add support for writing the EEPROM

From: Oliver Neukum
Date: Thu Aug 25 2016 - 06:13:42 EST


On Thu, 2016-08-25 at 12:07 +0200, Alban Bedel wrote:
> On Thu, 25 Aug 2016 11:16:36 +0200
> Oliver Neukum <oneukum@xxxxxxxx> 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@xxxxxxxx> 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