RE: [PATCH net-next, 1/2] net: mana: Add handling of CQE_RX_TRUNCATED

From: Haiyang Zhang
Date: Sat Feb 05 2022 - 17:32:59 EST




> -----Original Message-----
> From: LKML haiyangz <lkmlhyz@xxxxxxxxxxxxx> On Behalf Of Haiyang Zhang
> Sent: Friday, February 4, 2022 5:46 PM
> To: linux-hyperv@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx
> Cc: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>; Dexuan Cui <decui@xxxxxxxxxxxxx>; KY
> Srinivasan <kys@xxxxxxxxxxxxx>; Stephen Hemminger <sthemmin@xxxxxxxxxxxxx>; Paul Rosswurm
> <paulros@xxxxxxxxxxxxx>; Shachar Raindel <shacharr@xxxxxxxxxxxxx>; olaf@xxxxxxxxx;
> vkuznets <vkuznets@xxxxxxxxxx>; davem@xxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: [PATCH net-next, 1/2] net: mana: Add handling of CQE_RX_TRUNCATED
>
> The proper way to drop this kind of CQE is advancing rxq tail
> without indicating the packet to the upper network layer.
>
> Signed-off-by: Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>
> ---
> drivers/net/ethernet/microsoft/mana/mana_en.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/ethernet/microsoft/mana/mana_en.c
> b/drivers/net/ethernet/microsoft/mana/mana_en.c
> index 69e791e6abc4..d2481a500654 100644
> --- a/drivers/net/ethernet/microsoft/mana/mana_en.c
> +++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
> @@ -1085,8 +1085,10 @@ static void mana_process_rx_cqe(struct mana_rxq *rxq, struct
> mana_cq *cq,
> break;
>
> case CQE_RX_TRUNCATED:
> - netdev_err(ndev, "Dropped a truncated packet\n");
> - return;
> + ++ndev->stats.rx_dropped;
> + rxbuf_oob = &rxq->rx_oobs[rxq->buf_index];
> + netdev_warn_once(ndev, "Dropped a truncated packet\n");
> + goto drop;
>
> case CQE_RX_COALESCED_4:
> netdev_err(ndev, "RX coalescing is unsupported\n");
> @@ -1154,6 +1156,7 @@ static void mana_process_rx_cqe(struct mana_rxq *rxq, struct mana_cq
> *cq,
>
> mana_rx_skb(old_buf, oob, rxq);
>
> +drop:
> mana_move_wq_tail(rxq->gdma_rq, rxbuf_oob->wqe_inf.wqe_size_in_bu);
>
> mana_post_pkt_rxq(rxq);
> --

To netdev maintainers:

Since the proper handling of CQE_RX_TRUNCATED type is important, could any
of you backport this patch to the stable branches: 5.16 & 5.15?

Thanks,
- Haiyang