aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/cn_proc.h4
-rw-r--r--include/linux/filter.h11
-rw-r--r--include/linux/ieee80211.h52
-rw-r--r--include/linux/if_arp.h12
-rw-r--r--include/linux/if_team.h25
-rw-r--r--include/linux/micrel_phy.h1
-rw-r--r--include/linux/mv643xx_eth.h1
-rw-r--r--include/linux/netdev_features.h9
-rw-r--r--include/linux/netdevice.h27
-rw-r--r--include/linux/openvswitch.h13
-rw-r--r--include/linux/phy.h10
-rw-r--r--include/linux/platform_data/cpsw.h2
-rw-r--r--include/linux/rtnetlink.h9
-rw-r--r--include/linux/skbuff.h52
-rw-r--r--include/linux/socket.h1
-rw-r--r--include/linux/ssb/ssb.h6
-rw-r--r--include/linux/tcp.h21
-rw-r--r--include/linux/virtio.h6
-rw-r--r--include/linux/vm_sockets.h23
19 files changed, 228 insertions, 57 deletions
diff --git a/include/linux/cn_proc.h b/include/linux/cn_proc.h
index 2c1bc1ea04ee..1d5b02a96c46 100644
--- a/include/linux/cn_proc.h
+++ b/include/linux/cn_proc.h
@@ -26,6 +26,7 @@ void proc_id_connector(struct task_struct *task, int which_id);
26void proc_sid_connector(struct task_struct *task); 26void proc_sid_connector(struct task_struct *task);
27void proc_ptrace_connector(struct task_struct *task, int which_id); 27void proc_ptrace_connector(struct task_struct *task, int which_id);
28void proc_comm_connector(struct task_struct *task); 28void proc_comm_connector(struct task_struct *task);
29void proc_coredump_connector(struct task_struct *task);
29void proc_exit_connector(struct task_struct *task); 30void proc_exit_connector(struct task_struct *task);
30#else 31#else
31static inline void proc_fork_connector(struct task_struct *task) 32static inline void proc_fork_connector(struct task_struct *task)
@@ -48,6 +49,9 @@ static inline void proc_ptrace_connector(struct task_struct *task,
48 int ptrace_id) 49 int ptrace_id)
49{} 50{}
50 51
52static inline void proc_coredump_connector(struct task_struct *task)
53{}
54
51static inline void proc_exit_connector(struct task_struct *task) 55static inline void proc_exit_connector(struct task_struct *task)
52{} 56{}
53#endif /* CONFIG_PROC_EVENTS */ 57#endif /* CONFIG_PROC_EVENTS */
diff --git a/include/linux/filter.h b/include/linux/filter.h
index c45eabc135e1..d7d25083130b 100644
--- a/include/linux/filter.h
+++ b/include/linux/filter.h
@@ -50,6 +50,16 @@ extern int sk_get_filter(struct sock *sk, struct sock_filter __user *filter, uns
50#ifdef CONFIG_BPF_JIT 50#ifdef CONFIG_BPF_JIT
51extern void bpf_jit_compile(struct sk_filter *fp); 51extern void bpf_jit_compile(struct sk_filter *fp);
52extern void bpf_jit_free(struct sk_filter *fp); 52extern void bpf_jit_free(struct sk_filter *fp);
53
54static inline void bpf_jit_dump(unsigned int flen, unsigned int proglen,
55 u32 pass, void *image)
56{
57 pr_err("flen=%u proglen=%u pass=%u image=%p\n",
58 flen, proglen, pass, image);
59 if (image)
60 print_hex_dump(KERN_ERR, "JIT code: ", DUMP_PREFIX_ADDRESS,
61 16, 1, image, proglen, false);
62}
53#define SK_RUN_FILTER(FILTER, SKB) (*FILTER->bpf_func)(SKB, FILTER->insns) 63#define SK_RUN_FILTER(FILTER, SKB) (*FILTER->bpf_func)(SKB, FILTER->insns)
54#else 64#else
55static inline void bpf_jit_compile(struct sk_filter *fp) 65static inline void bpf_jit_compile(struct sk_filter *fp)
@@ -126,6 +136,7 @@ enum {
126 BPF_S_ANC_SECCOMP_LD_W, 136 BPF_S_ANC_SECCOMP_LD_W,
127 BPF_S_ANC_VLAN_TAG, 137 BPF_S_ANC_VLAN_TAG,
128 BPF_S_ANC_VLAN_TAG_PRESENT, 138 BPF_S_ANC_VLAN_TAG_PRESENT,
139 BPF_S_ANC_PAY_OFFSET,
129}; 140};
130 141
131#endif /* __LINUX_FILTER_H__ */ 142#endif /* __LINUX_FILTER_H__ */
diff --git a/include/linux/ieee80211.h b/include/linux/ieee80211.h
index 7e24fe0cfbcd..4cf0c9e4dd99 100644
--- a/include/linux/ieee80211.h
+++ b/include/linux/ieee80211.h
@@ -113,6 +113,34 @@
113#define IEEE80211_CTL_EXT_SSW_FBACK 0x9000 113#define IEEE80211_CTL_EXT_SSW_FBACK 0x9000
114#define IEEE80211_CTL_EXT_SSW_ACK 0xa000 114#define IEEE80211_CTL_EXT_SSW_ACK 0xa000
115 115
116
117#define IEEE80211_SN_MASK ((IEEE80211_SCTL_SEQ) >> 4)
118#define IEEE80211_MAX_SN IEEE80211_SN_MASK
119#define IEEE80211_SN_MODULO (IEEE80211_MAX_SN + 1)
120
121static inline int ieee80211_sn_less(u16 sn1, u16 sn2)
122{
123 return ((sn1 - sn2) & IEEE80211_SN_MASK) > (IEEE80211_SN_MODULO >> 1);
124}
125
126static inline u16 ieee80211_sn_add(u16 sn1, u16 sn2)
127{
128 return (sn1 + sn2) & IEEE80211_SN_MASK;
129}
130
131static inline u16 ieee80211_sn_inc(u16 sn)
132{
133 return ieee80211_sn_add(sn, 1);
134}
135
136static inline u16 ieee80211_sn_sub(u16 sn1, u16 sn2)
137{
138 return (sn1 - sn2) & IEEE80211_SN_MASK;
139}
140
141#define IEEE80211_SEQ_TO_SN(seq) (((seq) & IEEE80211_SCTL_SEQ) >> 4)
142#define IEEE80211_SN_TO_SEQ(ssn) (((ssn) << 4) & IEEE80211_SCTL_SEQ)
143
116/* miscellaneous IEEE 802.11 constants */ 144/* miscellaneous IEEE 802.11 constants */
117#define IEEE80211_MAX_FRAG_THRESHOLD 2352 145#define IEEE80211_MAX_FRAG_THRESHOLD 2352
118#define IEEE80211_MAX_RTS_THRESHOLD 2353 146#define IEEE80211_MAX_RTS_THRESHOLD 2353
@@ -185,7 +213,7 @@ struct ieee80211_hdr {
185 u8 addr3[6]; 213 u8 addr3[6];
186 __le16 seq_ctrl; 214 __le16 seq_ctrl;
187 u8 addr4[6]; 215 u8 addr4[6];
188} __packed; 216} __packed __aligned(2);
189 217
190struct ieee80211_hdr_3addr { 218struct ieee80211_hdr_3addr {
191 __le16 frame_control; 219 __le16 frame_control;
@@ -194,7 +222,7 @@ struct ieee80211_hdr_3addr {
194 u8 addr2[6]; 222 u8 addr2[6];
195 u8 addr3[6]; 223 u8 addr3[6];
196 __le16 seq_ctrl; 224 __le16 seq_ctrl;
197} __packed; 225} __packed __aligned(2);
198 226
199struct ieee80211_qos_hdr { 227struct ieee80211_qos_hdr {
200 __le16 frame_control; 228 __le16 frame_control;
@@ -204,7 +232,7 @@ struct ieee80211_qos_hdr {
204 u8 addr3[6]; 232 u8 addr3[6];
205 __le16 seq_ctrl; 233 __le16 seq_ctrl;
206 __le16 qos_ctrl; 234 __le16 qos_ctrl;
207} __packed; 235} __packed __aligned(2);
208 236
209/** 237/**
210 * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set 238 * ieee80211_has_tods - check if IEEE80211_FCTL_TODS is set
@@ -581,7 +609,7 @@ struct ieee80211s_hdr {
581 __le32 seqnum; 609 __le32 seqnum;
582 u8 eaddr1[6]; 610 u8 eaddr1[6];
583 u8 eaddr2[6]; 611 u8 eaddr2[6];
584} __packed; 612} __packed __aligned(2);
585 613
586/* Mesh flags */ 614/* Mesh flags */
587#define MESH_FLAGS_AE_A4 0x1 615#define MESH_FLAGS_AE_A4 0x1
@@ -875,7 +903,7 @@ struct ieee80211_mgmt {
875 } u; 903 } u;
876 } __packed action; 904 } __packed action;
877 } u; 905 } u;
878} __packed; 906} __packed __aligned(2);
879 907
880/* Supported Rates value encodings in 802.11n-2009 7.3.2.2 */ 908/* Supported Rates value encodings in 802.11n-2009 7.3.2.2 */
881#define BSS_MEMBERSHIP_SELECTOR_HT_PHY 127 909#define BSS_MEMBERSHIP_SELECTOR_HT_PHY 127
@@ -906,20 +934,20 @@ struct ieee80211_rts {
906 __le16 duration; 934 __le16 duration;
907 u8 ra[6]; 935 u8 ra[6];
908 u8 ta[6]; 936 u8 ta[6];
909} __packed; 937} __packed __aligned(2);
910 938
911struct ieee80211_cts { 939struct ieee80211_cts {
912 __le16 frame_control; 940 __le16 frame_control;
913 __le16 duration; 941 __le16 duration;
914 u8 ra[6]; 942 u8 ra[6];
915} __packed; 943} __packed __aligned(2);
916 944
917struct ieee80211_pspoll { 945struct ieee80211_pspoll {
918 __le16 frame_control; 946 __le16 frame_control;
919 __le16 aid; 947 __le16 aid;
920 u8 bssid[6]; 948 u8 bssid[6];
921 u8 ta[6]; 949 u8 ta[6];
922} __packed; 950} __packed __aligned(2);
923 951
924/* TDLS */ 952/* TDLS */
925 953
@@ -1290,11 +1318,6 @@ struct ieee80211_vht_operation {
1290} __packed; 1318} __packed;
1291 1319
1292 1320
1293#define IEEE80211_VHT_MCS_ZERO_TO_SEVEN_SUPPORT 0
1294#define IEEE80211_VHT_MCS_ZERO_TO_EIGHT_SUPPORT 1
1295#define IEEE80211_VHT_MCS_ZERO_TO_NINE_SUPPORT 2
1296#define IEEE80211_VHT_MCS_NOT_SUPPORTED 3
1297
1298/* 802.11ac VHT Capabilities */ 1321/* 802.11ac VHT Capabilities */
1299#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 0x00000000 1322#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_3895 0x00000000
1300#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 0x00000001 1323#define IEEE80211_VHT_CAP_MAX_MPDU_LENGTH_7991 0x00000001
@@ -1310,10 +1333,11 @@ struct ieee80211_vht_operation {
1310#define IEEE80211_VHT_CAP_RXSTBC_2 0x00000200 1333#define IEEE80211_VHT_CAP_RXSTBC_2 0x00000200
1311#define IEEE80211_VHT_CAP_RXSTBC_3 0x00000300 1334#define IEEE80211_VHT_CAP_RXSTBC_3 0x00000300
1312#define IEEE80211_VHT_CAP_RXSTBC_4 0x00000400 1335#define IEEE80211_VHT_CAP_RXSTBC_4 0x00000400
1336#define IEEE80211_VHT_CAP_RXSTBC_MASK 0x00000700
1313#define IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE 0x00000800 1337#define IEEE80211_VHT_CAP_SU_BEAMFORMER_CAPABLE 0x00000800
1314#define IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE 0x00001000 1338#define IEEE80211_VHT_CAP_SU_BEAMFORMEE_CAPABLE 0x00001000
1315#define IEEE80211_VHT_CAP_BEAMFORMER_ANTENNAS_MAX 0x00006000 1339#define IEEE80211_VHT_CAP_BEAMFORMER_ANTENNAS_MAX 0x00006000
1316#define IEEE80211_VHT_CAP_SOUNDING_DIMENTION_MAX 0x00030000 1340#define IEEE80211_VHT_CAP_SOUNDING_DIMENSIONS_MAX 0x00030000
1317#define IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE 0x00080000 1341#define IEEE80211_VHT_CAP_MU_BEAMFORMER_CAPABLE 0x00080000
1318#define IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE 0x00100000 1342#define IEEE80211_VHT_CAP_MU_BEAMFORMEE_CAPABLE 0x00100000
1319#define IEEE80211_VHT_CAP_VHT_TXOP_PS 0x00200000 1343#define IEEE80211_VHT_CAP_VHT_TXOP_PS 0x00200000
diff --git a/include/linux/if_arp.h b/include/linux/if_arp.h
index 89b4614a4722..f563907ed776 100644
--- a/include/linux/if_arp.h
+++ b/include/linux/if_arp.h
@@ -33,7 +33,15 @@ static inline struct arphdr *arp_hdr(const struct sk_buff *skb)
33 33
34static inline int arp_hdr_len(struct net_device *dev) 34static inline int arp_hdr_len(struct net_device *dev)
35{ 35{
36 /* ARP header, plus 2 device addresses, plus 2 IP addresses. */ 36 switch (dev->type) {
37 return sizeof(struct arphdr) + (dev->addr_len + sizeof(u32)) * 2; 37#if IS_ENABLED(CONFIG_FIREWIRE_NET)
38 case ARPHRD_IEEE1394:
39 /* ARP header, device address and 2 IP addresses */
40 return sizeof(struct arphdr) + dev->addr_len + sizeof(u32) * 2;
41#endif
42 default:
43 /* ARP header, plus 2 device addresses, plus 2 IP addresses. */
44 return sizeof(struct arphdr) + (dev->addr_len + sizeof(u32)) * 2;
45 }
38} 46}
39#endif /* _LINUX_IF_ARP_H */ 47#endif /* _LINUX_IF_ARP_H */
diff --git a/include/linux/if_team.h b/include/linux/if_team.h
index cfd21e3d5506..4474557904f6 100644
--- a/include/linux/if_team.h
+++ b/include/linux/if_team.h
@@ -112,6 +112,10 @@ struct team_mode_ops {
112 void (*port_disabled)(struct team *team, struct team_port *port); 112 void (*port_disabled)(struct team *team, struct team_port *port);
113}; 113};
114 114
115extern int team_modeop_port_enter(struct team *team, struct team_port *port);
116extern void team_modeop_port_change_dev_addr(struct team *team,
117 struct team_port *port);
118
115enum team_option_type { 119enum team_option_type {
116 TEAM_OPTION_TYPE_U32, 120 TEAM_OPTION_TYPE_U32,
117 TEAM_OPTION_TYPE_STRING, 121 TEAM_OPTION_TYPE_STRING,
@@ -236,7 +240,26 @@ static inline struct team_port *team_get_port_by_index_rcu(struct team *team,
236 return NULL; 240 return NULL;
237} 241}
238 242
239extern int team_port_set_team_dev_addr(struct team_port *port); 243static inline struct team_port *
244team_get_first_port_txable_rcu(struct team *team, struct team_port *port)
245{
246 struct team_port *cur;
247
248 if (likely(team_port_txable(port)))
249 return port;
250 cur = port;
251 list_for_each_entry_continue_rcu(cur, &team->port_list, list)
252 if (team_port_txable(port))
253 return cur;
254 list_for_each_entry_rcu(cur, &team->port_list, list) {
255 if (cur == port)
256 break;
257 if (team_port_txable(port))
258 return cur;
259 }
260 return NULL;
261}
262
240extern int team_options_register(struct team *team, 263extern int team_options_register(struct team *team,
241 const struct team_option *option, 264 const struct team_option *option,
242 size_t option_count); 265 size_t option_count);
diff --git a/include/linux/micrel_phy.h b/include/linux/micrel_phy.h
index 9dbb41a4e250..8752dbbc6135 100644
--- a/include/linux/micrel_phy.h
+++ b/include/linux/micrel_phy.h
@@ -19,6 +19,7 @@
19#define PHY_ID_KSZ9021 0x00221610 19#define PHY_ID_KSZ9021 0x00221610
20#define PHY_ID_KS8737 0x00221720 20#define PHY_ID_KS8737 0x00221720
21#define PHY_ID_KSZ8021 0x00221555 21#define PHY_ID_KSZ8021 0x00221555
22#define PHY_ID_KSZ8031 0x00221556
22#define PHY_ID_KSZ8041 0x00221510 23#define PHY_ID_KSZ8041 0x00221510
23#define PHY_ID_KSZ8051 0x00221550 24#define PHY_ID_KSZ8051 0x00221550
24/* same id: ks8001 Rev. A/B, and ks8721 Rev 3. */ 25/* same id: ks8001 Rev. A/B, and ks8721 Rev 3. */
diff --git a/include/linux/mv643xx_eth.h b/include/linux/mv643xx_eth.h
index 49258e0ed1c6..141d395bbb5f 100644
--- a/include/linux/mv643xx_eth.h
+++ b/include/linux/mv643xx_eth.h
@@ -19,7 +19,6 @@
19 19
20struct mv643xx_eth_shared_platform_data { 20struct mv643xx_eth_shared_platform_data {
21 struct mbus_dram_target_info *dram; 21 struct mbus_dram_target_info *dram;
22 struct platform_device *shared_smi;
23 /* 22 /*
24 * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default 23 * Max packet size for Tx IP/Layer 4 checksum, when set to 0, default
25 * limit of 9KiB will be used. 24 * limit of 9KiB will be used.
diff --git a/include/linux/netdev_features.h b/include/linux/netdev_features.h
index 3dd39340430e..d6ee2d008ee4 100644
--- a/include/linux/netdev_features.h
+++ b/include/linux/netdev_features.h
@@ -42,9 +42,9 @@ enum {
42 NETIF_F_TSO6_BIT, /* ... TCPv6 segmentation */ 42 NETIF_F_TSO6_BIT, /* ... TCPv6 segmentation */
43 NETIF_F_FSO_BIT, /* ... FCoE segmentation */ 43 NETIF_F_FSO_BIT, /* ... FCoE segmentation */
44 NETIF_F_GSO_GRE_BIT, /* ... GRE with TSO */ 44 NETIF_F_GSO_GRE_BIT, /* ... GRE with TSO */
45 /**/NETIF_F_GSO_LAST, /* [can't be last bit, see GSO_MASK] */ 45 NETIF_F_GSO_UDP_TUNNEL_BIT, /* ... UDP TUNNEL with TSO */
46 NETIF_F_GSO_RESERVED2 /* ... free (fill GSO_MASK to 8 bits) */ 46 /**/NETIF_F_GSO_LAST = /* last bit, see GSO_MASK */
47 = NETIF_F_GSO_LAST, 47 NETIF_F_GSO_UDP_TUNNEL_BIT,
48 48
49 NETIF_F_FCOE_CRC_BIT, /* FCoE CRC32 */ 49 NETIF_F_FCOE_CRC_BIT, /* FCoE CRC32 */
50 NETIF_F_SCTP_CSUM_BIT, /* SCTP checksum offload */ 50 NETIF_F_SCTP_CSUM_BIT, /* SCTP checksum offload */
@@ -102,7 +102,8 @@ enum {
102#define NETIF_F_VLAN_CHALLENGED __NETIF_F(VLAN_CHALLENGED) 102#define NETIF_F_VLAN_CHALLENGED __NETIF_F(VLAN_CHALLENGED)
103#define NETIF_F_RXFCS __NETIF_F(RXFCS) 103#define NETIF_F_RXFCS __NETIF_F(RXFCS)
104#define NETIF_F_RXALL __NETIF_F(RXALL) 104#define NETIF_F_RXALL __NETIF_F(RXALL)
105#define NETIF_F_GRE_GSO __NETIF_F(GSO_GRE) 105#define NETIF_F_GSO_GRE __NETIF_F(GSO_GRE)
106#define NETIF_F_GSO_UDP_TUNNEL __NETIF_F(GSO_UDP_TUNNEL)
106 107
107/* Features valid for ethtool to change */ 108/* Features valid for ethtool to change */
108/* = all defined minus driver/device-class-related */ 109/* = all defined minus driver/device-class-related */
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index b3d00fa4b314..56e3e0665272 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -1475,6 +1475,11 @@ static inline void *netdev_priv(const struct net_device *dev)
1475 */ 1475 */
1476#define SET_NETDEV_DEVTYPE(net, devtype) ((net)->dev.type = (devtype)) 1476#define SET_NETDEV_DEVTYPE(net, devtype) ((net)->dev.type = (devtype))
1477 1477
1478/* Default NAPI poll() weight
1479 * Device drivers are strongly advised to not use bigger value
1480 */
1481#define NAPI_POLL_WEIGHT 64
1482
1478/** 1483/**
1479 * netif_napi_add - initialize a napi context 1484 * netif_napi_add - initialize a napi context
1480 * @dev: network device 1485 * @dev: network device
@@ -1612,6 +1617,9 @@ extern seqcount_t devnet_rename_seq; /* Device rename seq */
1612 list_for_each_entry_continue(d, &(net)->dev_base_head, dev_list) 1617 list_for_each_entry_continue(d, &(net)->dev_base_head, dev_list)
1613#define for_each_netdev_continue_rcu(net, d) \ 1618#define for_each_netdev_continue_rcu(net, d) \
1614 list_for_each_entry_continue_rcu(d, &(net)->dev_base_head, dev_list) 1619 list_for_each_entry_continue_rcu(d, &(net)->dev_base_head, dev_list)
1620#define for_each_netdev_in_bond_rcu(bond, slave) \
1621 for_each_netdev_rcu(&init_net, slave) \
1622 if (netdev_master_upper_dev_get_rcu(slave) == bond)
1615#define net_device_entry(lh) list_entry(lh, struct net_device, dev_list) 1623#define net_device_entry(lh) list_entry(lh, struct net_device, dev_list)
1616 1624
1617static inline struct net_device *next_net_device(struct net_device *dev) 1625static inline struct net_device *next_net_device(struct net_device *dev)
@@ -1684,7 +1692,6 @@ extern int netdev_refcnt_read(const struct net_device *dev);
1684extern void free_netdev(struct net_device *dev); 1692extern void free_netdev(struct net_device *dev);
1685extern void synchronize_net(void); 1693extern void synchronize_net(void);
1686extern int init_dummy_netdev(struct net_device *dev); 1694extern int init_dummy_netdev(struct net_device *dev);
1687extern void netdev_resync_ops(struct net_device *dev);
1688 1695
1689extern struct net_device *dev_get_by_index(struct net *net, int ifindex); 1696extern struct net_device *dev_get_by_index(struct net *net, int ifindex);
1690extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); 1697extern struct net_device *__dev_get_by_index(struct net *net, int ifindex);
@@ -2678,6 +2685,19 @@ struct sk_buff *skb_gso_segment(struct sk_buff *skb, netdev_features_t features)
2678{ 2685{
2679 return __skb_gso_segment(skb, features, true); 2686 return __skb_gso_segment(skb, features, true);
2680} 2687}
2688__be16 skb_network_protocol(struct sk_buff *skb);
2689
2690static inline bool can_checksum_protocol(netdev_features_t features,
2691 __be16 protocol)
2692{
2693 return ((features & NETIF_F_GEN_CSUM) ||
2694 ((features & NETIF_F_V4_CSUM) &&
2695 protocol == htons(ETH_P_IP)) ||
2696 ((features & NETIF_F_V6_CSUM) &&
2697 protocol == htons(ETH_P_IPV6)) ||
2698 ((features & NETIF_F_FCOE_CRC) &&
2699 protocol == htons(ETH_P_FCOE)));
2700}
2681 2701
2682#ifdef CONFIG_BUG 2702#ifdef CONFIG_BUG
2683extern void netdev_rx_csum_fault(struct net_device *dev); 2703extern void netdev_rx_csum_fault(struct net_device *dev);
@@ -2756,6 +2776,11 @@ static inline void netif_set_gso_max_size(struct net_device *dev,
2756 dev->gso_max_size = size; 2776 dev->gso_max_size = size;
2757} 2777}
2758 2778
2779static inline bool netif_is_bond_master(struct net_device *dev)
2780{
2781 return dev->flags & IFF_MASTER && dev->priv_flags & IFF_BONDING;
2782}
2783
2759static inline bool netif_is_bond_slave(struct net_device *dev) 2784static inline bool netif_is_bond_slave(struct net_device *dev)
2760{ 2785{
2761 return dev->flags & IFF_SLAVE && dev->priv_flags & IFF_BONDING; 2786 return dev->flags & IFF_SLAVE && dev->priv_flags & IFF_BONDING;
diff --git a/include/linux/openvswitch.h b/include/linux/openvswitch.h
index d42e174bd0c8..67d6c7b03581 100644
--- a/include/linux/openvswitch.h
+++ b/include/linux/openvswitch.h
@@ -94,7 +94,7 @@ struct ovs_vport_stats {
94}; 94};
95 95
96/* Fixed logical ports. */ 96/* Fixed logical ports. */
97#define OVSP_LOCAL ((__u16)0) 97#define OVSP_LOCAL ((__u32)0)
98 98
99/* Packet transfer. */ 99/* Packet transfer. */
100 100
@@ -127,7 +127,8 @@ enum ovs_packet_cmd {
127 * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes. 127 * for %OVS_PACKET_CMD_EXECUTE. It has nested %OVS_ACTION_ATTR_* attributes.
128 * @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION 128 * @OVS_PACKET_ATTR_USERDATA: Present for an %OVS_PACKET_CMD_ACTION
129 * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an 129 * notification if the %OVS_ACTION_ATTR_USERSPACE action specified an
130 * %OVS_USERSPACE_ATTR_USERDATA attribute. 130 * %OVS_USERSPACE_ATTR_USERDATA attribute, with the same length and content
131 * specified there.
131 * 132 *
132 * These attributes follow the &struct ovs_header within the Generic Netlink 133 * These attributes follow the &struct ovs_header within the Generic Netlink
133 * payload for %OVS_PACKET_* commands. 134 * payload for %OVS_PACKET_* commands.
@@ -137,7 +138,7 @@ enum ovs_packet_attr {
137 OVS_PACKET_ATTR_PACKET, /* Packet data. */ 138 OVS_PACKET_ATTR_PACKET, /* Packet data. */
138 OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */ 139 OVS_PACKET_ATTR_KEY, /* Nested OVS_KEY_ATTR_* attributes. */
139 OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */ 140 OVS_PACKET_ATTR_ACTIONS, /* Nested OVS_ACTION_ATTR_* attributes. */
140 OVS_PACKET_ATTR_USERDATA, /* u64 OVS_ACTION_ATTR_USERSPACE arg. */ 141 OVS_PACKET_ATTR_USERDATA, /* OVS_ACTION_ATTR_USERSPACE arg. */
141 __OVS_PACKET_ATTR_MAX 142 __OVS_PACKET_ATTR_MAX
142}; 143};
143 144
@@ -389,13 +390,13 @@ enum ovs_sample_attr {
389 * enum ovs_userspace_attr - Attributes for %OVS_ACTION_ATTR_USERSPACE action. 390 * enum ovs_userspace_attr - Attributes for %OVS_ACTION_ATTR_USERSPACE action.
390 * @OVS_USERSPACE_ATTR_PID: u32 Netlink PID to which the %OVS_PACKET_CMD_ACTION 391 * @OVS_USERSPACE_ATTR_PID: u32 Netlink PID to which the %OVS_PACKET_CMD_ACTION
391 * message should be sent. Required. 392 * message should be sent. Required.
392 * @OVS_USERSPACE_ATTR_USERDATA: If present, its u64 argument is copied to the 393 * @OVS_USERSPACE_ATTR_USERDATA: If present, its variable-length argument is
393 * %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA, 394 * copied to the %OVS_PACKET_CMD_ACTION message as %OVS_PACKET_ATTR_USERDATA.
394 */ 395 */
395enum ovs_userspace_attr { 396enum ovs_userspace_attr {
396 OVS_USERSPACE_ATTR_UNSPEC, 397 OVS_USERSPACE_ATTR_UNSPEC,
397 OVS_USERSPACE_ATTR_PID, /* u32 Netlink PID to receive upcalls. */ 398 OVS_USERSPACE_ATTR_PID, /* u32 Netlink PID to receive upcalls. */
398 OVS_USERSPACE_ATTR_USERDATA, /* u64 optional user-specified cookie. */ 399 OVS_USERSPACE_ATTR_USERDATA, /* Optional user-specified cookie. */
399 __OVS_USERSPACE_ATTR_MAX 400 __OVS_USERSPACE_ATTR_MAX
400}; 401};
401 402
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 33999adbf8c8..9e11039dd7a3 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -455,6 +455,14 @@ struct phy_driver {
455 */ 455 */
456 void (*txtstamp)(struct phy_device *dev, struct sk_buff *skb, int type); 456 void (*txtstamp)(struct phy_device *dev, struct sk_buff *skb, int type);
457 457
458 /* Some devices (e.g. qnap TS-119P II) require PHY register changes to
459 * enable Wake on LAN, so set_wol is provided to be called in the
460 * ethernet driver's set_wol function. */
461 int (*set_wol)(struct phy_device *dev, struct ethtool_wolinfo *wol);
462
463 /* See set_wol, but for checking whether Wake on LAN is enabled. */
464 void (*get_wol)(struct phy_device *dev, struct ethtool_wolinfo *wol);
465
458 struct device_driver driver; 466 struct device_driver driver;
459}; 467};
460#define to_phy_driver(d) container_of(d, struct phy_driver, driver) 468#define to_phy_driver(d) container_of(d, struct phy_driver, driver)
@@ -560,6 +568,8 @@ int phy_init_eee(struct phy_device *phydev, bool clk_stop_enable);
560int phy_get_eee_err(struct phy_device *phydev); 568int phy_get_eee_err(struct phy_device *phydev);
561int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data); 569int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data);
562int phy_ethtool_get_eee(struct phy_device *phydev, struct ethtool_eee *data); 570int phy_ethtool_get_eee(struct phy_device *phydev, struct ethtool_eee *data);
571int phy_ethtool_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol);
572void phy_ethtool_get_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol);
563 573
564int __init mdio_bus_init(void); 574int __init mdio_bus_init(void);
565void mdio_bus_exit(void); 575void mdio_bus_exit(void);
diff --git a/include/linux/platform_data/cpsw.h b/include/linux/platform_data/cpsw.h
index 798fb80b024b..bb3cd58d71e3 100644
--- a/include/linux/platform_data/cpsw.h
+++ b/include/linux/platform_data/cpsw.h
@@ -30,7 +30,7 @@ struct cpsw_platform_data {
30 u32 channels; /* number of cpdma channels (symmetric) */ 30 u32 channels; /* number of cpdma channels (symmetric) */
31 u32 slaves; /* number of slave cpgmac ports */ 31 u32 slaves; /* number of slave cpgmac ports */
32 struct cpsw_slave_data *slave_data; 32 struct cpsw_slave_data *slave_data;
33 u32 cpts_active_slave; /* time stamping slave */ 33 u32 active_slave; /* time stamping, ethtool and SIOCGMIIPHY slave */
34 u32 cpts_clock_mult; /* convert input clock ticks to nanoseconds */ 34 u32 cpts_clock_mult; /* convert input clock ticks to nanoseconds */
35 u32 cpts_clock_shift; /* convert input clock ticks to nanoseconds */ 35 u32 cpts_clock_shift; /* convert input clock ticks to nanoseconds */
36 u32 ale_entries; /* ale table size */ 36 u32 ale_entries; /* ale table size */
diff --git a/include/linux/rtnetlink.h b/include/linux/rtnetlink.h
index 489dd7bb28ec..f28544b2f9af 100644
--- a/include/linux/rtnetlink.h
+++ b/include/linux/rtnetlink.h
@@ -69,6 +69,15 @@ extern int ndo_dflt_fdb_dump(struct sk_buff *skb,
69 struct netlink_callback *cb, 69 struct netlink_callback *cb,
70 struct net_device *dev, 70 struct net_device *dev,
71 int idx); 71 int idx);
72extern int ndo_dflt_fdb_add(struct ndmsg *ndm,
73 struct nlattr *tb[],
74 struct net_device *dev,
75 const unsigned char *addr,
76 u16 flags);
77extern int ndo_dflt_fdb_del(struct ndmsg *ndm,
78 struct nlattr *tb[],
79 struct net_device *dev,
80 const unsigned char *addr);
72 81
73extern int ndo_dflt_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, 82extern int ndo_dflt_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq,
74 struct net_device *dev, u16 mode); 83 struct net_device *dev, u16 mode);
diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
index 441f5bfdab8e..fa88b966cb8e 100644
--- a/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -32,6 +32,7 @@
32#include <linux/hrtimer.h> 32#include <linux/hrtimer.h>
33#include <linux/dma-mapping.h> 33#include <linux/dma-mapping.h>
34#include <linux/netdev_features.h> 34#include <linux/netdev_features.h>
35#include <net/flow_keys.h>
35 36
36/* Don't change this without changing skb_csum_unnecessary! */ 37/* Don't change this without changing skb_csum_unnecessary! */
37#define CHECKSUM_NONE 0 38#define CHECKSUM_NONE 0
@@ -316,6 +317,8 @@ enum {
316 SKB_GSO_FCOE = 1 << 5, 317 SKB_GSO_FCOE = 1 << 5,
317 318
318 SKB_GSO_GRE = 1 << 6, 319 SKB_GSO_GRE = 1 << 6,
320
321 SKB_GSO_UDP_TUNNEL = 1 << 7,
319}; 322};
320 323
321#if BITS_PER_LONG > 32 324#if BITS_PER_LONG > 32
@@ -387,6 +390,7 @@ typedef unsigned char *sk_buff_data_t;
387 * @vlan_tci: vlan tag control information 390 * @vlan_tci: vlan tag control information
388 * @inner_transport_header: Inner transport layer header (encapsulation) 391 * @inner_transport_header: Inner transport layer header (encapsulation)
389 * @inner_network_header: Network layer header (encapsulation) 392 * @inner_network_header: Network layer header (encapsulation)
393 * @inner_mac_header: Link layer header (encapsulation)
390 * @transport_header: Transport layer header 394 * @transport_header: Transport layer header
391 * @network_header: Network layer header 395 * @network_header: Network layer header
392 * @mac_header: Link layer header 396 * @mac_header: Link layer header
@@ -505,6 +509,7 @@ struct sk_buff {
505 509
506 sk_buff_data_t inner_transport_header; 510 sk_buff_data_t inner_transport_header;
507 sk_buff_data_t inner_network_header; 511 sk_buff_data_t inner_network_header;
512 sk_buff_data_t inner_mac_header;
508 sk_buff_data_t transport_header; 513 sk_buff_data_t transport_header;
509 sk_buff_data_t network_header; 514 sk_buff_data_t network_header;
510 sk_buff_data_t mac_header; 515 sk_buff_data_t mac_header;
@@ -1471,6 +1476,7 @@ static inline void skb_reserve(struct sk_buff *skb, int len)
1471 1476
1472static inline void skb_reset_inner_headers(struct sk_buff *skb) 1477static inline void skb_reset_inner_headers(struct sk_buff *skb)
1473{ 1478{
1479 skb->inner_mac_header = skb->mac_header;
1474 skb->inner_network_header = skb->network_header; 1480 skb->inner_network_header = skb->network_header;
1475 skb->inner_transport_header = skb->transport_header; 1481 skb->inner_transport_header = skb->transport_header;
1476} 1482}
@@ -1516,6 +1522,22 @@ static inline void skb_set_inner_network_header(struct sk_buff *skb,
1516 skb->inner_network_header += offset; 1522 skb->inner_network_header += offset;
1517} 1523}
1518 1524
1525static inline unsigned char *skb_inner_mac_header(const struct sk_buff *skb)
1526{
1527 return skb->head + skb->inner_mac_header;
1528}
1529
1530static inline void skb_reset_inner_mac_header(struct sk_buff *skb)
1531{
1532 skb->inner_mac_header = skb->data - skb->head;
1533}
1534
1535static inline void skb_set_inner_mac_header(struct sk_buff *skb,
1536 const int offset)
1537{
1538 skb_reset_inner_mac_header(skb);
1539 skb->inner_mac_header += offset;
1540}
1519static inline bool skb_transport_header_was_set(const struct sk_buff *skb) 1541static inline bool skb_transport_header_was_set(const struct sk_buff *skb)
1520{ 1542{
1521 return skb->transport_header != ~0U; 1543 return skb->transport_header != ~0U;
@@ -1538,6 +1560,19 @@ static inline void skb_set_transport_header(struct sk_buff *skb,
1538 skb->transport_header += offset; 1560 skb->transport_header += offset;
1539} 1561}
1540 1562
1563static inline void skb_probe_transport_header(struct sk_buff *skb,
1564 const int offset_hint)
1565{
1566 struct flow_keys keys;
1567
1568 if (skb_transport_header_was_set(skb))
1569 return;
1570 else if (skb_flow_dissect(skb, &keys))
1571 skb_set_transport_header(skb, keys.thoff);
1572 else
1573 skb_set_transport_header(skb, offset_hint);
1574}
1575
1541static inline unsigned char *skb_network_header(const struct sk_buff *skb) 1576static inline unsigned char *skb_network_header(const struct sk_buff *skb)
1542{ 1577{
1543 return skb->head + skb->network_header; 1578 return skb->head + skb->network_header;
@@ -1609,6 +1644,21 @@ static inline void skb_set_inner_network_header(struct sk_buff *skb,
1609 skb->inner_network_header = skb->data + offset; 1644 skb->inner_network_header = skb->data + offset;
1610} 1645}
1611 1646
1647static inline unsigned char *skb_inner_mac_header(const struct sk_buff *skb)
1648{
1649 return skb->inner_mac_header;
1650}
1651
1652static inline void skb_reset_inner_mac_header(struct sk_buff *skb)
1653{
1654 skb->inner_mac_header = skb->data;
1655}
1656
1657static inline void skb_set_inner_mac_header(struct sk_buff *skb,
1658 const int offset)
1659{
1660 skb->inner_mac_header = skb->data + offset;
1661}
1612static inline bool skb_transport_header_was_set(const struct sk_buff *skb) 1662static inline bool skb_transport_header_was_set(const struct sk_buff *skb)
1613{ 1663{
1614 return skb->transport_header != NULL; 1664 return skb->transport_header != NULL;
@@ -2804,6 +2854,8 @@ static inline void skb_checksum_none_assert(const struct sk_buff *skb)
2804 2854
2805bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); 2855bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off);
2806 2856
2857u32 __skb_get_poff(const struct sk_buff *skb);
2858
2807/** 2859/**
2808 * skb_head_is_locked - Determine if the skb->head is locked down 2860 * skb_head_is_locked - Determine if the skb->head is locked down
2809 * @skb: skb to check 2861 * @skb: skb to check
diff --git a/include/linux/socket.h b/include/linux/socket.h
index 2b9f74b0ffea..428c37a1f95c 100644
--- a/include/linux/socket.h
+++ b/include/linux/socket.h
@@ -298,6 +298,7 @@ struct ucred {
298#define SOL_IUCV 277 298#define SOL_IUCV 277
299#define SOL_CAIF 278 299#define SOL_CAIF 278
300#define SOL_ALG 279 300#define SOL_ALG 279
301#define SOL_NFC 280
301 302
302/* IPX options */ 303/* IPX options */
303#define IPX_TYPE 1 304#define IPX_TYPE 1
diff --git a/include/linux/ssb/ssb.h b/include/linux/ssb/ssb.h
index 22958d68ecfe..8b1322296fed 100644
--- a/include/linux/ssb/ssb.h
+++ b/include/linux/ssb/ssb.h
@@ -26,9 +26,9 @@ struct ssb_sprom_core_pwr_info {
26 26
27struct ssb_sprom { 27struct ssb_sprom {
28 u8 revision; 28 u8 revision;
29 u8 il0mac[6]; /* MAC address for 802.11b/g */ 29 u8 il0mac[6] __aligned(sizeof(u16)); /* MAC address for 802.11b/g */
30 u8 et0mac[6]; /* MAC address for Ethernet */ 30 u8 et0mac[6] __aligned(sizeof(u16)); /* MAC address for Ethernet */
31 u8 et1mac[6]; /* MAC address for 802.11a */ 31 u8 et1mac[6] __aligned(sizeof(u16)); /* MAC address for 802.11a */
32 u8 et0phyaddr; /* MII address for enet0 */ 32 u8 et0phyaddr; /* MII address for enet0 */
33 u8 et1phyaddr; /* MII address for enet1 */ 33 u8 et1phyaddr; /* MII address for enet1 */
34 u8 et0mdcport; /* MDIO for enet0 */ 34 u8 et0mdcport; /* MDIO for enet0 */
diff --git a/include/linux/tcp.h b/include/linux/tcp.h
index f28408c07dc2..5adbc33d1ab3 100644
--- a/include/linux/tcp.h
+++ b/include/linux/tcp.h
@@ -90,9 +90,6 @@ struct tcp_options_received {
90 sack_ok : 4, /* SACK seen on SYN packet */ 90 sack_ok : 4, /* SACK seen on SYN packet */
91 snd_wscale : 4, /* Window scaling received from sender */ 91 snd_wscale : 4, /* Window scaling received from sender */
92 rcv_wscale : 4; /* Window scaling to send to receiver */ 92 rcv_wscale : 4; /* Window scaling to send to receiver */
93 u8 cookie_plus:6, /* bytes in authenticator/cookie option */
94 cookie_out_never:1,
95 cookie_in_always:1;
96 u8 num_sacks; /* Number of SACK blocks */ 93 u8 num_sacks; /* Number of SACK blocks */
97 u16 user_mss; /* mss requested by user in ioctl */ 94 u16 user_mss; /* mss requested by user in ioctl */
98 u16 mss_clamp; /* Maximal mss, negotiated at connection setup */ 95 u16 mss_clamp; /* Maximal mss, negotiated at connection setup */
@@ -102,7 +99,6 @@ static inline void tcp_clear_options(struct tcp_options_received *rx_opt)
102{ 99{
103 rx_opt->tstamp_ok = rx_opt->sack_ok = 0; 100 rx_opt->tstamp_ok = rx_opt->sack_ok = 0;
104 rx_opt->wscale_ok = rx_opt->snd_wscale = 0; 101 rx_opt->wscale_ok = rx_opt->snd_wscale = 0;
105 rx_opt->cookie_plus = 0;
106} 102}
107 103
108/* This is the max number of SACKS that we'll generate and process. It's safe 104/* This is the max number of SACKS that we'll generate and process. It's safe
@@ -191,20 +187,19 @@ struct tcp_sock {
191 u32 window_clamp; /* Maximal window to advertise */ 187 u32 window_clamp; /* Maximal window to advertise */
192 u32 rcv_ssthresh; /* Current window clamp */ 188 u32 rcv_ssthresh; /* Current window clamp */
193 189
194 u32 frto_highmark; /* snd_nxt when RTO occurred */
195 u16 advmss; /* Advertised MSS */ 190 u16 advmss; /* Advertised MSS */
196 u8 frto_counter; /* Number of new acks after RTO */ 191 u8 unused;
197 u8 nonagle : 4,/* Disable Nagle algorithm? */ 192 u8 nonagle : 4,/* Disable Nagle algorithm? */
198 thin_lto : 1,/* Use linear timeouts for thin streams */ 193 thin_lto : 1,/* Use linear timeouts for thin streams */
199 thin_dupack : 1,/* Fast retransmit on first dupack */ 194 thin_dupack : 1,/* Fast retransmit on first dupack */
200 repair : 1, 195 repair : 1,
201 unused : 1; 196 frto : 1;/* F-RTO (RFC5682) activated in CA_Loss */
202 u8 repair_queue; 197 u8 repair_queue;
203 u8 do_early_retrans:1,/* Enable RFC5827 early-retransmit */ 198 u8 do_early_retrans:1,/* Enable RFC5827 early-retransmit */
204 early_retrans_delayed:1, /* Delayed ER timer installed */
205 syn_data:1, /* SYN includes data */ 199 syn_data:1, /* SYN includes data */
206 syn_fastopen:1, /* SYN includes Fast Open option */ 200 syn_fastopen:1, /* SYN includes Fast Open option */
207 syn_data_acked:1;/* data in SYN is acked by SYN-ACK */ 201 syn_data_acked:1;/* data in SYN is acked by SYN-ACK */
202 u32 tlp_high_seq; /* snd_nxt at the time of TLP retransmit. */
208 203
209/* RTT measurement */ 204/* RTT measurement */
210 u32 srtt; /* smoothed round trip time << 3 */ 205 u32 srtt; /* smoothed round trip time << 3 */
@@ -320,12 +315,6 @@ struct tcp_sock {
320 struct tcp_md5sig_info __rcu *md5sig_info; 315 struct tcp_md5sig_info __rcu *md5sig_info;
321#endif 316#endif
322 317
323 /* When the cookie options are generated and exchanged, then this
324 * object holds a reference to them (cookie_values->kref). Also
325 * contains related tcp_cookie_transactions fields.
326 */
327 struct tcp_cookie_values *cookie_values;
328
329/* TCP fastopen related information */ 318/* TCP fastopen related information */
330 struct tcp_fastopen_request *fastopen_req; 319 struct tcp_fastopen_request *fastopen_req;
331 /* fastopen_rsk points to request_sock that resulted in this big 320 /* fastopen_rsk points to request_sock that resulted in this big
@@ -361,10 +350,6 @@ struct tcp_timewait_sock {
361#ifdef CONFIG_TCP_MD5SIG 350#ifdef CONFIG_TCP_MD5SIG
362 struct tcp_md5sig_key *tw_md5_key; 351 struct tcp_md5sig_key *tw_md5_key;
363#endif 352#endif
364 /* Few sockets in timewait have cookies; in that case, then this
365 * object holds a reference to them (tw_cookie_values->kref).
366 */
367 struct tcp_cookie_values *tw_cookie_values;
368}; 353};
369 354
370static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk) 355static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk)
diff --git a/include/linux/virtio.h b/include/linux/virtio.h
index ff6714e6d0f5..2d7a5e045908 100644
--- a/include/linux/virtio.h
+++ b/include/linux/virtio.h
@@ -58,12 +58,6 @@ void *virtqueue_detach_unused_buf(struct virtqueue *vq);
58 58
59unsigned int virtqueue_get_vring_size(struct virtqueue *vq); 59unsigned int virtqueue_get_vring_size(struct virtqueue *vq);
60 60
61/* FIXME: Obsolete accessor, but required for virtio_net merge. */
62static inline unsigned int virtqueue_get_queue_index(struct virtqueue *vq)
63{
64 return vq->index;
65}
66
67/** 61/**
68 * virtio_device - representation of a device using virtio 62 * virtio_device - representation of a device using virtio
69 * @index: unique position on the virtio bus 63 * @index: unique position on the virtio bus
diff --git a/include/linux/vm_sockets.h b/include/linux/vm_sockets.h
new file mode 100644
index 000000000000..0805eecba8f7
--- /dev/null
+++ b/include/linux/vm_sockets.h
@@ -0,0 +1,23 @@
1/*
2 * VMware vSockets Driver
3 *
4 * Copyright (C) 2007-2013 VMware, Inc. All rights reserved.
5 *
6 * This program is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the Free
8 * Software Foundation version 2 and no later version.
9 *
10 * This program is distributed in the hope that it will be useful, but WITHOUT
11 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
13 * more details.
14 */
15
16#ifndef _VM_SOCKETS_H
17#define _VM_SOCKETS_H
18
19#include <uapi/linux/vm_sockets.h>
20
21int vm_sockets_get_local_cid(void);
22
23#endif /* _VM_SOCKETS_H */