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/