mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 22:14:03 +02:00
RDMA/ionic: Cap eq_count to the eth driver's interrupt vector budget
ionic_fill_lif_cfg() reads eq_count from firmware uncapped, but the
eth driver only reserves ionic->neqs_per_lif MSI-X vectors for RDMA
event queues. Since ionic_rdma probes via the auxiliary bus before
the netdev is brought up, it can exhaust the shared interrupt bitmap,
causing ionic_open() to fail with -ENOSPC when allocating rx/tx
interrupts.
Cap RDMA eq_count to neqs_per_lif, which is populated by
ionic_lif_size() at PCI probe before the RDMA aux device registers.
Fixes: 8d765af51a ("RDMA/ionic: Register auxiliary module for ionic ethernet adapter")
Cc: stable@vger.kernel.org
Signed-off-by: Brett Creeley <brett.creeley@amd.com>
Signed-off-by: Abhijit Gangurde <abhijit.gangurde@amd.com>
Link: https://patch.msgid.link/20260805053254.4023262-1-abhijit.gangurde@amd.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
This commit is contained in:
parent
a939497182
commit
1d0f877d59
|
|
@ -72,7 +72,7 @@ void ionic_fill_lif_cfg(struct ionic_lif *lif, struct ionic_lif_cfg *cfg)
|
|||
* eq_count is tunable; see ionic_eq_count
|
||||
*/
|
||||
cfg->aq_count = le32_to_cpu(ident->rdma.aq_qtype.qid_count);
|
||||
cfg->eq_count = le32_to_cpu(ident->rdma.eq_qtype.qid_count);
|
||||
cfg->eq_count = lif->ionic->neqs_per_lif;
|
||||
cfg->cq_count = le32_to_cpu(ident->rdma.cq_qtype.qid_count);
|
||||
cfg->qp_count = le32_to_cpu(ident->rdma.sq_qtype.qid_count);
|
||||
cfg->dbid_count = le32_to_cpu(lif->ionic->ident.dev.ndbpgs_per_lif);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user