* [Patch net] mlx5: fix get_ip_proto()
@ 2018-11-28 23:04 Cong Wang
2018-11-29 13:13 ` Tariq Toukan
2018-12-01 1:20 ` David Miller
0 siblings, 2 replies; 4+ messages in thread
From: Cong Wang @ 2018-11-28 23:04 UTC (permalink / raw)
To: netdev; +Cc: Cong Wang, Alaa Hleihel, Or Gerlitz, Saeed Mahameed
IP header is not necessarily located right after struct ethhdr,
there could be multiple 802.1Q headers in between, this is why
we call __vlan_get_protocol().
Fixes: fe1dc069990c ("net/mlx5e: don't set CHECKSUM_COMPLETE on SCTP packets")
Cc: Alaa Hleihel <alaa@mellanox.com>
Cc: Or Gerlitz <ogerlitz@mellanox.com>
Cc: Saeed Mahameed <saeedm@mellanox.com>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
---
drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
index 9b6bd2b51556..f7c5dbb0ffcd 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
@@ -724,9 +724,9 @@ static u32 mlx5e_get_fcs(const struct sk_buff *skb)
return __get_unaligned_cpu32(fcs_bytes);
}
-static u8 get_ip_proto(struct sk_buff *skb, __be16 proto)
+static u8 get_ip_proto(struct sk_buff *skb, int network_depth, __be16 proto)
{
- void *ip_p = skb->data + sizeof(struct ethhdr);
+ void *ip_p = skb->data + network_depth;
return (proto == htons(ETH_P_IP)) ? ((struct iphdr *)ip_p)->protocol :
((struct ipv6hdr *)ip_p)->nexthdr;
@@ -786,7 +786,7 @@ static inline void mlx5e_handle_csum(struct net_device *netdev,
goto csum_unnecessary;
if (likely(is_last_ethertype_ip(skb, &network_depth, &proto))) {
- if (unlikely(get_ip_proto(skb, proto) == IPPROTO_SCTP))
+ if (unlikely(get_ip_proto(skb, network_depth, proto) == IPPROTO_SCTP))
goto csum_unnecessary;
skb->ip_summed = CHECKSUM_COMPLETE;
--
2.19.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [Patch net] mlx5: fix get_ip_proto()
2018-11-28 23:04 [Patch net] mlx5: fix get_ip_proto() Cong Wang
@ 2018-11-29 13:13 ` Tariq Toukan
2018-11-29 23:58 ` Saeed Mahameed
2018-12-01 1:20 ` David Miller
1 sibling, 1 reply; 4+ messages in thread
From: Tariq Toukan @ 2018-11-29 13:13 UTC (permalink / raw)
To: Cong Wang, netdev@vger.kernel.org
Cc: Alaa Hleihel, Or Gerlitz, Saeed Mahameed
On 29/11/2018 1:04 AM, Cong Wang wrote:
> IP header is not necessarily located right after struct ethhdr,
> there could be multiple 802.1Q headers in between, this is why
> we call __vlan_get_protocol().
>
> Fixes: fe1dc069990c ("net/mlx5e: don't set CHECKSUM_COMPLETE on SCTP packets")
> Cc: Alaa Hleihel <alaa@mellanox.com>
> Cc: Or Gerlitz <ogerlitz@mellanox.com>
> Cc: Saeed Mahameed <saeedm@mellanox.com>
> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
> ---
> drivers/net/ethernet/mellanox/mlx5/core/en_rx.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
> index 9b6bd2b51556..f7c5dbb0ffcd 100644
> --- a/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
> +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_rx.c
> @@ -724,9 +724,9 @@ static u32 mlx5e_get_fcs(const struct sk_buff *skb)
> return __get_unaligned_cpu32(fcs_bytes);
> }
>
> -static u8 get_ip_proto(struct sk_buff *skb, __be16 proto)
> +static u8 get_ip_proto(struct sk_buff *skb, int network_depth, __be16 proto)
> {
> - void *ip_p = skb->data + sizeof(struct ethhdr);
> + void *ip_p = skb->data + network_depth;
>
> return (proto == htons(ETH_P_IP)) ? ((struct iphdr *)ip_p)->protocol :
> ((struct ipv6hdr *)ip_p)->nexthdr;
> @@ -786,7 +786,7 @@ static inline void mlx5e_handle_csum(struct net_device *netdev,
> goto csum_unnecessary;
>
> if (likely(is_last_ethertype_ip(skb, &network_depth, &proto))) {
> - if (unlikely(get_ip_proto(skb, proto) == IPPROTO_SCTP))
> + if (unlikely(get_ip_proto(skb, network_depth, proto) == IPPROTO_SCTP))
> goto csum_unnecessary;
>
> skb->ip_summed = CHECKSUM_COMPLETE;
>
LGTM. Thanks for you patch, Cong.
Reviewed-by: Tariq Toukan <tariqt@mellanox.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Patch net] mlx5: fix get_ip_proto()
2018-11-29 13:13 ` Tariq Toukan
@ 2018-11-29 23:58 ` Saeed Mahameed
0 siblings, 0 replies; 4+ messages in thread
From: Saeed Mahameed @ 2018-11-29 23:58 UTC (permalink / raw)
To: Tariq Toukan
Cc: Cong Wang, Linux Netdev List, alaa, Or Gerlitz, Saeed Mahameed
On Thu, Nov 29, 2018 at 5:13 AM Tariq Toukan <tariqt@mellanox.com> wrote:
>
>
>
> On 29/11/2018 1:04 AM, Cong Wang wrote:
> > IP header is not necessarily located right after struct ethhdr,
> > there could be multiple 802.1Q headers in between, this is why
> > we call __vlan_get_protocol().
> >
> > Fixes: fe1dc069990c ("net/mlx5e: don't set CHECKSUM_COMPLETE on SCTP packets")
> > Cc: Alaa Hleihel <alaa@mellanox.com>
> > Cc: Or Gerlitz <ogerlitz@mellanox.com>
> > Cc: Saeed Mahameed <saeedm@mellanox.com>
> > Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Acked-by: Saeed Mahameed <saeedm@mellanox.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [Patch net] mlx5: fix get_ip_proto()
2018-11-28 23:04 [Patch net] mlx5: fix get_ip_proto() Cong Wang
2018-11-29 13:13 ` Tariq Toukan
@ 2018-12-01 1:20 ` David Miller
1 sibling, 0 replies; 4+ messages in thread
From: David Miller @ 2018-12-01 1:20 UTC (permalink / raw)
To: xiyou.wangcong; +Cc: netdev, alaa, ogerlitz, saeedm
From: Cong Wang <xiyou.wangcong@gmail.com>
Date: Wed, 28 Nov 2018 15:04:05 -0800
> IP header is not necessarily located right after struct ethhdr,
> there could be multiple 802.1Q headers in between, this is why
> we call __vlan_get_protocol().
>
> Fixes: fe1dc069990c ("net/mlx5e: don't set CHECKSUM_COMPLETE on SCTP packets")
> Cc: Alaa Hleihel <alaa@mellanox.com>
> Cc: Or Gerlitz <ogerlitz@mellanox.com>
> Cc: Saeed Mahameed <saeedm@mellanox.com>
> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Applied.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2018-12-01 12:31 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-11-28 23:04 [Patch net] mlx5: fix get_ip_proto() Cong Wang
2018-11-29 13:13 ` Tariq Toukan
2018-11-29 23:58 ` Saeed Mahameed
2018-12-01 1:20 ` David Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).