Re: [PATCH 1/1] usb: chipidea: refine the operation of creating register mapping

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Aug 05, 2013 at 10:05:56AM +0300, Alexander Shishkin wrote:
> Peter Chen <peter.chen@xxxxxxxxxxxxx> writes:
> 
> > - The old operation needs to call hw_alloc_regmap two times, and
> > the first operation is only used to know if the controller is
> > lpm supported, besides, there is a kfree before kzalloc, it is also
> > tricky.
> 
> Why tricky? kfree() is called from either NULL or a valid pointer, both
> of which is perfectly valid.
> 

I know it is valid, it is just strange that you call kfree before kmalloc.

> > - Fix the memory leak for ci->hw_bank.regmap when unload module.
> 
> >  	ci->hw_bank.op = ci->hw_bank.cap + (ioread32(ci->hw_bank.cap) & 0xff);
> >  
> > -	hw_alloc_regmap(ci, false);
> > -	reg = hw_read(ci, CAP_HCCPARAMS, HCCPARAMS_LEN) >>
> > -		__ffs(HCCPARAMS_LEN);
> > -	ci->hw_bank.lpm  = reg;
> > -	hw_alloc_regmap(ci, !!reg);
> > +	ci->hw_bank.lpm  = !!(ioread32(ci->hw_bank.cap + 
> > +			ci_regs_nolpm[CAP_HCCPARAMS]) & HCCPARAMS_LEN);
> > +	hw_alloc_regmap(ci, ci->hw_bank.lpm);
> 
> The idea of the original code is to avoid this ioread and have all the
> register offset maths done by hw_read(), since it's done there
> anyway. And it kind of looks better to me the way it's done right
> now. So unless you really want to optimize away one call to
> hw_alloc_regmap(), I'd prefer to keep it as it is.
> 

I do this just because it is strange that calling hw_alloc_regmap
two times at the first glance, and the first time is just to know
if it is lpm supported, besides, calling kfree before kmalloc is a
strange thing, don't you think so?

> > @@ -602,6 +598,7 @@ static int ci_hdrc_remove(struct platform_device *pdev)
> >  {
> >  	struct ci_hdrc *ci = platform_get_drvdata(pdev);
> >  
> > +	kfree(ci->hw_bank.regmap);
> 
> This one seems perfectly valid.
> 
> Regards,
> --
> Alex
> 

-- 

Best Regards,
Peter Chen

--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux