Licensing Information

Open Source Used In Cisco Nexus 9000 Series 7.0(3)I5(1)
3240
}
spin_lock_irqsave(&ixp_pkq_lock, flags);
if (ixp_pk_cur || list_empty(&ixp_pkq)) {
spin_unlock_irqrestore(&ixp_pkq_lock, flags);
return;
}
list_for_each_entry_safe(q, tmp, &ixp_pkq, pkq_list) {
list_del(&q->pkq_list);
ixp_pk_cur = q;
spin_unlock_irqrestore(&ixp_pkq_lock, flags);
status = ixCryptoAccPkeEauPerform(
IX_CRYPTO_ACC_OP_EAU_MOD_EXP,
&q->pkq_op,
ixp_kperform_cb,
&q->pkq_result);
if (status == IX_CRYPTO_ACC_STATUS_SUCCESS) {
dprintk("%s() - ixCryptoAccPkeEauPerform SUCCESS\n", __FUNCTION__);
return; /* callback will return here for callback */
} else if (status == IX_CRYPTO_ACC_STATUS_RETRY) {
printk("%s() - ixCryptoAccPkeEauPerform RETRY\n", __FUNCTION__);
} else {
printk("%s() - ixCryptoAccPkeEauPerform failed %d\n",
__FUNCTION__, status);
}
q->pkq_krp->krp_status = ERANGE; /* could do better */
crypto_kdone(q->pkq_krp);
kfree(q);
spin_lock_irqsave(&ixp_pkq_lock, flags);
}
spin_unlock_irqrestore(&ixp_pkq_lock, flags);
}
static int
ixp_kprocess(device_t dev, struct cryptkop *krp, int hint)
{
struct ixp_pkq *q;
int rc = 0;
unsigned long flags;
dprintk("%s l1=%d l2=%d l3=%d l4=%d\n", __FUNCTION__,
krp->krp_param[IXP_PARAM_BASE].crp_nbits,