Skip to content

Commit 50108c3

Browse files
committed
Merge tag 'net-6.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net
Pull networking fixes from Paolo Abeni: "Including fixes from bpf, WiFi and netfilter. Current release - regressions: - ipv6: fix address dump when IPv6 is disabled on an interface Current release - new code bugs: - bpf: temporarily disable atomic operations in BPF arena - nexthop: fix uninitialized variable in nla_put_nh_group_stats() Previous releases - regressions: - bpf: protect against int overflow for stack access size - hsr: fix the promiscuous mode in offload mode - wifi: don't always use FW dump trig - tls: adjust recv return with async crypto and failed copy to userspace - tcp: properly terminate timers for kernel sockets - ice: fix memory corruption bug with suspend and rebuild - at803x: fix kernel panic with at8031_probe - qeth: handle deferred cc1 Previous releases - always broken: - bpf: fix bug in BPF_LDX_MEMSX - netfilter: reject table flag and netdev basechain updates - inet_defrag: prevent sk release while still in use - wifi: pick the version of SESSION_PROTECTION_NOTIF - wwan: t7xx: split 64bit accesses to fix alignment issues - mlxbf_gige: call request_irq() after NAPI initialized - hns3: fix kernel crash when devlink reload during pf initialization" * tag 'net-6.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (81 commits) inet: inet_defrag: prevent sk release while still in use Octeontx2-af: fix pause frame configuration in GMP mode net: lan743x: Add set RFE read fifo threshold for PCI1x1x chips net: bcmasp: Remove phy_{suspend/resume} net: bcmasp: Bring up unimac after PHY link up net: phy: qcom: at803x: fix kernel panic with at8031_probe netfilter: arptables: Select NETFILTER_FAMILY_ARP when building arp_tables.c netfilter: nf_tables: skip netdev hook unregistration if table is dormant netfilter: nf_tables: reject table flag and netdev basechain updates netfilter: nf_tables: reject destroy command to remove basechain hooks bpf: update BPF LSM designated reviewer list bpf: Protect against int overflow for stack access size bpf: Check bloom filter map value size bpf: fix warning for crash_kexec selftests: netdevsim: set test timeout to 10 minutes net: wan: framer: Add missing static inline qualifiers mlxbf_gige: call request_irq() after NAPI initialized tls: get psock ref after taking rxlock to avoid leak selftests: tls: add test with a partially invalid iov tls: adjust recv return with async crypto and failed copy to userspace ...
2 parents 8d025e2 + 1868545 commit 50108c3

Some content is hidden

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

86 files changed

+865
-337
lines changed

.mailmap

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -498,7 +498,8 @@ Prasad Sodagudi <[email protected]> <[email protected]>
498498
499499
500500
501-
501+
502+
502503
503504
504505

MAINTAINERS

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3942,8 +3942,7 @@ F: kernel/bpf/ringbuf.c
39423942

39433943
BPF [SECURITY & LSM] (Security Audit and Enforcement using BPF)
39443944
M: KP Singh <[email protected]>
3945-
R: Florent Revest <[email protected]>
3946-
R: Brendan Jackman <[email protected]>
3945+
R: Matt Bobrowski <[email protected]>
39473946
39483947
S: Maintained
39493948
F: Documentation/bpf/prog_lsm.rst
@@ -3968,7 +3967,7 @@ F: kernel/bpf/bpf_lru*
39683967
F: kernel/bpf/cgroup.c
39693968

39703969
BPF [TOOLING] (bpftool)
3971-
M: Quentin Monnet <[email protected]>
3970+
M: Quentin Monnet <[email protected]>
39723971
39733972
S: Maintained
39743973
F: kernel/bpf/disasm.*
@@ -13134,6 +13133,7 @@ F: drivers/net/ethernet/marvell/mvpp2/
1313413133

1313513134
MARVELL MWIFIEX WIRELESS DRIVER
1313613135
M: Brian Norris <[email protected]>
13136+
R: Francesco Dolcini <[email protected]>
1313713137
1313813138
S: Odd Fixes
1313913139
F: drivers/net/wireless/marvell/mwifiex/
@@ -18645,18 +18645,21 @@ REALTEK WIRELESS DRIVER (rtlwifi family)
1864518645
M: Ping-Ke Shih <[email protected]>
1864618646
1864718647
S: Maintained
18648+
T: git https://github.com/pkshih/rtw.git
1864818649
F: drivers/net/wireless/realtek/rtlwifi/
1864918650

1865018651
REALTEK WIRELESS DRIVER (rtw88)
1865118652
M: Ping-Ke Shih <[email protected]>
1865218653
1865318654
S: Maintained
18655+
T: git https://github.com/pkshih/rtw.git
1865418656
F: drivers/net/wireless/realtek/rtw88/
1865518657

1865618658
REALTEK WIRELESS DRIVER (rtw89)
1865718659
M: Ping-Ke Shih <[email protected]>
1865818660
1865918661
S: Maintained
18662+
T: git https://github.com/pkshih/rtw.git
1866018663
F: drivers/net/wireless/realtek/rtw89/
1866118664

1866218665
REDPINE WIRELESS DRIVER
@@ -18727,13 +18730,24 @@ S: Supported
1872718730
F: Documentation/devicetree/bindings/i2c/renesas,iic-emev2.yaml
1872818731
F: drivers/i2c/busses/i2c-emev2.c
1872918732

18730-
RENESAS ETHERNET DRIVERS
18733+
RENESAS ETHERNET AVB DRIVER
1873118734
R: Sergey Shtylyov <[email protected]>
1873218735
1873318736
18734-
F: Documentation/devicetree/bindings/net/renesas,*.yaml
18735-
F: drivers/net/ethernet/renesas/
18736-
F: include/linux/sh_eth.h
18737+
F: Documentation/devicetree/bindings/net/renesas,etheravb.yaml
18738+
F: drivers/net/ethernet/renesas/Kconfig
18739+
F: drivers/net/ethernet/renesas/Makefile
18740+
F: drivers/net/ethernet/renesas/ravb*
18741+
18742+
RENESAS ETHERNET SWITCH DRIVER
18743+
R: Yoshihiro Shimoda <[email protected]>
18744+
18745+
18746+
F: Documentation/devicetree/bindings/net/renesas,*ether-switch.yaml
18747+
F: drivers/net/ethernet/renesas/Kconfig
18748+
F: drivers/net/ethernet/renesas/Makefile
18749+
F: drivers/net/ethernet/renesas/rcar_gen4*
18750+
F: drivers/net/ethernet/renesas/rswitch*
1873718751

1873818752
RENESAS IDT821034 ASoC CODEC
1873918753
M: Herve Codina <[email protected]>
@@ -18843,6 +18857,16 @@ S: Supported
1884318857
F: Documentation/devicetree/bindings/i2c/renesas,rzv2m.yaml
1884418858
F: drivers/i2c/busses/i2c-rzv2m.c
1884518859

18860+
RENESAS SUPERH ETHERNET DRIVER
18861+
R: Sergey Shtylyov <[email protected]>
18862+
18863+
18864+
F: Documentation/devicetree/bindings/net/renesas,ether.yaml
18865+
F: drivers/net/ethernet/renesas/Kconfig
18866+
F: drivers/net/ethernet/renesas/Makefile
18867+
F: drivers/net/ethernet/renesas/sh_eth*
18868+
F: include/linux/sh_eth.h
18869+
1884618870
RENESAS USB PHY DRIVER
1884718871
M: Yoshihiro Shimoda <[email protected]>
1884818872
@@ -19179,12 +19203,14 @@ M: Hin-Tak Leung <[email protected]>
1917919203
M: Larry Finger <[email protected]>
1918019204
1918119205
S: Maintained
19206+
T: git https://github.com/pkshih/rtw.git
1918219207
F: drivers/net/wireless/realtek/rtl818x/rtl8187/
1918319208

1918419209
RTL8XXXU WIRELESS DRIVER (rtl8xxxu)
1918519210
M: Jes Sorensen <[email protected]>
1918619211
1918719212
S: Maintained
19213+
T: git https://github.com/pkshih/rtw.git
1918819214
F: drivers/net/wireless/realtek/rtl8xxxu/
1918919215

1919019216
RTRS TRANSPORT DRIVERS

arch/arm64/net/bpf_jit_comp.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -943,7 +943,7 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
943943
emit(A64_UXTH(is64, dst, dst), ctx);
944944
break;
945945
case 32:
946-
emit(A64_REV32(is64, dst, dst), ctx);
946+
emit(A64_REV32(0, dst, dst), ctx);
947947
/* upper 32 bits already cleared */
948948
break;
949949
case 64:
@@ -1256,7 +1256,7 @@ static int build_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
12561256
} else {
12571257
emit_a64_mov_i(1, tmp, off, ctx);
12581258
if (sign_extend)
1259-
emit(A64_LDRSW(dst, src_adj, off_adj), ctx);
1259+
emit(A64_LDRSW(dst, src, tmp), ctx);
12601260
else
12611261
emit(A64_LDR32(dst, src, tmp), ctx);
12621262
}

arch/riscv/net/bpf_jit_comp64.c

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1463,6 +1463,22 @@ int bpf_jit_emit_insn(const struct bpf_insn *insn, struct rv_jit_context *ctx,
14631463
if (ret < 0)
14641464
return ret;
14651465

1466+
if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL) {
1467+
const struct btf_func_model *fm;
1468+
int idx;
1469+
1470+
fm = bpf_jit_find_kfunc_model(ctx->prog, insn);
1471+
if (!fm)
1472+
return -EINVAL;
1473+
1474+
for (idx = 0; idx < fm->nr_args; idx++) {
1475+
u8 reg = bpf_to_rv_reg(BPF_REG_1 + idx, ctx);
1476+
1477+
if (fm->arg_size[idx] == sizeof(int))
1478+
emit_sextw(reg, reg, ctx);
1479+
}
1480+
}
1481+
14661482
ret = emit_call(addr, fixed_addr, ctx);
14671483
if (ret)
14681484
return ret;

arch/s390/net/bpf_jit_comp.c

Lines changed: 20 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -516,11 +516,12 @@ static void bpf_skip(struct bpf_jit *jit, int size)
516516
* PLT for hotpatchable calls. The calling convention is the same as for the
517517
* ftrace hotpatch trampolines: %r0 is return address, %r1 is clobbered.
518518
*/
519-
extern const char bpf_plt[];
520-
extern const char bpf_plt_ret[];
521-
extern const char bpf_plt_target[];
522-
extern const char bpf_plt_end[];
523-
#define BPF_PLT_SIZE 32
519+
struct bpf_plt {
520+
char code[16];
521+
void *ret;
522+
void *target;
523+
} __packed;
524+
extern const struct bpf_plt bpf_plt;
524525
asm(
525526
".pushsection .rodata\n"
526527
" .balign 8\n"
@@ -531,15 +532,14 @@ asm(
531532
" .balign 8\n"
532533
"bpf_plt_ret: .quad 0\n"
533534
"bpf_plt_target: .quad 0\n"
534-
"bpf_plt_end:\n"
535535
" .popsection\n"
536536
);
537537

538-
static void bpf_jit_plt(void *plt, void *ret, void *target)
538+
static void bpf_jit_plt(struct bpf_plt *plt, void *ret, void *target)
539539
{
540-
memcpy(plt, bpf_plt, BPF_PLT_SIZE);
541-
*(void **)((char *)plt + (bpf_plt_ret - bpf_plt)) = ret;
542-
*(void **)((char *)plt + (bpf_plt_target - bpf_plt)) = target ?: ret;
540+
memcpy(plt, &bpf_plt, sizeof(*plt));
541+
plt->ret = ret;
542+
plt->target = target;
543543
}
544544

545545
/*
@@ -662,9 +662,9 @@ static void bpf_jit_epilogue(struct bpf_jit *jit, u32 stack_depth)
662662
jit->prg = ALIGN(jit->prg, 8);
663663
jit->prologue_plt = jit->prg;
664664
if (jit->prg_buf)
665-
bpf_jit_plt(jit->prg_buf + jit->prg,
665+
bpf_jit_plt((struct bpf_plt *)(jit->prg_buf + jit->prg),
666666
jit->prg_buf + jit->prologue_plt_ret, NULL);
667-
jit->prg += BPF_PLT_SIZE;
667+
jit->prg += sizeof(struct bpf_plt);
668668
}
669669

670670
static int get_probe_mem_regno(const u8 *insn)
@@ -2040,9 +2040,6 @@ struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *fp)
20402040
struct bpf_jit jit;
20412041
int pass;
20422042

2043-
if (WARN_ON_ONCE(bpf_plt_end - bpf_plt != BPF_PLT_SIZE))
2044-
return orig_fp;
2045-
20462043
if (!fp->jit_requested)
20472044
return orig_fp;
20482045

@@ -2148,14 +2145,11 @@ bool bpf_jit_supports_far_kfunc_call(void)
21482145
int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type t,
21492146
void *old_addr, void *new_addr)
21502147
{
2148+
struct bpf_plt expected_plt, current_plt, new_plt, *plt;
21512149
struct {
21522150
u16 opc;
21532151
s32 disp;
21542152
} __packed insn;
2155-
char expected_plt[BPF_PLT_SIZE];
2156-
char current_plt[BPF_PLT_SIZE];
2157-
char new_plt[BPF_PLT_SIZE];
2158-
char *plt;
21592153
char *ret;
21602154
int err;
21612155

@@ -2174,18 +2168,18 @@ int bpf_arch_text_poke(void *ip, enum bpf_text_poke_type t,
21742168
*/
21752169
} else {
21762170
/* Verify the PLT. */
2177-
plt = (char *)ip + (insn.disp << 1);
2178-
err = copy_from_kernel_nofault(current_plt, plt, BPF_PLT_SIZE);
2171+
plt = ip + (insn.disp << 1);
2172+
err = copy_from_kernel_nofault(&current_plt, plt,
2173+
sizeof(current_plt));
21792174
if (err < 0)
21802175
return err;
21812176
ret = (char *)ip + 6;
2182-
bpf_jit_plt(expected_plt, ret, old_addr);
2183-
if (memcmp(current_plt, expected_plt, BPF_PLT_SIZE))
2177+
bpf_jit_plt(&expected_plt, ret, old_addr);
2178+
if (memcmp(&current_plt, &expected_plt, sizeof(current_plt)))
21842179
return -EINVAL;
21852180
/* Adjust the call address. */
2186-
bpf_jit_plt(new_plt, ret, new_addr);
2187-
s390_kernel_write(plt + (bpf_plt_target - bpf_plt),
2188-
new_plt + (bpf_plt_target - bpf_plt),
2181+
bpf_jit_plt(&new_plt, ret, new_addr);
2182+
s390_kernel_write(&plt->target, &new_plt.target,
21892183
sizeof(void *));
21902184
}
21912185

drivers/dpll/Kconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@
44
#
55

66
config DPLL
7-
bool
7+
bool

drivers/net/dsa/mt7530.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2268,8 +2268,6 @@ mt7530_setup(struct dsa_switch *ds)
22682268
SYS_CTRL_PHY_RST | SYS_CTRL_SW_RST |
22692269
SYS_CTRL_REG_RST);
22702270

2271-
mt7530_pll_setup(priv);
2272-
22732271
/* Lower Tx driving for TRGMII path */
22742272
for (i = 0; i < NUM_TRGMII_CTRL; i++)
22752273
mt7530_write(priv, MT7530_TRGMII_TD_ODT(i),
@@ -2285,6 +2283,9 @@ mt7530_setup(struct dsa_switch *ds)
22852283
val |= MHWTRAP_MANUAL;
22862284
mt7530_write(priv, MT7530_MHWTRAP, val);
22872285

2286+
if ((val & HWTRAP_XTAL_MASK) == HWTRAP_XTAL_40MHZ)
2287+
mt7530_pll_setup(priv);
2288+
22882289
mt753x_trap_frames(priv);
22892290

22902291
/* Enable and reset MIB counters */

0 commit comments

Comments
 (0)