Commit e222dc8d authored by David S. Miller's avatar David S. Miller
Browse files


Steffen Klassert says:

====================
pull request (net-next): ipsec-next 2022-07-20

1) Don't set DST_NOPOLICY in IPv4, a recent patch made this
   superfluous. From Eyal Birger.

2) Convert alg_key to flexible array member to avoid an iproute2
   compile warning when built with gcc-12.
   From Stephen Hemminger.

3) xfrm_register_km and xfrm_unregister_km do always return 0
   so change the type to void. From Zhengchao Shao.

4) Fix spelling mistake in esp6.c
   From Zhang Jiaming.

5) Improve the wording of comment above XFRM_OFFLOAD flags.
   From Petr Vaněk.

Please pull or let me know if there are problems.
====================

Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 7e7125dd 5e25c25a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1077,7 +1077,7 @@ static int vrf_rtable_create(struct net_device *dev)
		return -ENOMEM;

	/* create a dst for routing packets out through a VRF device */
	rth = rt_dst_alloc(dev, 0, RTN_UNICAST, 1, 1);
	rth = rt_dst_alloc(dev, 0, RTN_UNICAST, 1);
	if (!rth)
		return -ENOMEM;

+1 −2
Original line number Diff line number Diff line
@@ -240,8 +240,7 @@ void ip_rt_multicast_event(struct in_device *);
int ip_rt_ioctl(struct net *, unsigned int cmd, struct rtentry *rt);
void ip_rt_get_source(u8 *src, struct sk_buff *skb, struct rtable *rt);
struct rtable *rt_dst_alloc(struct net_device *dev,
			     unsigned int flags, u16 type,
			     bool nopolicy, bool noxfrm);
			    unsigned int flags, u16 type, bool noxfrm);
struct rtable *rt_dst_clone(struct net_device *dev, struct rtable *rt);

struct in_ifaddr;
+2 −2
Original line number Diff line number Diff line
@@ -583,8 +583,8 @@ struct xfrm_mgr {
	bool			(*is_alive)(const struct km_event *c);
};

int xfrm_register_km(struct xfrm_mgr *km);
int xfrm_unregister_km(struct xfrm_mgr *km);
void xfrm_register_km(struct xfrm_mgr *km);
void xfrm_unregister_km(struct xfrm_mgr *km);

struct xfrm_tunnel_skb_cb {
	union {
+6 −6
Original line number Diff line number Diff line
@@ -102,21 +102,21 @@ struct xfrm_replay_state_esn {
struct xfrm_algo {
	char		alg_name[64];
	unsigned int	alg_key_len;    /* in bits */
	char		alg_key[0];
	char		alg_key[];
};

struct xfrm_algo_auth {
	char		alg_name[64];
	unsigned int	alg_key_len;    /* in bits */
	unsigned int	alg_trunc_len;  /* in bits */
	char		alg_key[0];
	char		alg_key[];
};

struct xfrm_algo_aead {
	char		alg_name[64];
	unsigned int	alg_key_len;	/* in bits */
	unsigned int	alg_icv_len;	/* in bits */
	char		alg_key[0];
	char		alg_key[];
};

struct xfrm_stats {
@@ -511,9 +511,9 @@ struct xfrm_user_offload {
	int				ifindex;
	__u8				flags;
};
/* This flag was exposed without any kernel code that supporting it.
 * Unfortunately, strongswan has the code that uses sets this flag,
 * which makes impossible to reuse this bit.
/* This flag was exposed without any kernel code that supports it.
 * Unfortunately, strongswan has the code that sets this flag,
 * which makes it impossible to reuse this bit.
 *
 * So leave it here to make sure that it won't be reused by mistake.
 */
+8 −16
Original line number Diff line number Diff line
@@ -1626,12 +1626,11 @@ static void rt_set_nexthop(struct rtable *rt, __be32 daddr,

struct rtable *rt_dst_alloc(struct net_device *dev,
			    unsigned int flags, u16 type,
			    bool nopolicy, bool noxfrm)
			    bool noxfrm)
{
	struct rtable *rt;

	rt = dst_alloc(&ipv4_dst_ops, dev, 1, DST_OBSOLETE_FORCE_CHK,
		       (nopolicy ? DST_NOPOLICY : 0) |
		       (noxfrm ? DST_NOXFRM : 0));

	if (rt) {
@@ -1726,7 +1725,6 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
	struct in_device *in_dev = __in_dev_get_rcu(dev);
	unsigned int flags = RTCF_MULTICAST;
	struct rtable *rth;
	bool no_policy;
	u32 itag = 0;
	int err;

@@ -1737,12 +1735,11 @@ static int ip_route_input_mc(struct sk_buff *skb, __be32 daddr, __be32 saddr,
	if (our)
		flags |= RTCF_LOCAL;

	no_policy = IN_DEV_ORCONF(in_dev, NOPOLICY);
	if (no_policy)
	if (IN_DEV_ORCONF(in_dev, NOPOLICY))
		IPCB(skb)->flags |= IPSKB_NOPOLICY;

	rth = rt_dst_alloc(dev_net(dev)->loopback_dev, flags, RTN_MULTICAST,
			   no_policy, false);
			   false);
	if (!rth)
		return -ENOBUFS;

@@ -1801,7 +1798,7 @@ static int __mkroute_input(struct sk_buff *skb,
	struct rtable *rth;
	int err;
	struct in_device *out_dev;
	bool do_cache, no_policy;
	bool do_cache;
	u32 itag = 0;

	/* get a working reference to the output device */
@@ -1846,8 +1843,7 @@ static int __mkroute_input(struct sk_buff *skb,
		}
	}

	no_policy = IN_DEV_ORCONF(in_dev, NOPOLICY);
	if (no_policy)
	if (IN_DEV_ORCONF(in_dev, NOPOLICY))
		IPCB(skb)->flags |= IPSKB_NOPOLICY;

	fnhe = find_exception(nhc, daddr);
@@ -1862,7 +1858,7 @@ static int __mkroute_input(struct sk_buff *skb,
		}
	}

	rth = rt_dst_alloc(out_dev->dev, 0, res->type, no_policy,
	rth = rt_dst_alloc(out_dev->dev, 0, res->type,
			   IN_DEV_ORCONF(out_dev, NOXFRM));
	if (!rth) {
		err = -ENOBUFS;
@@ -2237,7 +2233,6 @@ static int ip_route_input_slow(struct sk_buff *skb, __be32 daddr, __be32 saddr,
	struct rtable	*rth;
	struct flowi4	fl4;
	bool do_cache = true;
	bool no_policy;

	/* IP on this device is disabled. */

@@ -2356,8 +2351,7 @@ out: return err;
	RT_CACHE_STAT_INC(in_brd);

local_input:
	no_policy = IN_DEV_ORCONF(in_dev, NOPOLICY);
	if (no_policy)
	if (IN_DEV_ORCONF(in_dev, NOPOLICY))
		IPCB(skb)->flags |= IPSKB_NOPOLICY;

	do_cache &= res->fi && !itag;
@@ -2373,8 +2367,7 @@ out: return err;
	}

	rth = rt_dst_alloc(ip_rt_get_dev(net, res),
			   flags | RTCF_LOCAL, res->type,
			   no_policy, false);
			   flags | RTCF_LOCAL, res->type, false);
	if (!rth)
		goto e_nobufs;

@@ -2597,7 +2590,6 @@ static struct rtable *__mkroute_output(const struct fib_result *res,

add:
	rth = rt_dst_alloc(dev_out, flags, type,
			   IN_DEV_ORCONF(in_dev, NOPOLICY),
			   IN_DEV_ORCONF(in_dev, NOXFRM));
	if (!rth)
		return ERR_PTR(-ENOBUFS);
Loading