diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/backing-dev.h | 11 | ||||
| -rw-r--r-- | include/linux/cgroup-defs.h | 27 | ||||
| -rw-r--r-- | include/linux/init_task.h | 8 | ||||
| -rw-r--r-- | include/linux/netdevice.h | 1 | ||||
| -rw-r--r-- | include/linux/phy.h | 6 | ||||
| -rw-r--r-- | include/linux/sched.h | 12 | ||||
| -rw-r--r-- | include/linux/security.h | 2 | ||||
| -rw-r--r-- | include/linux/skbuff.h | 9 | ||||
| -rw-r--r-- | include/linux/spi/spi.h | 2 | ||||
| -rw-r--r-- | include/linux/sunrpc/xprtsock.h | 3 | ||||
| -rw-r--r-- | include/linux/thermal.h | 8 | ||||
| -rw-r--r-- | include/linux/wait.h | 5 | ||||
| -rw-r--r-- | include/net/flow.h | 1 | ||||
| -rw-r--r-- | include/net/inet_timewait_sock.h | 14 | ||||
| -rw-r--r-- | include/net/ip6_fib.h | 3 | ||||
| -rw-r--r-- | include/net/ip6_tunnel.h | 17 | ||||
| -rw-r--r-- | include/net/ip_fib.h | 30 | ||||
| -rw-r--r-- | include/net/ip_tunnels.h | 2 | ||||
| -rw-r--r-- | include/net/route.h | 2 | ||||
| -rw-r--r-- | include/target/target_core_base.h | 1 | ||||
| -rw-r--r-- | include/uapi/asm-generic/unistd.h | 8 | ||||
| -rw-r--r-- | include/uapi/linux/lwtunnel.h | 4 | 
22 files changed, 113 insertions, 63 deletions
diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h index 5a5d79ee256f..d5eb4ad1c534 100644 --- a/include/linux/backing-dev.h +++ b/include/linux/backing-dev.h @@ -13,6 +13,7 @@  #include <linux/sched.h>  #include <linux/blkdev.h>  #include <linux/writeback.h> +#include <linux/memcontrol.h>  #include <linux/blk-cgroup.h>  #include <linux/backing-dev-defs.h>  #include <linux/slab.h> @@ -252,13 +253,19 @@ int inode_congested(struct inode *inode, int cong_bits);   * @inode: inode of interest   *   * cgroup writeback requires support from both the bdi and filesystem. - * Test whether @inode has both. + * Also, both memcg and iocg have to be on the default hierarchy.  Test + * whether all conditions are met. + * + * Note that the test result may change dynamically on the same inode + * depending on how memcg and iocg are configured.   */  static inline bool inode_cgwb_enabled(struct inode *inode)  {  	struct backing_dev_info *bdi = inode_to_bdi(inode); -	return bdi_cap_account_dirty(bdi) && +	return cgroup_on_dfl(mem_cgroup_root_css->cgroup) && +		cgroup_on_dfl(blkcg_root_css->cgroup) && +		bdi_cap_account_dirty(bdi) &&  		(bdi->capabilities & BDI_CAP_CGROUP_WRITEBACK) &&  		(inode->i_sb->s_iflags & SB_I_CGROUPWB);  } diff --git a/include/linux/cgroup-defs.h b/include/linux/cgroup-defs.h index 4d8fcf2187dc..8492721b39be 100644 --- a/include/linux/cgroup-defs.h +++ b/include/linux/cgroup-defs.h @@ -473,31 +473,8 @@ struct cgroup_subsys {  	unsigned int depends_on;  }; -extern struct percpu_rw_semaphore cgroup_threadgroup_rwsem; - -/** - * cgroup_threadgroup_change_begin - threadgroup exclusion for cgroups - * @tsk: target task - * - * Called from threadgroup_change_begin() and allows cgroup operations to - * synchronize against threadgroup changes using a percpu_rw_semaphore. - */ -static inline void cgroup_threadgroup_change_begin(struct task_struct *tsk) -{ -	percpu_down_read(&cgroup_threadgroup_rwsem); -} - -/** - * cgroup_threadgroup_change_end - threadgroup exclusion for cgroups - * @tsk: target task - * - * Called from threadgroup_change_end().  Counterpart of - * cgroup_threadcgroup_change_begin(). - */ -static inline void cgroup_threadgroup_change_end(struct task_struct *tsk) -{ -	percpu_up_read(&cgroup_threadgroup_rwsem); -} +void cgroup_threadgroup_change_begin(struct task_struct *tsk); +void cgroup_threadgroup_change_end(struct task_struct *tsk);  #else	/* CONFIG_CGROUPS */ diff --git a/include/linux/init_task.h b/include/linux/init_task.h index d0b380ee7d67..e38681f4912d 100644 --- a/include/linux/init_task.h +++ b/include/linux/init_task.h @@ -25,6 +25,13 @@  extern struct files_struct init_files;  extern struct fs_struct init_fs; +#ifdef CONFIG_CGROUPS +#define INIT_GROUP_RWSEM(sig)						\ +	.group_rwsem = __RWSEM_INITIALIZER(sig.group_rwsem), +#else +#define INIT_GROUP_RWSEM(sig) +#endif +  #ifdef CONFIG_CPUSETS  #define INIT_CPUSET_SEQ(tsk)							\  	.mems_allowed_seq = SEQCNT_ZERO(tsk.mems_allowed_seq), @@ -57,6 +64,7 @@ extern struct fs_struct init_fs;  	INIT_PREV_CPUTIME(sig)						\  	.cred_guard_mutex =						\  		 __MUTEX_INITIALIZER(sig.cred_guard_mutex),		\ +	INIT_GROUP_RWSEM(sig)						\  }  extern struct nsproxy init_nsproxy; diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 88a00694eda5..2d15e3831440 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h @@ -507,6 +507,7 @@ static inline void napi_enable(struct napi_struct *n)  	BUG_ON(!test_bit(NAPI_STATE_SCHED, &n->state));  	smp_mb__before_atomic();  	clear_bit(NAPI_STATE_SCHED, &n->state); +	clear_bit(NAPI_STATE_NPSVC, &n->state);  }  #ifdef CONFIG_SMP diff --git a/include/linux/phy.h b/include/linux/phy.h index 962387a192f1..4a4e3a092337 100644 --- a/include/linux/phy.h +++ b/include/linux/phy.h @@ -19,6 +19,7 @@  #include <linux/spinlock.h>  #include <linux/ethtool.h>  #include <linux/mii.h> +#include <linux/module.h>  #include <linux/timer.h>  #include <linux/workqueue.h>  #include <linux/mod_devicetable.h> @@ -153,6 +154,7 @@ struct sk_buff;   * PHYs should register using this structure   */  struct mii_bus { +	struct module *owner;  	const char *name;  	char id[MII_BUS_ID_SIZE];  	void *priv; @@ -198,7 +200,8 @@ static inline struct mii_bus *mdiobus_alloc(void)  	return mdiobus_alloc_size(0);  } -int mdiobus_register(struct mii_bus *bus); +int __mdiobus_register(struct mii_bus *bus, struct module *owner); +#define mdiobus_register(bus) __mdiobus_register(bus, THIS_MODULE)  void mdiobus_unregister(struct mii_bus *bus);  void mdiobus_free(struct mii_bus *bus);  struct mii_bus *devm_mdiobus_alloc_size(struct device *dev, int sizeof_priv); @@ -742,6 +745,7 @@ struct phy_device *phy_device_create(struct mii_bus *bus, int addr, int phy_id,  				     struct phy_c45_device_ids *c45_ids);  struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45);  int phy_device_register(struct phy_device *phy); +void phy_device_remove(struct phy_device *phydev);  int phy_init_hw(struct phy_device *phydev);  int phy_suspend(struct phy_device *phydev);  int phy_resume(struct phy_device *phydev); diff --git a/include/linux/sched.h b/include/linux/sched.h index a4ab9daa387c..b7b9501b41af 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h @@ -762,6 +762,18 @@ struct signal_struct {  	unsigned audit_tty_log_passwd;  	struct tty_audit_buf *tty_audit_buf;  #endif +#ifdef CONFIG_CGROUPS +	/* +	 * group_rwsem prevents new tasks from entering the threadgroup and +	 * member tasks from exiting,a more specifically, setting of +	 * PF_EXITING.  fork and exit paths are protected with this rwsem +	 * using threadgroup_change_begin/end().  Users which require +	 * threadgroup to remain stable should use threadgroup_[un]lock() +	 * which also takes care of exec path.  Currently, cgroup is the +	 * only user. +	 */ +	struct rw_semaphore group_rwsem; +#endif  	oom_flags_t oom_flags;  	short oom_score_adj;		/* OOM kill score adjustment */ diff --git a/include/linux/security.h b/include/linux/security.h index 79d85ddf8093..2f4c1f7aa7db 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -946,7 +946,7 @@ static inline int security_task_prctl(int option, unsigned long arg2,  				      unsigned long arg4,  				      unsigned long arg5)  { -	return cap_task_prctl(option, arg2, arg3, arg3, arg5); +	return cap_task_prctl(option, arg2, arg3, arg4, arg5);  }  static inline void security_task_to_inode(struct task_struct *p, struct inode *inode) diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h index 2738d355cdf9..2b0a30a6e31c 100644 --- a/include/linux/skbuff.h +++ b/include/linux/skbuff.h @@ -179,6 +179,9 @@ struct nf_bridge_info {  	u8			bridged_dnat:1;  	__u16			frag_max_size;  	struct net_device	*physindev; + +	/* always valid & non-NULL from FORWARD on, for physdev match */ +	struct net_device	*physoutdev;  	union {  		/* prerouting: detect dnat in orig/reply direction */  		__be32          ipv4_daddr; @@ -189,9 +192,6 @@ struct nf_bridge_info {  		 * skb is out in neigh layer.  		 */  		char neigh_header[8]; - -		/* always valid & non-NULL from FORWARD on, for physdev match */ -		struct net_device *physoutdev;  	};  };  #endif @@ -2707,6 +2707,9 @@ static inline void skb_postpull_rcsum(struct sk_buff *skb,  {  	if (skb->ip_summed == CHECKSUM_COMPLETE)  		skb->csum = csum_sub(skb->csum, csum_partial(start, len, 0)); +	else if (skb->ip_summed == CHECKSUM_PARTIAL && +		 skb_checksum_start_offset(skb) <= len) +		skb->ip_summed = CHECKSUM_NONE;  }  unsigned char *skb_pull_rcsum(struct sk_buff *skb, unsigned int len); diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index 269e8afd3e2a..6b00f18f5e6b 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -34,7 +34,7 @@ extern struct bus_type spi_bus_type;  /**   * struct spi_statistics - statistics for spi transfers - * @clock:         lock protecting this structure + * @lock:          lock protecting this structure   *   * @messages:      number of spi-messages handled   * @transfers:     number of spi_transfers handled diff --git a/include/linux/sunrpc/xprtsock.h b/include/linux/sunrpc/xprtsock.h index 7591788e9fbf..357e44c1a46b 100644 --- a/include/linux/sunrpc/xprtsock.h +++ b/include/linux/sunrpc/xprtsock.h @@ -42,6 +42,7 @@ struct sock_xprt {  	/*  	 * Connection of transports  	 */ +	unsigned long		sock_state;  	struct delayed_work	connect_worker;  	struct sockaddr_storage	srcaddr;  	unsigned short		srcport; @@ -76,6 +77,8 @@ struct sock_xprt {   */  #define TCP_RPC_REPLY		(1UL << 6) +#define XPRT_SOCK_CONNECTING	1U +  #endif /* __KERNEL__ */  #endif /* _LINUX_SUNRPC_XPRTSOCK_H */ diff --git a/include/linux/thermal.h b/include/linux/thermal.h index 17292fee8686..157d366e761b 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -360,7 +360,7 @@ static inline struct thermal_zone_device *  thermal_zone_of_sensor_register(struct device *dev, int id, void *data,  				const struct thermal_zone_of_device_ops *ops)  { -	return NULL; +	return ERR_PTR(-ENODEV);  }  static inline @@ -380,6 +380,8 @@ static inline bool cdev_is_power_actor(struct thermal_cooling_device *cdev)  int power_actor_get_max_power(struct thermal_cooling_device *,  			      struct thermal_zone_device *tz, u32 *max_power); +int power_actor_get_min_power(struct thermal_cooling_device *, +			      struct thermal_zone_device *tz, u32 *min_power);  int power_actor_set_power(struct thermal_cooling_device *,  			  struct thermal_instance *, u32);  struct thermal_zone_device *thermal_zone_device_register(const char *, int, int, @@ -415,6 +417,10 @@ static inline bool cdev_is_power_actor(struct thermal_cooling_device *cdev)  static inline int power_actor_get_max_power(struct thermal_cooling_device *cdev,  			      struct thermal_zone_device *tz, u32 *max_power)  { return 0; } +static inline int power_actor_get_min_power(struct thermal_cooling_device *cdev, +					    struct thermal_zone_device *tz, +					    u32 *min_power) +{ return -ENODEV; }  static inline int power_actor_set_power(struct thermal_cooling_device *cdev,  			  struct thermal_instance *tz, u32 power)  { return 0; } diff --git a/include/linux/wait.h b/include/linux/wait.h index d3d077228d4c..1e1bf9f963a9 100644 --- a/include/linux/wait.h +++ b/include/linux/wait.h @@ -147,8 +147,7 @@ __remove_wait_queue(wait_queue_head_t *head, wait_queue_t *old)  typedef int wait_bit_action_f(struct wait_bit_key *);  void __wake_up(wait_queue_head_t *q, unsigned int mode, int nr, void *key); -void __wake_up_locked_key(wait_queue_head_t *q, unsigned int mode, int nr, -			  void *key); +void __wake_up_locked_key(wait_queue_head_t *q, unsigned int mode, void *key);  void __wake_up_sync_key(wait_queue_head_t *q, unsigned int mode, int nr, void *key);  void __wake_up_locked(wait_queue_head_t *q, unsigned int mode, int nr);  void __wake_up_sync(wait_queue_head_t *q, unsigned int mode, int nr); @@ -180,7 +179,7 @@ wait_queue_head_t *bit_waitqueue(void *, int);  #define wake_up_poll(x, m)						\  	__wake_up(x, TASK_NORMAL, 1, (void *) (m))  #define wake_up_locked_poll(x, m)					\ -	__wake_up_locked_key((x), TASK_NORMAL, 1, (void *) (m)) +	__wake_up_locked_key((x), TASK_NORMAL, (void *) (m))  #define wake_up_interruptible_poll(x, m)				\  	__wake_up(x, TASK_INTERRUPTIBLE, 1, (void *) (m))  #define wake_up_interruptible_sync_poll(x, m)				\ diff --git a/include/net/flow.h b/include/net/flow.h index acd6a096250e..9b85db85f13c 100644 --- a/include/net/flow.h +++ b/include/net/flow.h @@ -35,6 +35,7 @@ struct flowi_common {  #define FLOWI_FLAG_ANYSRC		0x01  #define FLOWI_FLAG_KNOWN_NH		0x02  #define FLOWI_FLAG_VRFSRC		0x04 +#define FLOWI_FLAG_SKIP_NH_OIF		0x08  	__u32	flowic_secid;  	struct flowi_tunnel flowic_tun_key;  }; diff --git a/include/net/inet_timewait_sock.h b/include/net/inet_timewait_sock.h index 879d6e5a973b..186f3a1e1b1f 100644 --- a/include/net/inet_timewait_sock.h +++ b/include/net/inet_timewait_sock.h @@ -110,7 +110,19 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,  void __inet_twsk_hashdance(struct inet_timewait_sock *tw, struct sock *sk,  			   struct inet_hashinfo *hashinfo); -void inet_twsk_schedule(struct inet_timewait_sock *tw, const int timeo); +void __inet_twsk_schedule(struct inet_timewait_sock *tw, int timeo, +			  bool rearm); + +static void inline inet_twsk_schedule(struct inet_timewait_sock *tw, int timeo) +{ +	__inet_twsk_schedule(tw, timeo, false); +} + +static void inline inet_twsk_reschedule(struct inet_timewait_sock *tw, int timeo) +{ +	__inet_twsk_schedule(tw, timeo, true); +} +  void inet_twsk_deschedule_put(struct inet_timewait_sock *tw);  void inet_twsk_purge(struct inet_hashinfo *hashinfo, diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h index 063d30474cf6..aaf9700fc9e5 100644 --- a/include/net/ip6_fib.h +++ b/include/net/ip6_fib.h @@ -275,7 +275,8 @@ int fib6_add(struct fib6_node *root, struct rt6_info *rt,  	     struct nl_info *info, struct mx6_config *mxc);  int fib6_del(struct rt6_info *rt, struct nl_info *info); -void inet6_rt_notify(int event, struct rt6_info *rt, struct nl_info *info); +void inet6_rt_notify(int event, struct rt6_info *rt, struct nl_info *info, +		     unsigned int flags);  void fib6_run_gc(unsigned long expires, struct net *net, bool force); diff --git a/include/net/ip6_tunnel.h b/include/net/ip6_tunnel.h index b8529aa1dae7..fa915fa0f703 100644 --- a/include/net/ip6_tunnel.h +++ b/include/net/ip6_tunnel.h @@ -32,6 +32,12 @@ struct __ip6_tnl_parm {  	__be32			o_key;  }; +struct ip6_tnl_dst { +	seqlock_t lock; +	struct dst_entry __rcu *dst; +	u32 cookie; +}; +  /* IPv6 tunnel */  struct ip6_tnl {  	struct ip6_tnl __rcu *next;	/* next tunnel in list */ @@ -39,8 +45,7 @@ struct ip6_tnl {  	struct net *net;	/* netns for packet i/o */  	struct __ip6_tnl_parm parms;	/* tunnel configuration parameters */  	struct flowi fl;	/* flowi template for xmit */ -	struct dst_entry *dst_cache;    /* cached dst */ -	u32 dst_cookie; +	struct ip6_tnl_dst __percpu *dst_cache;	/* cached dst */  	int err_count;  	unsigned long err_time; @@ -60,9 +65,11 @@ struct ipv6_tlv_tnl_enc_lim {  	__u8 encap_limit;	/* tunnel encapsulation limit   */  } __packed; -struct dst_entry *ip6_tnl_dst_check(struct ip6_tnl *t); +struct dst_entry *ip6_tnl_dst_get(struct ip6_tnl *t); +int ip6_tnl_dst_init(struct ip6_tnl *t); +void ip6_tnl_dst_destroy(struct ip6_tnl *t);  void ip6_tnl_dst_reset(struct ip6_tnl *t); -void ip6_tnl_dst_store(struct ip6_tnl *t, struct dst_entry *dst); +void ip6_tnl_dst_set(struct ip6_tnl *t, struct dst_entry *dst);  int ip6_tnl_rcv_ctl(struct ip6_tnl *t, const struct in6_addr *laddr,  		const struct in6_addr *raddr);  int ip6_tnl_xmit_ctl(struct ip6_tnl *t, const struct in6_addr *laddr, @@ -79,7 +86,7 @@ static inline void ip6tunnel_xmit(struct sock *sk, struct sk_buff *skb,  	struct net_device_stats *stats = &dev->stats;  	int pkt_len, err; -	pkt_len = skb->len; +	pkt_len = skb->len - skb_inner_network_offset(skb);  	err = ip6_local_out_sk(sk, skb);  	if (net_xmit_eval(err) == 0) { diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h index a37d0432bebd..727d6e9a9685 100644 --- a/include/net/ip_fib.h +++ b/include/net/ip_fib.h @@ -236,8 +236,11 @@ static inline int fib_lookup(struct net *net, const struct flowi4 *flp,  	rcu_read_lock();  	tb = fib_get_table(net, RT_TABLE_MAIN); -	if (tb && !fib_table_lookup(tb, flp, res, flags | FIB_LOOKUP_NOREF)) -		err = 0; +	if (tb) +		err = fib_table_lookup(tb, flp, res, flags | FIB_LOOKUP_NOREF); + +	if (err == -EAGAIN) +		err = -ENETUNREACH;  	rcu_read_unlock(); @@ -258,7 +261,7 @@ static inline int fib_lookup(struct net *net, struct flowi4 *flp,  			     struct fib_result *res, unsigned int flags)  {  	struct fib_table *tb; -	int err; +	int err = -ENETUNREACH;  	flags |= FIB_LOOKUP_NOREF;  	if (net->ipv4.fib_has_custom_rules) @@ -268,15 +271,20 @@ static inline int fib_lookup(struct net *net, struct flowi4 *flp,  	res->tclassid = 0; -	for (err = 0; !err; err = -ENETUNREACH) { -		tb = rcu_dereference_rtnl(net->ipv4.fib_main); -		if (tb && !fib_table_lookup(tb, flp, res, flags)) -			break; +	tb = rcu_dereference_rtnl(net->ipv4.fib_main); +	if (tb) +		err = fib_table_lookup(tb, flp, res, flags); + +	if (!err) +		goto out; + +	tb = rcu_dereference_rtnl(net->ipv4.fib_default); +	if (tb) +		err = fib_table_lookup(tb, flp, res, flags); -		tb = rcu_dereference_rtnl(net->ipv4.fib_default); -		if (tb && !fib_table_lookup(tb, flp, res, flags)) -			break; -	} +out: +	if (err == -EAGAIN) +		err = -ENETUNREACH;  	rcu_read_unlock(); diff --git a/include/net/ip_tunnels.h b/include/net/ip_tunnels.h index 9a6a3ba888e8..f6dafec9102c 100644 --- a/include/net/ip_tunnels.h +++ b/include/net/ip_tunnels.h @@ -276,6 +276,8 @@ int iptunnel_pull_header(struct sk_buff *skb, int hdr_len, __be16 inner_proto);  int iptunnel_xmit(struct sock *sk, struct rtable *rt, struct sk_buff *skb,  		  __be32 src, __be32 dst, u8 proto,  		  u8 tos, u8 ttl, __be16 df, bool xnet); +struct metadata_dst *iptunnel_metadata_reply(struct metadata_dst *md, +					     gfp_t flags);  struct sk_buff *iptunnel_handle_offloads(struct sk_buff *skb, bool gre_csum,  					 int gso_type_mask); diff --git a/include/net/route.h b/include/net/route.h index cc61cb95f059..f46af256880c 100644 --- a/include/net/route.h +++ b/include/net/route.h @@ -255,7 +255,7 @@ static inline void ip_route_connect_init(struct flowi4 *fl4, __be32 dst, __be32  		flow_flags |= FLOWI_FLAG_ANYSRC;  	if (netif_index_is_vrf(sock_net(sk), oif)) -		flow_flags |= FLOWI_FLAG_VRFSRC; +		flow_flags |= FLOWI_FLAG_VRFSRC | FLOWI_FLAG_SKIP_NH_OIF;  	flowi4_init_output(fl4, oif, sk->sk_mark, tos, RT_SCOPE_UNIVERSE,  			   protocol, flow_flags, dst, src, dport, sport); diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h index ac9bf1c0e42d..5f48754dc36a 100644 --- a/include/target/target_core_base.h +++ b/include/target/target_core_base.h @@ -730,6 +730,7 @@ struct se_device {  #define DF_EMULATED_VPD_UNIT_SERIAL		0x00000004  #define DF_USING_UDEV_PATH			0x00000008  #define DF_USING_ALIAS				0x00000010 +#define DF_READ_ONLY				0x00000020  	/* Physical device queue depth */  	u32			queue_depth;  	/* Used for SPC-2 reservations enforce of ISIDs */ diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h index 8da542a2874d..ee124009e12a 100644 --- a/include/uapi/asm-generic/unistd.h +++ b/include/uapi/asm-generic/unistd.h @@ -709,17 +709,19 @@ __SYSCALL(__NR_memfd_create, sys_memfd_create)  __SYSCALL(__NR_bpf, sys_bpf)  #define __NR_execveat 281  __SC_COMP(__NR_execveat, sys_execveat, compat_sys_execveat) -#define __NR_membarrier 282 +#define __NR_userfaultfd 282 +__SYSCALL(__NR_userfaultfd, sys_userfaultfd) +#define __NR_membarrier 283  __SYSCALL(__NR_membarrier, sys_membarrier)  #undef __NR_syscalls -#define __NR_syscalls 283 +#define __NR_syscalls 284  /*   * All syscalls below here should go away really,   * these are provided for both review and as a porting   * help for the C library version. -* + *   * Last chance: are any of these important enough to   * enable by default?   */ diff --git a/include/uapi/linux/lwtunnel.h b/include/uapi/linux/lwtunnel.h index 34141a5dfe74..f8b01887a495 100644 --- a/include/uapi/linux/lwtunnel.h +++ b/include/uapi/linux/lwtunnel.h @@ -21,8 +21,6 @@ enum lwtunnel_ip_t {  	LWTUNNEL_IP_SRC,  	LWTUNNEL_IP_TTL,  	LWTUNNEL_IP_TOS, -	LWTUNNEL_IP_SPORT, -	LWTUNNEL_IP_DPORT,  	LWTUNNEL_IP_FLAGS,  	__LWTUNNEL_IP_MAX,  }; @@ -36,8 +34,6 @@ enum lwtunnel_ip6_t {  	LWTUNNEL_IP6_SRC,  	LWTUNNEL_IP6_HOPLIMIT,  	LWTUNNEL_IP6_TC, -	LWTUNNEL_IP6_SPORT, -	LWTUNNEL_IP6_DPORT,  	LWTUNNEL_IP6_FLAGS,  	__LWTUNNEL_IP6_MAX,  };  | 
