pd_uinfo
struct pd_uinfo *pd_uinfo;
pd_uinfo = &core_dev->dev->pdr_uinfo[tail];
if ((pd_uinfo->state & PD_ENTRY_INUSE) &&
dev->pdr_uinfo = kzalloc_objs(struct pd_uinfo, PPC4XX_NUM_PD);
struct pd_uinfo *pd_uinfo = &dev->pdr_uinfo[i];
pd_uinfo->sa_va = &dev->shadow_sa_pool[i].sa;
pd_uinfo->sr_va = &dev->shadow_sr_pool[i];
pd_uinfo->sr_pa = dev->shadow_sr_pool_pa +
struct pd_uinfo *pd_uinfo = &dev->pdr_uinfo[idx];
pd_uinfo->state = PD_ENTRY_FREE;
struct pd_uinfo *pd_uinfo,
unsigned int first_sd = pd_uinfo->first_sd;
last_sd = (first_sd + pd_uinfo->num_sd);
struct pd_uinfo *pd_uinfo)
if (pd_uinfo->num_gd) {
for (i = 0; i < pd_uinfo->num_gd; i++)
pd_uinfo->first_gd = 0xffffffff;
pd_uinfo->num_gd = 0;
if (pd_uinfo->num_sd) {
for (i = 0; i < pd_uinfo->num_sd; i++)
pd_uinfo->first_sd = 0xffffffff;
pd_uinfo->num_sd = 0;
struct pd_uinfo *pd_uinfo,
req = skcipher_request_cast(pd_uinfo->async_req);
if (pd_uinfo->sa_va->sa_command_0.bf.scatter) {
crypto4xx_copy_pkt_to_dst(dev, pd, pd_uinfo,
dst = pd_uinfo->dest_va;
if (pd_uinfo->sa_va->sa_command_0.bf.save_iv == SA_SAVE_IV) {
pd_uinfo->sr_va->save_iv,
crypto4xx_ret_sg_desc(dev, pd_uinfo);
if (pd_uinfo->state & PD_ENTRY_BUSY)
struct pd_uinfo *pd_uinfo,
struct aead_request *aead_req = container_of(pd_uinfo->async_req,
struct scatterlist *dst = pd_uinfo->dest_va;
if (pd_uinfo->sa_va->sa_command_0.bf.scatter) {
crypto4xx_copy_pkt_to_dst(dev, pd, pd_uinfo,
if (pd_uinfo->sa_va->sa_command_0.bf.dir == DIR_OUTBOUND) {
crypto4xx_memcpy_from_le32(icv, pd_uinfo->sr_va->save_digest,
if (crypto_memneq(icv, pd_uinfo->sr_va->save_digest, cp_len))
crypto4xx_ret_sg_desc(dev, pd_uinfo);
if (pd_uinfo->state & PD_ENTRY_BUSY)
struct pd_uinfo *pd_uinfo = &dev->pdr_uinfo[idx];
switch (crypto_tfm_alg_type(pd_uinfo->async_req->tfm)) {
crypto4xx_cipher_done(dev, pd_uinfo, pd);
crypto4xx_aead_done(dev, pd_uinfo, pd);
struct pd_uinfo *pd_uinfo;
pd_uinfo = &dev->pdr_uinfo[pd_entry];
pd_uinfo->num_gd = num_gd;
pd_uinfo->num_sd = num_sd;
pd_uinfo->dest_va = dst;
pd_uinfo->async_req = req;
memcpy(pd_uinfo->sr_va->save_iv, iv, iv_len);
sa = pd_uinfo->sa_va;
*(u32 *)((unsigned long)sa + offset_to_sr_ptr) = pd_uinfo->sr_pa;
pd_uinfo->first_gd = fst_gd;
pd_uinfo->first_gd = 0xffffffff;
pd_uinfo->first_sd = 0xffffffff;
pd_uinfo->first_sd = fst_sd;
pd_uinfo->state = PD_ENTRY_INUSE | (is_busy ? PD_ENTRY_BUSY : 0);
struct pd_uinfo *pdr_uinfo;