/* The actual chain size can be larger than the maximal possible value * after rounding up the requested elements number to pages, and after * taking into account the unusuable elements (next-ptr elements). * The size of a "u16" chain can be (U16_MAX + 1) since the chain * size/capacity fields are of u32 type.
*/ switch (params->cnt_type) { case QED_CHAIN_CNT_TYPE_U16: if (chain_size > U16_MAX + 1) break;
return0; case QED_CHAIN_CNT_TYPE_U32: if (chain_size > U32_MAX) break;
return0; default: return -EINVAL;
}
DP_NOTICE(cdev, "The actual chain size (0x%llx) is larger than the maximal possible value\n",
chain_size);
for (i = 0; i < chain->page_cnt; i++) {
virt = dma_alloc_coherent(dev, chain->page_size, &phys,
GFP_KERNEL); if (!virt) return -ENOMEM;
if (i == 0) {
qed_chain_init_mem(chain, virt, phys);
qed_chain_reset(chain);
} else {
qed_chain_init_next_ptr_elem(chain, virt_prev, virt,
phys);
}
virt_prev = virt;
}
/* Last page's next element should point to the beginning of the * chain.
*/
qed_chain_init_next_ptr_elem(chain, virt_prev, chain->p_virt_addr,
chain->p_phys_addr);
rc = qed_chain_alloc_sanity_check(cdev, params, page_cnt); if (rc) {
DP_NOTICE(cdev, "Cannot allocate a chain with the given arguments:\n");
DP_NOTICE(cdev, "[use_mode %d, mode %d, cnt_type %d, num_elems %d, elem_size %zu, page_size %u]\n",
params->intended_use, params->mode, params->cnt_type,
params->num_elems, params->elem_size,
params->page_size); return rc;
}
qed_chain_init(chain, params, page_cnt);
switch (params->mode) { case QED_CHAIN_MODE_NEXT_PTR:
rc = qed_chain_alloc_next_ptr(cdev, chain); break; case QED_CHAIN_MODE_SINGLE:
rc = qed_chain_alloc_single(cdev, chain); break; case QED_CHAIN_MODE_PBL:
rc = qed_chain_alloc_pbl(cdev, chain); break; default: return -EINVAL;
}
if (!rc) return0;
qed_chain_free(cdev, chain);
return rc;
}
Messung V0.5 in Prozent
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.10Bemerkung:
(vorverarbeitet am 2026-06-07)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.