mlxsw: pci: Store CQ pointer as part of RDQ structure
Next patches will add support for page pool in mlxsw driver. Page pool will be used to allocate buffers for RDQ and will use NAPI instance of the appropriate CQ (RDQ is mapped 1:1 to CQ). To allow pool initialization as part of CQ init, when NAPI is initialized, page_pool structure will be as part of CQ structure. Later, the allocations for RDQ will be done from the pool in the appropriate CQ. To allow access to the appropriate pool, set CQ pointer as part of RDQ initialization. Signed-off-by: Amit Cohen <amcohen@nvidia.com> Reviewed-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Ido Schimmel <idosch@nvidia.com> Signed-off-by: Petr Machata <petrm@nvidia.com> Reviewed-by: Jiri Pirko <jiri@nvidia.com> Link: https://lore.kernel.org/r/d60918ca1e142a554af1df9c1152cdac83854a3b.1718709196.git.petrm@nvidia.com Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This commit is contained in:
parent
39fa294f58
commit
7555b7f338
@ -92,6 +92,9 @@ struct mlxsw_pci_queue {
|
||||
struct {
|
||||
struct tasklet_struct tasklet;
|
||||
} eq;
|
||||
struct {
|
||||
struct mlxsw_pci_queue *cq;
|
||||
} rdq;
|
||||
} u;
|
||||
};
|
||||
|
||||
@ -434,6 +437,7 @@ static int mlxsw_pci_rdq_init(struct mlxsw_pci *mlxsw_pci, char *mbox,
|
||||
|
||||
cq = mlxsw_pci_cq_get(mlxsw_pci, cq_num);
|
||||
cq->u.cq.dq = q;
|
||||
q->u.rdq.cq = cq;
|
||||
|
||||
mlxsw_pci_queue_doorbell_producer_ring(mlxsw_pci, q);
|
||||
|
||||
@ -455,6 +459,7 @@ rollback:
|
||||
elem_info = mlxsw_pci_queue_elem_info_get(q, i);
|
||||
mlxsw_pci_rdq_skb_free(mlxsw_pci, elem_info);
|
||||
}
|
||||
q->u.rdq.cq = NULL;
|
||||
cq->u.cq.dq = NULL;
|
||||
mlxsw_cmd_hw2sw_rdq(mlxsw_pci->core, q->num);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user