summaryrefslogtreecommitdiff
path: root/net/can/j1939/socket.c
diff options
context:
space:
mode:
authorOliver Hartkopp <socketcan@hartkopp.net>2026-02-01 15:33:18 +0100
committerPaolo Abeni <pabeni@redhat.com>2026-02-05 11:58:40 +0100
commit5a9229dbb48deb78ee1d20ccbd6453cfbf2a4a61 (patch)
tree9921e8909de91efe0823321033ff30f15693d481 /net/can/j1939/socket.c
parent96ea3a1e2d317e7ecb6b65dc65c9dd917905a6a8 (diff)
downloadlinux-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.c2
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);