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.no...@gmail.com> 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.no...@gmail.com> 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); 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. I don't understand where arch_get_random_seed_long calls GPL...