2020-10-15 12:06:20

by Tianjia Zhang

[permalink] [raw]
Subject: [PATCH] crypto: ecrdsa - use subsys_initcall instead of module_init

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 <[email protected]>
Signed-off-by: Tianjia Zhang <[email protected]>
---
crypto/ecrdsa.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

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");
--
2.19.1.3.ge56e4f7


2020-10-15 12:34:01

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] crypto: ecrdsa - use subsys_initcall instead of module_init

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,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2020-11-30 02:26:01

by Herbert Xu

[permalink] [raw]
Subject: Re: [PATCH] crypto: ecrdsa - use subsys_initcall instead of module_init

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,
--
Email: Herbert Xu <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

2020-11-30 02:26:12

by Tianjia Zhang

[permalink] [raw]
Subject: Re: [PATCH] crypto: ecrdsa - use subsys_initcall instead of module_init

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.

2020-12-01 08:42:50

by Ard Biesheuvel

[permalink] [raw]
Subject: Re: [PATCH] crypto: ecrdsa - use subsys_initcall instead of module_init

On Mon, 30 Nov 2020 at 07:58, Tianjia Zhang
<[email protected]> 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.