Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1592794 > unrolled thread

[PATCH] crypto: s5p-sss - Fix completing crypto request in IRQ handler

Started byKrzysztof Kozlowski <krzk@kernel.org>
First post2017-03-05 18:20 +0100
Last post2017-03-08 10:50 +0100
Articles 2 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] crypto: s5p-sss - Fix completing crypto request in IRQ handler Krzysztof Kozlowski <krzk@kernel.org> - 2017-03-05 18:20 +0100
    Re: [PATCH] crypto: s5p-sss - Fix completing crypto request in IRQ  handler Herbert Xu <herbert@gondor.apana.org.au> - 2017-03-08 10:50 +0100

#1592794 — [PATCH] crypto: s5p-sss - Fix completing crypto request in IRQ handler

FromKrzysztof Kozlowski <krzk@kernel.org>
Date2017-03-05 18:20 +0100
Subject[PATCH] crypto: s5p-sss - Fix completing crypto request in IRQ handler
Message-ID<thHZ8-3pL-17@gated-at.bofh.it>
In a regular interrupt handler driver was finishing the crypt/decrypt
request by calling complete on crypto request.  This is disallowed since
converting to skcipher in commit b286d8b1a690 ("crypto: skcipher - Add
skcipher walk interface") and causes a warning:
	WARNING: CPU: 0 PID: 0 at crypto/skcipher.c:430 skcipher_walk_first+0x13c/0x14c

The interrupt is marked shared but in fact there are no other users
sharing it.  Thus the simplest solution seems to be to just use a
threaded interrupt handler, after converting it to oneshot.

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

---

Tested on Odroid U3 and XU3.
Not sure which commit introduced it so I am also not sure if this should
be cc-stable.
---
 drivers/crypto/s5p-sss.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/s5p-sss.c b/drivers/crypto/s5p-sss.c
index dce1af0ce85c..a668286d62cb 100644
--- a/drivers/crypto/s5p-sss.c
+++ b/drivers/crypto/s5p-sss.c
@@ -805,8 +805,9 @@ static int s5p_aes_probe(struct platform_device *pdev)
 		dev_warn(dev, "feed control interrupt is not available.\n");
 		goto err_irq;
 	}
-	err = devm_request_irq(dev, pdata->irq_fc, s5p_aes_interrupt,
-			       IRQF_SHARED, pdev->name, pdev);
+	err = devm_request_threaded_irq(dev, pdata->irq_fc, NULL,
+					s5p_aes_interrupt, IRQF_ONESHOT,
+					pdev->name, pdev);
 	if (err < 0) {
 		dev_warn(dev, "feed control interrupt is not available.\n");
 		goto err_irq;
-- 
2.9.3

[toc] | [next] | [standalone]


#1594994 — Re: [PATCH] crypto: s5p-sss - Fix completing crypto request in IRQ handler

FromHerbert Xu <herbert@gondor.apana.org.au>
Date2017-03-08 10:50 +0100
SubjectRe: [PATCH] crypto: s5p-sss - Fix completing crypto request in IRQ handler
Message-ID<tiGoi-4Ft-21@gated-at.bofh.it>
In reply to#1592794
On Sun, Mar 05, 2017 at 07:14:07PM +0200, Krzysztof Kozlowski wrote:
> In a regular interrupt handler driver was finishing the crypt/decrypt
> request by calling complete on crypto request.  This is disallowed since
> converting to skcipher in commit b286d8b1a690 ("crypto: skcipher - Add
> skcipher walk interface") and causes a warning:
> 	WARNING: CPU: 0 PID: 0 at crypto/skcipher.c:430 skcipher_walk_first+0x13c/0x14c
> 
> The interrupt is marked shared but in fact there are no other users
> sharing it.  Thus the simplest solution seems to be to just use a
> threaded interrupt handler, after converting it to oneshot.
> 
> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

Patch applied.  Thanks.
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web