Message ID | 73619ca7d64b1dee91ed8ed2dcf0ddbbc57b4b0a.1623943981.git.lorenzo@kernel.org (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: marvell: return csum computation result from mvneta_rx_csum/mvpp2_rx_csum | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 8 maintainers not CCed: linux@armlinux.org.uk hawk@kernel.org daniel@iogearbox.net bpf@vger.kernel.org ast@kernel.org john.fastabend@gmail.com thomas.petazzoni@bootlin.com mw@semihalf.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 8 this patch: 8 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 80 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 8 this patch: 8 |
netdev/header_inline | success | Link |
> This is a preliminary patch to add hw csum hint support to > mvneta/mvpp2 xdp implementation > > Tested-by: Matteo Croce <mcroce@linux.microsoft.com> > Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Hi Dave and Jakub, I have just noticed this patch is marked as "Not Applicable" in patchwork. I tried to rebase it on top of net-next and it applies and compiles so I am wondering why it is "not applicable". Am I missing something? Regards, Lorenzo > --- > drivers/net/ethernet/marvell/mvneta.c | 19 +++++++------------ > .../net/ethernet/marvell/mvpp2/mvpp2_main.c | 14 +++++--------- > 2 files changed, 12 insertions(+), 21 deletions(-) > > diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c > index c15ce06427d0..88a755034c39 100644 > --- a/drivers/net/ethernet/marvell/mvneta.c > +++ b/drivers/net/ethernet/marvell/mvneta.c > @@ -1805,18 +1805,14 @@ static void mvneta_rx_error(struct mvneta_port *pp, > } > > /* Handle RX checksum offload based on the descriptor's status */ > -static void mvneta_rx_csum(struct mvneta_port *pp, u32 status, > - struct sk_buff *skb) > +static int mvneta_rx_csum(struct mvneta_port *pp, u32 status) > { > if ((pp->dev->features & NETIF_F_RXCSUM) && > (status & MVNETA_RXD_L3_IP4) && > - (status & MVNETA_RXD_L4_CSUM_OK)) { > - skb->csum = 0; > - skb->ip_summed = CHECKSUM_UNNECESSARY; > - return; > - } > + (status & MVNETA_RXD_L4_CSUM_OK)) > + return CHECKSUM_UNNECESSARY; > > - skb->ip_summed = CHECKSUM_NONE; > + return CHECKSUM_NONE; > } > > /* Return tx queue pointer (find last set bit) according to <cause> returned > @@ -2335,7 +2331,7 @@ mvneta_swbm_build_skb(struct mvneta_port *pp, struct page_pool *pool, > > skb_reserve(skb, xdp->data - xdp->data_hard_start); > skb_put(skb, xdp->data_end - xdp->data); > - mvneta_rx_csum(pp, desc_status, skb); > + skb->ip_summed = mvneta_rx_csum(pp, desc_status); > > for (i = 0; i < num_frags; i++) { > skb_frag_t *frag = &sinfo->frags[i]; > @@ -2535,7 +2531,7 @@ static int mvneta_rx_hwbm(struct napi_struct *napi, > rx_bytes); > > skb->protocol = eth_type_trans(skb, dev); > - mvneta_rx_csum(pp, rx_status, skb); > + skb->ip_summed = mvneta_rx_csum(pp, rx_status); > napi_gro_receive(napi, skb); > > rcvd_pkts++; > @@ -2584,8 +2580,7 @@ static int mvneta_rx_hwbm(struct napi_struct *napi, > skb_put(skb, rx_bytes); > > skb->protocol = eth_type_trans(skb, dev); > - > - mvneta_rx_csum(pp, rx_status, skb); > + skb->ip_summed = mvneta_rx_csum(pp, rx_status); > > napi_gro_receive(napi, skb); > } > diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > index 9bca8c8f9f8d..01f6078bc859 100644 > --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c > @@ -3543,21 +3543,17 @@ static void mvpp2_rx_error(struct mvpp2_port *port, > } > > /* Handle RX checksum offload */ > -static void mvpp2_rx_csum(struct mvpp2_port *port, u32 status, > - struct sk_buff *skb) > +static int mvpp2_rx_csum(struct mvpp2_port *port, u32 status) > { > if (((status & MVPP2_RXD_L3_IP4) && > !(status & MVPP2_RXD_IP4_HEADER_ERR)) || > (status & MVPP2_RXD_L3_IP6)) > if (((status & MVPP2_RXD_L4_UDP) || > (status & MVPP2_RXD_L4_TCP)) && > - (status & MVPP2_RXD_L4_CSUM_OK)) { > - skb->csum = 0; > - skb->ip_summed = CHECKSUM_UNNECESSARY; > - return; > - } > + (status & MVPP2_RXD_L4_CSUM_OK)) > + return CHECKSUM_UNNECESSARY; > > - skb->ip_summed = CHECKSUM_NONE; > + return CHECKSUM_NONE; > } > > /* Allocate a new skb and add it to BM pool */ > @@ -4012,7 +4008,7 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, > > skb_reserve(skb, MVPP2_MH_SIZE + MVPP2_SKB_HEADROOM); > skb_put(skb, rx_bytes); > - mvpp2_rx_csum(port, rx_status, skb); > + skb->ip_summed = mvpp2_rx_csum(port, rx_status); > skb->protocol = eth_type_trans(skb, dev); > > napi_gro_receive(napi, skb); > -- > 2.31.1 >
From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> Date: Tue, 22 Jun 2021 10:22:27 +0200 >> This is a preliminary patch to add hw csum hint support to >> mvneta/mvpp2 xdp implementation >> >> Tested-by: Matteo Croce <mcroce@linux.microsoft.com> >> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> > > Hi Dave and Jakub, > > I have just noticed this patch is marked as "Not Applicable" in patchwork. I > tried to rebase it on top of net-next and it applies and compiles so I am > wondering why it is "not applicable". Am I missing something? It did not apply cleanly for me, please resend. Thank you.
On Jun 22, David Miller wrote: > From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com> > Date: Tue, 22 Jun 2021 10:22:27 +0200 > > >> This is a preliminary patch to add hw csum hint support to > >> mvneta/mvpp2 xdp implementation > >> > >> Tested-by: Matteo Croce <mcroce@linux.microsoft.com> > >> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> > > > > Hi Dave and Jakub, > > > > I have just noticed this patch is marked as "Not Applicable" in patchwork. I > > tried to rebase it on top of net-next and it applies and compiles so I am > > wondering why it is "not applicable". Am I missing something? > > It did not apply cleanly for me, please resend. > > Thank you. > ack, I will post v2 soon. Regards, Lorenzo
diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c index c15ce06427d0..88a755034c39 100644 --- a/drivers/net/ethernet/marvell/mvneta.c +++ b/drivers/net/ethernet/marvell/mvneta.c @@ -1805,18 +1805,14 @@ static void mvneta_rx_error(struct mvneta_port *pp, } /* Handle RX checksum offload based on the descriptor's status */ -static void mvneta_rx_csum(struct mvneta_port *pp, u32 status, - struct sk_buff *skb) +static int mvneta_rx_csum(struct mvneta_port *pp, u32 status) { if ((pp->dev->features & NETIF_F_RXCSUM) && (status & MVNETA_RXD_L3_IP4) && - (status & MVNETA_RXD_L4_CSUM_OK)) { - skb->csum = 0; - skb->ip_summed = CHECKSUM_UNNECESSARY; - return; - } + (status & MVNETA_RXD_L4_CSUM_OK)) + return CHECKSUM_UNNECESSARY; - skb->ip_summed = CHECKSUM_NONE; + return CHECKSUM_NONE; } /* Return tx queue pointer (find last set bit) according to <cause> returned @@ -2335,7 +2331,7 @@ mvneta_swbm_build_skb(struct mvneta_port *pp, struct page_pool *pool, skb_reserve(skb, xdp->data - xdp->data_hard_start); skb_put(skb, xdp->data_end - xdp->data); - mvneta_rx_csum(pp, desc_status, skb); + skb->ip_summed = mvneta_rx_csum(pp, desc_status); for (i = 0; i < num_frags; i++) { skb_frag_t *frag = &sinfo->frags[i]; @@ -2535,7 +2531,7 @@ static int mvneta_rx_hwbm(struct napi_struct *napi, rx_bytes); skb->protocol = eth_type_trans(skb, dev); - mvneta_rx_csum(pp, rx_status, skb); + skb->ip_summed = mvneta_rx_csum(pp, rx_status); napi_gro_receive(napi, skb); rcvd_pkts++; @@ -2584,8 +2580,7 @@ static int mvneta_rx_hwbm(struct napi_struct *napi, skb_put(skb, rx_bytes); skb->protocol = eth_type_trans(skb, dev); - - mvneta_rx_csum(pp, rx_status, skb); + skb->ip_summed = mvneta_rx_csum(pp, rx_status); napi_gro_receive(napi, skb); } diff --git a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c index 9bca8c8f9f8d..01f6078bc859 100644 --- a/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c +++ b/drivers/net/ethernet/marvell/mvpp2/mvpp2_main.c @@ -3543,21 +3543,17 @@ static void mvpp2_rx_error(struct mvpp2_port *port, } /* Handle RX checksum offload */ -static void mvpp2_rx_csum(struct mvpp2_port *port, u32 status, - struct sk_buff *skb) +static int mvpp2_rx_csum(struct mvpp2_port *port, u32 status) { if (((status & MVPP2_RXD_L3_IP4) && !(status & MVPP2_RXD_IP4_HEADER_ERR)) || (status & MVPP2_RXD_L3_IP6)) if (((status & MVPP2_RXD_L4_UDP) || (status & MVPP2_RXD_L4_TCP)) && - (status & MVPP2_RXD_L4_CSUM_OK)) { - skb->csum = 0; - skb->ip_summed = CHECKSUM_UNNECESSARY; - return; - } + (status & MVPP2_RXD_L4_CSUM_OK)) + return CHECKSUM_UNNECESSARY; - skb->ip_summed = CHECKSUM_NONE; + return CHECKSUM_NONE; } /* Allocate a new skb and add it to BM pool */ @@ -4012,7 +4008,7 @@ static int mvpp2_rx(struct mvpp2_port *port, struct napi_struct *napi, skb_reserve(skb, MVPP2_MH_SIZE + MVPP2_SKB_HEADROOM); skb_put(skb, rx_bytes); - mvpp2_rx_csum(port, rx_status, skb); + skb->ip_summed = mvpp2_rx_csum(port, rx_status); skb->protocol = eth_type_trans(skb, dev); napi_gro_receive(napi, skb);