diff options
| author | Oliver Hartkopp <socketcan@hartkopp.net> | 2026-02-01 15:33:18 +0100 |
|---|---|---|
| committer | Paolo Abeni <pabeni@redhat.com> | 2026-02-05 11:58:40 +0100 |
| commit | 5a9229dbb48deb78ee1d20ccbd6453cfbf2a4a61 (patch) | |
| tree | 9921e8909de91efe0823321033ff30f15693d481 /net/can/j1939/socket.c | |
| parent | 96ea3a1e2d317e7ecb6b65dc65c9dd917905a6a8 (diff) | |
| download | linux-next-5a9229dbb48deb78ee1d20ccbd6453cfbf2a4a61.tar.gz linux-next-5a9229dbb48deb78ee1d20ccbd6453cfbf2a4a61.zip | |
can: move ifindex to CAN skb extensions
When routing CAN frames over different CAN interfaces the interface index
skb->iif is overwritten with every single hop. To prevent sending a CAN
frame back to its originating (first) incoming CAN interface another
ifindex variable is needed, which was stored in can_skb_priv::ifindex.
Move the can_skb_priv::ifindex content to can_skb_ext::can_iif.
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: Oliver Hartkopp <socketcan@hartkopp.net>
Link: https://patch.msgid.link/20260201-can_skb_ext-v8-3-3635d790fe8b@hartkopp.net
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'net/can/j1939/socket.c')
| -rw-r--r-- | net/can/j1939/socket.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/can/j1939/socket.c b/net/can/j1939/socket.c index b7fbc6512f16..cc698a6dc363 100644 --- a/net/can/j1939/socket.c +++ b/net/can/j1939/socket.c @@ -905,7 +905,7 @@ static struct sk_buff *j1939_sk_alloc_skb(struct net_device *ndev, } can_skb_reserve(skb); - can_skb_prv(skb)->ifindex = ndev->ifindex; + csx->can_iif = ndev->ifindex; skb_reserve(skb, offsetof(struct can_frame, data)); ret = memcpy_from_msg(skb_put(skb, size), msg, size); |
