Message ID | 4f3389a1-d6aa-b3cc-2299-d638058ddd48@partner.samsung.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Herbert Xu |
Headers | show |
On 01/16/2018 05:16 PM, Kamil Konieczny wrote: > Crypto framework will require async hash export/import, so add empty > functions to prevent OOPS. Shouldn't this be handled on the subsystem level with some if (foo->bar) foo->bar(); instead? > Signed-off-by: Kamil Konieczny <k.konieczny@partner.samsung.com> > --- > drivers/crypto/mxs-dcp.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/crypto/mxs-dcp.c b/drivers/crypto/mxs-dcp.c > index 764be3e6933c..a10c418d4e5c 100644 > --- a/drivers/crypto/mxs-dcp.c > +++ b/drivers/crypto/mxs-dcp.c > @@ -759,6 +759,16 @@ static int dcp_sha_digest(struct ahash_request *req) > return dcp_sha_finup(req); > } > > +static int dcp_sha_noimport(struct ahash_request *req, const void *in) > +{ > + return -ENOSYS; > +} > + > +static int dcp_sha_noexport(struct ahash_request *req, void *out) > +{ > + return -ENOSYS; > +} > + > static int dcp_sha_cra_init(struct crypto_tfm *tfm) > { > crypto_ahash_set_reqsize(__crypto_ahash_cast(tfm), > @@ -829,6 +839,8 @@ static struct ahash_alg dcp_sha1_alg = { > .final = dcp_sha_final, > .finup = dcp_sha_finup, > .digest = dcp_sha_digest, > + .import = dcp_sha_noimport, > + .export = dcp_sha_noexport, > .halg = { > .digestsize = SHA1_DIGEST_SIZE, > .base = { > @@ -853,6 +865,8 @@ static struct ahash_alg dcp_sha256_alg = { > .final = dcp_sha_final, > .finup = dcp_sha_finup, > .digest = dcp_sha_digest, > + .import = dcp_sha_noimport, > + .export = dcp_sha_noexport, > .halg = { > .digestsize = SHA256_DIGEST_SIZE, > .base = { >
Hi Kamil, On Tue, Jan 16, 2018 at 2:16 PM, Kamil Konieczny <k.konieczny@partner.samsung.com> wrote: > Crypto framework will require async hash export/import, so add empty > functions to prevent OOPS. Which Oops exactly are you getting? Just booted 4.14.13 and the mxs-dcp driver does not even probe successfully: [ 2.455404] mxs-dcp 80028000.dcp: Failed to register sha1 hash! [ 2.464042] mxs-dcp: probe of 80028000.dcp failed with error -22
On 16.01.2018 17:56, Marek Vasut wrote: > On 01/16/2018 05:16 PM, Kamil Konieczny wrote: >> Crypto framework will require async hash export/import, so add empty >> functions to prevent OOPS. > > Shouldn't this be handled on the subsystem level with some > > if (foo->bar) > foo->bar(); > > instead? I am sorry, I should write more elaborate description for patch. It is handled by subsystem. Most drivers have them, and testmgr is testing for export/import and drivers without them fail internal crypto tests, so I prepared patch which removed these two wrappers from crypto framework. In summary: export/import are now required, so crypto framework can work properly.
On 16.01.2018 18:28, Fabio Estevam wrote: > Hi Kamil, > > On Tue, Jan 16, 2018 at 2:16 PM, Kamil Konieczny > <k.konieczny@partner.samsung.com> wrote: >> Crypto framework will require async hash export/import, so add empty >> functions to prevent OOPS. > > Which Oops exactly are you getting? None now, it is for preparation for patch removing export/import wrappers. > > Just booted 4.14.13 and the mxs-dcp driver does not even probe successfully: > > [ 2.455404] mxs-dcp 80028000.dcp: Failed to register sha1 hash! > [ 2.464042] mxs-dcp: probe of 80028000.dcp failed with error -22 > With this option turned on in config: crypto: Disable run-time self tests driver should load. Can you verify ? Btw, there is no maintainer for this file.
Please drop this as I will resend it as part of patchset. On 16.01.2018 17:16, Kamil Konieczny wrote: > Crypto framework will require async hash export/import, so add empty > functions to prevent OOPS. > > Signed-off-by: Kamil Konieczny <k.konieczny@partner.samsung.com> > --- > drivers/crypto/mxs-dcp.c | 14 ++++++++++++++ > 1 file changed, 14 insertions(+) > > diff --git a/drivers/crypto/mxs-dcp.c b/drivers/crypto/mxs-dcp.c > index 764be3e6933c..a10c418d4e5c 100644 > --- a/drivers/crypto/mxs-dcp.c > +++ b/drivers/crypto/mxs-dcp.c > @@ -759,6 +759,16 @@ static int dcp_sha_digest(struct ahash_request *req) > return dcp_sha_finup(req); > } > > +static int dcp_sha_noimport(struct ahash_request *req, const void *in) > +{ > + return -ENOSYS; > +} > + > +static int dcp_sha_noexport(struct ahash_request *req, void *out) > +{ > + return -ENOSYS; > +} > + > static int dcp_sha_cra_init(struct crypto_tfm *tfm) > { > crypto_ahash_set_reqsize(__crypto_ahash_cast(tfm), > @@ -829,6 +839,8 @@ static struct ahash_alg dcp_sha1_alg = { > .final = dcp_sha_final, > .finup = dcp_sha_finup, > .digest = dcp_sha_digest, > + .import = dcp_sha_noimport, > + .export = dcp_sha_noexport, > .halg = { > .digestsize = SHA1_DIGEST_SIZE, > .base = { > @@ -853,6 +865,8 @@ static struct ahash_alg dcp_sha256_alg = { > .final = dcp_sha_final, > .finup = dcp_sha_finup, > .digest = dcp_sha_digest, > + .import = dcp_sha_noimport, > + .export = dcp_sha_noexport, > .halg = { > .digestsize = SHA256_DIGEST_SIZE, > .base = { >
diff --git a/drivers/crypto/mxs-dcp.c b/drivers/crypto/mxs-dcp.c index 764be3e6933c..a10c418d4e5c 100644 --- a/drivers/crypto/mxs-dcp.c +++ b/drivers/crypto/mxs-dcp.c @@ -759,6 +759,16 @@ static int dcp_sha_digest(struct ahash_request *req) return dcp_sha_finup(req); } +static int dcp_sha_noimport(struct ahash_request *req, const void *in) +{ + return -ENOSYS; +} + +static int dcp_sha_noexport(struct ahash_request *req, void *out) +{ + return -ENOSYS; +} + static int dcp_sha_cra_init(struct crypto_tfm *tfm) { crypto_ahash_set_reqsize(__crypto_ahash_cast(tfm), @@ -829,6 +839,8 @@ static struct ahash_alg dcp_sha1_alg = { .final = dcp_sha_final, .finup = dcp_sha_finup, .digest = dcp_sha_digest, + .import = dcp_sha_noimport, + .export = dcp_sha_noexport, .halg = { .digestsize = SHA1_DIGEST_SIZE, .base = { @@ -853,6 +865,8 @@ static struct ahash_alg dcp_sha256_alg = { .final = dcp_sha_final, .finup = dcp_sha_finup, .digest = dcp_sha_digest, + .import = dcp_sha_noimport, + .export = dcp_sha_noexport, .halg = { .digestsize = SHA256_DIGEST_SIZE, .base = {
Crypto framework will require async hash export/import, so add empty functions to prevent OOPS. Signed-off-by: Kamil Konieczny <k.konieczny@partner.samsung.com> --- drivers/crypto/mxs-dcp.c | 14 ++++++++++++++ 1 file changed, 14 insertions(+)