aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-03-19 13:05:34 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-03-19 13:05:34 -0400
commit1200b6809dfd9d73bc4c7db76d288c35fa4b2ebe (patch)
tree552e03de245cdbd0780ca1215914edc4a26540f7 /arch
parent6b5f04b6cf8ebab9a65d9c0026c650bb2538fd0f (diff)
parentfe30937b65354c7fec244caebbdaae68e28ca797 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Highlights: 1) Support more Realtek wireless chips, from Jes Sorenson. 2) New BPF types for per-cpu hash and arrap maps, from Alexei Starovoitov. 3) Make several TCP sysctls per-namespace, from Nikolay Borisov. 4) Allow the use of SO_REUSEPORT in order to do per-thread processing of incoming TCP/UDP connections. The muxing can be done using a BPF program which hashes the incoming packet. From Craig Gallek. 5) Add a multiplexer for TCP streams, to provide a messaged based interface. BPF programs can be used to determine the message boundaries. From Tom Herbert. 6) Add 802.1AE MACSEC support, from Sabrina Dubroca. 7) Avoid factorial complexity when taking down an inetdev interface with lots of configured addresses. We were doing things like traversing the entire address less for each address removed, and flushing the entire netfilter conntrack table for every address as well. 8) Add and use SKB bulk free infrastructure, from Jesper Brouer. 9) Allow offloading u32 classifiers to hardware, and implement for ixgbe, from John Fastabend. 10) Allow configuring IRQ coalescing parameters on a per-queue basis, from Kan Liang. 11) Extend ethtool so that larger link mode masks can be supported. From David Decotigny. 12) Introduce devlink, which can be used to configure port link types (ethernet vs Infiniband, etc.), port splitting, and switch device level attributes as a whole. From Jiri Pirko. 13) Hardware offload support for flower classifiers, from Amir Vadai. 14) Add "Local Checksum Offload". Basically, for a tunneled packet the checksum of the outer header is 'constant' (because with the checksum field filled into the inner protocol header, the payload of the outer frame checksums to 'zero'), and we can take advantage of that in various ways. From Edward Cree" * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1548 commits) bonding: fix bond_get_stats() net: bcmgenet: fix dma api length mismatch net/mlx4_core: Fix backward compatibility on VFs phy: mdio-thunder: Fix some Kconfig typos lan78xx: add ndo_get_stats64 lan78xx: handle statistics counter rollover RDS: TCP: Remove unused constant RDS: TCP: Add sysctl tunables for sndbuf/rcvbuf on rds-tcp socket net: smc911x: convert pxa dma to dmaengine team: remove duplicate set of flag IFF_MULTICAST bonding: remove duplicate set of flag IFF_MULTICAST net: fix a comment typo ethernet: micrel: fix some error codes ip_tunnels, bpf: define IP_TUNNEL_OPTS_MAX and use it bpf, dst: add and use dst_tclassid helper bpf: make skb->tc_classid also readable net: mvneta: bm: clarify dependencies cls_bpf: reset class and reuse major in da ldmvsw: Checkpatch sunvnet.c and sunvnet_common.c ldmvsw: Add ldmvsw.c driver code ...
Diffstat (limited to 'arch')
-rw-r--r--arch/alpha/include/asm/checksum.h12
-rw-r--r--arch/alpha/include/uapi/asm/socket.h2
-rw-r--r--arch/alpha/lib/checksum.c8
-rw-r--r--arch/arc/include/asm/checksum.h4
-rw-r--r--arch/arm/boot/dts/armada-385-db-ap.dts20
-rw-r--r--arch/arm/boot/dts/armada-388-clearfog.dts6
-rw-r--r--arch/arm/boot/dts/armada-388-db.dts17
-rw-r--r--arch/arm/boot/dts/armada-388-gp.dts17
-rw-r--r--arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi15
-rw-r--r--arch/arm/boot/dts/armada-38x.dtsi19
-rw-r--r--arch/arm/boot/dts/armada-xp-db.dts19
-rw-r--r--arch/arm/boot/dts/armada-xp-gp.dts19
-rw-r--r--arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts19
-rw-r--r--arch/arm/boot/dts/armada-xp.dtsi19
-rw-r--r--arch/arm/boot/dts/ls1021a.dtsi12
-rw-r--r--arch/arm/boot/dts/rk3036-evb.dts14
-rw-r--r--arch/arm/boot/dts/rk3036-kylin.dts14
-rw-r--r--arch/arm/boot/dts/rk3036.dtsi39
-rw-r--r--arch/arm/configs/multi_v5_defconfig2
-rw-r--r--arch/arm/configs/mvebu_v5_defconfig2
-rw-r--r--arch/arm/configs/orion5x_defconfig2
-rw-r--r--arch/arm/include/asm/checksum.h14
-rw-r--r--arch/arm/mach-tegra/board-paz00.c17
-rw-r--r--arch/arm64/boot/dts/apm/apm-shadowcat.dtsi8
-rw-r--r--arch/arm64/boot/dts/apm/apm-storm.dtsi8
-rw-r--r--arch/avr32/include/asm/checksum.h10
-rw-r--r--arch/avr32/include/uapi/asm/socket.h2
-rw-r--r--arch/blackfin/include/asm/checksum.h4
-rw-r--r--arch/c6x/include/asm/checksum.h4
-rw-r--r--arch/cris/include/arch-v10/arch/checksum.h4
-rw-r--r--arch/cris/include/arch-v32/arch/checksum.h2
-rw-r--r--arch/cris/include/asm/checksum.h5
-rw-r--r--arch/frv/include/asm/checksum.h10
-rw-r--r--arch/frv/include/uapi/asm/socket.h2
-rw-r--r--arch/hexagon/include/asm/checksum.h8
-rw-r--r--arch/hexagon/lib/checksum.c10
-rw-r--r--arch/ia64/include/asm/checksum.h16
-rw-r--r--arch/ia64/include/uapi/asm/socket.h2
-rw-r--r--arch/ia64/lib/checksum.c8
-rw-r--r--arch/m32r/include/asm/checksum.h10
-rw-r--r--arch/m32r/include/uapi/asm/socket.h2
-rw-r--r--arch/m68k/include/asm/checksum.h2
-rw-r--r--arch/metag/include/asm/checksum.h7
-rw-r--r--arch/microblaze/include/asm/checksum.h4
-rw-r--r--arch/mips/include/asm/checksum.h8
-rw-r--r--arch/mips/include/uapi/asm/socket.h2
-rw-r--r--arch/mips/txx9/generic/setup_tx4939.c7
-rw-r--r--arch/mn10300/include/asm/checksum.h17
-rw-r--r--arch/mn10300/include/uapi/asm/socket.h2
-rw-r--r--arch/nios2/include/asm/checksum.h9
-rw-r--r--arch/parisc/include/asm/checksum.h12
-rw-r--r--arch/parisc/include/uapi/asm/socket.h2
-rw-r--r--arch/powerpc/include/uapi/asm/socket.h2
-rw-r--r--arch/s390/include/asm/checksum.h6
-rw-r--r--arch/s390/include/uapi/asm/socket.h2
-rw-r--r--arch/score/include/asm/checksum.h15
-rw-r--r--arch/sh/include/asm/checksum_32.h9
-rw-r--r--arch/sparc/configs/sparc64_defconfig1
-rw-r--r--arch/sparc/include/asm/checksum_32.h13
-rw-r--r--arch/sparc/include/asm/checksum_64.h9
-rw-r--r--arch/sparc/include/uapi/asm/socket.h2
-rw-r--r--arch/tile/configs/tilegx_defconfig2
-rw-r--r--arch/tile/configs/tilepro_defconfig2
-rw-r--r--arch/unicore32/include/asm/checksum.h4
-rw-r--r--arch/x86/events/core.c4
-rw-r--r--arch/x86/include/asm/checksum_32.h9
-rw-r--r--arch/x86/include/asm/checksum_64.h10
-rw-r--r--arch/x86/include/asm/stacktrace.h2
-rw-r--r--arch/x86/kernel/dumpstack.c6
-rw-r--r--arch/x86/kernel/stacktrace.c18
-rw-r--r--arch/x86/lib/csum-wrappers_64.c2
-rw-r--r--arch/x86/oprofile/backtrace.c3
-rw-r--r--arch/x86/um/asm/checksum.h9
-rw-r--r--arch/x86/um/asm/checksum_32.h2
-rw-r--r--arch/xtensa/include/asm/checksum.h12
-rw-r--r--arch/xtensa/include/uapi/asm/socket.h2
76 files changed, 440 insertions, 205 deletions
diff --git a/arch/alpha/include/asm/checksum.h b/arch/alpha/include/asm/checksum.h
index d3854bbf0a9e..f2bbdd2ace51 100644
--- a/arch/alpha/include/asm/checksum.h
+++ b/arch/alpha/include/asm/checksum.h
@@ -13,14 +13,11 @@ extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
13 * computes the checksum of the TCP/UDP pseudo-header 13 * computes the checksum of the TCP/UDP pseudo-header
14 * returns a 16-bit checksum, already complemented 14 * returns a 16-bit checksum, already complemented
15 */ 15 */
16extern __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 16__sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
17 unsigned short len, 17 __u32 len, __u8 proto, __wsum sum);
18 unsigned short proto,
19 __wsum sum);
20 18
21__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 19__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
22 unsigned short len, unsigned short proto, 20 __u32 len, __u8 proto, __wsum sum);
23 __wsum sum);
24 21
25/* 22/*
26 * computes the checksum of a memory block at buff, length len, 23 * computes the checksum of a memory block at buff, length len,
@@ -70,6 +67,5 @@ static inline __sum16 csum_fold(__wsum csum)
70#define _HAVE_ARCH_IPV6_CSUM 67#define _HAVE_ARCH_IPV6_CSUM
71extern __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 68extern __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
72 const struct in6_addr *daddr, 69 const struct in6_addr *daddr,
73 __u32 len, unsigned short proto, 70 __u32 len, __u8 proto, __wsum sum);
74 __wsum sum);
75#endif 71#endif
diff --git a/arch/alpha/include/uapi/asm/socket.h b/arch/alpha/include/uapi/asm/socket.h
index c5fb9e6bc3a5..9e46d6e656d9 100644
--- a/arch/alpha/include/uapi/asm/socket.h
+++ b/arch/alpha/include/uapi/asm/socket.h
@@ -95,4 +95,6 @@
95#define SO_ATTACH_REUSEPORT_CBPF 51 95#define SO_ATTACH_REUSEPORT_CBPF 51
96#define SO_ATTACH_REUSEPORT_EBPF 52 96#define SO_ATTACH_REUSEPORT_EBPF 52
97 97
98#define SO_CNX_ADVICE 53
99
98#endif /* _UAPI_ASM_SOCKET_H */ 100#endif /* _UAPI_ASM_SOCKET_H */
diff --git a/arch/alpha/lib/checksum.c b/arch/alpha/lib/checksum.c
index 199f6efa83fa..377f9e34eb97 100644
--- a/arch/alpha/lib/checksum.c
+++ b/arch/alpha/lib/checksum.c
@@ -42,9 +42,7 @@ static inline unsigned short from64to16(unsigned long x)
42 * returns a 16-bit checksum, already complemented. 42 * returns a 16-bit checksum, already complemented.
43 */ 43 */
44__sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 44__sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
45 unsigned short len, 45 __u32 len, __u8 proto, __wsum sum)
46 unsigned short proto,
47 __wsum sum)
48{ 46{
49 return (__force __sum16)~from64to16( 47 return (__force __sum16)~from64to16(
50 (__force u64)saddr + (__force u64)daddr + 48 (__force u64)saddr + (__force u64)daddr +
@@ -52,9 +50,7 @@ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
52} 50}
53 51
54__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 52__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
55 unsigned short len, 53 __u32 len, __u8 proto, __wsum sum)
56 unsigned short proto,
57 __wsum sum)
58{ 54{
59 unsigned long result; 55 unsigned long result;
60 56
diff --git a/arch/arc/include/asm/checksum.h b/arch/arc/include/asm/checksum.h
index 10957298b7a3..913eb4aab05b 100644
--- a/arch/arc/include/asm/checksum.h
+++ b/arch/arc/include/asm/checksum.h
@@ -70,8 +70,8 @@ ip_fast_csum(const void *iph, unsigned int ihl)
70 * SA [4], DA [4], zeroes [1], Proto[1], TCP Seg(hdr+data) Len [2] 70 * SA [4], DA [4], zeroes [1], Proto[1], TCP Seg(hdr+data) Len [2]
71 */ 71 */
72static inline __wsum 72static inline __wsum
73csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 73csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
74 unsigned short proto, __wsum sum) 74 __u8 proto, __wsum sum)
75{ 75{
76 __asm__ __volatile__( 76 __asm__ __volatile__(
77 " add.f %0, %0, %1 \n" 77 " add.f %0, %0, %1 \n"
diff --git a/arch/arm/boot/dts/armada-385-db-ap.dts b/arch/arm/boot/dts/armada-385-db-ap.dts
index acd5b1519edb..5f9451be21ff 100644
--- a/arch/arm/boot/dts/armada-385-db-ap.dts
+++ b/arch/arm/boot/dts/armada-385-db-ap.dts
@@ -61,7 +61,8 @@
61 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 61 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
62 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 62 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
63 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 63 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
64 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>; 64 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
65 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
65 66
66 internal-regs { 67 internal-regs {
67 spi1: spi@10680 { 68 spi1: spi@10680 {
@@ -138,12 +139,18 @@
138 status = "okay"; 139 status = "okay";
139 phy = <&phy2>; 140 phy = <&phy2>;
140 phy-mode = "sgmii"; 141 phy-mode = "sgmii";
142 buffer-manager = <&bm>;
143 bm,pool-long = <1>;
144 bm,pool-short = <3>;
141 }; 145 };
142 146
143 ethernet@34000 { 147 ethernet@34000 {
144 status = "okay"; 148 status = "okay";
145 phy = <&phy1>; 149 phy = <&phy1>;
146 phy-mode = "sgmii"; 150 phy-mode = "sgmii";
151 buffer-manager = <&bm>;
152 bm,pool-long = <2>;
153 bm,pool-short = <3>;
147 }; 154 };
148 155
149 ethernet@70000 { 156 ethernet@70000 {
@@ -157,6 +164,13 @@
157 status = "okay"; 164 status = "okay";
158 phy = <&phy0>; 165 phy = <&phy0>;
159 phy-mode = "rgmii-id"; 166 phy-mode = "rgmii-id";
167 buffer-manager = <&bm>;
168 bm,pool-long = <0>;
169 bm,pool-short = <3>;
170 };
171
172 bm@c8000 {
173 status = "okay";
160 }; 174 };
161 175
162 nfc: flash@d0000 { 176 nfc: flash@d0000 {
@@ -178,6 +192,10 @@
178 }; 192 };
179 }; 193 };
180 194
195 bm-bppi {
196 status = "okay";
197 };
198
181 pcie-controller { 199 pcie-controller {
182 status = "okay"; 200 status = "okay";
183 201
diff --git a/arch/arm/boot/dts/armada-388-clearfog.dts b/arch/arm/boot/dts/armada-388-clearfog.dts
index c6e180eb3b11..c60206efb583 100644
--- a/arch/arm/boot/dts/armada-388-clearfog.dts
+++ b/arch/arm/boot/dts/armada-388-clearfog.dts
@@ -78,6 +78,9 @@
78 internal-regs { 78 internal-regs {
79 ethernet@30000 { 79 ethernet@30000 {
80 phy-mode = "sgmii"; 80 phy-mode = "sgmii";
81 buffer-manager = <&bm>;
82 bm,pool-long = <2>;
83 bm,pool-short = <1>;
81 status = "okay"; 84 status = "okay";
82 85
83 fixed-link { 86 fixed-link {
@@ -88,6 +91,9 @@
88 91
89 ethernet@34000 { 92 ethernet@34000 {
90 phy-mode = "sgmii"; 93 phy-mode = "sgmii";
94 buffer-manager = <&bm>;
95 bm,pool-long = <3>;
96 bm,pool-short = <1>;
91 status = "okay"; 97 status = "okay";
92 98
93 fixed-link { 99 fixed-link {
diff --git a/arch/arm/boot/dts/armada-388-db.dts b/arch/arm/boot/dts/armada-388-db.dts
index ff47af57f091..ea93ed727030 100644
--- a/arch/arm/boot/dts/armada-388-db.dts
+++ b/arch/arm/boot/dts/armada-388-db.dts
@@ -66,7 +66,8 @@
66 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 66 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
67 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 67 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
68 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 68 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
69 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>; 69 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
70 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
70 71
71 internal-regs { 72 internal-regs {
72 spi@10600 { 73 spi@10600 {
@@ -99,6 +100,9 @@
99 status = "okay"; 100 status = "okay";
100 phy = <&phy1>; 101 phy = <&phy1>;
101 phy-mode = "rgmii-id"; 102 phy-mode = "rgmii-id";
103 buffer-manager = <&bm>;
104 bm,pool-long = <2>;
105 bm,pool-short = <3>;
102 }; 106 };
103 107
104 usb@58000 { 108 usb@58000 {
@@ -109,6 +113,9 @@
109 status = "okay"; 113 status = "okay";
110 phy = <&phy0>; 114 phy = <&phy0>;
111 phy-mode = "rgmii-id"; 115 phy-mode = "rgmii-id";
116 buffer-manager = <&bm>;
117 bm,pool-long = <0>;
118 bm,pool-short = <1>;
112 }; 119 };
113 120
114 mdio@72004 { 121 mdio@72004 {
@@ -129,6 +136,10 @@
129 status = "okay"; 136 status = "okay";
130 }; 137 };
131 138
139 bm@c8000 {
140 status = "okay";
141 };
142
132 flash@d0000 { 143 flash@d0000 {
133 status = "okay"; 144 status = "okay";
134 num-cs = <1>; 145 num-cs = <1>;
@@ -169,6 +180,10 @@
169 }; 180 };
170 }; 181 };
171 182
183 bm-bppi {
184 status = "okay";
185 };
186
172 pcie-controller { 187 pcie-controller {
173 status = "okay"; 188 status = "okay";
174 /* 189 /*
diff --git a/arch/arm/boot/dts/armada-388-gp.dts b/arch/arm/boot/dts/armada-388-gp.dts
index cd316021d6ce..466b01eb1038 100644
--- a/arch/arm/boot/dts/armada-388-gp.dts
+++ b/arch/arm/boot/dts/armada-388-gp.dts
@@ -60,7 +60,8 @@
60 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 60 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
61 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 61 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
62 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 62 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
63 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>; 63 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
64 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
64 65
65 internal-regs { 66 internal-regs {
66 spi@10600 { 67 spi@10600 {
@@ -133,6 +134,9 @@
133 status = "okay"; 134 status = "okay";
134 phy = <&phy1>; 135 phy = <&phy1>;
135 phy-mode = "rgmii-id"; 136 phy-mode = "rgmii-id";
137 buffer-manager = <&bm>;
138 bm,pool-long = <2>;
139 bm,pool-short = <3>;
136 }; 140 };
137 141
138 /* CON4 */ 142 /* CON4 */
@@ -152,6 +156,9 @@
152 status = "okay"; 156 status = "okay";
153 phy = <&phy0>; 157 phy = <&phy0>;
154 phy-mode = "rgmii-id"; 158 phy-mode = "rgmii-id";
159 buffer-manager = <&bm>;
160 bm,pool-long = <0>;
161 bm,pool-short = <1>;
155 }; 162 };
156 163
157 164
@@ -186,6 +193,10 @@
186 }; 193 };
187 }; 194 };
188 195
196 bm@c8000 {
197 status = "okay";
198 };
199
189 sata@e0000 { 200 sata@e0000 {
190 pinctrl-names = "default"; 201 pinctrl-names = "default";
191 pinctrl-0 = <&sata2_pins>, <&sata3_pins>; 202 pinctrl-0 = <&sata2_pins>, <&sata3_pins>;
@@ -240,6 +251,10 @@
240 }; 251 };
241 }; 252 };
242 253
254 bm-bppi {
255 status = "okay";
256 };
257
243 pcie-controller { 258 pcie-controller {
244 status = "okay"; 259 status = "okay";
245 /* 260 /*
diff --git a/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
index 3f792a563c05..8c9842237b60 100644
--- a/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
+++ b/arch/arm/boot/dts/armada-38x-solidrun-microsom.dtsi
@@ -58,7 +58,8 @@
58 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000 58 ranges = <MBUS_ID(0xf0, 0x01) 0 0xf1000000 0x100000
59 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000 59 MBUS_ID(0x01, 0x1d) 0 0xfff00000 0x100000
60 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000 60 MBUS_ID(0x09, 0x19) 0 0xf1100000 0x10000
61 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000>; 61 MBUS_ID(0x09, 0x15) 0 0xf1110000 0x10000
62 MBUS_ID(0x0c, 0x04) 0 0xf1200000 0x100000>;
62 63
63 internal-regs { 64 internal-regs {
64 ethernet@70000 { 65 ethernet@70000 {
@@ -66,6 +67,9 @@
66 pinctrl-names = "default"; 67 pinctrl-names = "default";
67 phy = <&phy_dedicated>; 68 phy = <&phy_dedicated>;
68 phy-mode = "rgmii-id"; 69 phy-mode = "rgmii-id";
70 buffer-manager = <&bm>;
71 bm,pool-long = <0>;
72 bm,pool-short = <1>;
69 status = "okay"; 73 status = "okay";
70 }; 74 };
71 75
@@ -110,6 +114,15 @@
110 pinctrl-names = "default"; 114 pinctrl-names = "default";
111 status = "okay"; 115 status = "okay";
112 }; 116 };
117
118 bm@c8000 {
119 status = "okay";
120 };
113 }; 121 };
122
123 bm-bppi {
124 status = "okay";
125 };
126
114 }; 127 };
115}; 128};
diff --git a/arch/arm/boot/dts/armada-38x.dtsi b/arch/arm/boot/dts/armada-38x.dtsi
index e8b7f6726772..066a8f06405c 100644
--- a/arch/arm/boot/dts/armada-38x.dtsi
+++ b/arch/arm/boot/dts/armada-38x.dtsi
@@ -540,6 +540,14 @@
540 status = "disabled"; 540 status = "disabled";
541 }; 541 };
542 542
543 bm: bm@c8000 {
544 compatible = "marvell,armada-380-neta-bm";
545 reg = <0xc8000 0xac>;
546 clocks = <&gateclk 13>;
547 internal-mem = <&bm_bppi>;
548 status = "disabled";
549 };
550
543 sata@e0000 { 551 sata@e0000 {
544 compatible = "marvell,armada-380-ahci"; 552 compatible = "marvell,armada-380-ahci";
545 reg = <0xe0000 0x2000>; 553 reg = <0xe0000 0x2000>;
@@ -618,6 +626,17 @@
618 #size-cells = <1>; 626 #size-cells = <1>;
619 ranges = <0 MBUS_ID(0x09, 0x15) 0 0x800>; 627 ranges = <0 MBUS_ID(0x09, 0x15) 0 0x800>;
620 }; 628 };
629
630 bm_bppi: bm-bppi {
631 compatible = "mmio-sram";
632 reg = <MBUS_ID(0x0c, 0x04) 0 0x100000>;
633 ranges = <0 MBUS_ID(0x0c, 0x04) 0 0x100000>;
634 #address-cells = <1>;
635 #size-cells = <1>;
636 clocks = <&gateclk 13>;
637 no-memory-wc;
638 status = "disabled";
639 };
621 }; 640 };
622 641
623 clocks { 642 clocks {
diff --git a/arch/arm/boot/dts/armada-xp-db.dts b/arch/arm/boot/dts/armada-xp-db.dts
index ebe1d267406d..cca366590561 100644
--- a/arch/arm/boot/dts/armada-xp-db.dts
+++ b/arch/arm/boot/dts/armada-xp-db.dts
@@ -77,7 +77,8 @@
77 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 77 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
78 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 78 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
79 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 79 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
80 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 80 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000
81 MBUS_ID(0x0c, 0x04) 0 0 0xf1200000 0x100000>;
81 82
82 devbus-bootcs { 83 devbus-bootcs {
83 status = "okay"; 84 status = "okay";
@@ -181,21 +182,33 @@
181 status = "okay"; 182 status = "okay";
182 phy = <&phy0>; 183 phy = <&phy0>;
183 phy-mode = "rgmii-id"; 184 phy-mode = "rgmii-id";
185 buffer-manager = <&bm>;
186 bm,pool-long = <0>;
184 }; 187 };
185 ethernet@74000 { 188 ethernet@74000 {
186 status = "okay"; 189 status = "okay";
187 phy = <&phy1>; 190 phy = <&phy1>;
188 phy-mode = "rgmii-id"; 191 phy-mode = "rgmii-id";
192 buffer-manager = <&bm>;
193 bm,pool-long = <1>;
189 }; 194 };
190 ethernet@30000 { 195 ethernet@30000 {
191 status = "okay"; 196 status = "okay";
192 phy = <&phy2>; 197 phy = <&phy2>;
193 phy-mode = "sgmii"; 198 phy-mode = "sgmii";
199 buffer-manager = <&bm>;
200 bm,pool-long = <2>;
194 }; 201 };
195 ethernet@34000 { 202 ethernet@34000 {
196 status = "okay"; 203 status = "okay";
197 phy = <&phy3>; 204 phy = <&phy3>;
198 phy-mode = "sgmii"; 205 phy-mode = "sgmii";
206 buffer-manager = <&bm>;
207 bm,pool-long = <3>;
208 };
209
210 bm@c0000 {
211 status = "okay";
199 }; 212 };
200 213
201 mvsdio@d4000 { 214 mvsdio@d4000 {
@@ -230,5 +243,9 @@
230 }; 243 };
231 }; 244 };
232 }; 245 };
246
247 bm-bppi {
248 status = "okay";
249 };
233 }; 250 };
234}; 251};
diff --git a/arch/arm/boot/dts/armada-xp-gp.dts b/arch/arm/boot/dts/armada-xp-gp.dts
index 5730b875c4f5..061f4237760e 100644
--- a/arch/arm/boot/dts/armada-xp-gp.dts
+++ b/arch/arm/boot/dts/armada-xp-gp.dts
@@ -96,7 +96,8 @@
96 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 96 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
97 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 97 MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000
98 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 98 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
99 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 99 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000
100 MBUS_ID(0x0c, 0x04) 0 0 0xf1200000 0x100000>;
100 101
101 devbus-bootcs { 102 devbus-bootcs {
102 status = "okay"; 103 status = "okay";
@@ -196,21 +197,29 @@
196 status = "okay"; 197 status = "okay";
197 phy = <&phy0>; 198 phy = <&phy0>;
198 phy-mode = "qsgmii"; 199 phy-mode = "qsgmii";
200 buffer-manager = <&bm>;
201 bm,pool-long = <0>;
199 }; 202 };
200 ethernet@74000 { 203 ethernet@74000 {
201 status = "okay"; 204 status = "okay";
202 phy = <&phy1>; 205 phy = <&phy1>;
203 phy-mode = "qsgmii"; 206 phy-mode = "qsgmii";
207 buffer-manager = <&bm>;
208 bm,pool-long = <1>;
204 }; 209 };
205 ethernet@30000 { 210 ethernet@30000 {
206 status = "okay"; 211 status = "okay";
207 phy = <&phy2>; 212 phy = <&phy2>;
208 phy-mode = "qsgmii"; 213 phy-mode = "qsgmii";
214 buffer-manager = <&bm>;
215 bm,pool-long = <2>;
209 }; 216 };
210 ethernet@34000 { 217 ethernet@34000 {
211 status = "okay"; 218 status = "okay";
212 phy = <&phy3>; 219 phy = <&phy3>;
213 phy-mode = "qsgmii"; 220 phy-mode = "qsgmii";
221 buffer-manager = <&bm>;
222 bm,pool-long = <3>;
214 }; 223 };
215 224
216 /* Front-side USB slot */ 225 /* Front-side USB slot */
@@ -235,6 +244,10 @@
235 }; 244 };
236 }; 245 };
237 246
247 bm@c0000 {
248 status = "okay";
249 };
250
238 nand@d0000 { 251 nand@d0000 {
239 status = "okay"; 252 status = "okay";
240 num-cs = <1>; 253 num-cs = <1>;
@@ -243,5 +256,9 @@
243 nand-on-flash-bbt; 256 nand-on-flash-bbt;
244 }; 257 };
245 }; 258 };
259
260 bm-bppi {
261 status = "okay";
262 };
246 }; 263 };
247}; 264};
diff --git a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
index 853bd392a4fe..ed3b889d16ce 100644
--- a/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
+++ b/arch/arm/boot/dts/armada-xp-openblocks-ax3-4.dts
@@ -67,7 +67,8 @@
67 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 67 MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000
68 MBUS_ID(0x01, 0x2f) 0 0 0xe8000000 0x8000000 68 MBUS_ID(0x01, 0x2f) 0 0 0xe8000000 0x8000000
69 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000 69 MBUS_ID(0x09, 0x09) 0 0 0xf1100000 0x10000
70 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000>; 70 MBUS_ID(0x09, 0x05) 0 0 0xf1110000 0x10000
71 MBUS_ID(0x0c, 0x04) 0 0 0xd1200000 0x100000>;
71 72
72 devbus-bootcs { 73 devbus-bootcs {
73 status = "okay"; 74 status = "okay";
@@ -176,21 +177,29 @@
176 status = "okay"; 177 status = "okay";
177 phy = <&phy0>; 178 phy = <&phy0>;
178 phy-mode = "sgmii"; 179 phy-mode = "sgmii";
180 buffer-manager = <&bm>;
181 bm,pool-long = <0>;
179 }; 182 };
180 ethernet@74000 { 183 ethernet@74000 {
181 status = "okay"; 184 status = "okay";
182 phy = <&phy1>; 185 phy = <&phy1>;
183 phy-mode = "sgmii"; 186 phy-mode = "sgmii";
187 buffer-manager = <&bm>;
188 bm,pool-long = <1>;
184 }; 189 };
185 ethernet@30000 { 190 ethernet@30000 {
186 status = "okay"; 191 status = "okay";
187 phy = <&phy2>; 192 phy = <&phy2>;
188 phy-mode = "sgmii"; 193 phy-mode = "sgmii";
194 buffer-manager = <&bm>;
195 bm,pool-long = <2>;
189 }; 196 };
190 ethernet@34000 { 197 ethernet@34000 {
191 status = "okay"; 198 status = "okay";
192 phy = <&phy3>; 199 phy = <&phy3>;
193 phy-mode = "sgmii"; 200 phy-mode = "sgmii";
201 buffer-manager = <&bm>;
202 bm,pool-long = <3>;
194 }; 203 };
195 i2c@11000 { 204 i2c@11000 {
196 status = "okay"; 205 status = "okay";
@@ -219,6 +228,14 @@
219 usb@51000 { 228 usb@51000 {
220 status = "okay"; 229 status = "okay";
221 }; 230 };
231
232 bm@c0000 {
233 status = "okay";
234 };
235 };
236
237 bm-bppi {
238 status = "okay";
222 }; 239 };
223 }; 240 };
224}; 241};
diff --git a/arch/arm/boot/dts/armada-xp.dtsi b/arch/arm/boot/dts/armada-xp.dtsi
index be23196829bb..553349c07f28 100644
--- a/arch/arm/boot/dts/armada-xp.dtsi
+++ b/arch/arm/boot/dts/armada-xp.dtsi
@@ -253,6 +253,14 @@
253 marvell,crypto-sram-size = <0x800>; 253 marvell,crypto-sram-size = <0x800>;
254 }; 254 };
255 255
256 bm: bm@c0000 {
257 compatible = "marvell,armada-380-neta-bm";
258 reg = <0xc0000 0xac>;
259 clocks = <&gateclk 13>;
260 internal-mem = <&bm_bppi>;
261 status = "disabled";
262 };
263
256 xor@f0900 { 264 xor@f0900 {
257 compatible = "marvell,orion-xor"; 265 compatible = "marvell,orion-xor";
258 reg = <0xF0900 0x100 266 reg = <0xF0900 0x100
@@ -291,6 +299,17 @@
291 #size-cells = <1>; 299 #size-cells = <1>;
292 ranges = <0 MBUS_ID(0x09, 0x05) 0 0x800>; 300 ranges = <0 MBUS_ID(0x09, 0x05) 0 0x800>;
293 }; 301 };
302
303 bm_bppi: bm-bppi {
304 compatible = "mmio-sram";
305 reg = <MBUS_ID(0x0c, 0x04) 0 0x100000>;
306 ranges = <0 MBUS_ID(0x0c, 0x04) 0 0x100000>;
307 #address-cells = <1>;
308 #size-cells = <1>;
309 clocks = <&gateclk 13>;
310 no-memory-wc;
311 status = "disabled";
312 };
294 }; 313 };
295 314
296 clocks { 315 clocks {
diff --git a/arch/arm/boot/dts/ls1021a.dtsi b/arch/arm/boot/dts/ls1021a.dtsi
index 2c84ca236473..ecf12dc22595 100644
--- a/arch/arm/boot/dts/ls1021a.dtsi
+++ b/arch/arm/boot/dts/ls1021a.dtsi
@@ -457,6 +457,18 @@
457 reg = <0x0 0x2d24000 0x0 0x4000>; 457 reg = <0x0 0x2d24000 0x0 0x4000>;
458 }; 458 };
459 459
460 ptp_clock@2d10e00 {
461 compatible = "fsl,etsec-ptp";
462 reg = <0x0 0x2d10e00 0x0 0xb0>;
463 interrupts = <GIC_SPI 173 IRQ_TYPE_LEVEL_HIGH>;
464 fsl,tclk-period = <5>;
465 fsl,tmr-prsc = <2>;
466 fsl,tmr-add = <0xaaaaaaab>;
467 fsl,tmr-fiper1 = <999999990>;
468 fsl,tmr-fiper2 = <99990>;
469 fsl,max-adj = <499999999>;
470 };
471
460 enet0: ethernet@2d10000 { 472 enet0: ethernet@2d10000 {
461 compatible = "fsl,etsec2"; 473 compatible = "fsl,etsec2";
462 device_type = "network"; 474 device_type = "network";
diff --git a/arch/arm/boot/dts/rk3036-evb.dts b/arch/arm/boot/dts/rk3036-evb.dts
index 28a033666017..b3d6ec87f615 100644
--- a/arch/arm/boot/dts/rk3036-evb.dts
+++ b/arch/arm/boot/dts/rk3036-evb.dts
@@ -47,6 +47,20 @@
47 compatible = "rockchip,rk3036-evb", "rockchip,rk3036"; 47 compatible = "rockchip,rk3036-evb", "rockchip,rk3036";
48}; 48};
49 49
50&emac {
51 pinctrl-names = "default";
52 pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
53 phy = <&phy0>;
54 phy-reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; /* PHY_RST */
55 phy-reset-duration = <10>; /* millisecond */
56
57 status = "okay";
58
59 phy0: ethernet-phy@0 {
60 reg = <0>;
61 };
62};
63
50&i2c1 { 64&i2c1 {
51 status = "okay"; 65 status = "okay";
52 66
diff --git a/arch/arm/boot/dts/rk3036-kylin.dts b/arch/arm/boot/dts/rk3036-kylin.dts
index 992f9cadbc04..6b4ffc3cd590 100644
--- a/arch/arm/boot/dts/rk3036-kylin.dts
+++ b/arch/arm/boot/dts/rk3036-kylin.dts
@@ -60,6 +60,20 @@
60 status = "okay"; 60 status = "okay";
61}; 61};
62 62
63&emac {
64 pinctrl-names = "default";
65 pinctrl-0 = <&emac_xfer>, <&emac_mdio>;
66 phy = <&phy0>;
67 phy-reset-gpios = <&gpio2 22 GPIO_ACTIVE_LOW>; /* PHY_RST */
68 phy-reset-duration = <10>; /* millisecond */
69
70 status = "okay";
71
72 phy0: ethernet-phy@0 {
73 reg = <0>;
74 };
75};
76
63&emmc { 77&emmc {
64 status = "okay"; 78 status = "okay";
65}; 79};
diff --git a/arch/arm/boot/dts/rk3036.dtsi b/arch/arm/boot/dts/rk3036.dtsi
index b9567c1e0687..609319ce916a 100644
--- a/arch/arm/boot/dts/rk3036.dtsi
+++ b/arch/arm/boot/dts/rk3036.dtsi
@@ -186,6 +186,27 @@
186 status = "disabled"; 186 status = "disabled";
187 }; 187 };
188 188
189 emac: ethernet@10200000 {
190 compatible = "rockchip,rk3036-emac", "snps,arc-emac";
191 reg = <0x10200000 0x4000>;
192 interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
193 #address-cells = <1>;
194 #size-cells = <0>;
195 rockchip,grf = <&grf>;
196 clocks = <&cru HCLK_MAC>, <&cru SCLK_MACREF>, <&cru SCLK_MAC>;
197 clock-names = "hclk", "macref", "macclk";
198 /*
199 * Fix the emac parent clock is DPLL instead of APLL.
200 * since that will cause some unstable things if the cpufreq
201 * is working. (e.g: the accurate 50MHz what mac_ref need)
202 */
203 assigned-clocks = <&cru SCLK_MACPLL>;
204 assigned-clock-parents = <&cru PLL_DPLL>;
205 max-speed = <100>;
206 phy-mode = "rmii";
207 status = "disabled";
208 };
209
189 sdmmc: dwmmc@10214000 { 210 sdmmc: dwmmc@10214000 {
190 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc"; 211 compatible = "rockchip,rk3036-dw-mshc", "rockchip,rk3288-dw-mshc";
191 reg = <0x10214000 0x4000>; 212 reg = <0x10214000 0x4000>;
@@ -556,6 +577,24 @@
556 }; 577 };
557 }; 578 };
558 579
580 emac {
581 emac_xfer: emac-xfer {
582 rockchip,pins = <2 10 RK_FUNC_1 &pcfg_pull_default>, /* crs_dvalid */
583 <2 13 RK_FUNC_1 &pcfg_pull_default>, /* tx_en */
584 <2 14 RK_FUNC_1 &pcfg_pull_default>, /* mac_clk */
585 <2 15 RK_FUNC_1 &pcfg_pull_default>, /* rx_err */
586 <2 16 RK_FUNC_1 &pcfg_pull_default>, /* rxd1 */
587 <2 17 RK_FUNC_1 &pcfg_pull_default>, /* rxd0 */
588 <2 18 RK_FUNC_1 &pcfg_pull_default>, /* txd1 */
589 <2 19 RK_FUNC_1 &pcfg_pull_default>; /* txd0 */
590 };
591
592 emac_mdio: emac-mdio {
593 rockchip,pins = <2 12 RK_FUNC_1 &pcfg_pull_default>, /* mac_md */
594 <2 25 RK_FUNC_1 &pcfg_pull_default>; /* mac_mdclk */
595 };
596 };
597
559 i2c0 { 598 i2c0 {
560 i2c0_xfer: i2c0-xfer { 599 i2c0_xfer: i2c0-xfer {
561 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>, 600 rockchip,pins = <0 0 RK_FUNC_1 &pcfg_pull_none>,
diff --git a/arch/arm/configs/multi_v5_defconfig b/arch/arm/configs/multi_v5_defconfig
index 1f9ca4737ef6..afb1f62fb05e 100644
--- a/arch/arm/configs/multi_v5_defconfig
+++ b/arch/arm/configs/multi_v5_defconfig
@@ -91,7 +91,7 @@ CONFIG_SATA_MV=y
91CONFIG_NETDEVICES=y 91CONFIG_NETDEVICES=y
92CONFIG_NET_DSA_MV88E6060=y 92CONFIG_NET_DSA_MV88E6060=y
93CONFIG_NET_DSA_MV88E6131=y 93CONFIG_NET_DSA_MV88E6131=y
94CONFIG_NET_DSA_MV88E6123_61_65=y 94CONFIG_NET_DSA_MV88E6123=y
95CONFIG_NET_DSA_MV88E6171=y 95CONFIG_NET_DSA_MV88E6171=y
96CONFIG_NET_DSA_MV88E6352=y 96CONFIG_NET_DSA_MV88E6352=y
97CONFIG_MV643XX_ETH=y 97CONFIG_MV643XX_ETH=y
diff --git a/arch/arm/configs/mvebu_v5_defconfig b/arch/arm/configs/mvebu_v5_defconfig
index af29780accdc..6c4c54037bc4 100644
--- a/arch/arm/configs/mvebu_v5_defconfig
+++ b/arch/arm/configs/mvebu_v5_defconfig
@@ -92,7 +92,7 @@ CONFIG_SATA_MV=y
92CONFIG_NETDEVICES=y 92CONFIG_NETDEVICES=y
93CONFIG_NET_DSA_MV88E6060=y 93CONFIG_NET_DSA_MV88E6060=y
94CONFIG_NET_DSA_MV88E6131=y 94CONFIG_NET_DSA_MV88E6131=y
95CONFIG_NET_DSA_MV88E6123_61_65=y 95CONFIG_NET_DSA_MV88E6123=y
96CONFIG_NET_DSA_MV88E6171=y 96CONFIG_NET_DSA_MV88E6171=y
97CONFIG_NET_DSA_MV88E6352=y 97CONFIG_NET_DSA_MV88E6352=y
98CONFIG_MV643XX_ETH=y 98CONFIG_MV643XX_ETH=y
diff --git a/arch/arm/configs/orion5x_defconfig b/arch/arm/configs/orion5x_defconfig
index 5876ce7af130..6a5bc27538f1 100644
--- a/arch/arm/configs/orion5x_defconfig
+++ b/arch/arm/configs/orion5x_defconfig
@@ -86,7 +86,7 @@ CONFIG_SATA_MV=y
86CONFIG_NETDEVICES=y 86CONFIG_NETDEVICES=y
87CONFIG_MII=y 87CONFIG_MII=y
88CONFIG_NET_DSA_MV88E6131=y 88CONFIG_NET_DSA_MV88E6131=y
89CONFIG_NET_DSA_MV88E6123_61_65=y 89CONFIG_NET_DSA_MV88E6123=y
90CONFIG_MV643XX_ETH=y 90CONFIG_MV643XX_ETH=y
91CONFIG_MARVELL_PHY=y 91CONFIG_MARVELL_PHY=y
92# CONFIG_INPUT_MOUSEDEV is not set 92# CONFIG_INPUT_MOUSEDEV is not set
diff --git a/arch/arm/include/asm/checksum.h b/arch/arm/include/asm/checksum.h
index 523315115478..524692f4acab 100644
--- a/arch/arm/include/asm/checksum.h
+++ b/arch/arm/include/asm/checksum.h
@@ -84,10 +84,10 @@ ip_fast_csum(const void *iph, unsigned int ihl)
84} 84}
85 85
86static inline __wsum 86static inline __wsum
87csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 87csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
88 unsigned short proto, __wsum sum) 88 __u8 proto, __wsum sum)
89{ 89{
90 u32 lenprot = len | proto << 16; 90 u32 lenprot = len + proto;
91 if (__builtin_constant_p(sum) && sum == 0) { 91 if (__builtin_constant_p(sum) && sum == 0) {
92 __asm__( 92 __asm__(
93 "adds %0, %1, %2 @ csum_tcpudp_nofold0 \n\t" 93 "adds %0, %1, %2 @ csum_tcpudp_nofold0 \n\t"
@@ -121,8 +121,8 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
121 * returns a 16-bit checksum, already complemented 121 * returns a 16-bit checksum, already complemented
122 */ 122 */
123static inline __sum16 123static inline __sum16
124csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len, 124csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len,
125 unsigned short proto, __wsum sum) 125 __u8 proto, __wsum sum)
126{ 126{
127 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 127 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
128} 128}
@@ -144,8 +144,8 @@ __csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr, __
144 __be32 proto, __wsum sum); 144 __be32 proto, __wsum sum);
145 145
146static inline __sum16 146static inline __sum16
147csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr, __u32 len, 147csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr,
148 unsigned short proto, __wsum sum) 148 __u32 len, __u8 proto, __wsum sum)
149{ 149{
150 return csum_fold(__csum_ipv6_magic(saddr, daddr, htonl(len), 150 return csum_fold(__csum_ipv6_magic(saddr, daddr, htonl(len),
151 htonl(proto), sum)); 151 htonl(proto), sum));
diff --git a/arch/arm/mach-tegra/board-paz00.c b/arch/arm/mach-tegra/board-paz00.c
index 49d1110cff53..52db8bf7e153 100644
--- a/arch/arm/mach-tegra/board-paz00.c
+++ b/arch/arm/mach-tegra/board-paz00.c
@@ -17,23 +17,25 @@
17 * 17 *
18 */ 18 */
19 19
20#include <linux/property.h>
20#include <linux/gpio/machine.h> 21#include <linux/gpio/machine.h>
21#include <linux/platform_device.h> 22#include <linux/platform_device.h>
22#include <linux/rfkill-gpio.h>
23 23
24#include "board.h" 24#include "board.h"
25 25
26static struct rfkill_gpio_platform_data wifi_rfkill_platform_data = { 26static struct property_entry __initdata wifi_rfkill_prop[] = {
27 .name = "wifi_rfkill", 27 PROPERTY_ENTRY_STRING("name", "wifi_rfkill"),
28 .type = RFKILL_TYPE_WLAN, 28 PROPERTY_ENTRY_STRING("type", "wlan"),
29 { },
30};
31
32static struct property_set __initdata wifi_rfkill_pset = {
33 .properties = wifi_rfkill_prop,
29}; 34};
30 35
31static struct platform_device wifi_rfkill_device = { 36static struct platform_device wifi_rfkill_device = {
32 .name = "rfkill_gpio", 37 .name = "rfkill_gpio",
33 .id = -1, 38 .id = -1,
34 .dev = {
35 .platform_data = &wifi_rfkill_platform_data,
36 },
37}; 39};
38 40
39static struct gpiod_lookup_table wifi_gpio_lookup = { 41static struct gpiod_lookup_table wifi_gpio_lookup = {
@@ -47,6 +49,7 @@ static struct gpiod_lookup_table wifi_gpio_lookup = {
47 49
48void __init tegra_paz00_wifikill_init(void) 50void __init tegra_paz00_wifikill_init(void)
49{ 51{
52 platform_device_add_properties(&wifi_rfkill_device, &wifi_rfkill_pset);
50 gpiod_add_lookup_table(&wifi_gpio_lookup); 53 gpiod_add_lookup_table(&wifi_gpio_lookup);
51 platform_device_register(&wifi_rfkill_device); 54 platform_device_register(&wifi_rfkill_device);
52} 55}
diff --git a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
index 5d87a3dc44b8..278f106a0054 100644
--- a/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
+++ b/arch/arm64/boot/dts/apm/apm-shadowcat.dtsi
@@ -621,7 +621,13 @@
621 <0x0 0x1f600000 0x0 0Xd100>, 621 <0x0 0x1f600000 0x0 0Xd100>,
622 <0x0 0x20000000 0x0 0X220000>; 622 <0x0 0x20000000 0x0 0X220000>;
623 interrupts = <0 108 4>, 623 interrupts = <0 108 4>,
624 <0 109 4>; 624 <0 109 4>,
625 <0 110 4>,
626 <0 111 4>,
627 <0 112 4>,
628 <0 113 4>,
629 <0 114 4>,
630 <0 115 4>;
625 port-id = <1>; 631 port-id = <1>;
626 dma-coherent; 632 dma-coherent;
627 clocks = <&xge1clk 0>; 633 clocks = <&xge1clk 0>;
diff --git a/arch/arm64/boot/dts/apm/apm-storm.dtsi b/arch/arm64/boot/dts/apm/apm-storm.dtsi
index 3e40bd469cea..b7d7109e7304 100644
--- a/arch/arm64/boot/dts/apm/apm-storm.dtsi
+++ b/arch/arm64/boot/dts/apm/apm-storm.dtsi
@@ -964,7 +964,13 @@
964 <0x0 0x18000000 0x0 0X200>; 964 <0x0 0x18000000 0x0 0X200>;
965 reg-names = "enet_csr", "ring_csr", "ring_cmd"; 965 reg-names = "enet_csr", "ring_csr", "ring_cmd";
966 interrupts = <0x0 0x60 0x4>, 966 interrupts = <0x0 0x60 0x4>,
967 <0x0 0x61 0x4>; 967 <0x0 0x61 0x4>,
968 <0x0 0x62 0x4>,
969 <0x0 0x63 0x4>,
970 <0x0 0x64 0x4>,
971 <0x0 0x65 0x4>,
972 <0x0 0x66 0x4>,
973 <0x0 0x67 0x4>;
968 dma-coherent; 974 dma-coherent;
969 clocks = <&xge0clk 0>; 975 clocks = <&xge0clk 0>;
970 /* mac address will be overwritten by the bootloader */ 976 /* mac address will be overwritten by the bootloader */
diff --git a/arch/avr32/include/asm/checksum.h b/arch/avr32/include/asm/checksum.h
index 4ddbfd2486af..4ab7d5bdaf53 100644
--- a/arch/avr32/include/asm/checksum.h
+++ b/arch/avr32/include/asm/checksum.h
@@ -111,9 +111,8 @@ static inline __sum16 csum_fold(__wsum sum)
111} 111}
112 112
113static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 113static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
114 unsigned short len, 114 __u32 len, __u8 proto,
115 unsigned short proto, 115 __wsum sum)
116 __wsum sum)
117{ 116{
118 asm(" add %0, %1\n" 117 asm(" add %0, %1\n"
119 " adc %0, %0, %2\n" 118 " adc %0, %0, %2\n"
@@ -132,9 +131,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
132 * returns a 16-bit checksum, already complemented 131 * returns a 16-bit checksum, already complemented
133 */ 132 */
134static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 133static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
135 unsigned short len, 134 __u32 len, __u8 proto,
136 unsigned short proto, 135 __wsum sum)
137 __wsum sum)
138{ 136{
139 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 137 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
140} 138}
diff --git a/arch/avr32/include/uapi/asm/socket.h b/arch/avr32/include/uapi/asm/socket.h
index 9de0796240a0..1fd147f09a38 100644
--- a/arch/avr32/include/uapi/asm/socket.h
+++ b/arch/avr32/include/uapi/asm/socket.h
@@ -88,4 +88,6 @@
88#define SO_ATTACH_REUSEPORT_CBPF 51 88#define SO_ATTACH_REUSEPORT_CBPF 51
89#define SO_ATTACH_REUSEPORT_EBPF 52 89#define SO_ATTACH_REUSEPORT_EBPF 52
90 90
91#define SO_CNX_ADVICE 53
92
91#endif /* _UAPI__ASM_AVR32_SOCKET_H */ 93#endif /* _UAPI__ASM_AVR32_SOCKET_H */
diff --git a/arch/blackfin/include/asm/checksum.h b/arch/blackfin/include/asm/checksum.h
index 623cc7fb00bc..e7134bf94e3c 100644
--- a/arch/blackfin/include/asm/checksum.h
+++ b/arch/blackfin/include/asm/checksum.h
@@ -14,8 +14,8 @@
14 */ 14 */
15 15
16static inline __wsum 16static inline __wsum
17__csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 17__csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
18 unsigned short proto, __wsum sum) 18 __u8 proto, __wsum sum)
19{ 19{
20 unsigned int carry; 20 unsigned int carry;
21 21
diff --git a/arch/c6x/include/asm/checksum.h b/arch/c6x/include/asm/checksum.h
index 7246816d6e4d..249b0e421ddc 100644
--- a/arch/c6x/include/asm/checksum.h
+++ b/arch/c6x/include/asm/checksum.h
@@ -10,8 +10,8 @@
10#define _ASM_C6X_CHECKSUM_H 10#define _ASM_C6X_CHECKSUM_H
11 11
12static inline __wsum 12static inline __wsum
13csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 13csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
14 unsigned short proto, __wsum sum) 14 __u8 proto, __wsum sum)
15{ 15{
16 unsigned long long tmp; 16 unsigned long long tmp;
17 17
diff --git a/arch/cris/include/arch-v10/arch/checksum.h b/arch/cris/include/arch-v10/arch/checksum.h
index b8000c5d7fe1..d1d1bd9e1090 100644
--- a/arch/cris/include/arch-v10/arch/checksum.h
+++ b/arch/cris/include/arch-v10/arch/checksum.h
@@ -9,8 +9,8 @@
9 */ 9 */
10 10
11static inline __wsum 11static inline __wsum
12csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 12csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
13 unsigned short proto, __wsum sum) 13 __u8 proto, __wsum sum)
14{ 14{
15 __wsum res; 15 __wsum res;
16 __asm__ ("add.d %2, %0\n\t" 16 __asm__ ("add.d %2, %0\n\t"
diff --git a/arch/cris/include/arch-v32/arch/checksum.h b/arch/cris/include/arch-v32/arch/checksum.h
index e5dcfce6e0dc..65cf205b1329 100644
--- a/arch/cris/include/arch-v32/arch/checksum.h
+++ b/arch/cris/include/arch-v32/arch/checksum.h
@@ -11,7 +11,7 @@
11 */ 11 */
12static inline __wsum 12static inline __wsum
13csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 13csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
14 unsigned short len, unsigned short proto, __wsum sum) 14 __u32 len, __u8 proto, __wsum sum)
15{ 15{
16 __wsum res; 16 __wsum res;
17 17
diff --git a/arch/cris/include/asm/checksum.h b/arch/cris/include/asm/checksum.h
index 75dcb77d6cb0..ea949c60b190 100644
--- a/arch/cris/include/asm/checksum.h
+++ b/arch/cris/include/asm/checksum.h
@@ -63,9 +63,8 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
63 */ 63 */
64 64
65static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 65static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
66 unsigned short len, 66 __u32 len, __u8 proto,
67 unsigned short proto, 67 __wsum sum)
68 __wsum sum)
69{ 68{
70 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 69 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
71} 70}
diff --git a/arch/frv/include/asm/checksum.h b/arch/frv/include/asm/checksum.h
index 269da09ff637..b77388c5901d 100644
--- a/arch/frv/include/asm/checksum.h
+++ b/arch/frv/include/asm/checksum.h
@@ -105,8 +105,8 @@ static inline __sum16 csum_fold(__wsum sum)
105 * returns a 16-bit checksum, already complemented 105 * returns a 16-bit checksum, already complemented
106 */ 106 */
107static inline __wsum 107static inline __wsum
108csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 108csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
109 unsigned short proto, __wsum sum) 109 __u8 proto, __wsum sum)
110{ 110{
111 asm(" addcc %1,%0,%0,icc0 \n" 111 asm(" addcc %1,%0,%0,icc0 \n"
112 " addxcc %2,%0,%0,icc0 \n" 112 " addxcc %2,%0,%0,icc0 \n"
@@ -120,8 +120,8 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
120} 120}
121 121
122static inline __sum16 122static inline __sum16
123csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len, 123csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len,
124 unsigned short proto, __wsum sum) 124 __u8 proto, __wsum sum)
125{ 125{
126 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 126 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
127} 127}
@@ -135,7 +135,7 @@ extern __sum16 ip_compute_csum(const void *buff, int len);
135#define _HAVE_ARCH_IPV6_CSUM 135#define _HAVE_ARCH_IPV6_CSUM
136static inline __sum16 136static inline __sum16
137csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr, 137csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr,
138 __u32 len, unsigned short proto, __wsum sum) 138 __u32 len, __u8 proto, __wsum sum)
139{ 139{
140 unsigned long tmp, tmp2; 140 unsigned long tmp, tmp2;
141 141
diff --git a/arch/frv/include/uapi/asm/socket.h b/arch/frv/include/uapi/asm/socket.h
index f02e4849ae83..afbc98f02d27 100644
--- a/arch/frv/include/uapi/asm/socket.h
+++ b/arch/frv/include/uapi/asm/socket.h
@@ -88,5 +88,7 @@
88#define SO_ATTACH_REUSEPORT_CBPF 51 88#define SO_ATTACH_REUSEPORT_CBPF 51
89#define SO_ATTACH_REUSEPORT_EBPF 52 89#define SO_ATTACH_REUSEPORT_EBPF 52
90 90
91#define SO_CNX_ADVICE 53
92
91#endif /* _ASM_SOCKET_H */ 93#endif /* _ASM_SOCKET_H */
92 94
diff --git a/arch/hexagon/include/asm/checksum.h b/arch/hexagon/include/asm/checksum.h
index 46ec8a7fd65f..d9f58d696238 100644
--- a/arch/hexagon/include/asm/checksum.h
+++ b/arch/hexagon/include/asm/checksum.h
@@ -38,12 +38,12 @@ __wsum csum_partial_copy_nocheck(const void *src, void *dst,
38 * returns a 16-bit checksum, already complemented 38 * returns a 16-bit checksum, already complemented
39 */ 39 */
40#define csum_tcpudp_nofold csum_tcpudp_nofold 40#define csum_tcpudp_nofold csum_tcpudp_nofold
41__wsum csum_tcpudp_nofold(unsigned long saddr, unsigned long daddr, 41__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
42 unsigned short len, unsigned short proto, __wsum sum); 42 __u32 len, __u8 proto, __wsum sum);
43 43
44#define csum_tcpudp_magic csum_tcpudp_magic 44#define csum_tcpudp_magic csum_tcpudp_magic
45__sum16 csum_tcpudp_magic(unsigned long saddr, unsigned long daddr, 45__sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
46 unsigned short len, unsigned short proto, __wsum sum); 46 __u32 len, __u8 proto, __wsum sum);
47 47
48#include <asm-generic/checksum.h> 48#include <asm-generic/checksum.h>
49 49
diff --git a/arch/hexagon/lib/checksum.c b/arch/hexagon/lib/checksum.c
index 8169f78a46a7..617506d1a559 100644
--- a/arch/hexagon/lib/checksum.c
+++ b/arch/hexagon/lib/checksum.c
@@ -60,18 +60,16 @@ static inline unsigned short from64to16(u64 x)
60 * computes the checksum of the TCP/UDP pseudo-header 60 * computes the checksum of the TCP/UDP pseudo-header
61 * returns a 16-bit checksum, already complemented. 61 * returns a 16-bit checksum, already complemented.
62 */ 62 */
63__sum16 csum_tcpudp_magic(unsigned long saddr, unsigned long daddr, 63__sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
64 unsigned short len, unsigned short proto, 64 __u32 len, __u8 proto, __wsum sum)
65 __wsum sum)
66{ 65{
67 return (__force __sum16)~from64to16( 66 return (__force __sum16)~from64to16(
68 (__force u64)saddr + (__force u64)daddr + 67 (__force u64)saddr + (__force u64)daddr +
69 (__force u64)sum + ((len + proto) << 8)); 68 (__force u64)sum + ((len + proto) << 8));
70} 69}
71 70
72__wsum csum_tcpudp_nofold(unsigned long saddr, unsigned long daddr, 71__wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
73 unsigned short len, unsigned short proto, 72 __u32 len, __u8 proto, __wsum sum)
74 __wsum sum)
75{ 73{
76 u64 result; 74 u64 result;
77 75
diff --git a/arch/ia64/include/asm/checksum.h b/arch/ia64/include/asm/checksum.h
index 97af155057e4..7accf54162b2 100644
--- a/arch/ia64/include/asm/checksum.h
+++ b/arch/ia64/include/asm/checksum.h
@@ -16,15 +16,11 @@ extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
16 * Computes the checksum of the TCP/UDP pseudo-header returns a 16-bit 16 * Computes the checksum of the TCP/UDP pseudo-header returns a 16-bit
17 * checksum, already complemented 17 * checksum, already complemented
18 */ 18 */
19extern __sum16 csum_tcpudp_magic (__be32 saddr, __be32 daddr, 19extern __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
20 unsigned short len, 20 __u32 len, __u8 proto, __wsum sum);
21 unsigned short proto,
22 __wsum sum);
23 21
24extern __wsum csum_tcpudp_nofold (__be32 saddr, __be32 daddr, 22extern __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
25 unsigned short len, 23 __u32 len, __u8 proto, __wsum sum);
26 unsigned short proto,
27 __wsum sum);
28 24
29/* 25/*
30 * Computes the checksum of a memory block at buff, length len, 26 * Computes the checksum of a memory block at buff, length len,
@@ -73,7 +69,7 @@ static inline __sum16 csum_fold(__wsum csum)
73#define _HAVE_ARCH_IPV6_CSUM 1 69#define _HAVE_ARCH_IPV6_CSUM 1
74struct in6_addr; 70struct in6_addr;
75extern __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 71extern __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
76 const struct in6_addr *daddr, __u32 len, unsigned short proto, 72 const struct in6_addr *daddr,
77 __wsum csum); 73 __u32 len, __u8 proto, __wsum csum);
78 74
79#endif /* _ASM_IA64_CHECKSUM_H */ 75#endif /* _ASM_IA64_CHECKSUM_H */
diff --git a/arch/ia64/include/uapi/asm/socket.h b/arch/ia64/include/uapi/asm/socket.h
index bce29166de1b..0018fad9039f 100644
--- a/arch/ia64/include/uapi/asm/socket.h
+++ b/arch/ia64/include/uapi/asm/socket.h
@@ -97,4 +97,6 @@
97#define SO_ATTACH_REUSEPORT_CBPF 51 97#define SO_ATTACH_REUSEPORT_CBPF 51
98#define SO_ATTACH_REUSEPORT_EBPF 52 98#define SO_ATTACH_REUSEPORT_EBPF 52
99 99
100#define SO_CNX_ADVICE 53
101
100#endif /* _ASM_IA64_SOCKET_H */ 102#endif /* _ASM_IA64_SOCKET_H */
diff --git a/arch/ia64/lib/checksum.c b/arch/ia64/lib/checksum.c
index 9fc955026f86..2cb23cb0c2e1 100644
--- a/arch/ia64/lib/checksum.c
+++ b/arch/ia64/lib/checksum.c
@@ -34,8 +34,8 @@ from64to16 (unsigned long x)
34 * returns a 16-bit checksum, already complemented. 34 * returns a 16-bit checksum, already complemented.
35 */ 35 */
36__sum16 36__sum16
37csum_tcpudp_magic (__be32 saddr, __be32 daddr, unsigned short len, 37csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len,
38 unsigned short proto, __wsum sum) 38 __u8 proto, __wsum sum)
39{ 39{
40 return (__force __sum16)~from64to16( 40 return (__force __sum16)~from64to16(
41 (__force u64)saddr + (__force u64)daddr + 41 (__force u64)saddr + (__force u64)daddr +
@@ -45,8 +45,8 @@ csum_tcpudp_magic (__be32 saddr, __be32 daddr, unsigned short len,
45EXPORT_SYMBOL(csum_tcpudp_magic); 45EXPORT_SYMBOL(csum_tcpudp_magic);
46 46
47__wsum 47__wsum
48csum_tcpudp_nofold (__be32 saddr, __be32 daddr, unsigned short len, 48csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
49 unsigned short proto, __wsum sum) 49 __u8 proto, __wsum sum)
50{ 50{
51 unsigned long result; 51 unsigned long result;
52 52
diff --git a/arch/m32r/include/asm/checksum.h b/arch/m32r/include/asm/checksum.h
index a7a7c4f44abe..d68e93c9bd62 100644
--- a/arch/m32r/include/asm/checksum.h
+++ b/arch/m32r/include/asm/checksum.h
@@ -114,9 +114,8 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
114} 114}
115 115
116static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 116static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
117 unsigned short len, 117 __u32 len, __u8 proto,
118 unsigned short proto, 118 __wsum sum)
119 __wsum sum)
120{ 119{
121#if defined(__LITTLE_ENDIAN) 120#if defined(__LITTLE_ENDIAN)
122 unsigned long len_proto = (proto + len) << 8; 121 unsigned long len_proto = (proto + len) << 8;
@@ -145,9 +144,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
145 * returns a 16-bit checksum, already complemented 144 * returns a 16-bit checksum, already complemented
146 */ 145 */
147static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 146static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
148 unsigned short len, 147 __u32 len, __u8 proto,
149 unsigned short proto, 148 __wsum sum)
150 __wsum sum)
151{ 149{
152 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 150 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
153} 151}
diff --git a/arch/m32r/include/uapi/asm/socket.h b/arch/m32r/include/uapi/asm/socket.h
index 14aa4a6bccf1..5fe42fc7b6c5 100644
--- a/arch/m32r/include/uapi/asm/socket.h
+++ b/arch/m32r/include/uapi/asm/socket.h
@@ -88,4 +88,6 @@
88#define SO_ATTACH_REUSEPORT_CBPF 51 88#define SO_ATTACH_REUSEPORT_CBPF 51
89#define SO_ATTACH_REUSEPORT_EBPF 52 89#define SO_ATTACH_REUSEPORT_EBPF 52
90 90
91#define SO_CNX_ADVICE 53
92
91#endif /* _ASM_M32R_SOCKET_H */ 93#endif /* _ASM_M32R_SOCKET_H */
diff --git a/arch/m68k/include/asm/checksum.h b/arch/m68k/include/asm/checksum.h
index 2f88d867c711..75e91f03b178 100644
--- a/arch/m68k/include/asm/checksum.h
+++ b/arch/m68k/include/asm/checksum.h
@@ -117,7 +117,7 @@ static inline __sum16 ip_compute_csum(const void *buff, int len)
117#define _HAVE_ARCH_IPV6_CSUM 117#define _HAVE_ARCH_IPV6_CSUM
118static __inline__ __sum16 118static __inline__ __sum16
119csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr, 119csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr,
120 __u32 len, unsigned short proto, __wsum sum) 120 __u32 len, __u8 proto, __wsum sum)
121{ 121{
122 register unsigned long tmp; 122 register unsigned long tmp;
123 __asm__("addl %2@,%0\n\t" 123 __asm__("addl %2@,%0\n\t"
diff --git a/arch/metag/include/asm/checksum.h b/arch/metag/include/asm/checksum.h
index 08dd1cc65799..f65fe83b1730 100644
--- a/arch/metag/include/asm/checksum.h
+++ b/arch/metag/include/asm/checksum.h
@@ -59,8 +59,7 @@ extern __sum16 ip_fast_csum(const void *iph, unsigned int ihl);
59 * returns a 16-bit checksum, already complemented 59 * returns a 16-bit checksum, already complemented
60 */ 60 */
61static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 61static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
62 unsigned short len, 62 __u32 len, __u8 proto,
63 unsigned short proto,
64 __wsum sum) 63 __wsum sum)
65{ 64{
66 unsigned long len_proto = (proto + len) << 8; 65 unsigned long len_proto = (proto + len) << 8;
@@ -78,8 +77,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
78} 77}
79 78
80static inline __sum16 79static inline __sum16
81csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len, 80csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len,
82 unsigned short proto, __wsum sum) 81 __u8 proto, __wsum sum)
83{ 82{
84 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 83 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
85} 84}
diff --git a/arch/microblaze/include/asm/checksum.h b/arch/microblaze/include/asm/checksum.h
index 0185cbefdda4..adeecebbb0d1 100644
--- a/arch/microblaze/include/asm/checksum.h
+++ b/arch/microblaze/include/asm/checksum.h
@@ -16,8 +16,8 @@
16 */ 16 */
17#define csum_tcpudp_nofold csum_tcpudp_nofold 17#define csum_tcpudp_nofold csum_tcpudp_nofold
18static inline __wsum 18static inline __wsum
19csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 19csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
20 unsigned short proto, __wsum sum) 20 __u8 proto, __wsum sum)
21{ 21{
22 __asm__("add %0, %0, %1\n\t" 22 __asm__("add %0, %0, %1\n\t"
23 "addc %0, %0, %2\n\t" 23 "addc %0, %0, %2\n\t"
diff --git a/arch/mips/include/asm/checksum.h b/arch/mips/include/asm/checksum.h
index 3ceacde5eb6e..bce1ce53149a 100644
--- a/arch/mips/include/asm/checksum.h
+++ b/arch/mips/include/asm/checksum.h
@@ -160,9 +160,9 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
160} 160}
161#define ip_fast_csum ip_fast_csum 161#define ip_fast_csum ip_fast_csum
162 162
163static inline __wsum csum_tcpudp_nofold(__be32 saddr, 163static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
164 __be32 daddr, unsigned short len, unsigned short proto, 164 __u32 len, __u8 proto,
165 __wsum sum) 165 __wsum sum)
166{ 166{
167 __asm__( 167 __asm__(
168 " .set push # csum_tcpudp_nofold\n" 168 " .set push # csum_tcpudp_nofold\n"
@@ -215,7 +215,7 @@ static inline __sum16 ip_compute_csum(const void *buff, int len)
215#define _HAVE_ARCH_IPV6_CSUM 215#define _HAVE_ARCH_IPV6_CSUM
216static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 216static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
217 const struct in6_addr *daddr, 217 const struct in6_addr *daddr,
218 __u32 len, unsigned short proto, 218 __u32 len, __u8 proto,
219 __wsum sum) 219 __wsum sum)
220{ 220{
221 __wsum tmp; 221 __wsum tmp;
diff --git a/arch/mips/include/uapi/asm/socket.h b/arch/mips/include/uapi/asm/socket.h
index 5910fe294e93..2027240aafbb 100644
--- a/arch/mips/include/uapi/asm/socket.h
+++ b/arch/mips/include/uapi/asm/socket.h
@@ -106,4 +106,6 @@
106#define SO_ATTACH_REUSEPORT_CBPF 51 106#define SO_ATTACH_REUSEPORT_CBPF 51
107#define SO_ATTACH_REUSEPORT_EBPF 52 107#define SO_ATTACH_REUSEPORT_EBPF 52
108 108
109#define SO_CNX_ADVICE 53
110
109#endif /* _UAPI_ASM_SOCKET_H */ 111#endif /* _UAPI_ASM_SOCKET_H */
diff --git a/arch/mips/txx9/generic/setup_tx4939.c b/arch/mips/txx9/generic/setup_tx4939.c
index e3733cde50d6..402ac2ec7e83 100644
--- a/arch/mips/txx9/generic/setup_tx4939.c
+++ b/arch/mips/txx9/generic/setup_tx4939.c
@@ -320,11 +320,12 @@ void __init tx4939_sio_init(unsigned int sclk, unsigned int cts_mask)
320#if IS_ENABLED(CONFIG_TC35815) 320#if IS_ENABLED(CONFIG_TC35815)
321static u32 tx4939_get_eth_speed(struct net_device *dev) 321static u32 tx4939_get_eth_speed(struct net_device *dev)
322{ 322{
323 struct ethtool_cmd cmd; 323 struct ethtool_link_ksettings cmd;
324 if (__ethtool_get_settings(dev, &cmd)) 324
325 if (__ethtool_get_link_ksettings(dev, &cmd))
325 return 100; /* default 100Mbps */ 326 return 100; /* default 100Mbps */
326 327
327 return ethtool_cmd_speed(&cmd); 328 return cmd.base.speed;
328} 329}
329 330
330static int tx4939_netdev_event(struct notifier_block *this, 331static int tx4939_netdev_event(struct notifier_block *this,
diff --git a/arch/mn10300/include/asm/checksum.h b/arch/mn10300/include/asm/checksum.h
index 9fb2a8d8826a..c80df5b504ac 100644
--- a/arch/mn10300/include/asm/checksum.h
+++ b/arch/mn10300/include/asm/checksum.h
@@ -37,16 +37,11 @@ static inline __sum16 csum_fold(__wsum sum)
37 return (~sum) >> 16; 37 return (~sum) >> 16;
38} 38}
39 39
40static inline __wsum csum_tcpudp_nofold(unsigned long saddr, 40static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
41 unsigned long daddr, 41 __u32 len, __u8 proto,
42 unsigned short len,
43 unsigned short proto,
44 __wsum sum) 42 __wsum sum)
45{ 43{
46 __wsum tmp; 44 __wsum tmp = (__wsum)((len + proto) << 8);
47
48 tmp = (__wsum) ntohs(len) << 16;
49 tmp += (__wsum) proto << 8;
50 45
51 asm( 46 asm(
52 " add %1,%0 \n" 47 " add %1,%0 \n"
@@ -64,10 +59,8 @@ static inline __wsum csum_tcpudp_nofold(unsigned long saddr,
64 * computes the checksum of the TCP/UDP pseudo-header 59 * computes the checksum of the TCP/UDP pseudo-header
65 * returns a 16-bit checksum, already complemented 60 * returns a 16-bit checksum, already complemented
66 */ 61 */
67static inline __sum16 csum_tcpudp_magic(unsigned long saddr, 62static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
68 unsigned long daddr, 63 __u32 len, __u8 proto,
69 unsigned short len,
70 unsigned short proto,
71 __wsum sum) 64 __wsum sum)
72{ 65{
73 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 66 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
diff --git a/arch/mn10300/include/uapi/asm/socket.h b/arch/mn10300/include/uapi/asm/socket.h
index 58b1aa01ab9f..5129f23a9ee1 100644
--- a/arch/mn10300/include/uapi/asm/socket.h
+++ b/arch/mn10300/include/uapi/asm/socket.h
@@ -88,4 +88,6 @@
88#define SO_ATTACH_REUSEPORT_CBPF 51 88#define SO_ATTACH_REUSEPORT_CBPF 51
89#define SO_ATTACH_REUSEPORT_EBPF 52 89#define SO_ATTACH_REUSEPORT_EBPF 52
90 90
91#define SO_CNX_ADVICE 53
92
91#endif /* _ASM_SOCKET_H */ 93#endif /* _ASM_SOCKET_H */
diff --git a/arch/nios2/include/asm/checksum.h b/arch/nios2/include/asm/checksum.h
index 6bc1f0d5df7b..703c5ee63421 100644
--- a/arch/nios2/include/asm/checksum.h
+++ b/arch/nios2/include/asm/checksum.h
@@ -45,8 +45,7 @@ static inline __sum16 csum_fold(__wsum sum)
45 */ 45 */
46#define csum_tcpudp_nofold csum_tcpudp_nofold 46#define csum_tcpudp_nofold csum_tcpudp_nofold
47static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 47static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
48 unsigned short len, 48 __u32 len, __u8 proto,
49 unsigned short proto,
50 __wsum sum) 49 __wsum sum)
51{ 50{
52 __asm__ __volatile__( 51 __asm__ __volatile__(
@@ -60,7 +59,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
60 "cmpltu r8, %0, %3\n" 59 "cmpltu r8, %0, %3\n"
61 "add %0, %0, r8\n" /* add carry */ 60 "add %0, %0, r8\n" /* add carry */
62 : "=r" (sum), "=r" (saddr) 61 : "=r" (sum), "=r" (saddr)
63 : "r" (daddr), "r" ((ntohs(len) << 16) + (proto * 256)), 62 : "r" (daddr), "r" ((len + proto) << 8),
64 "0" (sum), 63 "0" (sum),
65 "1" (saddr) 64 "1" (saddr)
66 : "r8"); 65 : "r8");
@@ -69,8 +68,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
69} 68}
70 69
71static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 70static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
72 unsigned short len, 71 __u32 len, __u8 proto,
73 unsigned short proto, __wsum sum) 72 __wsum sum)
74{ 73{
75 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 74 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
76} 75}
diff --git a/arch/parisc/include/asm/checksum.h b/arch/parisc/include/asm/checksum.h
index c84b2fcb18a9..60c2c42619c9 100644
--- a/arch/parisc/include/asm/checksum.h
+++ b/arch/parisc/include/asm/checksum.h
@@ -85,9 +85,8 @@ static inline __sum16 csum_fold(__wsum csum)
85} 85}
86 86
87static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 87static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
88 unsigned short len, 88 __u32 len, __u8 proto,
89 unsigned short proto, 89 __wsum sum)
90 __wsum sum)
91{ 90{
92 __asm__( 91 __asm__(
93 " add %1, %0, %0\n" 92 " add %1, %0, %0\n"
@@ -104,9 +103,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
104 * returns a 16-bit checksum, already complemented 103 * returns a 16-bit checksum, already complemented
105 */ 104 */
106static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 105static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
107 unsigned short len, 106 __u32 len, __u8 proto,
108 unsigned short proto, 107 __wsum sum)
109 __wsum sum)
110{ 108{
111 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 109 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
112} 110}
@@ -124,7 +122,7 @@ static inline __sum16 ip_compute_csum(const void *buf, int len)
124#define _HAVE_ARCH_IPV6_CSUM 122#define _HAVE_ARCH_IPV6_CSUM
125static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 123static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
126 const struct in6_addr *daddr, 124 const struct in6_addr *daddr,
127 __u32 len, unsigned short proto, 125 __u32 len, __u8 proto,
128 __wsum sum) 126 __wsum sum)
129{ 127{
130 __asm__ __volatile__ ( 128 __asm__ __volatile__ (
diff --git a/arch/parisc/include/uapi/asm/socket.h b/arch/parisc/include/uapi/asm/socket.h
index f9cf1223422c..9c935d717df9 100644
--- a/arch/parisc/include/uapi/asm/socket.h
+++ b/arch/parisc/include/uapi/asm/socket.h
@@ -87,4 +87,6 @@
87#define SO_ATTACH_REUSEPORT_CBPF 0x402C 87#define SO_ATTACH_REUSEPORT_CBPF 0x402C
88#define SO_ATTACH_REUSEPORT_EBPF 0x402D 88#define SO_ATTACH_REUSEPORT_EBPF 0x402D
89 89
90#define SO_CNX_ADVICE 0x402E
91
90#endif /* _UAPI_ASM_SOCKET_H */ 92#endif /* _UAPI_ASM_SOCKET_H */
diff --git a/arch/powerpc/include/uapi/asm/socket.h b/arch/powerpc/include/uapi/asm/socket.h
index dd54f28ecdec..1672e3398270 100644
--- a/arch/powerpc/include/uapi/asm/socket.h
+++ b/arch/powerpc/include/uapi/asm/socket.h
@@ -95,4 +95,6 @@
95#define SO_ATTACH_REUSEPORT_CBPF 51 95#define SO_ATTACH_REUSEPORT_CBPF 51
96#define SO_ATTACH_REUSEPORT_EBPF 52 96#define SO_ATTACH_REUSEPORT_EBPF 52
97 97
98#define SO_CNX_ADVICE 53
99
98#endif /* _ASM_POWERPC_SOCKET_H */ 100#endif /* _ASM_POWERPC_SOCKET_H */
diff --git a/arch/s390/include/asm/checksum.h b/arch/s390/include/asm/checksum.h
index 740364856355..d7f100c53f07 100644
--- a/arch/s390/include/asm/checksum.h
+++ b/arch/s390/include/asm/checksum.h
@@ -91,8 +91,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
91 * returns a 32-bit checksum 91 * returns a 32-bit checksum
92 */ 92 */
93static inline __wsum 93static inline __wsum
94csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 94csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len, __u8 proto,
95 unsigned short len, unsigned short proto,
96 __wsum sum) 95 __wsum sum)
97{ 96{
98 __u32 csum = (__force __u32)sum; 97 __u32 csum = (__force __u32)sum;
@@ -118,8 +117,7 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
118 */ 117 */
119 118
120static inline __sum16 119static inline __sum16
121csum_tcpudp_magic(__be32 saddr, __be32 daddr, 120csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len, __u8 proto,
122 unsigned short len, unsigned short proto,
123 __wsum sum) 121 __wsum sum)
124{ 122{
125 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 123 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
diff --git a/arch/s390/include/uapi/asm/socket.h b/arch/s390/include/uapi/asm/socket.h
index d02e89d14fef..41b51c2f4f1b 100644
--- a/arch/s390/include/uapi/asm/socket.h
+++ b/arch/s390/include/uapi/asm/socket.h
@@ -94,4 +94,6 @@
94#define SO_ATTACH_REUSEPORT_CBPF 51 94#define SO_ATTACH_REUSEPORT_CBPF 51
95#define SO_ATTACH_REUSEPORT_EBPF 52 95#define SO_ATTACH_REUSEPORT_EBPF 52
96 96
97#define SO_CNX_ADVICE 53
98
97#endif /* _ASM_SOCKET_H */ 99#endif /* _ASM_SOCKET_H */
diff --git a/arch/score/include/asm/checksum.h b/arch/score/include/asm/checksum.h
index 961bd64015a8..539d9fd45d21 100644
--- a/arch/score/include/asm/checksum.h
+++ b/arch/score/include/asm/checksum.h
@@ -127,10 +127,10 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
127} 127}
128 128
129static inline __wsum 129static inline __wsum
130csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 130csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
131 unsigned short proto, __wsum sum) 131 __u8 proto, __wsum sum)
132{ 132{
133 unsigned long tmp = (ntohs(len) << 16) + proto * 256; 133 unsigned long tmp = (len + proto) << 8;
134 __asm__ __volatile__( 134 __asm__ __volatile__(
135 ".set volatile\n\t" 135 ".set volatile\n\t"
136 "add\t%0, %0, %2\n\t" 136 "add\t%0, %0, %2\n\t"
@@ -161,8 +161,8 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
161 * returns a 16-bit checksum, already complemented 161 * returns a 16-bit checksum, already complemented
162 */ 162 */
163static inline __sum16 163static inline __sum16
164csum_tcpudp_magic(__be32 saddr, __be32 daddr, unsigned short len, 164csum_tcpudp_magic(__be32 saddr, __be32 daddr, __u32 len,
165 unsigned short proto, __wsum sum) 165 __u8 proto, __wsum sum)
166{ 166{
167 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 167 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
168} 168}
@@ -179,9 +179,8 @@ static inline unsigned short ip_compute_csum(const void *buff, int len)
179 179
180#define _HAVE_ARCH_IPV6_CSUM 180#define _HAVE_ARCH_IPV6_CSUM
181static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 181static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
182 const struct in6_addr *daddr, 182 const struct in6_addr *daddr,
183 __u32 len, unsigned short proto, 183 __u32 len, __u8 proto, __wsum sum)
184 __wsum sum)
185{ 184{
186 __asm__ __volatile__( 185 __asm__ __volatile__(
187 ".set\tvolatile\t\t\t# csum_ipv6_magic\n\t" 186 ".set\tvolatile\t\t\t# csum_ipv6_magic\n\t"
diff --git a/arch/sh/include/asm/checksum_32.h b/arch/sh/include/asm/checksum_32.h
index 14b7ac2f0a07..9c84386d35cb 100644
--- a/arch/sh/include/asm/checksum_32.h
+++ b/arch/sh/include/asm/checksum_32.h
@@ -115,8 +115,7 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
115} 115}
116 116
117static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 117static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
118 unsigned short len, 118 __u32 len, __u8 proto,
119 unsigned short proto,
120 __wsum sum) 119 __wsum sum)
121{ 120{
122#ifdef __LITTLE_ENDIAN__ 121#ifdef __LITTLE_ENDIAN__
@@ -142,8 +141,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
142 * returns a 16-bit checksum, already complemented 141 * returns a 16-bit checksum, already complemented
143 */ 142 */
144static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 143static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
145 unsigned short len, 144 __u32 len, __u8 proto,
146 unsigned short proto,
147 __wsum sum) 145 __wsum sum)
148{ 146{
149 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 147 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
@@ -161,8 +159,7 @@ static inline __sum16 ip_compute_csum(const void *buff, int len)
161#define _HAVE_ARCH_IPV6_CSUM 159#define _HAVE_ARCH_IPV6_CSUM
162static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 160static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
163 const struct in6_addr *daddr, 161 const struct in6_addr *daddr,
164 __u32 len, unsigned short proto, 162 __u32 len, __u8 proto, __wsum sum)
165 __wsum sum)
166{ 163{
167 unsigned int __dummy; 164 unsigned int __dummy;
168 __asm__("clrt\n\t" 165 __asm__("clrt\n\t"
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index 6b68f12f29db..04920ab8e292 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -102,6 +102,7 @@ CONFIG_SUNLANCE=m
102CONFIG_HAPPYMEAL=m 102CONFIG_HAPPYMEAL=m
103CONFIG_SUNGEM=m 103CONFIG_SUNGEM=m
104CONFIG_SUNVNET=m 104CONFIG_SUNVNET=m
105CONFIG_LDMVSW=m
105CONFIG_NET_PCI=y 106CONFIG_NET_PCI=y
106CONFIG_E1000=m 107CONFIG_E1000=m
107CONFIG_E1000E=m 108CONFIG_E1000E=m
diff --git a/arch/sparc/include/asm/checksum_32.h b/arch/sparc/include/asm/checksum_32.h
index 426b2389a1c2..eff748c871ec 100644
--- a/arch/sparc/include/asm/checksum_32.h
+++ b/arch/sparc/include/asm/checksum_32.h
@@ -170,9 +170,8 @@ static inline __sum16 csum_fold(__wsum sum)
170} 170}
171 171
172static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 172static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
173 unsigned short len, 173 __u32 len, __u8 proto,
174 unsigned short proto, 174 __wsum sum)
175 __wsum sum)
176{ 175{
177 __asm__ __volatile__("addcc\t%1, %0, %0\n\t" 176 __asm__ __volatile__("addcc\t%1, %0, %0\n\t"
178 "addxcc\t%2, %0, %0\n\t" 177 "addxcc\t%2, %0, %0\n\t"
@@ -190,9 +189,8 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
190 * returns a 16-bit checksum, already complemented 189 * returns a 16-bit checksum, already complemented
191 */ 190 */
192static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 191static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
193 unsigned short len, 192 __u32 len, __u8 proto,
194 unsigned short proto, 193 __wsum sum)
195 __wsum sum)
196{ 194{
197 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 195 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
198} 196}
@@ -201,8 +199,7 @@ static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
201 199
202static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 200static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
203 const struct in6_addr *daddr, 201 const struct in6_addr *daddr,
204 __u32 len, unsigned short proto, 202 __u32 len, __u8 proto, __wsum sum)
205 __wsum sum)
206{ 203{
207 __asm__ __volatile__ ( 204 __asm__ __volatile__ (
208 "addcc %3, %4, %%g4\n\t" 205 "addcc %3, %4, %%g4\n\t"
diff --git a/arch/sparc/include/asm/checksum_64.h b/arch/sparc/include/asm/checksum_64.h
index b8779a6a5911..0395d75322e9 100644
--- a/arch/sparc/include/asm/checksum_64.h
+++ b/arch/sparc/include/asm/checksum_64.h
@@ -96,8 +96,7 @@ static inline __sum16 csum_fold(__wsum sum)
96} 96}
97 97
98static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 98static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
99 unsigned int len, 99 __u32 len, __u8 proto,
100 unsigned short proto,
101 __wsum sum) 100 __wsum sum)
102{ 101{
103 __asm__ __volatile__( 102 __asm__ __volatile__(
@@ -116,8 +115,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
116 * returns a 16-bit checksum, already complemented 115 * returns a 16-bit checksum, already complemented
117 */ 116 */
118static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 117static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
119 unsigned short len, 118 __u32 len, __u8 proto,
120 unsigned short proto,
121 __wsum sum) 119 __wsum sum)
122{ 120{
123 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 121 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
@@ -127,8 +125,7 @@ static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
127 125
128static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 126static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
129 const struct in6_addr *daddr, 127 const struct in6_addr *daddr,
130 __u32 len, unsigned short proto, 128 __u32 len, __u8 proto, __wsum sum)
131 __wsum sum)
132{ 129{
133 __asm__ __volatile__ ( 130 __asm__ __volatile__ (
134" addcc %3, %4, %%g7\n" 131" addcc %3, %4, %%g7\n"
diff --git a/arch/sparc/include/uapi/asm/socket.h b/arch/sparc/include/uapi/asm/socket.h
index d270ee91968e..31aede3af088 100644
--- a/arch/sparc/include/uapi/asm/socket.h
+++ b/arch/sparc/include/uapi/asm/socket.h
@@ -84,6 +84,8 @@
84#define SO_ATTACH_REUSEPORT_CBPF 0x0035 84#define SO_ATTACH_REUSEPORT_CBPF 0x0035
85#define SO_ATTACH_REUSEPORT_EBPF 0x0036 85#define SO_ATTACH_REUSEPORT_EBPF 0x0036
86 86
87#define SO_CNX_ADVICE 0x0037
88
87/* Security levels - as per NRL IPv6 - don't actually do anything */ 89/* Security levels - as per NRL IPv6 - don't actually do anything */
88#define SO_SECURITY_AUTHENTICATION 0x5001 90#define SO_SECURITY_AUTHENTICATION 0x5001
89#define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002 91#define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
diff --git a/arch/tile/configs/tilegx_defconfig b/arch/tile/configs/tilegx_defconfig
index c1387b7f447d..3f3dfb8b150a 100644
--- a/arch/tile/configs/tilegx_defconfig
+++ b/arch/tile/configs/tilegx_defconfig
@@ -222,7 +222,7 @@ CONFIG_TUN=y
222CONFIG_VETH=m 222CONFIG_VETH=m
223CONFIG_NET_DSA_MV88E6060=y 223CONFIG_NET_DSA_MV88E6060=y
224CONFIG_NET_DSA_MV88E6131=y 224CONFIG_NET_DSA_MV88E6131=y
225CONFIG_NET_DSA_MV88E6123_61_65=y 225CONFIG_NET_DSA_MV88E6123=y
226CONFIG_SKY2=y 226CONFIG_SKY2=y
227CONFIG_PTP_1588_CLOCK_TILEGX=y 227CONFIG_PTP_1588_CLOCK_TILEGX=y
228# CONFIG_WLAN is not set 228# CONFIG_WLAN is not set
diff --git a/arch/tile/configs/tilepro_defconfig b/arch/tile/configs/tilepro_defconfig
index 6d9ce8af1107..ef9e27eb2f50 100644
--- a/arch/tile/configs/tilepro_defconfig
+++ b/arch/tile/configs/tilepro_defconfig
@@ -341,7 +341,7 @@ CONFIG_TUN=y
341CONFIG_VETH=m 341CONFIG_VETH=m
342CONFIG_NET_DSA_MV88E6060=y 342CONFIG_NET_DSA_MV88E6060=y
343CONFIG_NET_DSA_MV88E6131=y 343CONFIG_NET_DSA_MV88E6131=y
344CONFIG_NET_DSA_MV88E6123_61_65=y 344CONFIG_NET_DSA_MV88E6123=y
345# CONFIG_NET_VENDOR_3COM is not set 345# CONFIG_NET_VENDOR_3COM is not set
346CONFIG_E1000E=y 346CONFIG_E1000E=y
347# CONFIG_WLAN is not set 347# CONFIG_WLAN is not set
diff --git a/arch/unicore32/include/asm/checksum.h b/arch/unicore32/include/asm/checksum.h
index f55c3f937c3e..23ceb9e3a89b 100644
--- a/arch/unicore32/include/asm/checksum.h
+++ b/arch/unicore32/include/asm/checksum.h
@@ -20,8 +20,8 @@
20 */ 20 */
21 21
22static inline __wsum 22static inline __wsum
23csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 23csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
24 unsigned short proto, __wsum sum) 24 __u8 proto, __wsum sum)
25{ 25{
26 __asm__( 26 __asm__(
27 "add.a %0, %1, %2\n" 27 "add.a %0, %1, %2\n"
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 5e830d0c95c9..9b6ad08aa51a 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2194,11 +2194,11 @@ static int backtrace_stack(void *data, char *name)
2194 return 0; 2194 return 0;
2195} 2195}
2196 2196
2197static void backtrace_address(void *data, unsigned long addr, int reliable) 2197static int backtrace_address(void *data, unsigned long addr, int reliable)
2198{ 2198{
2199 struct perf_callchain_entry *entry = data; 2199 struct perf_callchain_entry *entry = data;
2200 2200
2201 perf_callchain_store(entry, addr); 2201 return perf_callchain_store(entry, addr);
2202} 2202}
2203 2203
2204static const struct stacktrace_ops backtrace_ops = { 2204static const struct stacktrace_ops backtrace_ops = {
diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h
index f50de6951738..532f85e6651f 100644
--- a/arch/x86/include/asm/checksum_32.h
+++ b/arch/x86/include/asm/checksum_32.h
@@ -112,8 +112,7 @@ static inline __sum16 csum_fold(__wsum sum)
112} 112}
113 113
114static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 114static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
115 unsigned short len, 115 __u32 len, __u8 proto,
116 unsigned short proto,
117 __wsum sum) 116 __wsum sum)
118{ 117{
119 asm("addl %1, %0 ;\n" 118 asm("addl %1, %0 ;\n"
@@ -131,8 +130,7 @@ static inline __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
131 * returns a 16-bit checksum, already complemented 130 * returns a 16-bit checksum, already complemented
132 */ 131 */
133static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 132static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
134 unsigned short len, 133 __u32 len, __u8 proto,
135 unsigned short proto,
136 __wsum sum) 134 __wsum sum)
137{ 135{
138 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 136 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
@@ -151,8 +149,7 @@ static inline __sum16 ip_compute_csum(const void *buff, int len)
151#define _HAVE_ARCH_IPV6_CSUM 149#define _HAVE_ARCH_IPV6_CSUM
152static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 150static inline __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
153 const struct in6_addr *daddr, 151 const struct in6_addr *daddr,
154 __u32 len, unsigned short proto, 152 __u32 len, __u8 proto, __wsum sum)
155 __wsum sum)
156{ 153{
157 asm("addl 0(%1), %0 ;\n" 154 asm("addl 0(%1), %0 ;\n"
158 "adcl 4(%1), %0 ;\n" 155 "adcl 4(%1), %0 ;\n"
diff --git a/arch/x86/include/asm/checksum_64.h b/arch/x86/include/asm/checksum_64.h
index cd00e1774491..c020ee75dce7 100644
--- a/arch/x86/include/asm/checksum_64.h
+++ b/arch/x86/include/asm/checksum_64.h
@@ -84,8 +84,8 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
84 * 32bit unfolded. 84 * 32bit unfolded.
85 */ 85 */
86static inline __wsum 86static inline __wsum
87csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 87csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
88 unsigned short proto, __wsum sum) 88 __u8 proto, __wsum sum)
89{ 89{
90 asm(" addl %1, %0\n" 90 asm(" addl %1, %0\n"
91 " adcl %2, %0\n" 91 " adcl %2, %0\n"
@@ -110,8 +110,8 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
110 * complemented and ready to be filled in. 110 * complemented and ready to be filled in.
111 */ 111 */
112static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 112static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
113 unsigned short len, 113 __u32 len, __u8 proto,
114 unsigned short proto, __wsum sum) 114 __wsum sum)
115{ 115{
116 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum)); 116 return csum_fold(csum_tcpudp_nofold(saddr, daddr, len, proto, sum));
117} 117}
@@ -177,7 +177,7 @@ struct in6_addr;
177#define _HAVE_ARCH_IPV6_CSUM 1 177#define _HAVE_ARCH_IPV6_CSUM 1
178extern __sum16 178extern __sum16
179csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr, 179csum_ipv6_magic(const struct in6_addr *saddr, const struct in6_addr *daddr,
180 __u32 len, unsigned short proto, __wsum sum); 180 __u32 len, __u8 proto, __wsum sum);
181 181
182static inline unsigned add32_with_carry(unsigned a, unsigned b) 182static inline unsigned add32_with_carry(unsigned a, unsigned b)
183{ 183{
diff --git a/arch/x86/include/asm/stacktrace.h b/arch/x86/include/asm/stacktrace.h
index 70bbe39043a9..7c247e7404be 100644
--- a/arch/x86/include/asm/stacktrace.h
+++ b/arch/x86/include/asm/stacktrace.h
@@ -37,7 +37,7 @@ print_context_stack_bp(struct thread_info *tinfo,
37/* Generic stack tracer with callbacks */ 37/* Generic stack tracer with callbacks */
38 38
39struct stacktrace_ops { 39struct stacktrace_ops {
40 void (*address)(void *data, unsigned long address, int reliable); 40 int (*address)(void *data, unsigned long address, int reliable);
41 /* On negative return stop dumping */ 41 /* On negative return stop dumping */
42 int (*stack)(void *data, char *name); 42 int (*stack)(void *data, char *name);
43 walk_stack_t walk_stack; 43 walk_stack_t walk_stack;
diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
index 32e5699eadfe..8efa57a5f29e 100644
--- a/arch/x86/kernel/dumpstack.c
+++ b/arch/x86/kernel/dumpstack.c
@@ -135,7 +135,8 @@ print_context_stack_bp(struct thread_info *tinfo,
135 if (!__kernel_text_address(addr)) 135 if (!__kernel_text_address(addr))
136 break; 136 break;
137 137
138 ops->address(data, addr, 1); 138 if (ops->address(data, addr, 1))
139 break;
139 frame = frame->next_frame; 140 frame = frame->next_frame;
140 ret_addr = &frame->return_address; 141 ret_addr = &frame->return_address;
141 print_ftrace_graph_addr(addr, data, ops, tinfo, graph); 142 print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
@@ -154,10 +155,11 @@ static int print_trace_stack(void *data, char *name)
154/* 155/*
155 * Print one address/symbol entries per line. 156 * Print one address/symbol entries per line.
156 */ 157 */
157static void print_trace_address(void *data, unsigned long addr, int reliable) 158static int print_trace_address(void *data, unsigned long addr, int reliable)
158{ 159{
159 touch_nmi_watchdog(); 160 touch_nmi_watchdog();
160 printk_stack_address(addr, reliable, data); 161 printk_stack_address(addr, reliable, data);
162 return 0;
161} 163}
162 164
163static const struct stacktrace_ops print_trace_ops = { 165static const struct stacktrace_ops print_trace_ops = {
diff --git a/arch/x86/kernel/stacktrace.c b/arch/x86/kernel/stacktrace.c
index fdd0c6430e5a..9ee98eefc44d 100644
--- a/arch/x86/kernel/stacktrace.c
+++ b/arch/x86/kernel/stacktrace.c
@@ -14,30 +14,34 @@ static int save_stack_stack(void *data, char *name)
14 return 0; 14 return 0;
15} 15}
16 16
17static void 17static int
18__save_stack_address(void *data, unsigned long addr, bool reliable, bool nosched) 18__save_stack_address(void *data, unsigned long addr, bool reliable, bool nosched)
19{ 19{
20 struct stack_trace *trace = data; 20 struct stack_trace *trace = data;
21#ifdef CONFIG_FRAME_POINTER 21#ifdef CONFIG_FRAME_POINTER
22 if (!reliable) 22 if (!reliable)
23 return; 23 return 0;
24#endif 24#endif
25 if (nosched && in_sched_functions(addr)) 25 if (nosched && in_sched_functions(addr))
26 return; 26 return 0;
27 if (trace->skip > 0) { 27 if (trace->skip > 0) {
28 trace->skip--; 28 trace->skip--;
29 return; 29 return 0;
30 } 30 }
31 if (trace->nr_entries < trace->max_entries) 31 if (trace->nr_entries < trace->max_entries) {
32 trace->entries[trace->nr_entries++] = addr; 32 trace->entries[trace->nr_entries++] = addr;
33 return 0;
34 } else {
35 return -1; /* no more room, stop walking the stack */
36 }
33} 37}
34 38
35static void save_stack_address(void *data, unsigned long addr, int reliable) 39static int save_stack_address(void *data, unsigned long addr, int reliable)
36{ 40{
37 return __save_stack_address(data, addr, reliable, false); 41 return __save_stack_address(data, addr, reliable, false);
38} 42}
39 43
40static void 44static int
41save_stack_address_nosched(void *data, unsigned long addr, int reliable) 45save_stack_address_nosched(void *data, unsigned long addr, int reliable)
42{ 46{
43 return __save_stack_address(data, addr, reliable, true); 47 return __save_stack_address(data, addr, reliable, true);
diff --git a/arch/x86/lib/csum-wrappers_64.c b/arch/x86/lib/csum-wrappers_64.c
index 1318f75d56e4..28a6654f0d08 100644
--- a/arch/x86/lib/csum-wrappers_64.c
+++ b/arch/x86/lib/csum-wrappers_64.c
@@ -135,7 +135,7 @@ EXPORT_SYMBOL(csum_partial_copy_nocheck);
135 135
136__sum16 csum_ipv6_magic(const struct in6_addr *saddr, 136__sum16 csum_ipv6_magic(const struct in6_addr *saddr,
137 const struct in6_addr *daddr, 137 const struct in6_addr *daddr,
138 __u32 len, unsigned short proto, __wsum sum) 138 __u32 len, __u8 proto, __wsum sum)
139{ 139{
140 __u64 rest, sum64; 140 __u64 rest, sum64;
141 141
diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
index 4e664bdb535a..cb31a4440e58 100644
--- a/arch/x86/oprofile/backtrace.c
+++ b/arch/x86/oprofile/backtrace.c
@@ -23,12 +23,13 @@ static int backtrace_stack(void *data, char *name)
23 return 0; 23 return 0;
24} 24}
25 25
26static void backtrace_address(void *data, unsigned long addr, int reliable) 26static int backtrace_address(void *data, unsigned long addr, int reliable)
27{ 27{
28 unsigned int *depth = data; 28 unsigned int *depth = data;
29 29
30 if ((*depth)--) 30 if ((*depth)--)
31 oprofile_add_trace(addr); 31 oprofile_add_trace(addr);
32 return 0;
32} 33}
33 34
34static struct stacktrace_ops backtrace_ops = { 35static struct stacktrace_ops backtrace_ops = {
diff --git a/arch/x86/um/asm/checksum.h b/arch/x86/um/asm/checksum.h
index ee940185e89f..54d96f1e3594 100644
--- a/arch/x86/um/asm/checksum.h
+++ b/arch/x86/um/asm/checksum.h
@@ -87,8 +87,8 @@ static inline __sum16 csum_fold(__wsum sum)
87 * 32bit unfolded. 87 * 32bit unfolded.
88 */ 88 */
89static inline __wsum 89static inline __wsum
90csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len, 90csum_tcpudp_nofold(__be32 saddr, __be32 daddr, __u32 len,
91 unsigned short proto, __wsum sum) 91 __u8 proto, __wsum sum)
92{ 92{
93 asm(" addl %1, %0\n" 93 asm(" addl %1, %0\n"
94 " adcl %2, %0\n" 94 " adcl %2, %0\n"
@@ -104,9 +104,8 @@ csum_tcpudp_nofold(__be32 saddr, __be32 daddr, unsigned short len,
104 * returns a 16-bit checksum, already complemented 104 * returns a 16-bit checksum, already complemented
105 */ 105 */
106static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 106static inline __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
107 unsigned short len, 107 __u32 len, __u8 proto,
108 unsigned short proto, 108 __wsum sum)
109 __wsum sum)
110{ 109{
111 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 110 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
112} 111}
diff --git a/arch/x86/um/asm/checksum_32.h b/arch/x86/um/asm/checksum_32.h
index ab77b6f9a4bf..83a75f8a1233 100644
--- a/arch/x86/um/asm/checksum_32.h
+++ b/arch/x86/um/asm/checksum_32.h
@@ -13,7 +13,7 @@ static inline __sum16 ip_compute_csum(const void *buff, int len)
13#define _HAVE_ARCH_IPV6_CSUM 13#define _HAVE_ARCH_IPV6_CSUM
14static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 14static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
15 const struct in6_addr *daddr, 15 const struct in6_addr *daddr,
16 __u32 len, unsigned short proto, 16 __u32 len, __u8 proto,
17 __wsum sum) 17 __wsum sum)
18{ 18{
19 __asm__( 19 __asm__(
diff --git a/arch/xtensa/include/asm/checksum.h b/arch/xtensa/include/asm/checksum.h
index 0593de689b56..ec35074fcb03 100644
--- a/arch/xtensa/include/asm/checksum.h
+++ b/arch/xtensa/include/asm/checksum.h
@@ -123,9 +123,8 @@ static __inline__ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
123} 123}
124 124
125static __inline__ __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr, 125static __inline__ __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
126 unsigned short len, 126 __u32 len, __u8 proto,
127 unsigned short proto, 127 __wsum sum)
128 __wsum sum)
129{ 128{
130 129
131#ifdef __XTENSA_EL__ 130#ifdef __XTENSA_EL__
@@ -157,9 +156,8 @@ static __inline__ __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
157 * returns a 16-bit checksum, already complemented 156 * returns a 16-bit checksum, already complemented
158 */ 157 */
159static __inline__ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr, 158static __inline__ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
160 unsigned short len, 159 __u32 len, __u8 proto,
161 unsigned short proto, 160 __wsum sum)
162 __wsum sum)
163{ 161{
164 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum)); 162 return csum_fold(csum_tcpudp_nofold(saddr,daddr,len,proto,sum));
165} 163}
@@ -177,7 +175,7 @@ static __inline__ __sum16 ip_compute_csum(const void *buff, int len)
177#define _HAVE_ARCH_IPV6_CSUM 175#define _HAVE_ARCH_IPV6_CSUM
178static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr, 176static __inline__ __sum16 csum_ipv6_magic(const struct in6_addr *saddr,
179 const struct in6_addr *daddr, 177 const struct in6_addr *daddr,
180 __u32 len, unsigned short proto, 178 __u32 len, __u8 proto,
181 __wsum sum) 179 __wsum sum)
182{ 180{
183 unsigned int __dummy; 181 unsigned int __dummy;
diff --git a/arch/xtensa/include/uapi/asm/socket.h b/arch/xtensa/include/uapi/asm/socket.h
index fd3b96d1153f..81435d995e11 100644
--- a/arch/xtensa/include/uapi/asm/socket.h
+++ b/arch/xtensa/include/uapi/asm/socket.h
@@ -99,4 +99,6 @@
99#define SO_ATTACH_REUSEPORT_CBPF 51 99#define SO_ATTACH_REUSEPORT_CBPF 51
100#define SO_ATTACH_REUSEPORT_EBPF 52 100#define SO_ATTACH_REUSEPORT_EBPF 52
101 101
102#define SO_CNX_ADVICE 53
103
102#endif /* _XTENSA_SOCKET_H */ 104#endif /* _XTENSA_SOCKET_H */