diff mbox series

crypto: ecrdsa - use subsys_initcall instead of module_init

Message ID 20201015110241.89676-1-tianjia.zhang@linux.alibaba.com (mailing list archive)
State Changes Requested
Delegated to: Herbert Xu
Headers show
Series crypto: ecrdsa - use subsys_initcall instead of module_init | expand

Commit Message

tianjia.zhang Oct. 15, 2020, 11:02 a.m. UTC
All templates and generic algorithms have been registered in
subsys_initcall instead of module_init. The ecrdsa algorithm
happened to be missed. Here is a fix for it.

Cc: Vitaly Chikunov <vt@altlinux.org>
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
---
 crypto/ecrdsa.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Herbert Xu Oct. 15, 2020, 12:05 p.m. UTC | #1
On Thu, Oct 15, 2020 at 07:02:41PM +0800, Tianjia Zhang wrote:
> All templates and generic algorithms have been registered in
> subsys_initcall instead of module_init. The ecrdsa algorithm
> happened to be missed. Here is a fix for it.

That is true only if there are non-generic implementations of
the algorithms, which is not the case here.  Please explain the
real reason why this is needed.

Cheers,
tianjia.zhang Nov. 30, 2020, 2:21 a.m. UTC | #2
Hi Herbert,

On 10/15/20 8:05 PM, Herbert Xu wrote:
> On Thu, Oct 15, 2020 at 07:02:41PM +0800, Tianjia Zhang wrote:
>> All templates and generic algorithms have been registered in
>> subsys_initcall instead of module_init. The ecrdsa algorithm
>> happened to be missed. Here is a fix for it.
> 
> That is true only if there are non-generic implementations of
> the algorithms, which is not the case here.  Please explain the
> real reason why this is needed.
> 
> Cheers,
> 

This is a generic algorithm, the author Vitaly Chikunov has also 
confirmed it, please consider this patch again.

Thanks.
Herbert Xu Nov. 30, 2020, 2:24 a.m. UTC | #3
On Mon, Nov 30, 2020 at 10:21:56AM +0800, Tianjia Zhang wrote:
>
> > That is true only if there are non-generic implementations of
> > the algorithms, which is not the case here.  Please explain the
> > real reason why this is needed.
> 
> This is a generic algorithm, the author Vitaly Chikunov has also confirmed
> it, please consider this patch again.

As I said, the generic algorithm only needs to be loaded early *if*
there are non-generic implementations.

Cheers,
tianjia.zhang Nov. 30, 2020, 6:54 a.m. UTC | #4
On 11/30/20 10:24 AM, Herbert Xu wrote:
> On Mon, Nov 30, 2020 at 10:21:56AM +0800, Tianjia Zhang wrote:
>>
>>> That is true only if there are non-generic implementations of
>>> the algorithms, which is not the case here.  Please explain the
>>> real reason why this is needed.
>>
>> This is a generic algorithm, the author Vitaly Chikunov has also confirmed
>> it, please consider this patch again.
> 
> As I said, the generic algorithm only needs to be loaded early *if*
> there are non-generic implementations.
> 
> Cheers,
> 

For ecrdsa, there is no reason to advance the initialization to 
subsys_init, this is just to make code clean up to have algorithm 
initialization uniform with other implementations.

It’s just that I think that in the commit c4741b230597 ("crypto: run 
initcalls for generic implementations earlier"), the modification to 
ecrdsa happened to be omitted, because from the point of commit time, it 
was submitted at the same time as the ecrdsa commits, and it may happen 
to be omitted for ecrdsa.

Best regards,
Tianjia
Ard Biesheuvel Dec. 1, 2020, 8:37 a.m. UTC | #5
On Mon, 30 Nov 2020 at 07:58, Tianjia Zhang
<tianjia.zhang@linux.alibaba.com> wrote:
>
>
>
> On 11/30/20 10:24 AM, Herbert Xu wrote:
> > On Mon, Nov 30, 2020 at 10:21:56AM +0800, Tianjia Zhang wrote:
> >>
> >>> That is true only if there are non-generic implementations of
> >>> the algorithms, which is not the case here.  Please explain the
> >>> real reason why this is needed.
> >>
> >> This is a generic algorithm, the author Vitaly Chikunov has also confirmed
> >> it, please consider this patch again.
> >
> > As I said, the generic algorithm only needs to be loaded early *if*
> > there are non-generic implementations.
> >
> > Cheers,
> >
>
> For ecrdsa, there is no reason to advance the initialization to
> subsys_init, this is just to make code clean up to have algorithm
> initialization uniform with other implementations.
>
> It’s just that I think that in the commit c4741b230597 ("crypto: run
> initcalls for generic implementations earlier"), the modification to
> ecrdsa happened to be omitted, because from the point of commit time, it
> was submitted at the same time as the ecrdsa commits, and it may happen
> to be omitted for ecrdsa.
>

Whether or not it is a generic algorithm is irrelevant.

What is relevant is whether any other implementations exist of the
same algorithm, because in this case, the generic implementation must
be available earlier, so that it can be used for testing the other
implementation.

This concern does not apply for ecrdsa, so this patch is unnecessary.
diff mbox series

Patch

diff --git a/crypto/ecrdsa.c b/crypto/ecrdsa.c
index 6a3fd09057d0..ca9a34356f80 100644
--- a/crypto/ecrdsa.c
+++ b/crypto/ecrdsa.c
@@ -288,7 +288,7 @@  static void __exit ecrdsa_mod_fini(void)
 	crypto_unregister_akcipher(&ecrdsa_alg);
 }
 
-module_init(ecrdsa_mod_init);
+subsys_initcall(ecrdsa_mod_init);
 module_exit(ecrdsa_mod_fini);
 
 MODULE_LICENSE("GPL");