diff options
Diffstat (limited to 'drivers/crypto/caam/jr.c')
-rw-r--r-- | drivers/crypto/caam/jr.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c index 0adaad1b8cf7..7074a1a29e8b 100644 --- a/drivers/crypto/caam/jr.c +++ b/drivers/crypto/caam/jr.c | |||
@@ -43,7 +43,7 @@ static irqreturn_t caam_jr_interrupt(int irq, void *st_dev) | |||
43 | wr_reg32(&jrp->rregs->jrintstatus, irqstate); | 43 | wr_reg32(&jrp->rregs->jrintstatus, irqstate); |
44 | 44 | ||
45 | preempt_disable(); | 45 | preempt_disable(); |
46 | tasklet_schedule(&jrp->irqtask[smp_processor_id()]); | 46 | tasklet_schedule(&jrp->irqtask); |
47 | preempt_enable(); | 47 | preempt_enable(); |
48 | 48 | ||
49 | return IRQ_HANDLED; | 49 | return IRQ_HANDLED; |
@@ -322,11 +322,9 @@ static int caam_jr_init(struct device *dev) | |||
322 | 322 | ||
323 | jrp = dev_get_drvdata(dev); | 323 | jrp = dev_get_drvdata(dev); |
324 | 324 | ||
325 | /* Connect job ring interrupt handler. */ | 325 | tasklet_init(&jrp->irqtask, caam_jr_dequeue, (unsigned long)dev); |
326 | for_each_possible_cpu(i) | ||
327 | tasklet_init(&jrp->irqtask[i], caam_jr_dequeue, | ||
328 | (unsigned long)dev); | ||
329 | 326 | ||
327 | /* Connect job ring interrupt handler. */ | ||
330 | error = request_irq(jrp->irq, caam_jr_interrupt, IRQF_SHARED, | 328 | error = request_irq(jrp->irq, caam_jr_interrupt, IRQF_SHARED, |
331 | "caam-jobr", dev); | 329 | "caam-jobr", dev); |
332 | if (error) { | 330 | if (error) { |
@@ -416,12 +414,11 @@ int caam_jr_shutdown(struct device *dev) | |||
416 | { | 414 | { |
417 | struct caam_drv_private_jr *jrp = dev_get_drvdata(dev); | 415 | struct caam_drv_private_jr *jrp = dev_get_drvdata(dev); |
418 | dma_addr_t inpbusaddr, outbusaddr; | 416 | dma_addr_t inpbusaddr, outbusaddr; |
419 | int ret, i; | 417 | int ret; |
420 | 418 | ||
421 | ret = caam_reset_hw_jr(dev); | 419 | ret = caam_reset_hw_jr(dev); |
422 | 420 | ||
423 | for_each_possible_cpu(i) | 421 | tasklet_kill(&jrp->irqtask); |
424 | tasklet_kill(&jrp->irqtask[i]); | ||
425 | 422 | ||
426 | /* Release interrupt */ | 423 | /* Release interrupt */ |
427 | free_irq(jrp->irq, dev); | 424 | free_irq(jrp->irq, dev); |