On Wed, Dec 26, 2018 at 1:43 AM Finn Thain <fth...@telegraphics.com.au> wrote:
> +static ssize_t ppc_nvram_get_size(void) > +{ > + if (ppc_md.nvram_size) > + return ppc_md.nvram_size(); > + return -ENODEV; > +} > +const struct nvram_ops arch_nvram_ops = { > + .read = ppc_nvram_read, > + .write = ppc_nvram_write, > + .get_size = ppc_nvram_get_size, > + .sync = ppc_nvram_sync, > +}; Coming back to this after my comment on the m68k side, I notice that there is now a double indirection through function pointers. Have you considered completely removing the operations from ppc_md instead by having multiple copies of nvram_ops? With the current method, it does seem odd to have a single per-architecture instance of the exported structure containing function pointers. This doesn't give us the flexibility of having multiple copies in the kernel the way that ppc_md does, but it adds overhead compared to simply exporting the functions directly. Arnd