On Mon, Nov 16, 2020 at 8:12 PM Harman Kalra <hka...@marvell.com> wrote: > > Syncing the data types of msix offset mbox response structure > fields wrt rvu_pfvf structure as in msix offset mbox handler, > respective block LFs response field is initialised with rvu_pfvf > and mismatch in the data types of respective fields may lead > to issues. > > This mismatch in data types resulted in a bug where no sso msix > offsets are returned. For 256 SSO hwgrps, 256 msix offsets > are required, but since num of sso lf field (rsp->sso) in > response structure is u8 and is initialised with same field > in pfvf structure viz u16, value 256 corresponds to 0 hence > no sso_msixoff. > Similar mbox changes are required in kernel side also which are > available in marvell SDK version SDK-11.0. > > Fixes: 2b71657c8660 ("common/octeontx2: add mbox request and response > definition") > > Signed-off-by: Harman Kalra <hka...@marvell.com>
Acked-by: Jerin Jacob <jer...@marvell.com> Applied to dpdk-next-net-mrvl/for-main. Thanks > --- > drivers/common/octeontx2/otx2_mbox.h | 16 ++++++++-------- > 1 file changed, 8 insertions(+), 8 deletions(-) > > diff --git a/drivers/common/octeontx2/otx2_mbox.h > b/drivers/common/octeontx2/otx2_mbox.h > index 9a1e8a7ea..f6d884c19 100644 > --- a/drivers/common/octeontx2/otx2_mbox.h > +++ b/drivers/common/octeontx2/otx2_mbox.h > @@ -90,7 +90,7 @@ struct mbox_msghdr { > #define OTX2_MBOX_RSP_SIG (0xbeef) > /* Signature, for validating corrupted msgs */ > uint16_t __otx2_io sig; > -#define OTX2_MBOX_VERSION (0x0009) > +#define OTX2_MBOX_VERSION (0x000a) > /* Version of msg's structure for this ID */ > uint16_t __otx2_io ver; > /* Offset of next msg within mailbox region */ > @@ -454,17 +454,17 @@ struct msix_offset_rsp { > struct mbox_msghdr hdr; > uint16_t __otx2_io npa_msixoff; > uint16_t __otx2_io nix_msixoff; > - uint8_t __otx2_io sso; > - uint8_t __otx2_io ssow; > - uint8_t __otx2_io timlfs; > - uint8_t __otx2_io cptlfs; > + uint16_t __otx2_io sso; > + uint16_t __otx2_io ssow; > + uint16_t __otx2_io timlfs; > + uint16_t __otx2_io cptlfs; > uint16_t __otx2_io sso_msixoff[MAX_RVU_BLKLF_CNT]; > uint16_t __otx2_io ssow_msixoff[MAX_RVU_BLKLF_CNT]; > uint16_t __otx2_io timlf_msixoff[MAX_RVU_BLKLF_CNT]; > uint16_t __otx2_io cptlf_msixoff[MAX_RVU_BLKLF_CNT]; > - uint8_t __otx2_io cpt1_lfs; > - uint8_t __otx2_io ree0_lfs; > - uint8_t __otx2_io ree1_lfs; > + uint16_t __otx2_io cpt1_lfs; > + uint16_t __otx2_io ree0_lfs; > + uint16_t __otx2_io ree1_lfs; > uint16_t __otx2_io cpt1_lf_msixoff[MAX_RVU_BLKLF_CNT]; > uint16_t __otx2_io ree0_lf_msixoff[MAX_RVU_BLKLF_CNT]; > uint16_t __otx2_io ree1_lf_msixoff[MAX_RVU_BLKLF_CNT]; > -- > 2.18.0 >