Skip to content

Commit 909ea6e

Browse files
author
Alexei Starovoitov
committed
Merge branch 'bpf-next/net' into for-next
Signed-off-by: Alexei Starovoitov <[email protected]>
2 parents af91af3 + 16f3c7a commit 909ea6e

File tree

186 files changed

+3922
-5023
lines changed

Some content is hidden

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

186 files changed

+3922
-5023
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,9 @@
458458
arm64.nomops [ARM64] Unconditionally disable Memory Copy and Memory
459459
Set instructions support
460460

461+
arm64.nompam [ARM64] Unconditionally disable Memory Partitioning And
462+
Monitoring support
463+
461464
arm64.nomte [ARM64] Unconditionally disable Memory Tagging Extension
462465
support
463466

Documentation/netlink/specs/rt-link.yaml

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1685,15 +1685,19 @@ attribute-sets:
16851685
-
16861686
name: iflags
16871687
type: u16
1688+
byte-order: big-endian
16881689
-
16891690
name: oflags
16901691
type: u16
1692+
byte-order: big-endian
16911693
-
16921694
name: ikey
16931695
type: u32
1696+
byte-order: big-endian
16941697
-
16951698
name: okey
16961699
type: u32
1700+
byte-order: big-endian
16971701
-
16981702
name: local
16991703
type: binary
@@ -1713,10 +1717,11 @@ attribute-sets:
17131717
type: u8
17141718
-
17151719
name: encap-limit
1716-
type: u32
1720+
type: u8
17171721
-
17181722
name: flowinfo
17191723
type: u32
1724+
byte-order: big-endian
17201725
-
17211726
name: flags
17221727
type: u32
@@ -1729,9 +1734,11 @@ attribute-sets:
17291734
-
17301735
name: encap-sport
17311736
type: u16
1737+
byte-order: big-endian
17321738
-
17331739
name: encap-dport
17341740
type: u16
1741+
byte-order: big-endian
17351742
-
17361743
name: collect-metadata
17371744
type: flag
@@ -1753,6 +1760,54 @@ attribute-sets:
17531760
-
17541761
name: erspan-hwid
17551762
type: u16
1763+
-
1764+
name: linkinfo-gre6-attrs
1765+
subset-of: linkinfo-gre-attrs
1766+
attributes:
1767+
-
1768+
name: link
1769+
-
1770+
name: iflags
1771+
-
1772+
name: oflags
1773+
-
1774+
name: ikey
1775+
-
1776+
name: okey
1777+
-
1778+
name: local
1779+
display-hint: ipv6
1780+
-
1781+
name: remote
1782+
display-hint: ipv6
1783+
-
1784+
name: ttl
1785+
-
1786+
name: encap-limit
1787+
-
1788+
name: flowinfo
1789+
-
1790+
name: flags
1791+
-
1792+
name: encap-type
1793+
-
1794+
name: encap-flags
1795+
-
1796+
name: encap-sport
1797+
-
1798+
name: encap-dport
1799+
-
1800+
name: collect-metadata
1801+
-
1802+
name: fwmark
1803+
-
1804+
name: erspan-index
1805+
-
1806+
name: erspan-ver
1807+
-
1808+
name: erspan-dir
1809+
-
1810+
name: erspan-hwid
17561811
-
17571812
name: linkinfo-vti-attrs
17581813
name-prefix: ifla-vti-
@@ -1764,9 +1819,11 @@ attribute-sets:
17641819
-
17651820
name: ikey
17661821
type: u32
1822+
byte-order: big-endian
17671823
-
17681824
name: okey
17691825
type: u32
1826+
byte-order: big-endian
17701827
-
17711828
name: local
17721829
type: binary
@@ -1816,6 +1873,7 @@ attribute-sets:
18161873
-
18171874
name: port
18181875
type: u16
1876+
byte-order: big-endian
18191877
-
18201878
name: collect-metadata
18211879
type: flag
@@ -1835,6 +1893,7 @@ attribute-sets:
18351893
-
18361894
name: label
18371895
type: u32
1896+
byte-order: big-endian
18381897
-
18391898
name: ttl-inherit
18401899
type: u8
@@ -1875,9 +1934,11 @@ attribute-sets:
18751934
-
18761935
name: flowinfo
18771936
type: u32
1937+
byte-order: big-endian
18781938
-
18791939
name: flags
18801940
type: u16
1941+
byte-order: big-endian
18811942
-
18821943
name: proto
18831944
type: u8
@@ -1907,9 +1968,11 @@ attribute-sets:
19071968
-
19081969
name: encap-sport
19091970
type: u16
1971+
byte-order: big-endian
19101972
-
19111973
name: encap-dport
19121974
type: u16
1975+
byte-order: big-endian
19131976
-
19141977
name: collect-metadata
19151978
type: flag
@@ -2224,6 +2287,9 @@ sub-messages:
22242287
-
22252288
value: gretap
22262289
attribute-set: linkinfo-gre-attrs
2290+
-
2291+
value: ip6gre
2292+
attribute-set: linkinfo-gre6-attrs
22272293
-
22282294
value: geneve
22292295
attribute-set: linkinfo-geneve-attrs

Documentation/virt/uml/user_mode_linux_howto_v2.rst

Lines changed: 7 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -147,18 +147,12 @@ The image hostname will be set to the same as the host on which you
147147
are creating its image. It is a good idea to change that to avoid
148148
"Oh, bummer, I rebooted the wrong machine".
149149

150-
UML supports two classes of network devices - the older uml_net ones
151-
which are scheduled for obsoletion. These are called ethX. It also
152-
supports the newer vector IO devices which are significantly faster
153-
and have support for some standard virtual network encapsulations like
154-
Ethernet over GRE and Ethernet over L2TPv3. These are called vec0.
150+
UML supports vector I/O high performance network devices which have
151+
support for some standard virtual network encapsulations like
152+
Ethernet over GRE and Ethernet over L2TPv3. These are called vecX.
155153

156-
Depending on which one is in use, ``/etc/network/interfaces`` will
157-
need entries like::
158-
159-
# legacy UML network devices
160-
auto eth0
161-
iface eth0 inet dhcp
154+
When vector network devices are in use, ``/etc/network/interfaces``
155+
will need entries like::
162156

163157
# vector UML network devices
164158
auto vec0
@@ -219,44 +213,23 @@ remote UML and other VM instances.
219213
+-----------+--------+------------------------------------+------------+
220214
| vde | vector | dep. on VDE VPN: Virt.Net Locator | varies |
221215
+-----------+--------+------------------------------------+------------+
222-
| tuntap | legacy | none | ~ 500Mbit |
223-
+-----------+--------+------------------------------------+------------+
224-
| daemon | legacy | none | ~ 450Mbit |
225-
+-----------+--------+------------------------------------+------------+
226-
| socket | legacy | none | ~ 450Mbit |
227-
+-----------+--------+------------------------------------+------------+
228-
| ethertap | legacy | obsolete | ~ 500Mbit |
229-
+-----------+--------+------------------------------------+------------+
230-
| vde | legacy | obsolete | ~ 500Mbit |
231-
+-----------+--------+------------------------------------+------------+
232216

233217
* All transports which have tso and checksum offloads can deliver speeds
234218
approaching 10G on TCP streams.
235219

236220
* All transports which have multi-packet rx and/or tx can deliver pps
237221
rates of up to 1Mps or more.
238222

239-
* All legacy transports are generally limited to ~600-700MBit and 0.05Mps.
240-
241223
* GRE and L2TPv3 allow connections to all of: local machine, remote
242224
machines, remote network devices and remote UML instances.
243225

244-
* Socket allows connections only between UML instances.
245-
246-
* Daemon and bess require running a local switch. This switch may be
247-
connected to the host as well.
248-
249226

250227
Network configuration privileges
251228
================================
252229

253230
The majority of the supported networking modes need ``root`` privileges.
254-
For example, in the legacy tuntap networking mode, users were required
255-
to be part of the group associated with the tunnel device.
256-
257-
For newer network drivers like the vector transports, ``root`` privilege
258-
is required to fire an ioctl to setup the tun interface and/or use
259-
raw sockets where needed.
231+
For example, for vector transports, ``root`` privilege is required to fire
232+
an ioctl to setup the tun interface and/or use raw sockets where needed.
260233

261234
This can be achieved by granting the user a particular capability instead
262235
of running UML as root. In case of vector transport, a user can add the
@@ -610,12 +583,6 @@ connect to a local area cloud (all the UML nodes using the same
610583
multicast address running on hosts in the same multicast domain (LAN)
611584
will be automagically connected together to a virtual LAN.
612585

613-
Configuring Legacy transports
614-
=============================
615-
616-
Legacy transports are now considered obsolete. Please use the vector
617-
versions.
618-
619586
***********
620587
Running UML
621588
***********

MAINTAINERS

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6374,11 +6374,20 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6.git
63746374
F: Documentation/crypto/
63756375
F: Documentation/devicetree/bindings/crypto/
63766376
F: arch/*/crypto/
6377-
F: arch/*/lib/crypto/
63786377
F: crypto/
63796378
F: drivers/crypto/
63806379
F: include/crypto/
63816380
F: include/linux/crypto*
6381+
6382+
CRYPTO LIBRARY
6383+
M: Eric Biggers <[email protected]>
6384+
M: Jason A. Donenfeld <[email protected]>
6385+
M: Ard Biesheuvel <[email protected]>
6386+
6387+
S: Maintained
6388+
T: git https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git libcrypto-next
6389+
T: git https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git libcrypto-fixes
6390+
F: arch/*/lib/crypto/
63826391
F: lib/crypto/
63836392

63846393
CRYPTO SPEED TEST COMPARE
@@ -25156,13 +25165,12 @@ L: [email protected]
2515625165
S: Orphan
2515725166
F: drivers/net/ethernet/dec/tulip/
2515825167

25159-
TUN/TAP driver
25168+
TUN/TAP DRIVER
2516025169
M: Willem de Bruijn <[email protected]>
2516125170
M: Jason Wang <[email protected]>
2516225171
S: Maintained
2516325172
W: http://vtun.sourceforge.net/tun
2516425173
F: Documentation/networking/tuntap.rst
25165-
F: arch/um/os-Linux/drivers/
2516625174
F: drivers/net/tap.c
2516725175
F: drivers/net/tun*
2516825176

arch/arm/include/asm/simd.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88

99
static __must_check inline bool may_use_simd(void)
1010
{
11-
return IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && !in_hardirq();
11+
return IS_ENABLED(CONFIG_KERNEL_MODE_NEON) && !in_hardirq()
12+
&& !irqs_disabled();
1213
}
1314

1415
#endif /* _ASM_SIMD_H */

arch/arm/mm/ioremap.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -515,7 +515,5 @@ void __init early_ioremap_init(void)
515515
bool arch_memremap_can_ram_remap(resource_size_t offset, size_t size,
516516
unsigned long flags)
517517
{
518-
unsigned long pfn = PHYS_PFN(offset);
519-
520-
return memblock_is_map_memory(pfn);
518+
return memblock_is_map_memory(offset);
521519
}

arch/arm/vfp/vfpmodule.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -877,6 +877,7 @@ void kernel_neon_begin(void)
877877
* the kernel mode NEON register contents never need to be preserved.
878878
*/
879879
BUG_ON(in_hardirq());
880+
BUG_ON(irqs_disabled());
880881
cpu = __smp_processor_id();
881882

882883
fpexc = fmrx(FPEXC) | FPEXC_EN;

arch/arm64/include/asm/el2_setup.h

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -298,19 +298,6 @@
298298
.Lskip_gcs_\@:
299299
.endm
300300

301-
.macro __init_el2_mpam
302-
/* Memory Partitioning And Monitoring: disable EL2 traps */
303-
mrs x1, id_aa64pfr0_el1
304-
ubfx x0, x1, #ID_AA64PFR0_EL1_MPAM_SHIFT, #4
305-
cbz x0, .Lskip_mpam_\@ // skip if no MPAM
306-
msr_s SYS_MPAM2_EL2, xzr // use the default partition
307-
// and disable lower traps
308-
mrs_s x0, SYS_MPAMIDR_EL1
309-
tbz x0, #MPAMIDR_EL1_HAS_HCR_SHIFT, .Lskip_mpam_\@ // skip if no MPAMHCR reg
310-
msr_s SYS_MPAMHCR_EL2, xzr // clear TRAP_MPAMIDR_EL1 -> EL2
311-
.Lskip_mpam_\@:
312-
.endm
313-
314301
/**
315302
* Initialize EL2 registers to sane values. This should be called early on all
316303
* cores that were booted in EL2. Note that everything gets initialised as
@@ -328,7 +315,6 @@
328315
__init_el2_stage2
329316
__init_el2_gicv3
330317
__init_el2_hstr
331-
__init_el2_mpam
332318
__init_el2_nvhe_idregs
333319
__init_el2_cptr
334320
__init_el2_fgt
@@ -375,6 +361,16 @@
375361
#endif
376362

377363
.macro finalise_el2_state
364+
check_override id_aa64pfr0, ID_AA64PFR0_EL1_MPAM_SHIFT, .Linit_mpam_\@, .Lskip_mpam_\@, x1, x2
365+
366+
.Linit_mpam_\@:
367+
msr_s SYS_MPAM2_EL2, xzr // use the default partition
368+
// and disable lower traps
369+
mrs_s x0, SYS_MPAMIDR_EL1
370+
tbz x0, #MPAMIDR_EL1_HAS_HCR_SHIFT, .Lskip_mpam_\@ // skip if no MPAMHCR reg
371+
msr_s SYS_MPAMHCR_EL2, xzr // clear TRAP_MPAMIDR_EL1 -> EL2
372+
373+
.Lskip_mpam_\@:
378374
check_override id_aa64pfr0, ID_AA64PFR0_EL1_SVE_SHIFT, .Linit_sve_\@, .Lskip_sve_\@, x1, x2
379375

380376
.Linit_sve_\@: /* SVE register access */

arch/arm64/include/asm/kernel-pgtable.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@
5858
#define INIT_DIR_SIZE (PAGE_SIZE * (EARLY_PAGES(SWAPPER_PGTABLE_LEVELS, KIMAGE_VADDR, _end, EXTRA_PAGE) \
5959
+ EARLY_SEGMENT_EXTRA_PAGES))
6060

61-
#define INIT_IDMAP_DIR_PAGES (EARLY_PAGES(INIT_IDMAP_PGTABLE_LEVELS, KIMAGE_VADDR, _end, 1))
61+
#define INIT_IDMAP_DIR_PAGES (EARLY_PAGES(INIT_IDMAP_PGTABLE_LEVELS, KIMAGE_VADDR, kimage_limit, 1))
6262
#define INIT_IDMAP_DIR_SIZE ((INIT_IDMAP_DIR_PAGES + EARLY_IDMAP_EXTRA_PAGES) * PAGE_SIZE)
6363

6464
#define INIT_IDMAP_FDT_PAGES (EARLY_PAGES(INIT_IDMAP_PGTABLE_LEVELS, 0UL, UL(MAX_FDT_SIZE), 1) - 1)

arch/arm64/include/asm/tlbflush.h

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -323,13 +323,14 @@ static inline bool arch_tlbbatch_should_defer(struct mm_struct *mm)
323323
}
324324

325325
/*
326-
* If mprotect/munmap/etc occurs during TLB batched flushing, we need to
327-
* synchronise all the TLBI issued with a DSB to avoid the race mentioned in
328-
* flush_tlb_batched_pending().
326+
* If mprotect/munmap/etc occurs during TLB batched flushing, we need to ensure
327+
* all the previously issued TLBIs targeting mm have completed. But since we
328+
* can be executing on a remote CPU, a DSB cannot guarantee this like it can
329+
* for arch_tlbbatch_flush(). Our only option is to flush the entire mm.
329330
*/
330331
static inline void arch_flush_tlb_batched_pending(struct mm_struct *mm)
331332
{
332-
dsb(ish);
333+
flush_tlb_mm(mm);
333334
}
334335

335336
/*

0 commit comments

Comments
 (0)