[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <alpine.LNX.2.21.1901090947170.11@nippy.intranet>
Date: Wed, 9 Jan 2019 09:51:48 +1100 (AEDT)
From: Finn Thain <fthain@...egraphics.com.au>
To: Michael Ellerman <mpe@...erman.id.au>
cc: Arnd Bergmann <arnd@...db.de>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Benjamin Herrenschmidt <benh@...nel.crashing.org>,
Paul Mackerras <paulus@...ba.org>,
Linux Kernel Mailing List <linux-kernel@...r.kernel.org>,
linux-m68k <linux-m68k@...ts.linux-m68k.org>,
linuxppc-dev <linuxppc-dev@...ts.ozlabs.org>
Subject: Re: [PATCH v8 24/25] powerpc: Adopt nvram module for PPC64
On Tue, 8 Jan 2019, Michael Ellerman wrote:
> > The reason why that doesn't work boils down to introspection. (This
> > was mentioned elsewhere in this email thread.) For example, we
> > presently have code like this,
> >
> > ssize_t nvram_get_size(void)
> > {
> > if (ppc_md.nvram_size)
> > return ppc_md.nvram_size();
> > return -1;
> > }
> > EXPORT_SYMBOL(nvram_get_size);
> >
> > This construction means we get to decide at run-time which of the NVRAM
> > functions should be used. (Whereas your example makes a build-time decision.)
>
> Right, but we only need to make a runtime decision on powerpc (right?).
It's needed in many places outside of powerpc. Otherwise the caller can't
determine at run-time which ops are implemented.
Hence you have to duplicate the caller for each supported configuration
that you build.
Already, this precludes a shared misc device implementation and belies the
"generic" in drivers/char/generic_nvram.c.
--
Powered by blists - more mailing lists