diff options
author | Moshe Tal <moshet@nvidia.com> | 2022-01-16 19:39:29 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2022-01-16 23:38:59 +0000 |
commit | 429e3d123d9a50cc9882402e40e0ac912d88cfcf (patch) | |
tree | 5e0c19aedb3f7560454717d2fff448b12187e735 | |
parent | 56d99e81ecbc997a5f984684d0eeb583992b2072 (diff) | |
download | linux-stable-429e3d123d9a50cc9882402e40e0ac912d88cfcf.tar.gz linux-stable-429e3d123d9a50cc9882402e40e0ac912d88cfcf.tar.bz2 linux-stable-429e3d123d9a50cc9882402e40e0ac912d88cfcf.zip |
bonding: Fix extraction of ports from the packet headers
Wrong hash sends single stream to multiple output interfaces.
The offset calculation was relative to skb->head, fix it to be relative
to skb->data.
Fixes: a815bde56b15 ("net, bonding: Refactor bond_xmit_hash for use with
xdp_buff")
Reviewed-by: Jussi Maki <joamaki@gmail.com>
Reviewed-by: Saeed Mahameed <saeedm@nvidia.com>
Reviewed-by: Gal Pressman <gal@nvidia.com>
Signed-off-by: Moshe Tal <moshet@nvidia.com>
Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | drivers/net/bonding/bond_main.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c index fce80b57f15b..ec498ce70f35 100644 --- a/drivers/net/bonding/bond_main.c +++ b/drivers/net/bonding/bond_main.c @@ -3874,8 +3874,8 @@ u32 bond_xmit_hash(struct bonding *bond, struct sk_buff *skb) skb->l4_hash) return skb->hash; - return __bond_xmit_hash(bond, skb, skb->head, skb->protocol, - skb->mac_header, skb->network_header, + return __bond_xmit_hash(bond, skb, skb->data, skb->protocol, + skb_mac_offset(skb), skb_network_offset(skb), skb_headlen(skb)); } |