diff options
| author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2019-10-23 12:02:47 +0200 | 
|---|---|---|
| committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2019-10-23 12:10:05 +0200 | 
| commit | 2e79e22e092acd55da0b2db066e4826d7d152c41 (patch) | |
| tree | e7ec9782c0b7831c511af711424126a2b9a4eb07 /include/net/net_namespace.h | |
| parent | f1b4a9217efd61d0b84c6dc404596c8519ff6f59 (diff) | |
| parent | 7d194c2100ad2a6dded545887d02754948ca5241 (diff) | |
Merge v5.4-rc4 into drm-next
Thierry needs fd70c7755bf0 ("drm/bridge: tc358767: fix max_tu_symbol
value") to be able to merge his dp_link patch series.
Some adjacent changes conflicts, plus some clashes in i915 due to
cherry-picking and git trying to be helpful and leaving both versions
in.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'include/net/net_namespace.h')
| -rw-r--r-- | include/net/net_namespace.h | 25 | 
1 files changed, 17 insertions, 8 deletions
diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h index f8712bbeb2e0..4c2cd9378699 100644 --- a/include/net/net_namespace.h +++ b/include/net/net_namespace.h @@ -52,6 +52,9 @@ struct bpf_prog;  #define NETDEV_HASHENTRIES (1 << NETDEV_HASHBITS)  struct net { +	/* First cache line can be often dirtied. +	 * Do not place here read-mostly fields. +	 */  	refcount_t		passive;	/* To decide when the network  						 * namespace should be freed.  						 */ @@ -60,7 +63,13 @@ struct net {  						 */  	spinlock_t		rules_mod_lock; -	u32			hash_mix; +	unsigned int		dev_unreg_count; + +	unsigned int		dev_base_seq;	/* protected by rtnl_mutex */ +	int			ifindex; + +	spinlock_t		nsid_lock; +	atomic_t		fnhe_genid;  	struct list_head	list;		/* list of network namespaces */  	struct list_head	exit_list;	/* To linked to call pernet exit @@ -76,11 +85,11 @@ struct net {  #endif  	struct user_namespace   *user_ns;	/* Owning user namespace */  	struct ucounts		*ucounts; -	spinlock_t		nsid_lock;  	struct idr		netns_ids;  	struct ns_common	ns; +	struct list_head 	dev_base_head;  	struct proc_dir_entry 	*proc_net;  	struct proc_dir_entry 	*proc_net_stat; @@ -93,17 +102,18 @@ struct net {  	struct uevent_sock	*uevent_sock;		/* uevent socket */ -	struct list_head 	dev_base_head;  	struct hlist_head 	*dev_name_head;  	struct hlist_head	*dev_index_head; -	unsigned int		dev_base_seq;	/* protected by rtnl_mutex */ -	int			ifindex; -	unsigned int		dev_unreg_count; +	/* Note that @hash_mix can be read millions times per second, +	 * it is critical that it is on a read_mostly cache line. +	 */ +	u32			hash_mix; + +	struct net_device       *loopback_dev;          /* The loopback */  	/* core fib_rules */  	struct list_head	rules_ops; -	struct net_device       *loopback_dev;          /* The loopback */  	struct netns_core	core;  	struct netns_mib	mib;  	struct netns_packet	packet; @@ -171,7 +181,6 @@ struct net {  	struct sock		*crypto_nlsk;  #endif  	struct sock		*diag_nlsk; -	atomic_t		fnhe_genid;  } __randomize_layout;  #include <linux/seq_file_net.h>  | 
