05 Sep, 2019
5 commits
-
Record crypto key to context during setkey and set the key to
transform state buffer in encrypt/decrypt process.Signed-off-by: Vic Wu
Tested-by: John Crispin
Signed-off-by: Herbert Xu -
This patch adds support to OFB/CFB mode.
Signed-off-by: Ryder Lee
Signed-off-by: Vic Wu
Signed-off-by: Herbert Xu -
The driver was treating -EBUSY as indication of queueing to backlog
without checking that backlog is enabled for the request.Fix it by checking request flags.
Signed-off-by: Ryder Lee
Signed-off-by: Vic Wu
Signed-off-by: Herbert Xu -
Add a pre-computed text length to avoid uninitialized value in the check.
Fixes: e47270665b5f ("crypto: mediatek - Add empty messages check in GCM mode")
Signed-off-by: Ryder Lee
Signed-off-by: Vic Wu
Signed-off-by: Herbert Xu -
Move mtk_aes_find_dev() to right functions as nobody uses the
'cryp' under current flows.We can also avoid duplicate checks here and there in this way.
Signed-off-by: Ryder Lee
Signed-off-by: Vic Wu
Signed-off-by: Herbert Xu
09 Aug, 2019
2 commits
-
Use devm_platform_ioremap_resource() to simplify the code a bit.
This is detected by coccinelle.Reported-by: Hulk Robot
Signed-off-by: YueHaibing
Signed-off-by: Herbert Xu -
We don't need dev_err() messages when platform_get_irq() fails now that
platform_get_irq() prints an error message itself when something goes
wrong. Let's remove these prints with a simple semantic patch.//
@@
expression ret;
struct platform_device *E;
@@ret =
(
platform_get_irq(E, ...)
|
platform_get_irq_byname(E, ...)
);if ( \( ret < 0 \| ret
While we're here, remove braces on if statements that only have one
statement (manually).Cc: Greg Kroah-Hartman
Cc: Herbert Xu
Cc: "David S. Miller"
Cc:
Signed-off-by: Stephen Boyd
Signed-off-by: Herbert Xu
19 Jun, 2019
1 commit
-
Based on 2 normalized pattern(s):
this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license version 2 as
published by the free software foundationthis program is free software you can redistribute it and or modify
it under the terms of the gnu general public license version 2 as
published by the free software foundation #extracted by the scancode license scanner the SPDX license identifier
GPL-2.0-only
has been chosen to replace the boilerplate/reference in 4122 file(s).
Signed-off-by: Thomas Gleixner
Reviewed-by: Enrico Weigelt
Reviewed-by: Kate Stewart
Reviewed-by: Allison Randal
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
Signed-off-by: Greg Kroah-Hartman
31 May, 2019
1 commit
-
Based on 1 normalized pattern(s):
this program is free software you can redistribute it and or modify
it under the terms of the gnu general public license as published by
the free software foundation either version 2 of the licenseextracted by the scancode license scanner the SPDX license identifier
GPL-2.0-only
has been chosen to replace the boilerplate/reference in 24 file(s).
Signed-off-by: Thomas Gleixner
Reviewed-by: Alexios Zavras
Reviewed-by: Steve Winslow
Reviewed-by: Allison Randal
Reviewed-by: Richard Fontana
Cc: linux-spdx@vger.kernel.org
Link: https://lkml.kernel.org/r/20190528170026.162703968@linutronix.de
Signed-off-by: Greg Kroah-Hartman
21 May, 2019
1 commit
-
Add SPDX license identifiers to all Make/Kconfig files which:
- Have no license information of any form
These files fall under the project license, GPL v2 only. The resulting SPDX
license identifier is:GPL-2.0-only
Signed-off-by: Thomas Gleixner
Signed-off-by: Greg Kroah-Hartman
25 Apr, 2019
1 commit
-
The flags field in 'struct shash_desc' never actually does anything.
The only ostensibly supported flag is CRYPTO_TFM_REQ_MAY_SLEEP.
However, no shash algorithm ever sleeps, making this flag a no-op.With this being the case, inevitably some users who can't sleep wrongly
pass MAY_SLEEP. These would all need to be fixed if any shash algorithm
actually started sleeping. For example, the shash_ahash_*() functions,
which wrap a shash algorithm with the ahash API, pass through MAY_SLEEP
from the ahash API to the shash API. However, the shash functions are
called under kmap_atomic(), so actually they're assumed to never sleep.Even if it turns out that some users do need preemption points while
hashing large buffers, we could easily provide a helper function
crypto_shash_update_large() which divides the data into smaller chunks
and calls crypto_shash_update() and cond_resched() for each chunk. It's
not necessary to have a flag in 'struct shash_desc', nor is it necessary
to make individual shash algorithms aware of this at all.Therefore, remove shash_desc::flags, and document that the
crypto_shash_*() functions can be called from any context.Signed-off-by: Eric Biggers
Signed-off-by: Herbert Xu
08 Jan, 2019
1 commit
-
We already need to zero out memory for dma_alloc_coherent(), as such
using dma_zalloc_coherent() is superflous. Phase it out.This change was generated with the following Coccinelle SmPL patch:
@ replace_dma_zalloc_coherent @
expression dev, size, data, handle, flags;
@@-dma_zalloc_coherent(dev, size, handle, flags)
+dma_alloc_coherent(dev, size, handle, flags)Suggested-by: Christoph Hellwig
Signed-off-by: Luis Chamberlain
[hch: re-ran the script on the latest tree]
Signed-off-by: Christoph Hellwig
07 Jul, 2018
1 commit
-
At over 4000 #includes, is the 9th most
#included header file in the Linux kernel. It does not need
, so drop that header and explicitly add
to source files that need it.4146 #include
After this patch, there are 225 files that use ,
for a reduction of around 3900 times that
does not have to be read & parsed.225 #include
This patch was build-tested on 20 different arch-es.
It also makes these drivers SubmitChecklist#1 compliant.
Signed-off-by: Randy Dunlap
Reported-by: kbuild test robot # drivers/media/platform/vimc/
Reported-by: kbuild test robot # drivers/pinctrl/pinctrl-u300.c
Signed-off-by: Greg Kroah-Hartman
03 Nov, 2017
1 commit
-
The mediatek driver starts several async crypto ops and waits for their
completions. Move it over to generic code doing the same.Signed-off-by: Gilad Ben-Yossef
Acked-by: Ryder Lee
Signed-off-by: Herbert Xu
22 Sep, 2017
2 commits
-
This patch replace GCM IV size value by their constant name.
Signed-off-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Currently, empty messages are not supported in GCM mode, hence add
a check to prevent producing incorrect results.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu
18 Jul, 2017
1 commit
-
Propagate the return value of platform_get_irq on failure.
Signed-off-by: Gustavo A. R. Silva
Signed-off-by: Herbert Xu
19 Jun, 2017
1 commit
-
Drop .owner field in mtk_crypto_driver, since platform_driver_register()
will set it automatically.Signed-off-by: Geliang Tang
Signed-off-by: Herbert Xu
10 Jun, 2017
1 commit
-
This patch removes redundant clock setting for 'clk_ethif', which is
the parent of 'clk_cryp'. Hence, we just need to handle its child.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu
23 May, 2017
1 commit
-
This patch simply replace all occurrence of HMAC IPAD/OPAD value by their
define.Signed-off-by: Corentin Labbe
Reviewed-by: Matthias Brugger
Signed-off-by: Herbert Xu
16 Mar, 2017
8 commits
-
This patch refines data structures, which are used to control engine's
data path, to make it more efficient. Hence current change are:- gathers the broken pieces of structures 'mtk_aes_ct''mtk_aes_tfm'
into struct mtk_aes_info hence avoiding additional DMA-mapping.- adds 'keymode' in struct mtk_aes_base_ctx. When .setkey() callback is
called, we store keybit setting in keymode. Doing so, there is no need
to check keylen second time in mtk_aes_info_init() / mtk_aes_gcm_info_init().Besides, this patch also removes unused macro definitions and adds helper
inline function to write security information(key, IV,...) to info->state.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch adds mtk_aes_gcm_tag_verify() which is used to compare
authenticated tag.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch fixes how errors should be handled by mtk_aes_complete().
Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch adds 'queue_task' to dequeue crypto requset. This will help to
avoid directly calling mtk_aes_handle_queue() / mtk_sha_handle_queue()
from done tasklet or error handler.In order to avoid confusion, the new code properly renames DMA completion
"task" to "done_task".Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch replaces cmd_pos/res_pos with pointer cmd_next/res_next.
In old code, we must to add one to shift ring to the next segment, and
then use this value to caculate current offset from ring base for each
DMA operation. Now these pointers helps us to simplify flow, so we just
need to move pointers and check the boundaries of ring.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This is a transitional patch. It merges mtk_sha_xmit() and mtk_sha_xmit2()
to make transmit function more generic.
In addition, res->buf and cryp->tmp_dma in mtk_sha_xmit() are useless, since
crypto engine writes the result digests into ctx->tfm.digest instead of
res->buf. It's better to remove it.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
Dummy patch to add MTK_* prefix to ring enum and fix incorrect annotations.
Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch removes redundant task that used to handle interrupt
from ring manager, so that the same task/handler can be shared.
It also uses aes->id and sha-id to distinguish interrupt sources.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu
23 Jan, 2017
8 commits
-
This patch adds support to the GCM mode.
Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch adds support to the CTR mode.
Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
Dummy patch to fix typo and indentation.
Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch only regroup functions by usage.
This will help to integrate the GCM support patch later by
adjusting some shared code section, such as common code which
will be reused by GCM, AES mode setting, and DMA transfer.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch introduces a new callback 'resume' in the struct mtk_aes_rec.
This callback is run to resume/complete the processing of the crypto
request when woken up by AES interrupts when DMA completion.This callback will help implementing the GCM mode support in further
patches.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch changes mtk_aes_handle_queue() to make it more generic.
The function argument is now a pointer to struct crypto_async_request,
which is the common base of struct ablkcipher_request and
struct aead_request.Also this patch introduces struct mtk_aes_base_ctx which will be the
common base of all the transformation contexts.Hence the very same queue will be used to manage both block cipher and
AEAD requests (such as gcm and authenc implemented in further patches).Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch fixes mtk_aes_xmit() data transfer bug.
The original function uses the same loop and ring->pos
to handle both command and result descriptors. But this
produces incomplete results when src.sg_len != dst.sg_len.To solve the problem, we splits the descriptors into different
loops and uses cmd_pos and res_pos to record them respectively.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
This patch moves hardware control block members from
mtk_*_rec to transformation context and refines related
definition. This makes operational context to manage its
own control information easily for each DMA transfer.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu
13 Jan, 2017
3 commits
-
Fixes the following sparse warning:
drivers/crypto/mediatek/mtk-platform.c:585:27: warning:
symbol 'of_crypto_id' was not declared. Should it be static?Signed-off-by: Wei Yongjun
Signed-off-by: Herbert Xu -
After I enabled COMPILE_TEST for non-ARM targets, I ran into these
warnings:crypto/mediatek/mtk-aes.c: In function 'mtk_aes_info_map':
crypto/mediatek/mtk-aes.c:224:28: error: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Werror=format=]
dev_err(cryp->dev, "dma %d bytes error\n", sizeof(*info));
crypto/mediatek/mtk-sha.c:344:28: error: format '%d' expects argument of type 'int', but argument 3 has type 'long unsigned int' [-Werror=format=]
crypto/mediatek/mtk-sha.c:550:21: error: format '%u' expects argument of type 'unsigned int', but argument 4 has type 'size_t {aka long unsigned int}' [-Werror=format=]The correct format for size_t is %zu, so use that in all three
cases.Fixes: 785e5c616c84 ("crypto: mediatek - Add crypto driver support for some MediaTek chips")
Signed-off-by: Arnd Bergmann
Signed-off-by: Herbert Xu -
In the case where keylen
Signed-off-by: Herbert Xu
27 Dec, 2016
1 commit
-
This adds support for the MediaTek hardware accelerator on
mt7623/mt2701/mt8521p SoC.This driver currently implement:
- SHA1 and SHA2 family(HMAC) hash algorithms.
- AES block cipher in CBC/ECB mode with 128/196/256 bits keys.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu