crypto: talitos - pass correct interrupt status to error handler
PATCH 1/3 crypto: talitos - pass correct interrupt status to error handler
From: Kim Phillips <[email protected]>
since we ack early, the re-read interrupt status in talitos_error may be already updated with a new value. Pass the error ISR value directly in order to report and handle the error based on the correct error status.
Also remove unused error tasklet.
---
In this series, patches 1 and 3 authored by Kim, patch 2 by Lee.
drivers/crypto/talitos.c | 12 +++--------- 1 files changed, 3 insertions(+), 9 deletions(-)
drivers/crypto/talitos.c +3 -9
@@ -127,7 +127,6 @@ struct talitos_private {/* request callback tasklet */ struct tasklet_struct done_task; -struct tasklet_struct error_task;/* list of registered algorithms */ struct list_head alg_list;
@@ -469,16 +468,13 @@ static void report_eu_error(struct device *dev, int ch, struct talitos_desc *des/* * recover from error interrupts */ -static void talitos_error (unsigned long data) +static void talitos_error (unsigned long data,u32 isr,u32 isr_lo) {struct device *dev = (struct device *)data;struct talitos_private *priv =dev_get_drvdata (dev);unsigned int timeout =TALITOS_TIMEOUT ;int ch, error, reset_dev =0 , reset_ch =0 ; -u32 isr, isr_lo, v, v_lo; - - isr =in_be32 (priv->reg +TALITOS_ISR ); - isr_lo =in_be32 (priv->reg +TALITOS_ISR_LO ); +u32 v, v_lo;for (ch =0 ; ch < priv->num_channels; ch++) {/* skip channels without errors */
@@ -566,7 +562,7 @@ static irqreturn_t talitos_interrupt(int irq, void *data)out_be32 (priv->reg +TALITOS_ICR_LO , isr_lo);if (unlikely ((isr & ~TALITOS_ISR_CHDONE ) || isr_lo)) -talitos_error ((unsigned long )data); +talitos_error ((unsigned long )data, isr, isr_lo);else if (likely (isr &TALITOS_ISR_CHDONE ))tasklet_schedule (&priv->done_task);
@@ -1391,7 +1387,6 @@ static int __devexit talitos_remove(struct of_device *ofdev) }tasklet_kill (&priv->done_task); -tasklet_kill (&priv->error_task);iounmap (priv->reg);
@@ -1452,7 +1447,6 @@ static int talitos_probe(struct of_device *ofdev, priv->ofdev = ofdev;tasklet_init (&priv->done_task, talitos_done, (unsigned long )dev); -tasklet_init (&priv->error_task, talitos_error, (unsigned long )dev); priv->irq =irq_of_parse_and_map (np,0 );
Signature · 1 line
1.5.6.2
Quoted 7 lines · On Mon, 06 Oct 2008 15:09:00 -0500 Lee Nipper <[email protected]> wrote:
From: Kim Phillips <[email protected]>
since we ack early, the re-read interrupt status in
talitos_errormay be already updated with a new value. Pass the error ISR value directly in order to report and handle the error based on the correct error status.
Quoted 5 lines
Also remove unused error tasklet.
Signed-off-by Kim Phillips <[email protected]>Signed-off-by Lee Nipper <[email protected]>---
Herbert, I noticed your crypto update pull request was missing this patch series (and the off-by-one fix from Suresh). I realize they were posted a bit late, but are they under consideration for 2.6.28?
Kim
Herbert Xu
maintainerQuoted 4 lines · Kim Phillips
Herbert, I noticed your crypto update pull request was missing this patch series (and the off-by-one fix from Suresh). I realize they were posted a bit late, but are they under consideration for 2.6.28?
I'm going to run them through cryptodev-2.6 before pushing upstream if the schedule works out.
Cheers,
Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txtHerbert Xu
maintainerQuoted 11 lines · Lee Nipper
From: Kim Phillips <[email protected]>
since we ack early, the re-read interrupt status in
talitos_errormay be already updated with a new value. Pass the error ISR value directly in order to report and handle the error based on the correct error status.Also remove unused error tasklet.
Signed-off-by Kim Phillips <[email protected]>Signed-off-by Lee Nipper <[email protected]>
I've applied all three patches. However, I had to fix up the bits around INIT_LIST_HEAD in 1 and 3. So please check the cryptodev-2.6 tree and let me know if it's wrong.
Thanks,
Signature · 4 lines
Visit Openswan at http://www.openswan.org/
Email: Herbert Xu ~{PmV>HI~} <[email protected]>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txtQuoted 4 lines · Herbert Xu
I've applied all three patches. However, I had to fix up the bits around
INIT_LIST_HEADin 1 and 3. So please check the cryptodev-2.6 tree and let me know if it's wrong.
I checked cryptodev-2.6 and it looks good. Thank you!
I thought I had double checked the 3 patches against mainline but obviously I had not. I must have gotten skewed a bit. I will be more careful.
Thanks for the fix up.
Lee