qed: Chain support for external PBL
iWARP would require the chains to allocate/free their PBL memory independently, so add the infrastructure to provide it externally. Signed-off-by: Yuval Mintz <Yuval.Mintz@cavium.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
8917a777be
commit
1a4a69751f
@@ -80,6 +80,11 @@ struct qed_chain_pbl_u32 {
|
||||
u32 cons_page_idx;
|
||||
};
|
||||
|
||||
struct qed_chain_ext_pbl {
|
||||
dma_addr_t p_pbl_phys;
|
||||
void *p_pbl_virt;
|
||||
};
|
||||
|
||||
struct qed_chain_u16 {
|
||||
/* Cyclic index of next element to produce/consme */
|
||||
u16 prod_idx;
|
||||
@@ -155,6 +160,8 @@ struct qed_chain {
|
||||
u32 size;
|
||||
|
||||
u8 intended_use;
|
||||
|
||||
bool b_external_pbl;
|
||||
};
|
||||
|
||||
#define QED_CHAIN_PBL_ENTRY_SIZE (8)
|
||||
|
@@ -634,7 +634,8 @@ struct qed_common_ops {
|
||||
enum qed_chain_cnt_type cnt_type,
|
||||
u32 num_elems,
|
||||
size_t elem_size,
|
||||
struct qed_chain *p_chain);
|
||||
struct qed_chain *p_chain,
|
||||
struct qed_chain_ext_pbl *ext_pbl);
|
||||
|
||||
void (*chain_free)(struct qed_dev *cdev,
|
||||
struct qed_chain *p_chain);
|
||||
|
Reference in New Issue
Block a user