diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/amba/bus.h | 1 | ||||
-rw-r--r-- | include/linux/cgroup.h | 15 | ||||
-rw-r--r-- | include/linux/dmaengine.h | 1 | ||||
-rw-r--r-- | include/linux/if_macvlan.h | 1 | ||||
-rw-r--r-- | include/linux/if_vlan.h | 15 | ||||
-rw-r--r-- | include/linux/kernfs.h | 19 | ||||
-rw-r--r-- | include/linux/mlx4/qp.h | 11 | ||||
-rw-r--r-- | include/linux/net.h | 15 | ||||
-rw-r--r-- | include/linux/netdevice.h | 34 | ||||
-rw-r--r-- | include/linux/of.h | 2 | ||||
-rw-r--r-- | include/linux/of_mdio.h | 7 | ||||
-rw-r--r-- | include/linux/omap-dma.h | 2 | ||||
-rw-r--r-- | include/linux/perf_event.h | 2 | ||||
-rw-r--r-- | include/linux/rtnetlink.h | 5 | ||||
-rw-r--r-- | include/linux/sched.h | 9 |
15 files changed, 113 insertions, 26 deletions
diff --git a/include/linux/amba/bus.h b/include/linux/amba/bus.h index 63b5eff0a80f..fdd7e1b61f60 100644 --- a/include/linux/amba/bus.h +++ b/include/linux/amba/bus.h | |||
@@ -47,6 +47,7 @@ struct amba_driver { | |||
47 | enum amba_vendor { | 47 | enum amba_vendor { |
48 | AMBA_VENDOR_ARM = 0x41, | 48 | AMBA_VENDOR_ARM = 0x41, |
49 | AMBA_VENDOR_ST = 0x80, | 49 | AMBA_VENDOR_ST = 0x80, |
50 | AMBA_VENDOR_QCOM = 0x51, | ||
50 | }; | 51 | }; |
51 | 52 | ||
52 | extern struct bus_type amba_bustype; | 53 | extern struct bus_type amba_bustype; |
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index c2515851c1aa..d60904b9e505 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h | |||
@@ -473,6 +473,7 @@ struct cftype { | |||
473 | }; | 473 | }; |
474 | 474 | ||
475 | extern struct cgroup_root cgrp_dfl_root; | 475 | extern struct cgroup_root cgrp_dfl_root; |
476 | extern struct css_set init_css_set; | ||
476 | 477 | ||
477 | static inline bool cgroup_on_dfl(const struct cgroup *cgrp) | 478 | static inline bool cgroup_on_dfl(const struct cgroup *cgrp) |
478 | { | 479 | { |
@@ -700,6 +701,20 @@ static inline struct cgroup_subsys_state *task_css(struct task_struct *task, | |||
700 | return task_css_check(task, subsys_id, false); | 701 | return task_css_check(task, subsys_id, false); |
701 | } | 702 | } |
702 | 703 | ||
704 | /** | ||
705 | * task_css_is_root - test whether a task belongs to the root css | ||
706 | * @task: the target task | ||
707 | * @subsys_id: the target subsystem ID | ||
708 | * | ||
709 | * Test whether @task belongs to the root css on the specified subsystem. | ||
710 | * May be invoked in any context. | ||
711 | */ | ||
712 | static inline bool task_css_is_root(struct task_struct *task, int subsys_id) | ||
713 | { | ||
714 | return task_css_check(task, subsys_id, true) == | ||
715 | init_css_set.subsys[subsys_id]; | ||
716 | } | ||
717 | |||
703 | static inline struct cgroup *task_cgroup(struct task_struct *task, | 718 | static inline struct cgroup *task_cgroup(struct task_struct *task, |
704 | int subsys_id) | 719 | int subsys_id) |
705 | { | 720 | { |
diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h index 8300fb87b84a..72cb0ddb9678 100644 --- a/include/linux/dmaengine.h +++ b/include/linux/dmaengine.h | |||
@@ -429,6 +429,7 @@ typedef bool (*dma_filter_fn)(struct dma_chan *chan, void *filter_param); | |||
429 | typedef void (*dma_async_tx_callback)(void *dma_async_param); | 429 | typedef void (*dma_async_tx_callback)(void *dma_async_param); |
430 | 430 | ||
431 | struct dmaengine_unmap_data { | 431 | struct dmaengine_unmap_data { |
432 | u8 map_cnt; | ||
432 | u8 to_cnt; | 433 | u8 to_cnt; |
433 | u8 from_cnt; | 434 | u8 from_cnt; |
434 | u8 bidi_cnt; | 435 | u8 bidi_cnt; |
diff --git a/include/linux/if_macvlan.h b/include/linux/if_macvlan.h index 7c8b20b120ea..a9a53b12397b 100644 --- a/include/linux/if_macvlan.h +++ b/include/linux/if_macvlan.h | |||
@@ -56,6 +56,7 @@ struct macvlan_dev { | |||
56 | int numqueues; | 56 | int numqueues; |
57 | netdev_features_t tap_features; | 57 | netdev_features_t tap_features; |
58 | int minor; | 58 | int minor; |
59 | int nest_level; | ||
59 | }; | 60 | }; |
60 | 61 | ||
61 | static inline void macvlan_count_rx(const struct macvlan_dev *vlan, | 62 | static inline void macvlan_count_rx(const struct macvlan_dev *vlan, |
diff --git a/include/linux/if_vlan.h b/include/linux/if_vlan.h index 13bbbde00e68..b2acc4a1b13c 100644 --- a/include/linux/if_vlan.h +++ b/include/linux/if_vlan.h | |||
@@ -73,7 +73,7 @@ static inline struct vlan_ethhdr *vlan_eth_hdr(const struct sk_buff *skb) | |||
73 | /* found in socket.c */ | 73 | /* found in socket.c */ |
74 | extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); | 74 | extern void vlan_ioctl_set(int (*hook)(struct net *, void __user *)); |
75 | 75 | ||
76 | static inline int is_vlan_dev(struct net_device *dev) | 76 | static inline bool is_vlan_dev(struct net_device *dev) |
77 | { | 77 | { |
78 | return dev->priv_flags & IFF_802_1Q_VLAN; | 78 | return dev->priv_flags & IFF_802_1Q_VLAN; |
79 | } | 79 | } |
@@ -159,6 +159,7 @@ struct vlan_dev_priv { | |||
159 | #ifdef CONFIG_NET_POLL_CONTROLLER | 159 | #ifdef CONFIG_NET_POLL_CONTROLLER |
160 | struct netpoll *netpoll; | 160 | struct netpoll *netpoll; |
161 | #endif | 161 | #endif |
162 | unsigned int nest_level; | ||
162 | }; | 163 | }; |
163 | 164 | ||
164 | static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) | 165 | static inline struct vlan_dev_priv *vlan_dev_priv(const struct net_device *dev) |
@@ -197,6 +198,12 @@ extern void vlan_vids_del_by_dev(struct net_device *dev, | |||
197 | const struct net_device *by_dev); | 198 | const struct net_device *by_dev); |
198 | 199 | ||
199 | extern bool vlan_uses_dev(const struct net_device *dev); | 200 | extern bool vlan_uses_dev(const struct net_device *dev); |
201 | |||
202 | static inline int vlan_get_encap_level(struct net_device *dev) | ||
203 | { | ||
204 | BUG_ON(!is_vlan_dev(dev)); | ||
205 | return vlan_dev_priv(dev)->nest_level; | ||
206 | } | ||
200 | #else | 207 | #else |
201 | static inline struct net_device * | 208 | static inline struct net_device * |
202 | __vlan_find_dev_deep(struct net_device *real_dev, | 209 | __vlan_find_dev_deep(struct net_device *real_dev, |
@@ -263,6 +270,11 @@ static inline bool vlan_uses_dev(const struct net_device *dev) | |||
263 | { | 270 | { |
264 | return false; | 271 | return false; |
265 | } | 272 | } |
273 | static inline int vlan_get_encap_level(struct net_device *dev) | ||
274 | { | ||
275 | BUG(); | ||
276 | return 0; | ||
277 | } | ||
266 | #endif | 278 | #endif |
267 | 279 | ||
268 | static inline bool vlan_hw_offload_capable(netdev_features_t features, | 280 | static inline bool vlan_hw_offload_capable(netdev_features_t features, |
@@ -483,4 +495,5 @@ static inline void vlan_set_encap_proto(struct sk_buff *skb, | |||
483 | */ | 495 | */ |
484 | skb->protocol = htons(ETH_P_802_2); | 496 | skb->protocol = htons(ETH_P_802_2); |
485 | } | 497 | } |
498 | |||
486 | #endif /* !(_LINUX_IF_VLAN_H_) */ | 499 | #endif /* !(_LINUX_IF_VLAN_H_) */ |
diff --git a/include/linux/kernfs.h b/include/linux/kernfs.h index b0122dc6f96a..ca1be5c9136c 100644 --- a/include/linux/kernfs.h +++ b/include/linux/kernfs.h | |||
@@ -50,7 +50,24 @@ enum kernfs_node_flag { | |||
50 | 50 | ||
51 | /* @flags for kernfs_create_root() */ | 51 | /* @flags for kernfs_create_root() */ |
52 | enum kernfs_root_flag { | 52 | enum kernfs_root_flag { |
53 | KERNFS_ROOT_CREATE_DEACTIVATED = 0x0001, | 53 | /* |
54 | * kernfs_nodes are created in the deactivated state and invisible. | ||
55 | * They require explicit kernfs_activate() to become visible. This | ||
56 | * can be used to make related nodes become visible atomically | ||
57 | * after all nodes are created successfully. | ||
58 | */ | ||
59 | KERNFS_ROOT_CREATE_DEACTIVATED = 0x0001, | ||
60 | |||
61 | /* | ||
62 | * For regular flies, if the opener has CAP_DAC_OVERRIDE, open(2) | ||
63 | * succeeds regardless of the RW permissions. sysfs had an extra | ||
64 | * layer of enforcement where open(2) fails with -EACCES regardless | ||
65 | * of CAP_DAC_OVERRIDE if the permission doesn't have the | ||
66 | * respective read or write access at all (none of S_IRUGO or | ||
67 | * S_IWUGO) or the respective operation isn't implemented. The | ||
68 | * following flag enables that behavior. | ||
69 | */ | ||
70 | KERNFS_ROOT_EXTRA_OPEN_PERM_CHECK = 0x0002, | ||
54 | }; | 71 | }; |
55 | 72 | ||
56 | /* type-specific structures for kernfs_node union members */ | 73 | /* type-specific structures for kernfs_node union members */ |
diff --git a/include/linux/mlx4/qp.h b/include/linux/mlx4/qp.h index b66e7610d4ee..7040dc98ff8b 100644 --- a/include/linux/mlx4/qp.h +++ b/include/linux/mlx4/qp.h | |||
@@ -421,6 +421,17 @@ struct mlx4_wqe_inline_seg { | |||
421 | __be32 byte_count; | 421 | __be32 byte_count; |
422 | }; | 422 | }; |
423 | 423 | ||
424 | enum mlx4_update_qp_attr { | ||
425 | MLX4_UPDATE_QP_SMAC = 1 << 0, | ||
426 | }; | ||
427 | |||
428 | struct mlx4_update_qp_params { | ||
429 | u8 smac_index; | ||
430 | }; | ||
431 | |||
432 | int mlx4_update_qp(struct mlx4_dev *dev, struct mlx4_qp *qp, | ||
433 | enum mlx4_update_qp_attr attr, | ||
434 | struct mlx4_update_qp_params *params); | ||
424 | int mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt, | 435 | int mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt, |
425 | enum mlx4_qp_state cur_state, enum mlx4_qp_state new_state, | 436 | enum mlx4_qp_state cur_state, enum mlx4_qp_state new_state, |
426 | struct mlx4_qp_context *context, enum mlx4_qp_optpar optpar, | 437 | struct mlx4_qp_context *context, enum mlx4_qp_optpar optpar, |
diff --git a/include/linux/net.h b/include/linux/net.h index 94734a6259a4..17d83393afcc 100644 --- a/include/linux/net.h +++ b/include/linux/net.h | |||
@@ -248,24 +248,17 @@ do { \ | |||
248 | bool __net_get_random_once(void *buf, int nbytes, bool *done, | 248 | bool __net_get_random_once(void *buf, int nbytes, bool *done, |
249 | struct static_key *done_key); | 249 | struct static_key *done_key); |
250 | 250 | ||
251 | #ifdef HAVE_JUMP_LABEL | ||
252 | #define ___NET_RANDOM_STATIC_KEY_INIT ((struct static_key) \ | ||
253 | { .enabled = ATOMIC_INIT(0), .entries = (void *)1 }) | ||
254 | #else /* !HAVE_JUMP_LABEL */ | ||
255 | #define ___NET_RANDOM_STATIC_KEY_INIT STATIC_KEY_INIT_FALSE | ||
256 | #endif /* HAVE_JUMP_LABEL */ | ||
257 | |||
258 | #define net_get_random_once(buf, nbytes) \ | 251 | #define net_get_random_once(buf, nbytes) \ |
259 | ({ \ | 252 | ({ \ |
260 | bool ___ret = false; \ | 253 | bool ___ret = false; \ |
261 | static bool ___done = false; \ | 254 | static bool ___done = false; \ |
262 | static struct static_key ___done_key = \ | 255 | static struct static_key ___once_key = \ |
263 | ___NET_RANDOM_STATIC_KEY_INIT; \ | 256 | STATIC_KEY_INIT_TRUE; \ |
264 | if (!static_key_true(&___done_key)) \ | 257 | if (static_key_true(&___once_key)) \ |
265 | ___ret = __net_get_random_once(buf, \ | 258 | ___ret = __net_get_random_once(buf, \ |
266 | nbytes, \ | 259 | nbytes, \ |
267 | &___done, \ | 260 | &___done, \ |
268 | &___done_key); \ | 261 | &___once_key); \ |
269 | ___ret; \ | 262 | ___ret; \ |
270 | }) | 263 | }) |
271 | 264 | ||
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 7ed3a3aa6604..b42d07b0390b 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -1144,6 +1144,7 @@ struct net_device_ops { | |||
1144 | netdev_tx_t (*ndo_dfwd_start_xmit) (struct sk_buff *skb, | 1144 | netdev_tx_t (*ndo_dfwd_start_xmit) (struct sk_buff *skb, |
1145 | struct net_device *dev, | 1145 | struct net_device *dev, |
1146 | void *priv); | 1146 | void *priv); |
1147 | int (*ndo_get_lock_subclass)(struct net_device *dev); | ||
1147 | }; | 1148 | }; |
1148 | 1149 | ||
1149 | /** | 1150 | /** |
@@ -2950,7 +2951,12 @@ static inline void netif_addr_lock(struct net_device *dev) | |||
2950 | 2951 | ||
2951 | static inline void netif_addr_lock_nested(struct net_device *dev) | 2952 | static inline void netif_addr_lock_nested(struct net_device *dev) |
2952 | { | 2953 | { |
2953 | spin_lock_nested(&dev->addr_list_lock, SINGLE_DEPTH_NESTING); | 2954 | int subclass = SINGLE_DEPTH_NESTING; |
2955 | |||
2956 | if (dev->netdev_ops->ndo_get_lock_subclass) | ||
2957 | subclass = dev->netdev_ops->ndo_get_lock_subclass(dev); | ||
2958 | |||
2959 | spin_lock_nested(&dev->addr_list_lock, subclass); | ||
2954 | } | 2960 | } |
2955 | 2961 | ||
2956 | static inline void netif_addr_lock_bh(struct net_device *dev) | 2962 | static inline void netif_addr_lock_bh(struct net_device *dev) |
@@ -3050,10 +3056,19 @@ extern int weight_p; | |||
3050 | extern int bpf_jit_enable; | 3056 | extern int bpf_jit_enable; |
3051 | 3057 | ||
3052 | bool netdev_has_upper_dev(struct net_device *dev, struct net_device *upper_dev); | 3058 | bool netdev_has_upper_dev(struct net_device *dev, struct net_device *upper_dev); |
3059 | struct net_device *netdev_upper_get_next_dev_rcu(struct net_device *dev, | ||
3060 | struct list_head **iter); | ||
3053 | struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, | 3061 | struct net_device *netdev_all_upper_get_next_dev_rcu(struct net_device *dev, |
3054 | struct list_head **iter); | 3062 | struct list_head **iter); |
3055 | 3063 | ||
3056 | /* iterate through upper list, must be called under RCU read lock */ | 3064 | /* iterate through upper list, must be called under RCU read lock */ |
3065 | #define netdev_for_each_upper_dev_rcu(dev, updev, iter) \ | ||
3066 | for (iter = &(dev)->adj_list.upper, \ | ||
3067 | updev = netdev_upper_get_next_dev_rcu(dev, &(iter)); \ | ||
3068 | updev; \ | ||
3069 | updev = netdev_upper_get_next_dev_rcu(dev, &(iter))) | ||
3070 | |||
3071 | /* iterate through upper list, must be called under RCU read lock */ | ||
3057 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ | 3072 | #define netdev_for_each_all_upper_dev_rcu(dev, updev, iter) \ |
3058 | for (iter = &(dev)->all_adj_list.upper, \ | 3073 | for (iter = &(dev)->all_adj_list.upper, \ |
3059 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)); \ | 3074 | updev = netdev_all_upper_get_next_dev_rcu(dev, &(iter)); \ |
@@ -3077,6 +3092,14 @@ void *netdev_lower_get_next_private_rcu(struct net_device *dev, | |||
3077 | priv; \ | 3092 | priv; \ |
3078 | priv = netdev_lower_get_next_private_rcu(dev, &(iter))) | 3093 | priv = netdev_lower_get_next_private_rcu(dev, &(iter))) |
3079 | 3094 | ||
3095 | void *netdev_lower_get_next(struct net_device *dev, | ||
3096 | struct list_head **iter); | ||
3097 | #define netdev_for_each_lower_dev(dev, ldev, iter) \ | ||
3098 | for (iter = &(dev)->adj_list.lower, \ | ||
3099 | ldev = netdev_lower_get_next(dev, &(iter)); \ | ||
3100 | ldev; \ | ||
3101 | ldev = netdev_lower_get_next(dev, &(iter))) | ||
3102 | |||
3080 | void *netdev_adjacent_get_private(struct list_head *adj_list); | 3103 | void *netdev_adjacent_get_private(struct list_head *adj_list); |
3081 | void *netdev_lower_get_first_private_rcu(struct net_device *dev); | 3104 | void *netdev_lower_get_first_private_rcu(struct net_device *dev); |
3082 | struct net_device *netdev_master_upper_dev_get(struct net_device *dev); | 3105 | struct net_device *netdev_master_upper_dev_get(struct net_device *dev); |
@@ -3092,6 +3115,8 @@ void netdev_upper_dev_unlink(struct net_device *dev, | |||
3092 | void netdev_adjacent_rename_links(struct net_device *dev, char *oldname); | 3115 | void netdev_adjacent_rename_links(struct net_device *dev, char *oldname); |
3093 | void *netdev_lower_dev_get_private(struct net_device *dev, | 3116 | void *netdev_lower_dev_get_private(struct net_device *dev, |
3094 | struct net_device *lower_dev); | 3117 | struct net_device *lower_dev); |
3118 | int dev_get_nest_level(struct net_device *dev, | ||
3119 | bool (*type_check)(struct net_device *dev)); | ||
3095 | int skb_checksum_help(struct sk_buff *skb); | 3120 | int skb_checksum_help(struct sk_buff *skb); |
3096 | struct sk_buff *__skb_gso_segment(struct sk_buff *skb, | 3121 | struct sk_buff *__skb_gso_segment(struct sk_buff *skb, |
3097 | netdev_features_t features, bool tx_path); | 3122 | netdev_features_t features, bool tx_path); |
@@ -3180,12 +3205,7 @@ void netdev_change_features(struct net_device *dev); | |||
3180 | void netif_stacked_transfer_operstate(const struct net_device *rootdev, | 3205 | void netif_stacked_transfer_operstate(const struct net_device *rootdev, |
3181 | struct net_device *dev); | 3206 | struct net_device *dev); |
3182 | 3207 | ||
3183 | netdev_features_t netif_skb_dev_features(struct sk_buff *skb, | 3208 | netdev_features_t netif_skb_features(struct sk_buff *skb); |
3184 | const struct net_device *dev); | ||
3185 | static inline netdev_features_t netif_skb_features(struct sk_buff *skb) | ||
3186 | { | ||
3187 | return netif_skb_dev_features(skb, skb->dev); | ||
3188 | } | ||
3189 | 3209 | ||
3190 | static inline bool net_gso_ok(netdev_features_t features, int gso_type) | 3210 | static inline bool net_gso_ok(netdev_features_t features, int gso_type) |
3191 | { | 3211 | { |
diff --git a/include/linux/of.h b/include/linux/of.h index 3bad8d106e0e..e6f0988c1c68 100644 --- a/include/linux/of.h +++ b/include/linux/of.h | |||
@@ -349,7 +349,7 @@ int of_device_is_stdout_path(struct device_node *dn); | |||
349 | 349 | ||
350 | #else /* CONFIG_OF */ | 350 | #else /* CONFIG_OF */ |
351 | 351 | ||
352 | static inline const char* of_node_full_name(struct device_node *np) | 352 | static inline const char* of_node_full_name(const struct device_node *np) |
353 | { | 353 | { |
354 | return "<no-node>"; | 354 | return "<no-node>"; |
355 | } | 355 | } |
diff --git a/include/linux/of_mdio.h b/include/linux/of_mdio.h index 6fe8464ed767..881a7c3571f4 100644 --- a/include/linux/of_mdio.h +++ b/include/linux/of_mdio.h | |||
@@ -31,7 +31,12 @@ extern struct mii_bus *of_mdio_find_bus(struct device_node *mdio_np); | |||
31 | #else /* CONFIG_OF */ | 31 | #else /* CONFIG_OF */ |
32 | static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) | 32 | static inline int of_mdiobus_register(struct mii_bus *mdio, struct device_node *np) |
33 | { | 33 | { |
34 | return -ENOSYS; | 34 | /* |
35 | * Fall back to the non-DT function to register a bus. | ||
36 | * This way, we don't have to keep compat bits around in drivers. | ||
37 | */ | ||
38 | |||
39 | return mdiobus_register(mdio); | ||
35 | } | 40 | } |
36 | 41 | ||
37 | static inline struct phy_device *of_phy_find_device(struct device_node *phy_np) | 42 | static inline struct phy_device *of_phy_find_device(struct device_node *phy_np) |
diff --git a/include/linux/omap-dma.h b/include/linux/omap-dma.h index 41a13e70f41f..7944cdc27bed 100644 --- a/include/linux/omap-dma.h +++ b/include/linux/omap-dma.h | |||
@@ -10,7 +10,7 @@ | |||
10 | 10 | ||
11 | struct dma_chan; | 11 | struct dma_chan; |
12 | 12 | ||
13 | #if defined(CONFIG_DMA_OMAP) || defined(CONFIG_DMA_OMAP_MODULE) | 13 | #if defined(CONFIG_DMA_OMAP) || (defined(CONFIG_DMA_OMAP_MODULE) && defined(MODULE)) |
14 | bool omap_dma_filter_fn(struct dma_chan *, void *); | 14 | bool omap_dma_filter_fn(struct dma_chan *, void *); |
15 | #else | 15 | #else |
16 | static inline bool omap_dma_filter_fn(struct dma_chan *c, void *d) | 16 | static inline bool omap_dma_filter_fn(struct dma_chan *c, void *d) |
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h index 3356abcfff18..3ef6ea12806a 100644 --- a/include/linux/perf_event.h +++ b/include/linux/perf_event.h | |||
@@ -402,6 +402,8 @@ struct perf_event { | |||
402 | 402 | ||
403 | struct ring_buffer *rb; | 403 | struct ring_buffer *rb; |
404 | struct list_head rb_entry; | 404 | struct list_head rb_entry; |
405 | unsigned long rcu_batches; | ||
406 | int rcu_pending; | ||
405 | 407 | ||
406 | /* poll related */ | 408 | /* poll related */ |
407 | wait_queue_head_t waitq; | 409 | wait_queue_head_t waitq; |
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h index 8e3e66ac0a52..953937ea5233 100644 --- a/include/linux/rtnetlink.h +++ b/include/linux/rtnetlink.h | |||
@@ -4,6 +4,7 @@ | |||
4 | 4 | ||
5 | #include <linux/mutex.h> | 5 | #include <linux/mutex.h> |
6 | #include <linux/netdevice.h> | 6 | #include <linux/netdevice.h> |
7 | #include <linux/wait.h> | ||
7 | #include <uapi/linux/rtnetlink.h> | 8 | #include <uapi/linux/rtnetlink.h> |
8 | 9 | ||
9 | extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); | 10 | extern int rtnetlink_send(struct sk_buff *skb, struct net *net, u32 pid, u32 group, int echo); |
@@ -22,6 +23,10 @@ extern void rtnl_lock(void); | |||
22 | extern void rtnl_unlock(void); | 23 | extern void rtnl_unlock(void); |
23 | extern int rtnl_trylock(void); | 24 | extern int rtnl_trylock(void); |
24 | extern int rtnl_is_locked(void); | 25 | extern int rtnl_is_locked(void); |
26 | |||
27 | extern wait_queue_head_t netdev_unregistering_wq; | ||
28 | extern struct mutex net_mutex; | ||
29 | |||
25 | #ifdef CONFIG_PROVE_LOCKING | 30 | #ifdef CONFIG_PROVE_LOCKING |
26 | extern int lockdep_rtnl_is_held(void); | 31 | extern int lockdep_rtnl_is_held(void); |
27 | #else | 32 | #else |
diff --git a/include/linux/sched.h b/include/linux/sched.h index 25f54c79f757..221b2bde3723 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -220,7 +220,7 @@ print_cfs_rq(struct seq_file *m, int cpu, struct cfs_rq *cfs_rq); | |||
220 | #define TASK_PARKED 512 | 220 | #define TASK_PARKED 512 |
221 | #define TASK_STATE_MAX 1024 | 221 | #define TASK_STATE_MAX 1024 |
222 | 222 | ||
223 | #define TASK_STATE_TO_CHAR_STR "RSDTtZXxKWP" | 223 | #define TASK_STATE_TO_CHAR_STR "RSDTtXZxKWP" |
224 | 224 | ||
225 | extern char ___assert_task_state[1 - 2*!!( | 225 | extern char ___assert_task_state[1 - 2*!!( |
226 | sizeof(TASK_STATE_TO_CHAR_STR)-1 != ilog2(TASK_STATE_MAX)+1)]; | 226 | sizeof(TASK_STATE_TO_CHAR_STR)-1 != ilog2(TASK_STATE_MAX)+1)]; |
@@ -1153,9 +1153,12 @@ struct sched_dl_entity { | |||
1153 | * | 1153 | * |
1154 | * @dl_boosted tells if we are boosted due to DI. If so we are | 1154 | * @dl_boosted tells if we are boosted due to DI. If so we are |
1155 | * outside bandwidth enforcement mechanism (but only until we | 1155 | * outside bandwidth enforcement mechanism (but only until we |
1156 | * exit the critical section). | 1156 | * exit the critical section); |
1157 | * | ||
1158 | * @dl_yielded tells if task gave up the cpu before consuming | ||
1159 | * all its available runtime during the last job. | ||
1157 | */ | 1160 | */ |
1158 | int dl_throttled, dl_new, dl_boosted; | 1161 | int dl_throttled, dl_new, dl_boosted, dl_yielded; |
1159 | 1162 | ||
1160 | /* | 1163 | /* |
1161 | * Bandwidth enforcement timer. Each -deadline task has its | 1164 | * Bandwidth enforcement timer. Each -deadline task has its |