summaryrefslogtreecommitdiff
path: root/crypto/api.c
diff options
context:
space:
mode:
authorInki Dae <inki.dae@samsung.com>2018-05-09 09:27:08 +0900
committerInki Dae <inki.dae@samsung.com>2018-05-09 09:27:08 +0900
commit211e2d329a0a41286b2b64332ed1640c6cb45301 (patch)
treefb78e31032dcca2fcb0e9123cf11be12728f99c5 /crypto/api.c
parent23d6bea047b81c3165a5a34871197d4024936d4c (diff)
parentef734472771a62ae9f901367a40a89382a991917 (diff)
downloadlinux-crypto-211e2d329a0a41286b2b64332ed1640c6cb45301.tar.gz
linux-crypto-211e2d329a0a41286b2b64332ed1640c6cb45301.zip
Merge tag 'exynos-drm-fixes-for-v4.17-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos into exynos-drm-next
Fixup pagefault issue of mixer driver - it makes sure to check shadow register for interlace scan. - it corrects chroma_addr[1], height and vertical position values. And trivial cleanup - it just removes duplicated drm_bridge_attach.
Diffstat (limited to 'crypto/api.c')
-rw-r--r--crypto/api.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/crypto/api.c b/crypto/api.c
index 1d5290c6..0ee632bb 100644
--- a/crypto/api.c
+++ b/crypto/api.c
@@ -204,9 +204,14 @@ static struct crypto_alg *crypto_alg_lookup(const char *name, u32 type,
down_read(&crypto_alg_sem);
alg = __crypto_alg_lookup(name, type | test, mask | test);
- if (!alg && test)
- alg = __crypto_alg_lookup(name, type, mask) ?
- ERR_PTR(-ELIBBAD) : NULL;
+ if (!alg && test) {
+ alg = __crypto_alg_lookup(name, type, mask);
+ if (alg && !crypto_is_larval(alg)) {
+ /* Test failed */
+ crypto_mod_put(alg);
+ alg = ERR_PTR(-ELIBBAD);
+ }
+ }
up_read(&crypto_alg_sem);
return alg;