Re: [PATCH 1/2] powerpc: drop dependency on <asm/machdep.h> in archrandom.h

From: Andy Shevchenko
Date: Tue Jul 26 2022 - 02:17:27 EST


On Tue, Jul 26, 2022 at 8:13 AM Andy Shevchenko
<andy.shevchenko@xxxxxxxxx> wrote:
>
> On Tue, Jul 26, 2022 at 1:35 AM Yury Norov <yury.norov@xxxxxxxxx> wrote:
> > On Mon, Jul 25, 2022 at 11:39:39PM +0200, Andy Shevchenko wrote:
> > > On Mon, Jul 25, 2022 at 6:19 PM Yury Norov <yury.norov@xxxxxxxxx> wrote:
> > > > On Mon, Jul 25, 2022 at 09:28:12AM +0200, Andy Shevchenko wrote:
> > > > > On Sun, Jul 24, 2022 at 12:19 AM Yury Norov <yury.norov@xxxxxxxxx> wrote:
>
> ...
>
> > > > > > EXPORT_SYMBOL_GPL(pm_power_off);
> > > > >
> > > > > ^^^ (Note this and read below)
> > > > >
> > > > > ...
> > > > >
> > > > > > +EXPORT_SYMBOL(arch_get_random_seed_long);
> > > > >
> > > > > It can't be like this. Brief browsing of the callees shows that.
> > > >
> > > > Is my understanding correct that you're suggesting to make it GPL?
> > > >
> > > > ppc_md is exported with EXPORT_SYMBOL(), and the function is in header,
> > > > so it's available for non-GPL code now. I don't want to change it.
> > >
> > > The symbols your function calls are GPL. As far as I understand (not a
> > > lawyer!) it logically one may not call GPL and pretend to be non-GPL.
> >
> > Can you explain what you mean in details?
> >
> > The function is:
> > static inline bool __must_check arch_get_random_seed_long(unsigned long *v)
> > {
> > if (ppc_md.get_random_seed)
> > return ppc_md.get_random_seed(v);
> >
> > return false;
> > }
> >
> > ppc_md is non-GPL:
> > 77 /* The main machine-dep calls structure
> > 78 */
> > 79 struct machdep_calls ppc_md;
> > 80 EXPORT_SYMBOL(ppc_md);
>
> What a mess...
>
> > And get_random_seed is initialized in in arch/powerpc/platforms/powernv/rng.c
> > with different functions that are static and not exported at all.

To be clear, their license is defined in the file: "GPL-2.0-or-later".
But again, not a lawyer, just using my common sense.

> > I don't understand where arch_get_random_seed_long calls GPL...
>
> The ->get_random_seed() (aka "callees" in my previous mail) are all
> GPL (maybe I missed one out of five which is non-GPL, but then it's
> even more of a mess).


--
With Best Regards,
Andy Shevchenko