octeontx2-pf: Fix adding mbox work queue entry when num_vfs > 64
[ Upstream commit 51597219e0cd5157401d4d0ccb5daa4d9961676f ]
When more than 64 VFs are enabled for a PF then mbox communication
between VF and PF is not working as mbox work queueing for few VFs
are skipped due to wrong calculation of VF numbers.
Fixes: d424b6c024
("octeontx2-pf: Enable SRIOV and added VF mbox handling")
Signed-off-by: Geetha sowjanya <gakula@marvell.com>
Signed-off-by: Subbaraya Sundeep <sbhatta@marvell.com>
Link: https://lore.kernel.org/r/1700930042-5400-1-git-send-email-sbhatta@marvell.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
ef7af2105a
commit
72ce3379cd
@@ -556,7 +556,9 @@ static irqreturn_t otx2_pfvf_mbox_intr_handler(int irq, void *pf_irq)
|
|||||||
otx2_write64(pf, RVU_PF_VFPF_MBOX_INTX(1), intr);
|
otx2_write64(pf, RVU_PF_VFPF_MBOX_INTX(1), intr);
|
||||||
otx2_queue_work(mbox, pf->mbox_pfvf_wq, 64, vfs, intr,
|
otx2_queue_work(mbox, pf->mbox_pfvf_wq, 64, vfs, intr,
|
||||||
TYPE_PFVF);
|
TYPE_PFVF);
|
||||||
vfs -= 64;
|
if (intr)
|
||||||
|
trace_otx2_msg_interrupt(mbox->mbox.pdev, "VF(s) to PF", intr);
|
||||||
|
vfs = 64;
|
||||||
}
|
}
|
||||||
|
|
||||||
intr = otx2_read64(pf, RVU_PF_VFPF_MBOX_INTX(0));
|
intr = otx2_read64(pf, RVU_PF_VFPF_MBOX_INTX(0));
|
||||||
@@ -564,7 +566,8 @@ static irqreturn_t otx2_pfvf_mbox_intr_handler(int irq, void *pf_irq)
|
|||||||
|
|
||||||
otx2_queue_work(mbox, pf->mbox_pfvf_wq, 0, vfs, intr, TYPE_PFVF);
|
otx2_queue_work(mbox, pf->mbox_pfvf_wq, 0, vfs, intr, TYPE_PFVF);
|
||||||
|
|
||||||
trace_otx2_msg_interrupt(mbox->mbox.pdev, "VF(s) to PF", intr);
|
if (intr)
|
||||||
|
trace_otx2_msg_interrupt(mbox->mbox.pdev, "VF(s) to PF", intr);
|
||||||
|
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user