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

From: Oliver Neukum <[email-masked]>
Date: Thu, 25 Aug 2016 12:08:28 +0200

On Thu, 2016-08-25 at 12:07 +0200, Alban Bedel wrote:
> On Thu, 25 Aug 2016 11:16:36 +0200
> Oliver Neukum <[email-masked]> wrote:
> 
> > On Wed, 2016-08-24 at 16:40 +0200, Alban Bedel wrote:
> > > On Wed, 24 Aug 2016 16:30:39 +0200
> > > Oliver Neukum <[email-masked]> 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