Merge tag 'x86-asm-2024-03-11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
[linux-2.6-block.git] / net / xfrm / xfrm_output.c
index 662c83beb345ed2037d146c976180b1b62c26794..e5722c95b8bb38c528cc518cdc3a05e08a338264 100644 (file)
@@ -704,9 +704,13 @@ int xfrm_output(struct sock *sk, struct sk_buff *skb)
 {
        struct net *net = dev_net(skb_dst(skb)->dev);
        struct xfrm_state *x = skb_dst(skb)->xfrm;
+       int family;
        int err;
 
-       switch (x->outer_mode.family) {
+       family = (x->xso.type != XFRM_DEV_OFFLOAD_PACKET) ? x->outer_mode.family
+               : skb_dst(skb)->ops->family;
+
+       switch (family) {
        case AF_INET:
                memset(IPCB(skb), 0, sizeof(*IPCB(skb)));
                IPCB(skb)->flags |= IPSKB_XFRM_TRANSFORMED;