diff options
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/cn_proc.h | 4 | ||||
-rw-r--r-- | include/linux/filter.h | 11 | ||||
-rw-r--r-- | include/linux/ieee80211.h | 52 | ||||
-rw-r--r-- | include/linux/if_arp.h | 12 | ||||
-rw-r--r-- | include/linux/if_team.h | 25 | ||||
-rw-r--r-- | include/linux/micrel_phy.h | 1 | ||||
-rw-r--r-- | include/linux/mv643xx_eth.h | 1 | ||||
-rw-r--r-- | include/linux/netdev_features.h | 9 | ||||
-rw-r--r-- | include/linux/netdevice.h | 27 | ||||
-rw-r--r-- | include/linux/openvswitch.h | 13 | ||||
-rw-r--r-- | include/linux/phy.h | 10 | ||||
-rw-r--r-- | include/linux/platform_data/cpsw.h | 2 | ||||
-rw-r--r-- | include/linux/rtnetlink.h | 9 | ||||
-rw-r--r-- | include/linux/skbuff.h | 52 | ||||
-rw-r--r-- | include/linux/socket.h | 1 | ||||
-rw-r--r-- | include/linux/ssb/ssb.h | 6 | ||||
-rw-r--r-- | include/linux/tcp.h | 21 | ||||
-rw-r--r-- | include/linux/virtio.h | 6 | ||||
-rw-r--r-- | include/linux/vm_sockets.h | 23 |
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); | |||
26 | void proc_sid_connector(struct task_struct *task); | 26 | void proc_sid_connector(struct task_struct *task); |
27 | void proc_ptrace_connector(struct task_struct *task, int which_id); | 27 | void proc_ptrace_connector(struct task_struct *task, int which_id); |
28 | void proc_comm_connector(struct task_struct *task); | 28 | void proc_comm_connector(struct task_struct *task); |
29 | void proc_coredump_connector(struct task_struct *task); | ||
29 | void proc_exit_connector(struct task_struct *task); | 30 | void proc_exit_connector(struct task_struct *task); |
30 | #else | 31 | #else |
31 | static inline void proc_fork_connector(struct task_struct *task) | 32 | static 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 | ||
52 | static inline void proc_coredump_connector(struct task_struct *task) | ||
53 | {} | ||
54 | |||
51 | static inline void proc_exit_connector(struct task_struct *task) | 55 | static 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 |
51 | extern void bpf_jit_compile(struct sk_filter *fp); | 51 | extern void bpf_jit_compile(struct sk_filter *fp); |
52 | extern void bpf_jit_free(struct sk_filter *fp); | 52 | extern void bpf_jit_free(struct sk_filter *fp); |
53 | |||
54 | static 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 |
55 | static inline void bpf_jit_compile(struct sk_filter *fp) | 65 | static 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 | |||
121 | static inline int ieee80211_sn_less(u16 sn1, u16 sn2) | ||
122 | { | ||
123 | return ((sn1 - sn2) & IEEE80211_SN_MASK) > (IEEE80211_SN_MODULO >> 1); | ||
124 | } | ||
125 | |||
126 | static inline u16 ieee80211_sn_add(u16 sn1, u16 sn2) | ||
127 | { | ||
128 | return (sn1 + sn2) & IEEE80211_SN_MASK; | ||
129 | } | ||
130 | |||
131 | static inline u16 ieee80211_sn_inc(u16 sn) | ||
132 | { | ||
133 | return ieee80211_sn_add(sn, 1); | ||
134 | } | ||
135 | |||
136 | static 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 | ||
190 | struct ieee80211_hdr_3addr { | 218 | struct 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 | ||
199 | struct ieee80211_qos_hdr { | 227 | struct 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 | ||
911 | struct ieee80211_cts { | 939 | struct 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 | ||
917 | struct ieee80211_pspoll { | 945 | struct 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 | ||
34 | static inline int arp_hdr_len(struct net_device *dev) | 34 | static 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 | ||
115 | extern int team_modeop_port_enter(struct team *team, struct team_port *port); | ||
116 | extern void team_modeop_port_change_dev_addr(struct team *team, | ||
117 | struct team_port *port); | ||
118 | |||
115 | enum team_option_type { | 119 | enum 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 | ||
239 | extern int team_port_set_team_dev_addr(struct team_port *port); | 243 | static inline struct team_port * |
244 | team_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 | |||
240 | extern int team_options_register(struct team *team, | 263 | extern 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 | ||
20 | struct mv643xx_eth_shared_platform_data { | 20 | struct 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 | ||
1617 | static inline struct net_device *next_net_device(struct net_device *dev) | 1625 | static 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); | |||
1684 | extern void free_netdev(struct net_device *dev); | 1692 | extern void free_netdev(struct net_device *dev); |
1685 | extern void synchronize_net(void); | 1693 | extern void synchronize_net(void); |
1686 | extern int init_dummy_netdev(struct net_device *dev); | 1694 | extern int init_dummy_netdev(struct net_device *dev); |
1687 | extern void netdev_resync_ops(struct net_device *dev); | ||
1688 | 1695 | ||
1689 | extern struct net_device *dev_get_by_index(struct net *net, int ifindex); | 1696 | extern struct net_device *dev_get_by_index(struct net *net, int ifindex); |
1690 | extern struct net_device *__dev_get_by_index(struct net *net, int ifindex); | 1697 | extern 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 | |||
2690 | static 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 |
2683 | extern void netdev_rx_csum_fault(struct net_device *dev); | 2703 | extern 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 | ||
2779 | static inline bool netif_is_bond_master(struct net_device *dev) | ||
2780 | { | ||
2781 | return dev->flags & IFF_MASTER && dev->priv_flags & IFF_BONDING; | ||
2782 | } | ||
2783 | |||
2759 | static inline bool netif_is_bond_slave(struct net_device *dev) | 2784 | static 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 | */ |
395 | enum ovs_userspace_attr { | 396 | enum 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); | |||
560 | int phy_get_eee_err(struct phy_device *phydev); | 568 | int phy_get_eee_err(struct phy_device *phydev); |
561 | int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data); | 569 | int phy_ethtool_set_eee(struct phy_device *phydev, struct ethtool_eee *data); |
562 | int phy_ethtool_get_eee(struct phy_device *phydev, struct ethtool_eee *data); | 570 | int phy_ethtool_get_eee(struct phy_device *phydev, struct ethtool_eee *data); |
571 | int phy_ethtool_set_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol); | ||
572 | void phy_ethtool_get_wol(struct phy_device *phydev, struct ethtool_wolinfo *wol); | ||
563 | 573 | ||
564 | int __init mdio_bus_init(void); | 574 | int __init mdio_bus_init(void); |
565 | void mdio_bus_exit(void); | 575 | void 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); |
72 | extern 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); | ||
77 | extern int ndo_dflt_fdb_del(struct ndmsg *ndm, | ||
78 | struct nlattr *tb[], | ||
79 | struct net_device *dev, | ||
80 | const unsigned char *addr); | ||
72 | 81 | ||
73 | extern int ndo_dflt_bridge_getlink(struct sk_buff *skb, u32 pid, u32 seq, | 82 | extern 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 | ||
1472 | static inline void skb_reset_inner_headers(struct sk_buff *skb) | 1477 | static 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 | ||
1525 | static inline unsigned char *skb_inner_mac_header(const struct sk_buff *skb) | ||
1526 | { | ||
1527 | return skb->head + skb->inner_mac_header; | ||
1528 | } | ||
1529 | |||
1530 | static inline void skb_reset_inner_mac_header(struct sk_buff *skb) | ||
1531 | { | ||
1532 | skb->inner_mac_header = skb->data - skb->head; | ||
1533 | } | ||
1534 | |||
1535 | static 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 | } | ||
1519 | static inline bool skb_transport_header_was_set(const struct sk_buff *skb) | 1541 | static 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 | ||
1563 | static 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 | |||
1541 | static inline unsigned char *skb_network_header(const struct sk_buff *skb) | 1576 | static 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 | ||
1647 | static inline unsigned char *skb_inner_mac_header(const struct sk_buff *skb) | ||
1648 | { | ||
1649 | return skb->inner_mac_header; | ||
1650 | } | ||
1651 | |||
1652 | static inline void skb_reset_inner_mac_header(struct sk_buff *skb) | ||
1653 | { | ||
1654 | skb->inner_mac_header = skb->data; | ||
1655 | } | ||
1656 | |||
1657 | static 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 | } | ||
1612 | static inline bool skb_transport_header_was_set(const struct sk_buff *skb) | 1662 | static 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 | ||
2805 | bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); | 2855 | bool skb_partial_csum_set(struct sk_buff *skb, u16 start, u16 off); |
2806 | 2856 | ||
2857 | u32 __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 | ||
27 | struct ssb_sprom { | 27 | struct 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 | ||
370 | static inline struct tcp_timewait_sock *tcp_twsk(const struct sock *sk) | 355 | static 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 | ||
59 | unsigned int virtqueue_get_vring_size(struct virtqueue *vq); | 59 | unsigned int virtqueue_get_vring_size(struct virtqueue *vq); |
60 | 60 | ||
61 | /* FIXME: Obsolete accessor, but required for virtio_net merge. */ | ||
62 | static 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 | |||
21 | int vm_sockets_get_local_cid(void); | ||
22 | |||
23 | #endif /* _VM_SOCKETS_H */ | ||