static int caam_qi_napi_schedule(struct qman_portal *p, struct caam_napi *np) { /* * In case of threaded ISR, for RT kernels in_irq() does not return * appropriate value, so use in_serving_softirq to distinguish between * softirq and irq contexts. */ if (unlikely(in_irq() || !in_serving_softirq())) { /* Disable QMan IRQ source and invoke NAPI */ qman_p_irqsource_remove(p, QM_PIRQ_DQRI); np->p = p; napi_schedule(&np->irqtask); return 1; } return 0; }
static int caam_qi_napi_schedule(struct qman_portal *p, struct caam_napi *np) { /* * In case of threaded ISR for RT enable kernel, * in_irq() does not return appropriate value, so use * in_serving_softirq to distinguish softirq or irq context. */ if (unlikely(in_irq() || !in_serving_softirq())) { /* Disable QMan IRQ source and invoke NAPI */ int ret = qman_p_irqsource_remove(p, QM_PIRQ_DQRI); if (likely(!ret)) { np->p = p; napi_schedule(&np->irqtask); return 1; } } return 0; }