Hi Christoph, On Tue, Apr 4, 2023 at 6:29 AM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Thu, Mar 30, 2023 at 09:42:12PM +0100, Prabhakar wrote: > > From: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > > > > Currently, selecting which CMOs to use on a given platform is done using > > and ALTERNATIVE_X() macro. This was manageable when there were just two > > CMO implementations, but now that there are more and more platforms coming > > needing custom CMOs, the use of the ALTERNATIVE_X() macro is unmanageable. > > > > To avoid such issues this patch switches to use of function pointers > > instead of ALTERNATIVE_X() macro for cache management (the only drawback > > being performance over the previous approach). > > > > void (*clean_range)(unsigned long addr, unsigned long size); > > void (*inv_range)(unsigned long addr, unsigned long size); > > void (*flush_range)(unsigned long addr, unsigned long size); > > > > NAK. Function pointers for somthing high performance as cache > maintainance is a complete no-go. > Ok, I will take the ALTERNATIVE() macro route. Cheers, Prabhakar