04 Sep, 2020
1 commit
-
Common pattern of handling deferred probe can be simplified with
dev_err_probe(). Less code and also it prints the error value.Signed-off-by: Krzysztof Kozlowski
Signed-off-by: Herbert Xu
28 Aug, 2020
1 commit
-
pm_runtime_get_sync() increments the runtime PM usage counter
even when it returns an error code. However, users of cc_pm_get(),
a direct wrapper of pm_runtime_get_sync(), assume that PM usage
counter will not change on error. Thus a pairing decrement is needed
on the error handling path to keep the counter balanced.Fixes: 8c7849a30255c ("crypto: ccree - simplify Runtime PM handling")
Signed-off-by: Dinghao Liu
Signed-off-by: Herbert Xu
21 Aug, 2020
2 commits
-
Remove the bitlocker cipher which is not supported by
the kernel.Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu -
Remove the implementaion of automatic advancement of sector size in IV for
storage ciphers as its use is not supproted by the kernel.Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu
08 Aug, 2020
1 commit
-
As said by Linus:
A symmetric naming is only helpful if it implies symmetries in use.
Otherwise it's actively misleading.In "kzalloc()", the z is meaningful and an important part of what the
caller wants.In "kzfree()", the z is actively detrimental, because maybe in the
future we really _might_ want to use that "memfill(0xdeadbeef)" or
something. The "zero" part of the interface isn't even _relevant_.The main reason that kzfree() exists is to clear sensitive information
that should not be leaked to other future users of the same memory
objects.Rename kzfree() to kfree_sensitive() to follow the example of the recently
added kvfree_sensitive() and make the intention of the API more explicit.
In addition, memzero_explicit() is used to clear the memory to make sure
that it won't get optimized away by the compiler.The renaming is done by using the command sequence:
git grep -w --name-only kzfree |\
xargs sed -i 's/kzfree/kfree_sensitive/'followed by some editing of the kfree_sensitive() kerneldoc and adding
a kzfree backward compatibility macro in slab.h.[akpm@linux-foundation.org: fs/crypto/inline_crypt.c needs linux/slab.h]
[akpm@linux-foundation.org: fix fs/crypto/inline_crypt.c some more]Suggested-by: Joe Perches
Signed-off-by: Waiman Long
Signed-off-by: Andrew Morton
Acked-by: David Howells
Acked-by: Michal Hocko
Acked-by: Johannes Weiner
Cc: Jarkko Sakkinen
Cc: James Morris
Cc: "Serge E. Hallyn"
Cc: Joe Perches
Cc: Matthew Wilcox
Cc: David Rientjes
Cc: Dan Carpenter
Cc: "Jason A . Donenfeld"
Link: http://lkml.kernel.org/r/20200616154311.12314-3-longman@redhat.com
Signed-off-by: Linus Torvalds
26 Jun, 2020
3 commits
-
Remove yet another unused field left over from times gone by.
Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu -
The ESSIV support in ccree was added before the kernel
generic support and using a slightly different API.Brings the ccree essiv interface into compliance with
kernel crypto api one.Since CryptoCell only support 256 bit AES key for ESSIV,
also use a fallback if requested a smaller key size.Signed-off-by: Gilad Ben-Yossef
Cc: Ard Biesheuvel
Cc: Libo Wang
Cc: Markus Elfring
Signed-off-by: Herbert Xu -
Fix a small resource leak on the error path of cipher processing.
Signed-off-by: Gilad Ben-Yossef
Fixes: 63ee04c8b491e ("crypto: ccree - add skcipher support")
Cc: Markus Elfring
Signed-off-by: Herbert Xu
15 May, 2020
1 commit
-
pid_cd_regs and debug_regs are never changed and can therefore be made
const.This allows the compiler to put it in the text section instead of the
data section.Before:
text data bss dec hex filename
2871 2320 64 5255 1487 drivers/crypto/ccree/cc_debugfs.oAfter:
text data bss dec hex filename
3255 1936 64 5255 1487 drivers/crypto/ccree/cc_debugfs.oSigned-off-by: Rikard Falkeborn
Signed-off-by: Herbert Xu
08 May, 2020
1 commit
-
Instead of manually allocating a 'struct shash_desc' on the stack and
calling crypto_shash_digest(), switch to using the new helper function
crypto_shash_tfm_digest() which does this for us.Cc: Gilad Ben-Yossef
Signed-off-by: Eric Biggers
Acked-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu
30 Mar, 2020
1 commit
-
Remove duplicated include.
Signed-off-by: YueHaibing
Signed-off-by: Herbert Xu
12 Mar, 2020
6 commits
-
Our handling of ciphers with IV trailing the AAD was correct
but overly complicated. Refactor to simplify and possibly
save one DMA burst.This has the added bonus of behaving the same as the generic
rfc4543 implementation for none compliants inputs where the
IV in the iv field was not the same as the IV in the AAD.There should be no change in behaviour with correct inputs.
Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu -
Use crypto_ipsec_check_assoclen() instead of home grown functions.
Clean up some unneeded code as a result. Delete stale comments
while we're at it.Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu -
Move testing of condition to after the point we decide if
we need it or not.Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu -
Remove left over ancient and now misleading TODO remarks.
Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu -
removed pointless comment
Signed-off-by: Hadar Gat
Signed-off-by: Herbert Xu -
Changed CC_GENMASK macro so it can be used for all HW registers.
Signed-off-by: Hadar Gat
Signed-off-by: Herbert Xu
22 Feb, 2020
23 commits
-
As the lifetime of the hash data matches the lifetime of the driver,
hash data can be allocated using the managed allocators.
While at it, simplify cc_hash_free() by removing an unneeded check
(hash_handle is always valid here).Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
As the lifetime of the cipher data matches the lifetime of the driver,
cipher data can be allocated using the managed allocators.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
As the lifetime of the AEAD data matches the lifetime of the driver,
AEAD data can be allocated using the managed allocators.
While at it, simplify cc_aead_free() by removing an unneeded cast, and
an unneeded check (aead_handle is always valid here).Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Use the existing dev helper variable instead of plat_dev->dev.
Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Fix grammar in a comment.
Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Fix a typo in a comment.
Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Miscellaneous improvements:
- Start comment blocks with "/**" to enable kerneldoc,
- Mark parameters using "@" instead of "\param",
- Fix typos in parameter names,
- Add missing function names to kerneldoc headers,
- Add missing parameter and return value descriptions.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Miscellaneous improvements:
- Start comment blocks with "/**" to enable kerneldoc,
- Mark parameters using "@" instead of "\param",
- Fix copied is_dout parameter of cc_send_request(),
- Add missing function names to kerneldoc headers,
- Add missing parameter descriptions.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Miscellaneous improvements:
- Start comment blocks with "/**" to enable kerneldoc,
- Mark parameters using "@" instead of "\param",
- Add missing function names to kerneldoc headers,
- Add missing parameter descriptions.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Miscellaneous improvements:
- Add missing parameter and return value descriptions.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Miscellaneous improvements:
- Start comment blocks with "/**" to enable kerneldoc,
- Fix descriptor type of set_dout_mlli(),
- Fix copied config parameter of set_cipher_config1(),
- Fix copied config parameter of set_bytes_swap(),
- Add missing function names to kerneldoc headers,
- Add missing parameter descriptions,
- Remove descriptions for nonexistent parameters,
- Add missing colons,
- Remove references to obsolete camelcase parameter names,
- Sort according to actual parameter order,
- Fix grammar and spelling.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Normal comments should start with "/*".
"/**" is reserver for kerneldoc.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Extract the copy to SRAM of the initial values for a hash algorithm into
its own function, to improve readability and ease maintenance.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
The cc_cipher_handle structure contains only a single member, and only
one instance exists. Simplify the code and reduce memory consumption by
moving this member to struct cc_drvdata.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
The buff_mgr_handle structure contains only a single member, and only
one instance exists. Simplify the code and reduce memory consumption by
moving this member to struct cc_drvdata.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
The cc_debugfs_ctx structure contains only a single member, and only one
instance exists. Simplify the code and reduce memory consumption by
moving this member to struct cc_drvdata.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
The cc_sram_ctx structure contains only a single member, and only one
instance exists. Simplify the code and reduce memory consumption by
moving this member to struct cc_drvdata.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
cc_pm_suspend() and cc_pm_resume() are not used outside
drivers/crypto/ccree/cc_pm.c.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
If CONFIG_PM=y, cc_pm_is_dev_suspended() is just a wrapper around
pm_runtime_suspended().
If CONFIG_PM=n, cc_pm_is_dev_suspended() a dummy that behaves exactly
the same as the dummy for pm_runtime_suspended().Hence remove cc_pm_is_dev_suspended(), and call pm_runtime_suspended()
directly.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
If the driver is probed, it means a match was found in
arm_ccree_dev_of_match[]. Hence we can just use the
of_device_get_match_data() helper.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
Currently, a large part of the probe function runs before Runtime PM is
enabled. As the driver manages the device's clock manually, this may
work fine on some systems, but may break on platforms with a more
complex power hierarchy.Fix this by moving the initialization of Runtime PM before the first
register access (in cc_wait_for_reset_completion()), and putting the
device to sleep only after the last access (in cc_set_ree_fips_status()).This allows to remove the pm_on flag, which was used to track manually
if Runtime PM had been enabled or not.
Remove the cc_pm_{init,go,fini}() wrappers, as they are called only
once, and obscure operation.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
SRAM addresses are small integer offsets into local SRAM. Currently
they are stored using a mixture of cc_sram_addr_t (u64), u32, and
dma_addr_t types.Settle on u32, and remove the cc_sram_addr_t typedefs.
This allows to drop several casts.Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu -
The SRAM allocator does not support deallocating memory.
Hence remove all references to freeing SRAM.Fix grammar while at it.
Signed-off-by: Geert Uytterhoeven
Signed-off-by: Herbert Xu