On Wed, 26 Aug 2015, Shenwei Wang wrote:
> > From: Thomas Gleixner [mailto:t...@linutronix.de]
> > > + cd = imx_gpcv2_instance;
> > > + if (!cd)
> > >           return 0;
> > >
> > > + for (i = 0; i < IMR_NUM; i++) {
> > > +         reg = cd->gpc_base + cd->cpu2wakeup + i * 4;
> > > +         cd->wakeup_sources[i] = readl_relaxed(reg);
> > > + }
> > > +
> > >   if (sources)
> > > -         *sources = imx_gpcv2_instance->wakeup_sources;
> > > +         *sources = cd->wakeup_sources;
> > >
> > >   return IMR_NUM;
> > 
> > You do not need the intermediate storage at all.
> > 
> > u32 imx_gpcv2_get_wakeup_source(u32 *sources) {
> >     if (sources) {
> >             for (i = 0; i < IMR_NUM; i++) {
> >                     reg = cd->gpc_base + cd->cpu2wakeup + i * 4;
> >                     sources[i] = readl_relaxed(reg);
> >             }
> >     }
> >     ....
> 
> Using the intermediate storage here can make the caller a little easier,
> because the caller does not need to malloc the memory before the call.
> Especially the caller does not even know how many memory to allocate
> In the beginning.

Fair enough, but why do you need that case where sources can be NULL
just to return IMR_NUM?

Thanks,

        tglx

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to