2022-11-23 11:13:10

by Suman Ghosh

[permalink] [raw]
Subject: [net PATCH V2] octeontx2-pf: Fix pfc_alloc_status array overflow

This patch addresses pfc_alloc_status array overflow occurring for
send queue index value greater than PFC priority. Queue index can be
greater than supported PFC priority for multiple scenarios (e.g. QoS,
during non zero SMQ allocation for a PF/VF).
In those scenarios the API should return default tx scheduler '0'.
This is causing mbox errors as otx2_get_smq_idx returing invalid smq value.

Fixes: 99c969a83d82 ("octeontx2-pf: Add egress PFC support")
Signed-off-by: Suman Ghosh <[email protected]>
---
Changes since v1:
- Updated commit message.

drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
index 282db6fe3b08..67aa02bb2b85 100644
--- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
+++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
@@ -884,7 +884,7 @@ static inline void otx2_dma_unmap_page(struct otx2_nic *pfvf,
static inline u16 otx2_get_smq_idx(struct otx2_nic *pfvf, u16 qidx)
{
#ifdef CONFIG_DCB
- if (pfvf->pfc_alloc_status[qidx])
+ if (qidx < NIX_PF_PFC_PRIO_MAX && pfvf->pfc_alloc_status[qidx])
return pfvf->pfc_schq_list[NIX_TXSCH_LVL_SMQ][qidx];
#endif

--
2.25.1


2022-11-23 11:44:34

by Leon Romanovsky

[permalink] [raw]
Subject: Re: [net PATCH V2] octeontx2-pf: Fix pfc_alloc_status array overflow

On Wed, Nov 23, 2022 at 04:29:38PM +0530, Suman Ghosh wrote:
> This patch addresses pfc_alloc_status array overflow occurring for
> send queue index value greater than PFC priority. Queue index can be
> greater than supported PFC priority for multiple scenarios (e.g. QoS,
> during non zero SMQ allocation for a PF/VF).
> In those scenarios the API should return default tx scheduler '0'.
> This is causing mbox errors as otx2_get_smq_idx returing invalid smq value.
>
> Fixes: 99c969a83d82 ("octeontx2-pf: Add egress PFC support")
> Signed-off-by: Suman Ghosh <[email protected]>
> ---
> Changes since v1:
> - Updated commit message.
>
> drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>

Thanks,
Reviewed-by: Leon Romanovsky <[email protected]>

2022-11-25 11:18:49

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [net PATCH V2] octeontx2-pf: Fix pfc_alloc_status array overflow

Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <[email protected]>:

On Wed, 23 Nov 2022 16:29:38 +0530 you wrote:
> This patch addresses pfc_alloc_status array overflow occurring for
> send queue index value greater than PFC priority. Queue index can be
> greater than supported PFC priority for multiple scenarios (e.g. QoS,
> during non zero SMQ allocation for a PF/VF).
> In those scenarios the API should return default tx scheduler '0'.
> This is causing mbox errors as otx2_get_smq_idx returing invalid smq value.
>
> [...]

Here is the summary with links:
- [net,V2] octeontx2-pf: Fix pfc_alloc_status array overflow
https://git.kernel.org/netdev/net/c/32b931c86d0a

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html


2022-11-25 15:12:05

by Maciej Fijalkowski

[permalink] [raw]
Subject: Re: [net PATCH V2] octeontx2-pf: Fix pfc_alloc_status array overflow

On Wed, Nov 23, 2022 at 04:29:38PM +0530, Suman Ghosh wrote:
> This patch addresses pfc_alloc_status array overflow occurring for

Nit: use imperative mood

> send queue index value greater than PFC priority. Queue index can be
> greater than supported PFC priority for multiple scenarios (e.g. QoS,
> during non zero SMQ allocation for a PF/VF).
> In those scenarios the API should return default tx scheduler '0'.
> This is causing mbox errors as otx2_get_smq_idx returing invalid smq value.
>
> Fixes: 99c969a83d82 ("octeontx2-pf: Add egress PFC support")
> Signed-off-by: Suman Ghosh <[email protected]>
> ---
> Changes since v1:
> - Updated commit message.
>
> drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Reviewed-by: Maciej Fijalkowski <[email protected]>

>
> diff --git a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
> index 282db6fe3b08..67aa02bb2b85 100644
> --- a/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
> +++ b/drivers/net/ethernet/marvell/octeontx2/nic/otx2_common.h
> @@ -884,7 +884,7 @@ static inline void otx2_dma_unmap_page(struct otx2_nic *pfvf,
> static inline u16 otx2_get_smq_idx(struct otx2_nic *pfvf, u16 qidx)
> {
> #ifdef CONFIG_DCB
> - if (pfvf->pfc_alloc_status[qidx])
> + if (qidx < NIX_PF_PFC_PRIO_MAX && pfvf->pfc_alloc_status[qidx])
> return pfvf->pfc_schq_list[NIX_TXSCH_LVL_SMQ][qidx];
> #endif
>
> --
> 2.25.1
>