Message ID | 20230529073845.2859178-1-guoren@kernel.org (mailing list archive) |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | riscv: vector: Fixup modules compile error | expand |
Context | Check | Description |
---|---|---|
conchuod/tree_selection | fail | Failed to apply to next/pending-fixes, riscv/for-next or riscv/master |
On Mon, May 29, 2023 at 03:38:45AM -0400, guoren@kernel.org wrote: > From: Guo Ren <guoren@linux.alibaba.com> > > Some .ko also need the riscv_v_user_allowed symbol. > > ERROR: modpost: "riscv_v_user_allowed" [arch/riscv/kvm/kvm.ko] > undefined! > make[3]: *** > [/home/guoren/source/kernel/linux/scripts/Makefile.modpost:136: > Module.symvers] Error 1 > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > Signed-off-by: Guo Ren <guoren@kernel.org> > --- > arch/riscv/kernel/vector.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/riscv/kernel/vector.c b/arch/riscv/kernel/vector.c > index 1c4ac821e008..3ae08816d608 100644 > --- a/arch/riscv/kernel/vector.c > +++ b/arch/riscv/kernel/vector.c > @@ -129,6 +129,7 @@ bool riscv_v_user_allowed(void) > { > return riscv_v_get_cur_ctrl(current) == PR_RISCV_V_VSTATE_CTRL_ON; > } > +EXPORT_SYMBOL(riscv_v_user_allowed); Is there a reason that this should not be EXPORT_SYMBOL_GPL()? I figure Andy will roll this into this next revision.. Cheers, Conor.
On Mon, May 29, 2023 at 9:43 PM Conor Dooley <conor.dooley@microchip.com> wrote: > > On Mon, May 29, 2023 at 03:38:45AM -0400, guoren@kernel.org wrote: > > From: Guo Ren <guoren@linux.alibaba.com> > > > > Some .ko also need the riscv_v_user_allowed symbol. > > > > ERROR: modpost: "riscv_v_user_allowed" [arch/riscv/kvm/kvm.ko] > > undefined! > > make[3]: *** > > [/home/guoren/source/kernel/linux/scripts/Makefile.modpost:136: > > Module.symvers] Error 1 > > > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > > Signed-off-by: Guo Ren <guoren@kernel.org> > > --- > > arch/riscv/kernel/vector.c | 1 + > > 1 file changed, 1 insertion(+) > > > > diff --git a/arch/riscv/kernel/vector.c b/arch/riscv/kernel/vector.c > > index 1c4ac821e008..3ae08816d608 100644 > > --- a/arch/riscv/kernel/vector.c > > +++ b/arch/riscv/kernel/vector.c > > @@ -129,6 +129,7 @@ bool riscv_v_user_allowed(void) > > { > > return riscv_v_get_cur_ctrl(current) == PR_RISCV_V_VSTATE_CTRL_ON; > > } > > +EXPORT_SYMBOL(riscv_v_user_allowed); > > Is there a reason that this should not be EXPORT_SYMBOL_GPL()? Good question, but I just follow our arch/riscv habbit, maybe we should change all of that in another patch. ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL arch/riscv -r | wc -l 66 ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL_GPL arch/riscv -r | wc -l 15 > > I figure Andy will roll this into this next revision. > > Cheers, > Conor.
On Tue, May 30, 2023 at 10:59 AM Guo Ren <guoren@kernel.org> wrote: > > On Mon, May 29, 2023 at 9:43 PM Conor Dooley <conor.dooley@microchip.com> wrote: > > > > On Mon, May 29, 2023 at 03:38:45AM -0400, guoren@kernel.org wrote: > > > From: Guo Ren <guoren@linux.alibaba.com> > > > > > > Some .ko also need the riscv_v_user_allowed symbol. > > > > > > ERROR: modpost: "riscv_v_user_allowed" [arch/riscv/kvm/kvm.ko] > > > undefined! > > > make[3]: *** > > > [/home/guoren/source/kernel/linux/scripts/Makefile.modpost:136: > > > Module.symvers] Error 1 > > > > > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > > > Signed-off-by: Guo Ren <guoren@kernel.org> > > > --- > > > arch/riscv/kernel/vector.c | 1 + > > > 1 file changed, 1 insertion(+) > > > > > > diff --git a/arch/riscv/kernel/vector.c b/arch/riscv/kernel/vector.c > > > index 1c4ac821e008..3ae08816d608 100644 > > > --- a/arch/riscv/kernel/vector.c > > > +++ b/arch/riscv/kernel/vector.c > > > @@ -129,6 +129,7 @@ bool riscv_v_user_allowed(void) > > > { > > > return riscv_v_get_cur_ctrl(current) == PR_RISCV_V_VSTATE_CTRL_ON; > > > } > > > +EXPORT_SYMBOL(riscv_v_user_allowed); > > > > Is there a reason that this should not be EXPORT_SYMBOL_GPL()? > Good question, but I just follow our arch/riscv habbit, maybe we > should change all of that in another patch. > > ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL arch/riscv -r | wc -l > 66 > ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL_GPL arch/riscv -r | wc -l > 15 Why !MODULE_LICENSE(GPL) modules couldn't use riscv_v_user_allowed? Seems EXPORT_SYMBOL_GPL has more limitations. :c:func:`EXPORT_SYMBOL_GPL()` ----------------------------- Defined in ``include/linux/export.h`` Similar to :c:func:`EXPORT_SYMBOL()` except that the symbols exported by :c:func:`EXPORT_SYMBOL_GPL()` can only be seen by modules with a :c:func:`MODULE_LICENSE()` that specifies a GPL compatible license. It implies that the function is considered an internal implementation issue, and not really an interface. Some maintainers and developers may however require EXPORT_SYMBOL_GPL() when adding any new APIs or functionality. For kvm is okay: MODULE_AUTHOR("Qumranet"); MODULE_LICENSE("GPL"); So, I would leave the decition to Andy. If he didn't want it used with other non-gpl modules, choose the EXPORT_SYMBOL_GPL. > > > > > I figure Andy will roll this into this next revision. > > > > Cheers, > > Conor. > > > > -- > Best Regards > Guo Ren
On Tue, May 30, 2023 at 2:52 PM Guo Ren <guoren@kernel.org> wrote: > > On Tue, May 30, 2023 at 10:59 AM Guo Ren <guoren@kernel.org> wrote: > > > > On Mon, May 29, 2023 at 9:43 PM Conor Dooley <conor.dooley@microchip.com> wrote: > > > > > > On Mon, May 29, 2023 at 03:38:45AM -0400, guoren@kernel.org wrote: > > > > From: Guo Ren <guoren@linux.alibaba.com> > > > > > > > > Some .ko also need the riscv_v_user_allowed symbol. > > > > > > > > ERROR: modpost: "riscv_v_user_allowed" [arch/riscv/kvm/kvm.ko] > > > > undefined! > > > > make[3]: *** > > > > [/home/guoren/source/kernel/linux/scripts/Makefile.modpost:136: > > > > Module.symvers] Error 1 > > > > > > > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > > > > Signed-off-by: Guo Ren <guoren@kernel.org> > > > > --- > > > > arch/riscv/kernel/vector.c | 1 + > > > > 1 file changed, 1 insertion(+) > > > > > > > > diff --git a/arch/riscv/kernel/vector.c b/arch/riscv/kernel/vector.c > > > > index 1c4ac821e008..3ae08816d608 100644 > > > > --- a/arch/riscv/kernel/vector.c > > > > +++ b/arch/riscv/kernel/vector.c > > > > @@ -129,6 +129,7 @@ bool riscv_v_user_allowed(void) > > > > { > > > > return riscv_v_get_cur_ctrl(current) == PR_RISCV_V_VSTATE_CTRL_ON; > > > > } > > > > +EXPORT_SYMBOL(riscv_v_user_allowed); > > > > > > Is there a reason that this should not be EXPORT_SYMBOL_GPL()? > > Good question, but I just follow our arch/riscv habbit, maybe we > > should change all of that in another patch. > > > > ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL arch/riscv -r | wc -l > > 66 > > ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL_GPL arch/riscv -r | wc -l > > 15 > > Why !MODULE_LICENSE(GPL) modules couldn't use riscv_v_user_allowed? > Seems EXPORT_SYMBOL_GPL has more limitations. > > :c:func:`EXPORT_SYMBOL_GPL()` > ----------------------------- > > Defined in ``include/linux/export.h`` > > Similar to :c:func:`EXPORT_SYMBOL()` except that the symbols > exported by :c:func:`EXPORT_SYMBOL_GPL()` can only be seen by > modules with a :c:func:`MODULE_LICENSE()` that specifies a GPL > compatible license. It implies that the function is considered an > internal implementation issue, and not really an interface. Some > maintainers and developers may however require EXPORT_SYMBOL_GPL() > when adding any new APIs or functionality. > > For kvm is okay: > > MODULE_AUTHOR("Qumranet"); > MODULE_LICENSE("GPL"); > > So, I would leave the decition to Andy. If he didn't want it used with > other non-gpl modules, choose the EXPORT_SYMBOL_GPL. Do you have any use case for exporting this function to non-GPL licensed modules? I exported the function with EXPORT_SYMBOL_GPL() in v20[1] because I thought most maintainers would accept GPL rather than non-GPL one. And it seems most drivers would never call this function anyway. > > > > > > > > > I figure Andy will roll this into this next revision. The fix for this has been included in v20[1]. However, I also changed the function name s/riscv_v_user_allowed/riscv_v_vstate_ctrl_user_allowed/. > > > > > > Cheers, > > > Conor. > > > > > > > > -- > > Best Regards > > Guo Ren > > > > -- > Best Regards > Guo Ren [1]: https://lore.kernel.org/all/20230518161949.11203-21-andy.chiu@sifive.com/ Cheers, Andy
On Tue, May 30, 2023 at 5:49 PM Andy Chiu <andy.chiu@sifive.com> wrote: > > On Tue, May 30, 2023 at 2:52 PM Guo Ren <guoren@kernel.org> wrote: > > > > On Tue, May 30, 2023 at 10:59 AM Guo Ren <guoren@kernel.org> wrote: > > > > > > On Mon, May 29, 2023 at 9:43 PM Conor Dooley <conor.dooley@microchip.com> wrote: > > > > > > > > On Mon, May 29, 2023 at 03:38:45AM -0400, guoren@kernel.org wrote: > > > > > From: Guo Ren <guoren@linux.alibaba.com> > > > > > > > > > > Some .ko also need the riscv_v_user_allowed symbol. > > > > > > > > > > ERROR: modpost: "riscv_v_user_allowed" [arch/riscv/kvm/kvm.ko] > > > > > undefined! > > > > > make[3]: *** > > > > > [/home/guoren/source/kernel/linux/scripts/Makefile.modpost:136: > > > > > Module.symvers] Error 1 > > > > > > > > > > Signed-off-by: Guo Ren <guoren@linux.alibaba.com> > > > > > Signed-off-by: Guo Ren <guoren@kernel.org> > > > > > --- > > > > > arch/riscv/kernel/vector.c | 1 + > > > > > 1 file changed, 1 insertion(+) > > > > > > > > > > diff --git a/arch/riscv/kernel/vector.c b/arch/riscv/kernel/vector.c > > > > > index 1c4ac821e008..3ae08816d608 100644 > > > > > --- a/arch/riscv/kernel/vector.c > > > > > +++ b/arch/riscv/kernel/vector.c > > > > > @@ -129,6 +129,7 @@ bool riscv_v_user_allowed(void) > > > > > { > > > > > return riscv_v_get_cur_ctrl(current) == PR_RISCV_V_VSTATE_CTRL_ON; > > > > > } > > > > > +EXPORT_SYMBOL(riscv_v_user_allowed); > > > > > > > > Is there a reason that this should not be EXPORT_SYMBOL_GPL()? > > > Good question, but I just follow our arch/riscv habbit, maybe we > > > should change all of that in another patch. > > > > > > ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL arch/riscv -r | wc -l > > > 66 > > > ➜ linux-s64ilp32 git:(s64ilp32) ✗ grep EXPORT_SYMBOL_GPL arch/riscv -r | wc -l > > > 15 > > > > Why !MODULE_LICENSE(GPL) modules couldn't use riscv_v_user_allowed? > > Seems EXPORT_SYMBOL_GPL has more limitations. > > > > :c:func:`EXPORT_SYMBOL_GPL()` > > ----------------------------- > > > > Defined in ``include/linux/export.h`` > > > > Similar to :c:func:`EXPORT_SYMBOL()` except that the symbols > > exported by :c:func:`EXPORT_SYMBOL_GPL()` can only be seen by > > modules with a :c:func:`MODULE_LICENSE()` that specifies a GPL > > compatible license. It implies that the function is considered an > > internal implementation issue, and not really an interface. Some > > maintainers and developers may however require EXPORT_SYMBOL_GPL() > > when adding any new APIs or functionality. > > > > For kvm is okay: > > > > MODULE_AUTHOR("Qumranet"); > > MODULE_LICENSE("GPL"); > > > > So, I would leave the decition to Andy. If he didn't want it used with > > other non-gpl modules, choose the EXPORT_SYMBOL_GPL. > > Do you have any use case for exporting this function to non-GPL > licensed modules? I exported the function with EXPORT_SYMBOL_GPL() in > v20[1] because I thought most maintainers would accept GPL rather than > non-GPL one. And it seems most drivers would never call this function > anyway. I just found Linux-next build is broken, so I sent the patch. It seems you've solved that. That's okay. > > > > > > > > > > > > > > I figure Andy will roll this into this next revision. > > The fix for this has been included in v20[1]. However, I also changed > the function name > s/riscv_v_user_allowed/riscv_v_vstate_ctrl_user_allowed/. > > > > > > > > > Cheers, > > > > Conor. > > > > > > > > > > > > -- > > > Best Regards > > > Guo Ren > > > > > > > > -- > > Best Regards > > Guo Ren > > [1]: https://lore.kernel.org/all/20230518161949.11203-21-andy.chiu@sifive.com/ > > Cheers, > Andy
On Tue, May 30, 2023 at 11:37:38PM +0800, Guo Ren wrote: > I just found Linux-next build is broken, so I sent the patch. It seems > you've solved that. That's okay. Are you sure that linux-next is broken because of this? This series should not be in linux-next...
On Wed, May 31, 2023 at 12:04 AM Conor Dooley <conor@kernel.org> wrote: > > On Tue, May 30, 2023 at 11:37:38PM +0800, Guo Ren wrote: > > I just found Linux-next build is broken, so I sent the patch. It seems > > you've solved that. That's okay. > > Are you sure that linux-next is broken because of this? > This series should not be in linux-next... I mean: https://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git/log/?h=for-next
On Wed, May 31, 2023 at 12:14 AM Guo Ren <guoren@kernel.org> wrote: > > On Wed, May 31, 2023 at 12:04 AM Conor Dooley <conor@kernel.org> wrote: > > > > On Tue, May 30, 2023 at 11:37:38PM +0800, Guo Ren wrote: > > > I just found Linux-next build is broken, so I sent the patch. It seems > > > you've solved that. That's okay. > > > > Are you sure that linux-next is broken because of this? > > This series should not be in linux-next... > I mean: > > https://git.kernel.org/pub/scm/linux/kernel/git/palmer/linux.git/log/?h=for-next I would change it to +risc-v git git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux.git#for-next next. > > > > -- > Best Regards > Guo Ren
diff --git a/arch/riscv/kernel/vector.c b/arch/riscv/kernel/vector.c index 1c4ac821e008..3ae08816d608 100644 --- a/arch/riscv/kernel/vector.c +++ b/arch/riscv/kernel/vector.c @@ -129,6 +129,7 @@ bool riscv_v_user_allowed(void) { return riscv_v_get_cur_ctrl(current) == PR_RISCV_V_VSTATE_CTRL_ON; } +EXPORT_SYMBOL(riscv_v_user_allowed); bool riscv_v_first_use_handler(struct pt_regs *regs) {