Skip to content

Commit ab51cac

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from David Miller: 1) Fix memory leak in netfilter flowtable, from Roi Dayan. 2) Ref-count leaks in netrom and tipc, from Xiyu Yang. 3) Fix warning when mptcp socket is never accepted before close, from Florian Westphal. 4) Missed locking in ovs_ct_exit(), from Tonghao Zhang. 5) Fix large delays during PTP synchornization in cxgb4, from Rahul Lakkireddy. 6) team_mode_get() can hang, from Taehee Yoo. 7) Need to use kvzalloc() when allocating fw tracer in mlx5 driver, from Niklas Schnelle. 8) Fix handling of bpf XADD on BTF memory, from Jann Horn. 9) Fix BPF_STX/BPF_B encoding in x86 bpf jit, from Luke Nelson. 10) Missing queue memory release in iwlwifi pcie code, from Johannes Berg. 11) Fix NULL deref in macvlan device event, from Taehee Yoo. 12) Initialize lan87xx phy correctly, from Yuiko Oshino. 13) Fix looping between VRF and XFRM lookups, from David Ahern. 14) etf packet scheduler assumes all sockets are full sockets, which is not necessarily true. From Eric Dumazet. 15) Fix mptcp data_fin handling in RX path, from Paolo Abeni. 16) fib_select_default() needs to handle nexthop objects, from David Ahern. 17) Use GFP_ATOMIC under spinlock in mac80211_hwsim, from Wei Yongjun. 18) vxlan and geneve use wrong nlattr array, from Sabrina Dubroca. 19) Correct rx/tx stats in bcmgenet driver, from Doug Berger. 20) BPF_LDX zero-extension is encoded improperly in x86_32 bpf jit, fix from Luke Nelson. * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (100 commits) selftests/bpf: Fix a couple of broken test_btf cases tools/runqslower: Ensure own vmlinux.h is picked up first bpf: Make bpf_link_fops static bpftool: Respect the -d option in struct_ops cmd selftests/bpf: Add test for freplace program with expected_attach_type bpf: Propagate expected_attach_type when verifying freplace programs bpf: Fix leak in LINK_UPDATE and enforce empty old_prog_fd bpf, x86_32: Fix logic error in BPF_LDX zero-extension bpf, x86_32: Fix clobbering of dst for BPF_JSET bpf, x86_32: Fix incorrect encoding in BPF_LDX zero-extension bpf: Fix reStructuredText markup net: systemport: suppress warnings on failed Rx SKB allocations net: bcmgenet: suppress warnings on failed Rx SKB allocations macsec: avoid to set wrong mtu mac80211: sta_info: Add lockdep condition for RCU list usage mac80211: populate debugfs only after cfg80211 init net: bcmgenet: correct per TX/RX ring statistics net: meth: remove spurious copyright text net: phy: bcm84881: clear settings on link down chcr: Fix CPU hard lockup ...
2 parents 5ef58e2 + 167ff13 commit ab51cac

File tree

114 files changed

+1131
-397
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

114 files changed

+1131
-397
lines changed

Documentation/networking/ip-sysctl.txt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -983,6 +983,13 @@ ip_early_demux - BOOLEAN
983983
reduces overall throughput, in such case you should disable it.
984984
Default: 1
985985

986+
ping_group_range - 2 INTEGERS
987+
Restrict ICMP_PROTO datagram sockets to users in the group range.
988+
The default is "1 0", meaning, that nobody (not even root) may
989+
create ping sockets. Setting it to "100 100" would grant permissions
990+
to the single group. "0 4294967295" would enable it for the world, "100
991+
4294967295" would enable it for the users, but not daemons.
992+
986993
tcp_early_demux - BOOLEAN
987994
Enable early demux for established TCP sockets.
988995
Default: 1

MAINTAINERS

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ F: drivers/net/hamradio/6pack.c
189189
M: Johannes Berg <[email protected]>
190190
191191
S: Maintained
192-
W: http://wireless.kernel.org/
192+
W: https://wireless.wiki.kernel.org/
193193
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
194194
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
195195
F: Documentation/driver-api/80211/cfg80211.rst
@@ -505,7 +505,7 @@ F: drivers/hwmon/adm1029.c
505505
ADM8211 WIRELESS DRIVER
506506
507507
S: Orphan
508-
W: http://wireless.kernel.org/
508+
W: https://wireless.wiki.kernel.org/
509509
F: drivers/net/wireless/admtek/adm8211.*
510510

511511
ADP1653 FLASH CONTROLLER DRIVER
@@ -2850,14 +2850,14 @@ M: Nick Kossifidis <[email protected]>
28502850
M: Luis Chamberlain <[email protected]>
28512851
28522852
S: Maintained
2853-
W: http://wireless.kernel.org/en/users/Drivers/ath5k
2853+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath5k
28542854
F: drivers/net/wireless/ath/ath5k/
28552855

28562856
ATHEROS ATH6KL WIRELESS DRIVER
28572857
M: Kalle Valo <[email protected]>
28582858
28592859
S: Supported
2860-
W: http://wireless.kernel.org/en/users/Drivers/ath6kl
2860+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath6kl
28612861
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
28622862
F: drivers/net/wireless/ath/ath6kl/
28632863

@@ -3020,15 +3020,15 @@ B43 WIRELESS DRIVER
30203020
30213021
30223022
S: Odd Fixes
3023-
W: http://wireless.kernel.org/en/users/Drivers/b43
3023+
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
30243024
F: drivers/net/wireless/broadcom/b43/
30253025

30263026
B43LEGACY WIRELESS DRIVER
30273027
M: Larry Finger <[email protected]>
30283028
30293029
30303030
S: Maintained
3031-
W: http://wireless.kernel.org/en/users/Drivers/b43
3031+
W: https://wireless.wiki.kernel.org/en/users/Drivers/b43
30323032
F: drivers/net/wireless/broadcom/b43legacy/
30333033

30343034
BACKLIGHT CLASS/SUBSYSTEM
@@ -3843,7 +3843,7 @@ CARL9170 LINUX COMMUNITY WIRELESS DRIVER
38433843
M: Christian Lamparter <[email protected]>
38443844
38453845
S: Maintained
3846-
W: http://wireless.kernel.org/en/users/Drivers/carl9170
3846+
W: https://wireless.wiki.kernel.org/en/users/Drivers/carl9170
38473847
F: drivers/net/wireless/ath/carl9170/
38483848

38493849
CAVIUM I2C DRIVER
@@ -5176,6 +5176,7 @@ S: Maintained
51765176
F: drivers/soc/fsl/dpio
51775177

51785178
DPAA2 ETHERNET DRIVER
5179+
M: Ioana Ciornei <[email protected]>
51795180
M: Ioana Radulescu <[email protected]>
51805181
51815182
S: Maintained
@@ -10075,7 +10076,7 @@ MAC80211
1007510076
M: Johannes Berg <[email protected]>
1007610077
1007710078
S: Maintained
10078-
W: http://wireless.kernel.org/
10079+
W: https://wireless.wiki.kernel.org/
1007910080
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
1008010081
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
1008110082
F: Documentation/networking/mac80211-injection.txt
@@ -10705,7 +10706,6 @@ MEDIATEK MT76 WIRELESS LAN DRIVER
1070510706
M: Felix Fietkau <[email protected]>
1070610707
M: Lorenzo Bianconi <[email protected]>
1070710708
R: Ryder Lee <[email protected]>
10708-
R: Roy Luo <[email protected]>
1070910709
1071010710
S: Maintained
1071110711
F: drivers/net/wireless/mediatek/mt76/
@@ -12656,7 +12656,7 @@ F: fs/orangefs/
1265612656
ORINOCO DRIVER
1265712657
1265812658
S: Orphan
12659-
W: http://wireless.kernel.org/en/users/Drivers/orinoco
12659+
W: https://wireless.wiki.kernel.org/en/users/Drivers/orinoco
1266012660
W: http://www.nongnu.org/orinoco/
1266112661
F: drivers/net/wireless/intersil/orinoco/
1266212662

@@ -12682,7 +12682,7 @@ P54 WIRELESS DRIVER
1268212682
M: Christian Lamparter <[email protected]>
1268312683
1268412684
S: Maintained
12685-
W: http://wireless.kernel.org/en/users/Drivers/p54
12685+
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
1268612686
F: drivers/net/wireless/intersil/p54/
1268712687

1268812688
PACKING
@@ -13603,7 +13603,7 @@ PRISM54 WIRELESS DRIVER
1360313603
M: Luis Chamberlain <[email protected]>
1360413604
1360513605
S: Obsolete
13606-
W: http://wireless.kernel.org/en/users/Drivers/p54
13606+
W: https://wireless.wiki.kernel.org/en/users/Drivers/p54
1360713607
F: drivers/net/wireless/intersil/prism54/
1360813608

1360913609
PROC FILESYSTEM
@@ -13944,7 +13944,7 @@ QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
1394413944
M: Kalle Valo <[email protected]>
1394513945
1394613946
S: Supported
13947-
W: http://wireless.kernel.org/en/users/Drivers/ath10k
13947+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath10k
1394813948
T: git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
1394913949
F: drivers/net/wireless/ath/ath10k/
1395013950

@@ -13959,7 +13959,7 @@ QUALCOMM ATHEROS ATH9K WIRELESS DRIVER
1395913959
M: QCA ath9k Development <[email protected]>
1396013960
1396113961
S: Supported
13962-
W: http://wireless.kernel.org/en/users/Drivers/ath9k
13962+
W: https://wireless.wiki.kernel.org/en/users/Drivers/ath9k
1396313963
F: drivers/net/wireless/ath/ath9k/
1396413964

1396513965
QUALCOMM CAMERA SUBSYSTEM DRIVER
@@ -14056,13 +14056,12 @@ QUALCOMM WCN36XX WIRELESS DRIVER
1405614056
M: Kalle Valo <[email protected]>
1405714057
1405814058
S: Supported
14059-
W: http://wireless.kernel.org/en/users/Drivers/wcn36xx
14059+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wcn36xx
1406014060
T: git git://github.com/KrasnikovEugene/wcn36xx.git
1406114061
F: drivers/net/wireless/ath/wcn36xx/
1406214062

1406314063
QUANTENNA QTNFMAC WIRELESS DRIVER
1406414064
M: Igor Mitsyanko <[email protected]>
14065-
M: Avinash Patil <[email protected]>
1406614065
M: Sergey Matyukevich <[email protected]>
1406714066
1406814067
S: Maintained
@@ -14284,7 +14283,7 @@ REALTEK WIRELESS DRIVER (rtlwifi family)
1428414283
M: Ping-Ke Shih <[email protected]>
1428514284
1428614285
S: Maintained
14287-
W: http://wireless.kernel.org/
14286+
W: https://wireless.wiki.kernel.org/
1428814287
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
1428914288
F: drivers/net/wireless/realtek/rtlwifi/
1429014289

@@ -14419,7 +14418,7 @@ RFKILL
1441914418
M: Johannes Berg <[email protected]>
1442014419
1442114420
S: Maintained
14422-
W: http://wireless.kernel.org/
14421+
W: https://wireless.wiki.kernel.org/
1442314422
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211.git
1442414423
T: git git://git.kernel.org/pub/scm/linux/kernel/git/jberg/mac80211-next.git
1442514424
F: Documentation/ABI/stable/sysfs-class-rfkill
@@ -14568,7 +14567,7 @@ F: drivers/media/dvb-frontends/rtl2832_sdr*
1456814567
RTL8180 WIRELESS DRIVER
1456914568
1457014569
S: Orphan
14571-
W: http://wireless.kernel.org/
14570+
W: https://wireless.wiki.kernel.org/
1457214571
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
1457314572
F: drivers/net/wireless/realtek/rtl818x/rtl8180/
1457414573

@@ -14578,7 +14577,7 @@ M: Hin-Tak Leung <[email protected]>
1457814577
M: Larry Finger <[email protected]>
1457914578
1458014579
S: Maintained
14581-
W: http://wireless.kernel.org/
14580+
W: https://wireless.wiki.kernel.org/
1458214581
T: git git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-testing.git
1458314582
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
1458414583

@@ -16933,8 +16932,8 @@ F: drivers/media/platform/ti-vpe/
1693316932
TI WILINK WIRELESS DRIVERS
1693416933
1693516934
S: Orphan
16936-
W: http://wireless.kernel.org/en/users/Drivers/wl12xx
16937-
W: http://wireless.kernel.org/en/users/Drivers/wl1251
16935+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl12xx
16936+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wl1251
1693816937
T: git git://git.kernel.org/pub/scm/linux/kernel/git/luca/wl12xx.git
1693916938
F: drivers/net/wireless/ti/
1694016939
F: include/linux/wl12xx.h
@@ -18216,7 +18215,7 @@ M: Maya Erez <[email protected]>
1821618215
1821718216
1821818217
S: Supported
18219-
W: http://wireless.kernel.org/en/users/Drivers/wil6210
18218+
W: https://wireless.wiki.kernel.org/en/users/Drivers/wil6210
1822018219
F: drivers/net/wireless/ath/wil6210/
1822118220

1822218221
WIMAX STACK

arch/x86/net/bpf_jit_comp.c

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,19 @@ static bool is_ereg(u32 reg)
158158
BIT(BPF_REG_AX));
159159
}
160160

161+
/*
162+
* is_ereg_8l() == true if BPF register 'reg' is mapped to access x86-64
163+
* lower 8-bit registers dil,sil,bpl,spl,r8b..r15b, which need extra byte
164+
* of encoding. al,cl,dl,bl have simpler encoding.
165+
*/
166+
static bool is_ereg_8l(u32 reg)
167+
{
168+
return is_ereg(reg) ||
169+
(1 << reg) & (BIT(BPF_REG_1) |
170+
BIT(BPF_REG_2) |
171+
BIT(BPF_REG_FP));
172+
}
173+
161174
static bool is_axreg(u32 reg)
162175
{
163176
return reg == BPF_REG_0;
@@ -598,9 +611,8 @@ static void emit_stx(u8 **pprog, u32 size, u32 dst_reg, u32 src_reg, int off)
598611
switch (size) {
599612
case BPF_B:
600613
/* Emit 'mov byte ptr [rax + off], al' */
601-
if (is_ereg(dst_reg) || is_ereg(src_reg) ||
602-
/* We have to add extra byte for x86 SIL, DIL regs */
603-
src_reg == BPF_REG_1 || src_reg == BPF_REG_2)
614+
if (is_ereg(dst_reg) || is_ereg_8l(src_reg))
615+
/* Add extra byte for eregs or SIL,DIL,BPL in src_reg */
604616
EMIT2(add_2mod(0x40, dst_reg, src_reg), 0x88);
605617
else
606618
EMIT1(0x88);

arch/x86/net/bpf_jit_comp32.c

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1847,14 +1847,16 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
18471847
case BPF_B:
18481848
case BPF_H:
18491849
case BPF_W:
1850-
if (!bpf_prog->aux->verifier_zext)
1850+
if (bpf_prog->aux->verifier_zext)
18511851
break;
18521852
if (dstk) {
18531853
EMIT3(0xC7, add_1reg(0x40, IA32_EBP),
18541854
STACK_VAR(dst_hi));
18551855
EMIT(0x0, 4);
18561856
} else {
1857-
EMIT3(0xC7, add_1reg(0xC0, dst_hi), 0);
1857+
/* xor dst_hi,dst_hi */
1858+
EMIT2(0x33,
1859+
add_2reg(0xC0, dst_hi, dst_hi));
18581860
}
18591861
break;
18601862
case BPF_DW:
@@ -2013,8 +2015,8 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
20132015
case BPF_JMP | BPF_JSET | BPF_X:
20142016
case BPF_JMP32 | BPF_JSET | BPF_X: {
20152017
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
2016-
u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
2017-
u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
2018+
u8 dreg_lo = IA32_EAX;
2019+
u8 dreg_hi = IA32_EDX;
20182020
u8 sreg_lo = sstk ? IA32_ECX : src_lo;
20192021
u8 sreg_hi = sstk ? IA32_EBX : src_hi;
20202022

@@ -2026,6 +2028,13 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
20262028
add_2reg(0x40, IA32_EBP,
20272029
IA32_EDX),
20282030
STACK_VAR(dst_hi));
2031+
} else {
2032+
/* mov dreg_lo,dst_lo */
2033+
EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
2034+
if (is_jmp64)
2035+
/* mov dreg_hi,dst_hi */
2036+
EMIT2(0x89,
2037+
add_2reg(0xC0, dreg_hi, dst_hi));
20292038
}
20302039

20312040
if (sstk) {
@@ -2050,8 +2059,8 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
20502059
case BPF_JMP | BPF_JSET | BPF_K:
20512060
case BPF_JMP32 | BPF_JSET | BPF_K: {
20522061
bool is_jmp64 = BPF_CLASS(insn->code) == BPF_JMP;
2053-
u8 dreg_lo = dstk ? IA32_EAX : dst_lo;
2054-
u8 dreg_hi = dstk ? IA32_EDX : dst_hi;
2062+
u8 dreg_lo = IA32_EAX;
2063+
u8 dreg_hi = IA32_EDX;
20552064
u8 sreg_lo = IA32_ECX;
20562065
u8 sreg_hi = IA32_EBX;
20572066
u32 hi;
@@ -2064,6 +2073,13 @@ static int do_jit(struct bpf_prog *bpf_prog, int *addrs, u8 *image,
20642073
add_2reg(0x40, IA32_EBP,
20652074
IA32_EDX),
20662075
STACK_VAR(dst_hi));
2076+
} else {
2077+
/* mov dreg_lo,dst_lo */
2078+
EMIT2(0x89, add_2reg(0xC0, dreg_lo, dst_lo));
2079+
if (is_jmp64)
2080+
/* mov dreg_hi,dst_hi */
2081+
EMIT2(0x89,
2082+
add_2reg(0xC0, dreg_hi, dst_hi));
20672083
}
20682084

20692085
/* mov ecx,imm32 */

drivers/crypto/chelsio/chcr_ktls.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -120,12 +120,10 @@ static int chcr_ktls_save_keys(struct chcr_ktls_info *tx_info,
120120
static int chcr_ktls_update_connection_state(struct chcr_ktls_info *tx_info,
121121
int new_state)
122122
{
123-
unsigned long flags;
124-
125123
/* This function can be called from both rx (interrupt context) and tx
126124
* queue contexts.
127125
*/
128-
spin_lock_irqsave(&tx_info->lock, flags);
126+
spin_lock_bh(&tx_info->lock);
129127
switch (tx_info->connection_state) {
130128
case KTLS_CONN_CLOSED:
131129
tx_info->connection_state = new_state;
@@ -169,7 +167,7 @@ static int chcr_ktls_update_connection_state(struct chcr_ktls_info *tx_info,
169167
pr_err("unknown KTLS connection state\n");
170168
break;
171169
}
172-
spin_unlock_irqrestore(&tx_info->lock, flags);
170+
spin_unlock_bh(&tx_info->lock);
173171

174172
return tx_info->connection_state;
175173
}

0 commit comments

Comments
 (0)