diff options
author | Felix Fietkau <nbd@nbd.name> | 2022-05-09 14:26:15 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2022-05-16 12:58:55 +0200 |
commit | cf2df74e202d81b09f09d84c2d8903e0e87e9274 (patch) | |
tree | c9c35f8edca78eae03688115ce9cb5ea9993fdd5 /drivers/net | |
parent | 45ca3e61999e9a30ca2b7cfbf9da8a9f8d13be31 (diff) | |
download | linux-cf2df74e202d81b09f09d84c2d8903e0e87e9274.tar.bz2 |
net: fix dev_fill_forward_path with pppoe + bridge
When calling dev_fill_forward_path on a pppoe device, the provided destination
address is invalid. In order for the bridge fdb lookup to succeed, the pppoe
code needs to update ctx->daddr to the correct value.
Fix this by storing the address inside struct net_device_path_ctx
Fixes: f6efc675c9dd ("net: ppp: resolve forwarding path for bridge pppoe devices")
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/ppp/pppoe.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index 3619520340b7..e172743948ed 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c @@ -988,6 +988,7 @@ static int pppoe_fill_forward_path(struct net_device_path_ctx *ctx, path->encap.proto = htons(ETH_P_PPP_SES); path->encap.id = be16_to_cpu(po->num); memcpy(path->encap.h_dest, po->pppoe_pa.remote, ETH_ALEN); + memcpy(ctx->daddr, po->pppoe_pa.remote, ETH_ALEN); path->dev = ctx->dev; ctx->dev = dev; |