KernelNewbies
  • Comments
  • Immutable Page
  • Menu
    • Navigation
    • RecentChanges
    • FindPage
    • Local Site Map
    • Help
    • HelpContents
    • HelpOnMoinWikiSyntax
    • Display
    • Attachments
    • Info
    • Raw Text
    • Print View
    • Edit
    • Load
    • Save
  • Login

Kernel Hacking

  • Frontpage

  • Kernel Hacking

  • Kernel Documentation

  • Kernel Glossary

  • FAQ

  • Found a bug?

  • Kernel Changelog

  • Upstream Merge Guide

Projects

  • KernelJanitors

  • KernelMentors

  • KernelProjects

Community

  • Why a community?

  • Regional Kernelnewbies

  • Personal Pages

  • Upcoming Events

References

  • Mailing Lists

  • Related Sites

  • Programming Links

Wiki

  • Recent Changes

  • Site Editors

  • Side Bar

  • Tips for Editors

  • Hosted by WikiWall

Navigation

  • RecentChanges
  • FindPage
  • HelpContents
Revision 377 as of 2020-04-13 19:14:24
KernelNewbies:
  • LinuxChanges

Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status, H-Online, or the Linux Kernel mailing list (there is a web interface in www.lkml.org). List of changes of older releases can be found at LinuxVersions. If you're going to add something here look first at LinuxChangesRules!

You can discuss the latest Linux kernel changes on the New Linux Kernel Features Forum.

Linux 5.6 has been released on Sun, 29 Mar 2020.

Summary: This release adds Wireguard, an fast and secure VPN design that aims to replace other VPNs; initial support for USB 4; support for time namespaces; asynchronous SSD trimming in Btrfs; initial merge of the Multipath TCP support; support for VirtualBox guest shared folders; a simple file system to expose the zones of zoned storage devices as files; boot-time tracing, which lets to trace the boot-time process with all the features of ftrace; and bootconfig, created to configure boot-time tracing, which lets to extend the command line in a file attached to initrds. As always, there are many other new drivers and improvements.

Contents

  1. Prominent features
    1. WireGuard, a faster, simpler, secure VPN
    2. Initial USB 4 support
    3. Time Namespaces
    4. Btrfs asynchronous SSD trimming
    5. Initial support for MultiPath TCP
    6. Support for VirtualBox guest shared folders
    7. Zonefs, a file system for zoned storage devices
    8. A new pidfd syscall, pidfd_getfd(2)
    9. Extra Boot Config, for more complex boot configuration, and Boot tracing
    10. DMA-BUF Heaps, a replacement for Android ION
  2. Core (various)
  3. File systems
  4. Memory management
  5. Block layer
  6. Tracing, perf and BPF
  7. Virtualization
  8. Power management
  9. Cryptography
  10. Security
  11. Networking
  12. Architectures
    1. X86
    2. S390
    3. RISCV
    4. MIPS
    5. POWERPC
    6. CSKY
    7. MICROBLAZE
    8. SPARC
    9. UML
    10. ARC
  13. Drivers
    1. Graphics
    2. Power Management
    3. Storage
    4. Drivers in the Staging area
    5. Networking
    6. Audio
    7. Tablets, touch screens, keyboards, mouses
    8. TV tuners, webcams, video capturers
    9. Universal Serial Bus
    10. Serial Peripheral Interface (SPI)
    11. Watchdog
    12. Serial
    13. Device Voltage and Frequency Scaling
    14. Voltage, current regulators, power capping, power supply
    15. Real Time Clock (RTC)
    16. Pin Controllers (pinctrl)
    17. Multi Media Card (MMC)
    18. Memory Technology Devices (MTD)
    19. Industrial I/O (iio)
    20. Multi Function Devices (MFD)
    21. Pulse-Width Modulation (PWM)
    22. Inter-Integrated Circuit (I2C + I3C)
    23. Hardware monitoring (hwmon)
    24. General Purpose I/O (gpio)
    25. Leds
    26. DMA engines
    27. Hardware Random Number Generator (hwrng)
    28. Cryptography hardware acceleration
    29. PCI
    30. Thunderbolt
    31. Clock
    32. PHY ("physical layer" framework)
    33. Various
  14. List of Pull Requests
  15. Other news sites

1. Prominent features

1.1. WireGuard, a faster, simpler, secure VPN

WireGuard is a layer 3 secure networking tunnel. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache, and it intends to be considerably more performant than OpenVPN. Extensive documentation and description of the protocol and considerations, along with formal proofs of the cryptography, are available at wireguard.com

WireGuard aims to be as easy to configure and deploy as SSH. A VPN connection is made simply by exchanging very simple public keys – exactly like exchanging SSH keys – and all the rest is transparently handled by WireGuard. It is even capable of roaming between IP addresses. There is no need to manage connections, be concerned about state, manage daemons, or worry about what's under the hood. WireGuard presents an extremely basic yet powerful interface.

WireGuard uses state-of-the-art cryptography, like the Noise protocol framework, Curve25519, ChaCha20, !Poly1305, BLAKE2, SipHash24, HKDF, and secure trusted constructions. It makes conservative and reasonable choices and has been reviewed by cryptographers.

A combination of extremely high-speed cryptographic primitives and the fact that WireGuard lives inside the Linux kernel means that secure networking can be very high-speed. It is suitable for both small embedded devices like smartphones and fully loaded backbone routers.

Project site: wireguard.com

Technical whitepaper: wireguard.pdf

Recommended LWN articles: Virtual private networks with WireGuard, Whither WireGuard?, WireGuard and the crypto API

1.2. Initial USB 4 support

USB4 is a new version of the USB standard. Rather than an evolution of previous versions, this fourth version is pretty much the Thunderbolt 3 protocol, with a few changes. It is compatible with Thunderbolt 3, and backwards compatible with USB 3.2 and USB 2.0.

Linux already supported Thunderbolt 3; this release modifies the Thunderbolt stack to add initial Linux support for USB 4, at the same level as it had for Thunderbolt 3 devices, and support for USB 3.x tunnels.

1.3. Time Namespaces

This release adds another per-process namespace to kernel: a time namespace. This namespace is required mainly in the context of checkpoint/restore functionality, where monotonic and boottime clocks, widely used to measure time slices and set timers, have to be guaranteed that they never go backwards when a container is migrated to another machine. A time namespace can provide the correct behavior by having per-namespace offsets for those clocks, and it can also be useful for developer to test different time ranges without needing to reboot. As other namespaces, a new time namespace can be used by issuing a unshare(CLONE_NEWTIME) system call, or other namespace related system calls such as clone3() or setns().

Recommended LWN article: Time namespaces

1.4. Btrfs asynchronous SSD trimming

Solid-State storage drives benefit from being told when a disk block goes unused, for performance and wear-leveling reasons. This operation, called discard or trim, is done automatically by Btrfs: When a file is deleted, Btrfs notifies the drive that the blocks which belonged to the file are no longer being used. However, these notifications were done sychronously: the trim notifications were sent before ending the delete operation, which harms performance.

In this release, these notifications will be sent asynchronously. The actual discard IO requests have been moved out of transaction commit to a worker thread, improving commit latency.

1.5. Initial support for MultiPath TCP

MultiPath TCP (MPTCP) is a mechanism that allows to use multiple network links for a single TCP connection. For example, with MPTCP a phone could use both the WiFi and the 3G links for a single connection. This makes possible for the phone user to use the available bandwith in both links, or get disconnected from the WiFi network and keep using the 3G connection, without the connection being closed. MPTCP is also used in data centers, for performance and reliability reasons.

MPTCP is not a new technology, it has been available for a long time, and a Linux implementation has existed for over a decade, but it's only now that is getting upstreamed. In this release, only a part of the initial work is being introduced: MPTCP connection establishment, writing & reading MPTCP options on data packets, a sysctl to allow MPTCP per-namespace, and self tests. This is sufficient to establish and maintain a connection with a MPTCP peer, but will not yet allow or initiate establishment of additional MPTCP subflows. Other features will be introduced in the next versions.

Project page: www.multipath-tcp.org

Recommended LWN article: Upstreaming multipath TCP

1.6. Support for VirtualBox guest shared folders

VirtualBox hosts can share folders with guests, this release adds a new file system, vboxsf (for VirtualBox Shared Folder), which implements the Linux-guest side of this, allowing folders exported by the host to be mounted under Linux.

Note that this is a Virtualbox-specific solution, a more generic approach can be found in the form of virtio-fs

1.7. Zonefs, a file system for zoned storage devices

Zoned storage devices are divided into zones. Zones may have different types: Conventional zones, which have no access constraints; and Sequential zones, where reads can be random but must be written sequentially, and must be erased with a special command (zone reset) before rewriting.

This release adds zonefs, a very simple file system exposing zones of a zoned block device as files. Unlike a regular file system with zoned block device support, zonefs does not hide the sequential write constraint of zoned block devices to the user. The goal of zonefs is to simplify the implementation of zoned block device support in applications by replacing raw block device file accesses with a richer file API, avoiding relying on direct block device file ioctls which may be more obscure to developers.

Recommended LWN article: Accessing zoned block devices with zonefs

1.8. A new pidfd syscall, pidfd_getfd(2)

This release adds pidfd_getfd(2), another system call of the pidfd family, designed for safe PID handling. This syscall allows for the retrieval of file descriptors from other processes, based on their pidfd. This is possible using ptrace, and injection of parasitic code to inject code which leverages SCM_RIGHTS to move file descriptors between a tracee and a tracer. Unfortunately, ptrace comes with a high cost of requiring the process to be stopped, and breaks debuggers. This does not require stopping the process under manipulation.

One reason to use this is to allow sandboxers to take actions on file descriptors on the behalf of another process. For example, this can be combined with seccomp-bpf's user notification to do on-demand fd extraction and take privileged actions. One such privileged action is binding a socket to a privileged port.

Recommended LWN article: Grabbing file descriptors with pidfd_getfd()

1.9. Extra Boot Config, for more complex boot configuration, and Boot tracing

Extra boot config allows admin to pass a tree-structured key-value list when booting up the kernel. It allows to expand the kernel command line in an efficient way, by appending additional boot configuration to a initrd file with a new tool, found at tools/bootconfig. This functionality has been implemented mainly for the use of boot tracing, which has also been added in this release.

With boot-time tracing is possible now to trace the boot-time process including device initialization with full features of ftrace including per-event filter and actions, histograms, kprobe-events and synthetic-events, and trace instances. This funcionality requires very verbose configuration, and the kernel command line is not enough, which is the reason behind the creation of the bootconfig functionality.

Bootconfig documentation: admin-guide/bootconfig.html

Boot-time tracing: trace/boottime-trace.html

1.10. DMA-BUF Heaps, a replacement for Android ION

This release adds dma-buf heaps, a framework which allows a unified userspace interface for dma-buf exporters, allowing userland to allocate specific types of memory for use in dma-buf sharing. Each heap is given its own device node, which a user can allocate a dma-buf fd from using the DMA_HEAP_IOC_ALLOC. This feature is an evoluton of the Android ION implementation, and the expectation is that people will eventually migrate to it.

Recommended LWN article: Destaging ION

2. Core (various)

  • (FEATURED) Introduce Time Namespaces, primarily to facilitate container migration commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • A mechanism to shield isolated tasks from managed interrupts: When the generated affinity mask of an interrupt spaws both housekeeping and isolated CPUs the interrupt could be routed to an isolated CPU which would then be disturbed by I/O submitted by a housekeeping CPU. A new sub-parameter managed_irq for the boot option isolcpus and the corresponding logic in the interrupt affinity selection code has been added, this mechanism ensures that as long as one housekeeping CPU is online in the assigned affinity mask the interrupt is routed to a housekeeping CPU commit

  • io_uring
    • Support for fallocate(2), openat(2), and close(2) commit, commit, commit, commit, commit, commit

    • Add non-vectored read(2)/write(2) commands commit and allow current file position offset reads/writes commit

    • Support for statx(2) commit, commit

    • Add support for epoll manipulation through io_uring, in particular epoll_ctl(2) commit, commit, commit

    • Support for openat2(2) commit, commit, commit

    • Support for madvise(2) and fadvise(2) commit, commit, commit

    • Add support for send(2) and recv(2) commit

    • Faster ring quiesce for fileset updates commit

    • The application currently has no way of knowing if a given opcode is supported or not without having to try and issue one and see if we get -EINVAL or not. Add IORING_REGISTER_PROBE which fills in a structure with info on what it supported or not commit

    • Support for registering personalities commit, commit

    • Add support for max-sized clamping. Some applications like to start small in terms of ring size, and then ramp up as needed. This is a bit tricky to do currently, since we don't advertise the max ring size. This release adds IORING_SETUP_CLAMP. If set, and the values for SQ or CQ ring size exceed what we support, then clamp them at the max values instead of returning -EINVAL commit

    • io_uring defaulted to always doing inline submissions, if at all possible. But for larger copies, even if the data is fully cached, that can take a long time. Add an IOSQE_ASYNC flag that the application can set on the SQE - if set, the kernel will ensure that we always go async for those kinds of requests commit, commit

    • Support for io-wq backend sharing between "sibling" rings commit, commit

    • Add IORING_REGISTER_EVENTFD_ASYNC, which works just like IORING_REGISTER_EVENTFD, except it only triggers eventfd notifications for events that happen from async completions (IRQ, or io-wq worker completions). Any completions inline from the submission itself will not trigger notifications commit

    • Improve poll completion performance commit

    • Optimise ctx's refs grabbing in io_uring commit, commit

  • (FEATURED) Extra Boot Config: Extra boot config allows admin to pass a tree-structured key-value list when booting up the kernel. This expands the kernel command line in an efficient way. Each key is described as a dot-jointed-words. And user can write the key-words in tree style commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • kunit: support building core/tests as modules commit, commit, commit, commit, commit, commit

  • open: introduce openat2(2) syscall, as a more robust version of the original openat(2) along with a few extensions that allow for safer path resolution commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • (FEATURED) Add a new pidfd syscall, pidfd_getfd(2). It introduces a mechanism to get file descriptors from other processes via pidfd. Although this can be achieved using SCM_RIGHTS, and parasitic code injection, this offers a more straightforward mechanism, with less overhead and complexity commit, commit, commit, commit

  • Task scheduler
    • Extend uclamp constraints to influence wakeup CPU placement commit, commit, commit, commit, commit

    • Load balance aggressively for SCHED_IDLE CPUs commit

    • Make RT aware of heterogeneous systems (ie. Arm big.LITTLE) commit

  • pipe: use exclusive waits when reading or writing to avoid a nasty thundering herd problem when there are lots of readers waiting for data on a pipe commit

  • Build
    • Add yes2modconfig (change answers from yes to mod if possible) and mod2yesconfig (change answers from mod to yes if possible) targets commit

    • List all definitions of a symbol in help text commit

  • Documentation:
    • Add a maintainer entry profile for documentation commit

    • Add a document on how to contribute to the documentation commit

3. File systems

  • VBOXSF
    • (FEATURED) Add VirtualBox guest shared folder (vboxfs) support. It allows folders exported by the VirtualBox host to be mounted under Linux commit

  • ZONEFS
    • (FEATURED) New zonefs file system. Zonefs is a very simple file system exposing each zone of a zoned block device as a file commit, commit

  • BTRFS
    • (FEATURED) Asynchronous discard support, enabled with mount option discard=async. Freed extents are not discarded immediatelly, but grouped together and trimmed later by a separate worker thread, improving commit latency. IO rate and request size can be tuned by sysfs files commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Export device state info in sysfs, eg. missing, writeable commit, commit, commit

    • integrity checking: check leaf chunk item size, cross check against number of stripes commit and verify location key for DIR_ITEM/DIR_INDEX commit

  • CIFS
    • Optimize opendir and save one roundtrip commit, commit, commit, commit

    • Add extended attribute "system.cifs_ntsd" (and alias "system.smb3_ntsd") to allow for setting owner and DACL in the security descriptor. This is in addition to the existing "system.cifs_acl" and "system.smb3_acl" attributes that allow for setting DACL only. Add support for setting creation time and dos attributes commit

    • Add support for fallocate mode 0 for non-sparse files commit

    • Add SMB3 change notification support commit

  • EXT4
    • Scale performance of direct IO mixed read/write workload commit, commit, commit

    • Optimize ext4 DIO overwrites commit

    • Export information about first/last errors via /sys/fs/ext4/<dev> commit

    • Simulate various I/O and checksum errors when reading metadata, for debugging commit, commit

    • Allow ZERO_RANGE on encrypted files commit

  • NFS
    • Add softreval mount option to let clients use cache if server goes down commit

    • Support (client and server) for NFSv4.2 "inter" Server-Side Copy, ie. copy offload between different NFS servers. To use it, client and both servers must have support, the target server must be able to access the source server over NFSv4.2, and the target server must have the inter_copy_offload_enable module parameter set commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Allow to compile without UDP protocol support commit

  • FSCRYPT
    • Prepare for directories that are both encrypted and casefolded commit, commit, commit, commit, commit, commit

    • Extend the FS_IOC_ADD_ENCRYPTION_KEY ioctl to allow the raw key to be provided via a keyring key commit

  • FS-VERITY
    • Implement readahead of Merkle tree pages commit

    • Implement readahead for FS_IOC_ENABLE_VERITY commit

  • F2FS
    • Support data compression commit

    • Add f2fs stats to sysfs commit

  • ADFS
    • Implement directory update support commit

    • Add support for E and E+ floppy image formats commit

  • UBIFS
    • Add support for FS_ENCRYPT_FL commit

4. Memory management

  • (FEATURED) DMA-BUF Heaps commit, commit, commit, commit, commit

  • memcg: Port hugetlb controller for cgroupsv2. The HugeTLB controller allows to limit the HugeTLB usage per control group and enforces the controller limit during page fault commit

  • prctl: Add PR_GET_IO_FLUSHER/PR_SET_IO_FLUSHER to support controlling memory reclaim. Daemons can use it after they have done their initial setup, and before they start to do allocations that are in the IO path. Both userspace block and FS threads can use it to avoid the allocation recursion and try to prevent from being throttled while writing out data to free up memory commit

  • Generic page table walk and kernel page table dump (ptdump) via debugfs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Explicit user-space page pinning via pin_user_pages(), prerequisite to solving the problem of proper interactions between file-backed pages, and [R]DMA activities. See this LWN article. commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Fix the access of uninitialized memmaps when shrinking zones/nodes and when removing memory commit, commit, commit, commit, commit, commit

  • zswap: add allocation hysteresis and /sys/kernel/debug/zswap/accept_threhsold_percent commit

  • zram: try to avoid worst-case scenario when comparing pages that differ in last few bytes, by checking last int of a page first commit

5. Block layer

  • md
    • raid1 io serialization commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • dm
    • zoned: support zone sizes smaller than 128MiB commit

    • crypt: Implement Elephant diffuser for Bitlocker compatibility commit

    • writecache: improve performance of large linear writes on SSDs commit

    • Add DM multipath queue_if_no_path_timeout_secs module param to allow timeout if path isn't reinstated. This allows users a kernel safety-net against IO hanging indefinitely commit

  • bcache: add readahead cache policy options via sysfs interface commit

6. Tracing, perf and BPF

  • BPF
    • Introduce the BPF dispatcher, a mechanism to avoid indirect calls and helps to avoid repotlines performance hit. Recommended LWN article. commit, commit, commit, commit, commit, commit

    • Introduce BPF STRUCT_OPS. It is an infra to allow implementing some specific kernel's function pointers in BPF. The first use case included in this series is to implement TCP congestion control algorithm in BPF (i.e. implement struct tcp_congestion_ops in BPF) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Introduce batch ops that can be added to bpf maps to lookup/lookup_and_delete/update/delete more than 1 element at the time commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Emit audit messages upon successful prog load and unload commit

    • Program extensions or dynamic re-linking commit, commit, commit

    • Introduce static vs global functions and function by function verification, another step toward dynamic re-linking commit, commit, commit, commit, commit, commit

    • Support for replacing cgroup-bpf programs attached with BPF_F_ALLOW_MULTI flag so that any program in a list can be updated to a new version without service interruption and order of programs can be preserved commit, commit, commit, commit, commit, commit

    • Implements a new BPF feature probe, which increases the maximum program size to 1M commit, commit

    • bpftool: Support dumping a map with btf_vmlinux_value_type_id commit, commit, commit, commit, commit

    • libbpf: introduces an alternative and complimentary to existing libbpf API interface for working with BPF objects, maps, programs, and global data from userspace side. This approach is relying on code generation. bpftool produces a struct (a.k.a. skeleton) tailored and specific to provided BPF object file. It includes hard-coded fields and data structures for every map, program, link, and global data present. Altogether this approach significantly reduces amount of userspace boilerplate code required to open, load, attach, and work with BPF objects commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • libbpf: Add libbpf-provided extern variables support commit, commit, commit, commit

    • libbpf: Add bpf_link__disconnect() API to preserve underlying BPF resource commit

    • libbpf: Support CO-RE relocations for LDX/ST/STX instructions commit

    • bpftool: match several programs with same tag commit, commit, commit

    • libbpf: Add support for flexible array accesses in a relocatable manner in BPF CO-RE commit, commit

  • perf
    • libperf: Add man pages commit

    • perf probe: adds support for user-space strings when type 'ustring' is specified commit

    • perf report/top: Add 'k' hotkey to zoom directly into the kernel map commit

    • perf report/top: Add menu entry for toggling callchain expansion commit

    • perf sched timehist: Add support for filtering on CPU commit

    • perf tools: Support --prefix/--prefix-strip commit

    • Add runqslower tool to tools/bpf commit

  • tracing
    • (FEATURED) Boot-time tracing support following boot config. It can setup new kprobe and synthetic events, more complicated event filters and trigger actions including histogram via supplemental kernel cmdline commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add support for in-kernel dynamic event API commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

7. Virtualization

  • Xen-netback: support dynamic unbind/bind commit

  • hv_utils: Add the support of hibernation commit, commit, commit, commit

8. Power management

  • suspend: Add sysfs attribute to control the "sync on suspend" behavior commit

  • ACPI: fan: Expose fan performance state information commit

  • cpuidle: Allow idle states to be disabled by default. In certain situations it may be useful to prevent some idle states from being used by default while allowing user space to enable them later on commit

  • thermal: Introduce the cpu idle cooling driver, a new method to cool down a CPU by injecting idle cycles at runtime. It has some similarities with the intel power clamp driver but it is actually designed to be more generic and relying on the idle injection powercap framework. Also rename the cpu_cooling device to cpufreq_cooling device commit, commit, commit

9. Cryptography

  • poly1305: add new 32 and 64-bit generic versions commit

  • shash: allow essiv and hmac to use OPTIONAL_KEY algorithms commit

10. Security

  • random: Add getentropy(..., GRND_INSECURE), this causes getentropy to always return something, but without cryptographical guarantees. Also, remove the blocking pool and make /dev/random work just like getentropy(..., 0) and make GRND_RANDOM a no-op. Linux's blocking pool has outlived its usefulness, the Linux CRNG generates output that is good enough to use even for key generation. The blocking pool is not stronger in any material way, and keeping it around requires a lot of infrastructure of dubious value. Recommended LWN article: Removing the Linux /dev/random blocking pool. commit, commit, commit, commit, commit, commit, commit, commit

  • KEYS: Measure keys when they are created or updated. Currently they are not measured, therefore an attestation service, for instance, would not be able to attest whether or not the trusted keys keyring(s), for instance, contain only known good (trusted) keys. A new IMA policy function KEY_CHECK has been added to measure keys. keyrings option can be specified for KEY_CHECK to limit measuring the keys loaded onto the specified keyrings only. uid can be specified to further restrict key measurement for keys created by specific user commit, commit, commit, commit, commit, commit

  • SELinux
    • Deprecate disabling SELinux and runtime commit

    • Implement a SELinux hook for lockdown. If the lockdown module is also enabled, then a denial by the lockdown module will take precedence over SELinux, so SELinux can only further restrict lockdown decisions commit

    • Allow per-file labelling for binderfs commit

    • Caching a certain number (compile-time configurable) of recently used context strings to speed up repeated translations of the same context commit

    • sidtab reverse lookup hash table, it reduces the time needed to add a new sidtab entry commit

  • Add a new sysfs file for querying TPM major version commit

11. Networking

  • (FEATURED) WireGuard secure network tunnel commit

  • Add support to do GRO/GSO by chaining packets of the same flow. This avoids the overhead to merge payloads into one big packet, and on the other end, if GSO is needed it avoids the overhead of splitting the big packet back to the native form commit, commit, commit, commit

  • Add offload indication to IPv4 and IPv6 routes so that mlxsw driver do not have to handle identical routes itself commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • unix sockets: Show number of scm files in /proc/self/fdinfo/. This may be useful to determine, that socket should be investigated or which task should be killed to put a reference counter on a resource commit, commit

  • TCP
    • (FEATURED) Add initial support for Multi Path TCP protocol. This set adds MPTCP connection establishment, writing & reading MPTCP options on data packets, a sysctl to allow MPTCP per-namespace, and self tests. This is sufficient to establish and maintain a connection with a MPTCP peer, but will not yet allow or initiate establishment of additional MPTCP subflows. Future versions will include more features commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit; InitiaL MPTCP support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Using IPv6 flow-label to swiftly route around avoid congested or disconnected network path can greatly improve TCP reliability. New SNMP counters and a OPT_STATS counter have been added to track both host-level and connection-level statistics. Network administrators can use these counters to evaluate the impact of this new ability better commit

    • Introduces a sysctl knob net.ipv4.tcp_no_ssthresh_metrics_save that disables TCP ssthresh metrics cache by default. Other parts of TCP metrics cache, e.g. rtt, cwnd, remain unchanged commit

    • TCP: Add support for L3 domains to MD5 auth. With VRF, the scope of network addresses is limited to the L3 domain the device is associated. MD5 keys are based on addresses, so proper VRF support requires an L3 domain to be considered for the lookups commit, commit, commit, commit, commit, commit, commit, commit, commit

  • netfilter
    • Set implementation for arbitrary concatenation of ranges commit, commit, commit, commit, commit, commit

    • Add support for shifts to nft_bitwise in order to allow nftables to do bit shifts commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • nft_meta: add support for slave device matching commit, commit, commit, commit, commit, commit, commit, commit, commit

    • nft_tunnel: dump ERSPAN_VERSION commit and OPTS_ERSPAN/VXLAN commit

  • Packet scheduler
    • Add Flow Queue Proportional Integral controller Enhanced (FQ-PIE) active queue Management algorithm. It is an enhancement over the PIE algorithm. It integrates the PIE aqm with a deficit round robin scheme commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add a new Qdisc, ETS, which is based on 802.1Q-2014 wording. The new Qdisc operates like the PRIO / DRR combo would when configured as per the standard. The strict classes, if any, are tried for traffic first. When there's no traffic in any of the strict queues, the ETS ones (if any) are treated in the same way as in DRR commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Bluetooth
    • Bluetooth 5.2 initial support commit, commit, commit, commit, commit, commit, commit

    • Add support for LE PHY Update Complete event commit

    • Implementation of MGMT_OP_SET_BLOCKED_KEYS, added to receive the list of blocked keys from user-space commit

    • Increment management interface revision commit

  • RDMA
    • Add an ioctl command to allocate an async event file followed by a new ioctl command to get a device context commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add kernel capability flags to differentiate between current FW in kernel that supports both ldpm and edpm commit

  • ipsec: add TCP encapsulation support of IKE and ESP messages (RFC 8229) commit, commit, commit, commit, commit, commit

  • bridge
    • Add STP xstats commit

    • Add per-vlan state option commit, commit, commit, commit

    • Add vlan notifications and rtm support (requirement for per-vlan options) commit, commit, commit, commit, commit, commit, commit, commit

  • ethtool: netlink based interface for ethtool. It aims to address some long known issues with the ioctl interface, mainly lack of extensibility, raciness, limited error reporting and absence of notifications. The goal is to allow userspace ethtool utility to provide all features it currently does but without using the ioctl interface. The interface uses generic netlink family "ethtool" and provides multicast group "monitor" which is used for notifications. Documentation for the interface is in Documentation/networking/ethtool-netlink.rst commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Adds support for PTP (IEEE 1588) P2P one-step time stamping along with a driver for a hardware device that supports this commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • ncsi: Support for multi host mellanox card commit

  • openvswitch: New MPLS actions for layer 2 tunnelling commit, commit, commit

  • pptp: support sockets bound to an interface commit

  • QRTR flow control improvements commit, commit, commit, commit, commit

  • smc: allow unprivileged users to read pnet table commit

  • tipc: introduce variable window congestion control commit, commit, commit

  • xdp: Introduce bulking for non-map XDP_REDIRECT commit, commit, commit

  • vsock: add local transport support (vsock_loopback) to handle local communication. This could be useful to test vsock core itself and to allow developers to test their applications without launching a VM commit, commit, commit, commit, commit, commit

12. Architectures

  • ARM
    • Device Tree Sources: New SoCs

      • Atmel/Microchip SAM9X60 (ARM926 SoC) commit

      • OMAP 37xx gets split into AM3703/AM3715/DM3725, who are all variants of it with different GPU/media IP configurations commit

      • ST stm32mp15 SoCs (1-2 Cortex-A7, CAN, GPU depending on SKU) commit

      • ST Ericsson ab8505 (variant of ab8500) and db8520 (variant of db8500) commit, commit

      • Unisoc SC9863A SoC (8x Cortex-A55 mobile chipset w/ GPU, modem) commit

      • Qualcomm SC7180 (8-core 64bit SoC, unnamed CPU class) commit

    • Device Tree Sources: New boards
      • Allwinner Emlid Neutis SoM (H3 variant) commit

      • Allwinner Libre Computer ALL-H3-IT and ALL-H5-CC commit, commit

      • Allwinner PineH64 Model B commit

      • Amlogic Libretech Amlogic GX PC (s905d and s912-based variants) commit

      • Atmel/Microchip Kizboxmini, sam9x60 EK, sama5d27 Wireless SOM (wlsom1) commit

      • Marvell Armada 385-based SolidRun Clearfog GTR commit

      • NXP Gateworks GW59xx boards based on i.MX6/6Q/6QDL commit, commit, commit, commit

      • NXP Tolino Shine 3 eBook reader (i.MX6sl) commit

      • NXP Embedded Artists COM (i.MX7ULP) commit

      • NXP SolidRun Clearfog CX/ITX and HoneyComb (LX2160A-based systems) commit

      • NXP Google Coral Edge TPU (i.MX8MQ) commit

      • Rockchip Radxa Dalang Carrier (supports rk3288 and rk3399 SOMs) commit

      • Rockchip Radxa Rock Pi N10 (RK3399Pro-based) commit

      • Rockchip VMARC RK3399Pro SOM commit

      • ST Reference boards for stm32mp15 commit

      • ST Ericsson Samsung Galaxy S III mini (GT-I8190) commit, commit, commit, commit, commit

      • ST Ericsson HREF520 reference board for DB8520 commit

      • TI OMAP Gen1 Amazon Echo (OMAP3630-based) commit

      • Qualcomm Inforce 6640 Single Board Computer (msm8996-based) commit

      • Qualcomm SC7180 IDP (SC7180-based) commit

      • New Evaluation Kit the SAMA5D27-WLSOM1-EK. It's based on the Microchip WireLess SoM which contains the SAMA5D27 LPDDR2 2Gbits SiP commit

      • Add support for the Videostrong KII Pro tv box which is based on the gxbb-p201 reference design commit

      • Add EK874 board with idk-2121wr display support commit

      • Add Thor96 board from Einfochips. This board is one of the 96Boards Consumer Edition platform powered by the NXP i.MX8MQ SoC commit

    • ARM 64
      • locking: Use optimized spinning loop commit

      • Add support for Armv8.5 E0PD, which benefits KASLR in the same way as KPTI but without the overhead. This allows KPTI to be disabled on CPUs that are not affected by Meltdown, even is KASLR is enabled commit, commit, commit, commit

      • Initial support for the Armv8.5 RNG instructions, which claim to provide access to a high bandwidth, cryptographically secure hardware random number generator. As well as exposing these to userspace, we also use them as part of the KASLR seed and to seed the crng once all CPUs have come online commit, commit

      • Advertise a bunch of new instructions to userspace, including support for Data Gathering Hint, Matrix Multiply and 16-bit floating point commit

      • Support for loading crash dump kernels with kexec_file_load() commit

      • Implement optimised checksum routine commit

12.1. X86

  • Add AMD-TEE driver. The AMD-TEE driver handles the communication with AMD's TEE environment. The TEE environment is provided by AMD Secure Processor. The AMD Secure Processor (formerly called Platform Security Processor or PSP) is a dedicated processor that features ARM TrustZone technology, along with a software-based Trusted Execution Environment (TEE) designed to enable third-party Trusted Applications. This feature is currently enabled only for APUs commit, commit

  • Intel Uncore frequency control. It allows control of uncore frequency limits on supported server platforms. Uncore frequency controls RING/LLC (last-level cache) clocks commit

  • platforms
    • Enable thermal policy for ASUS TUF FX705DY/FX505DY commit

    • asus-nb-wmi: Support left round button on N56VB commit

    • asus_wmi: Support throttle thermal policy commit

    • intel-hid: Add Tiger Lake ACPI device ID commit

    • intel_pmc_core: Add Intel Elkhart Lake support commit

    • intel_pmc_core: Add Intel Tiger Lake support commit

    • mlx-platform: add new features for the existing Mellanox systems and introduce two new system classes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • touchscreen_dmi: Add support for the PiPO W11 tablet commit

  • Add MCA and EDAC support for AMD Family 19h commit, commit, commit, commit, commit

  • Remove MPX support commit, commit, commit

  • mtrr: Require CAP_SYS_ADMIN for all access commit

  • resctrl: Add task resctrl information display commit

  • Add support for "Fast Short Rep Mov" commit

  • intel_th: pci: Add Elkhart Lake CPU support commit

  • mei: me: add comet point (lake) H device ids commit

  • powercap: intel_rapl: add support for JasperLake commit and TigerLake Mobile commit

  • perf
    • amd: Add support for Large Increment per Cycle Events commit, commit

    • amd: Enable the fixed Instructions Retired counter IRPERF commit

    • cstate: Add Tremont support commit

    • rapl: Add Comet Lake support commit

    • intel: Add Elkhart Lake support commit

    • msr: Add Tremont support commit

  • tools/power turbostat
    • Support Cometlake commit

    • Support Elkhart Lake commit

    • Support Ice Lake server commit

    • Support Jasper Lake commit

    • Support Tiger Lake commit

  • intel-speed-select: Add support for core-power discovery commit

  • crypto: faster 64 bit poly1305 implementation commit, commit

  • intel_idle
    • Allow the intel_idle driver to use C-states information from ACPI _CST on systems where the processor is not recognized by it commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Introduce states_off module parameter commit

    • Introduce use_acpi module parameter commit

  • KVM: Support AMD SVM AVIC w/ in-kernel irqchip mode commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

12.2. S390

  • S390 hardware compression support for kernel zlib commit, commit, commit, commit, commit, commit

  • Enhanced handling of secure keys and protected keys commit, commit, commit, commit, commit

  • pkey: Add support for key blob with clear key value commit

  • Support KPROBES_ON_FTRACE commit

  • Add new reset vcpu API commit, commit, commit, commit

12.3. RISCV

  • BPF JIT, optimizations and far jumps support commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Add KASAN support commit

  • Add support for CONFIG_DEBUG_VIRTUAL commit

  • Add kconfig option for QEMU virt machine commit

12.4. MIPS

  • Ingenic: Add Ingenic X1000 support commit

  • Ingenic: Add YSH & ATIL CU Neo board support commit

  • Add MAC2008 Support commit

  • vdso: Support mremap() for vDSO the same way it's done for x86 and arm commit

12.5. POWERPC

  • vdso32 enhancement and optimisation commit, commit, commit, commit, commit, commit, commit

  • Enable CONFIG_VMAP_STACK on PPC32 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Add support of KASAN_VMALLOC on PPC32 commit

  • Add a debugfs entry to dump PHB's IODA PE state commit

  • Page directory freeing TLB flushing fixes commit commit commit commit commit commit commit commit commit

  • KVM: Book3S HV: Implement H_SVM_INIT_ABORT hcall commit

12.6. CSKY

  • Initial stack protector support commit

  • Tightly-Coupled Memory or Sram support commit

  • Add PCI support commit

12.7. MICROBLAZE

  • Add ID for Microblaze v11 commit

  • Wire CMA allocator commit

12.8. SPARC

  • Add support for folded p4d page tables commit

12.9. UML

  • Add an option to make serial driver non-raw commit

12.10. ARC

  • Preserve userspace fpu state commit

13. Drivers

13.1. Graphics

  • Add support for specifying a connector's panel_orientation on the kernel cmdline (rotate only supports 0/180 degrees) with panel_orientation, with one of "normal", "upside_down", "left_side_up", or "right_side_up" commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Show which of the i2c adapters is for which drm connector by providing a symbolic link in connector's sysfs directory, e.g.: /sys/class/drm/card0-HDMI-A-1/ddc -> ../../../../soc/13880000.i2c/i2c-2; this shows that card0-HDMI-A-1 uses i2c-2 and can e.g. run ddcutil commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • amdgpu
    • Remove experimental flag for Navi14 commit

    • Enable sync object timelines for vulkan commit

    • Enable MST DSC support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Add DMCUB display microengine support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • DC OEM i2c support commit

    • Initial HDCP 2.x support commit

    • Enables BACO (Bus Active Chip Off) for power savings on Arcturus commit, commit

    • Use BACO for runtime PM power save commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • gfxoff on navi10 and raven1 refresh commit, commit

    • DCN support on POWER commit and enable KFD on POWER systems commit

    • powerplay: support custom power profile setting commit

    • Enable GPU reset by default on Navi commit and renoir commit

    • Enable RAS feature for the gc of Arcturus commit, commit, commit, commit

  • Intel
    • Enable DSC commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • HDCP 2.2 for CFL commit

    • LMEM debugfs support commit

    • LMEM discontiguous object maps commit

    • Use LMEM for dumb buffers if possible commit

    • Add LMEM mmap support commit

    • Add second TGL PCH ID commit

    • Add 10bpc formats with alpha for icl+ commit

    • Add new EHL/JSL PCI ids commit

    • Expose more formats commit, commit, commit, commit, commit, commit, commit

    • Introduce DRM_I915_GEM_MMAP_OFFSET commit

  • panel
    • Logic PD type 28 panel support commit

    • ingenic: Add support for the JZ4770 commit

    • Add driver for Sony ACX424AKP panel commit

    • Add panel driver for Leadtek LTK500HD1829 commit

    • xinpeng XPP055C272 commit

    • Add support for AUO B116XAK01 panel commit

    • Add support for BOE NV140FHM-N49 panel to panel-simple commit

    • simple: Add Satoz SAT050AT40H12R2 panel support commit

    • simple: Add compatible for GiantPlus GPM940B0 commit

    • Sharp LS020B1DD01D panels commit

    • Add Boe Himax8279d MIPI-DSI LCD panel commit

    • Add backlight support commit

  • nouveau
    • TU10x graphics engine support (TU11x pending) commit, commit, commit, commit

  • rockchip
    • dsi/px30 support commit, commit

  • virtio-gpu
    • fb damage support commit

  • msm
    • Add support for SC7180 display commit, commit, commit, commit

    • Add DSI support for sc7180 commit

    • Add UBWC support for display on SC7180 commit

    • Add scaler support on SC7180 display commit

    • a618 support commit, commit

    • Add UBWC support for RGB8888 formats commit

    • Support firmware-name for zap fw commit

  • vmwgfx
    • Add ioctl for messaging from/to guest userspace to/from host commit

  • mediatek
    • Support CMDQ interface in ddp component commit

    • Add ctm property support commit

    • Add gamma property according to hardware capability commit

  • sun4i
    • Add support for suspending the display driver commit

    • A64 mipi dsi support commit

  • rcar-du
    • Color management module support commit, commit, commit, commit, commit, commit

    • LVDS encoder dual-link support commit

    • R8A77980 support commit

  • ast
    • Atomic modeset support commit, commit, commit

  • mcde
    • vblank support commit

  • meson
    • OSD1 plane AFBC commit commit, commit, commit, commit, commit, commit, commit, commit, commit

  • gma500
    • Add pageflip support commit

  • komeda
    • Enable new product D32 support commit

    • Add debugfs node to control error verbosity commit

    • Adds gamma and color-transform support for DOU-IPS commit

  • tilcdc
    • Remove obsolete bundled tilcdc tfp410 driver commit

  • ARC
    • PGU: add ARGB8888 format to supported format list commit

  • edid
    • Add CTA-861-G modes with VIC >= 193 commit

    • Add aspect ratios to HDMI 4K modes commit, commit

  • LVDS decoder support commit

  • bridge
    • Add Analogix anx6345 support commit

  • hisilicon/hibmc
    • Export VRAM MM information to debugfs commit

  • mgag200
    • Add module parameter to pin all buffers at offset 0 commit

  • scheduler: improve job distribution with multiple queues commit

13.2. Power Management

  • EFI: Allow disabling PCI busmastering on bridges during boot commit

  • ACPI: DPTF: Add Tiger Lake ACPI device IDs commit

  • ACPI: fan: Add Tiger Lake ACPI device ID commit

  • thermal
    • Add BCM2711 thermal driver commit

    • int340x: processor_thermal: Add Jasper Lake support commit

    • int340x_thermal: Add Tiger Lake ACPI device IDs commit

    • intel: intel_pch_thermal: Add Comet Lake (CML) platform support commit

    • qoriq: Add hwmon support commit

    • rockchip: Enable hwmon commit

    • sun8i: Add hwmon support commit

    • sun8i: Add thermal driver for H6/H5/H3/A64/A83T/R40 commit

13.3. Storage

  • SCSI
    • ufs: add MediaTek vendor implementations commit, commit, commit, commit, commit, commit

    • mpt3sas: Enhancements of phase14 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • esp_scsi: Add support for FSC chip commit

  • pata_pcmia: add SanDisk High (>8G) CF card to supported list commit

13.4. Drivers in the Staging area

  • media: meson: vdec: add g12a platform commit

  • media: meson: vdec: add sm1 platform commit

  • media: hantro: Support color conversion via post-processing commit

  • media: Rockchip ISP Driver commit, commit, commit, commit, commit, commit, commit, commit, commit

  • rtl8188eu: Add device id for MERCUSYS MW150US v2 commit

  • android: Delete the 'vsoc' driver commit

  • octeon-usb: delete the octeon usb host controller driver commit

  • Remove isdn capi drivers commit

  • octeon: delete driver commit

13.5. Networking

  • Bluetooth
    • hci_bcm: Additional changes for BCM4354 support commit, commit, commit, commit

    • btusb: Add support for 04ca:3021 QCA_ROME device commit

    • hci_bcm: Drive RTS only for BCM43438 commit

    • hci_h4: Add support for ISO packets commit

    • hci_h5: Add support for ISO packets commit

    • hci_vhci: Add support for ISO packets commit

    • hci_qca: Enable power off/on support during hci down/up for QCA Rome commit

  • Infiniband
    • hfi1: Add RcvShortLengthErrCnt to hfi1stats commit

    • hfi1: Add software counter for ctxt0 seq drop commit

  • RDMA
    • hns: Get pf capabilities from firmware commit, commit, commit

    • hns: Add support for extended atomic in userspace commit

    • hns: Add support for reporting wc as software mode commit

  • ar5523: Add USB ID of SMCWUSBT-G2 wireless adapter commit

  • ath10k
    • Enable the random mac address for netdetect commit

    • Enable firmware log by default for sdio commit

    • Enable napi on RX path for sdio commit

    • Enable wow feature for sdio chip commit

  • ath11k
    • Driver for Qualcomm IEEE 802.11ax devices commit, commit, commit, commit, commit, commit, commit

  • bcmgenet
    • Add software counters to track reallocations commit

    • Turn on offloads by default commit

    • Enable NETIF_F_HW_CSUM feature commit

  • bnxt_en
    • Add support for devlink info command commit

    • Devlink notification after recovery complete commit, commit, commit

    • Add support to update progress of flash update commit

    • Improve link up detection commit

    • Support UDP RSS hashing on 575XX chips commit

  • brcmfmac
    • Add initial support for monitor mode commit

    • Add support for BCM4359 SDIO chipset commit

  • cxgb4: add support for high priority filters commit

  • dpaa2-ptp: add external trigger event support commit

  • dsa
    • Add support for Atheros AR9331 built-in switch commit

    • Add support for Atheros AR9331 TAG format commit

    • b53: Enable Broadcom tags for 531x5/539x families commit, commit

    • felix: Add PCS operations for PHYLINK commit

    • mv88e6xxx: Add SERDES stats counters to all 6390 family members commit

  • ena
    • Implement XDP commit, commit, commit

  • enetc
    • Add software timestamping commit

    • Add support time specific departure base on the qos etf commit

  • hns3
    • Add some VF VLAN information for command "ip link show" commit

    • Implement ndo_features_check ops for hns3 driver commit

  • hv_netvsc: Add XDP support commit, commit

  • ice
    • Add device ids for E822 devices commit

    • Enable the driver to write the filtering hardware tables to allow for changing of RSS rules commit, commit, commit, commit, commit, commit, commit, commit

    • Enable ip link show on the PF to display VF unicast MAC(s) commit

    • Support UDP segmentation offload commit

  • igc
    • Add PHY power management control commit

    • Add SKU for i225 device commit

    • Add basic support for Timestamping/PTP commit, commit, commit, commit, commit

    • Add support for TSO commit

    • Add legacy power management support commit

  • ionic
    • Add Rx dropped packet counter commit

    • Add sriov support commit, commit

    • mvm: add support for location range request version 8 commit

    • mvm: add support for responder config command version 7 commit

  • macsec: initial support for hardware offloading commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Adds support for Copper SFP+ modules with Clause 45 PHYs commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • mlx5
    • VIRTIO_NET Emulation Offload commit, commit, commit, commit, commit

    • Add RoCE accelerator counters commit, commit

    • Software steering support for multi destination steering rules commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Increase the number of chains and prios commit, commit

    • Increase the max number of channels to 128 commit

  • mlx5e: allow TSO on VXLAN over VLAN topologies commit

  • mlxsw
    • Add tunnel devlink-trap support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Offload TBF commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • Allow setting default port priority commit, commit, commit

    • Add a new Qdisc, ETS commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • mv88e6xxx: Add serdes Rx statistics commit

  • netdevsim: fib: Add dummy implementation for FIB offload commit

  • nfp
    • Add support for TLV device stats commit

    • Add ipv6 tunnel support to NFP commit, commit, commit, commit, commit, commit, commit, commit, commit

  • octeontx2-pf: Add network driver for physical function commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • phy
    • DP83822: Add support for additional DP83825 devices commit

    • dp83826: Add phy IDs for DP83826N and 826NC commit

    • phylink: add support for polling MAC PCS commit

  • qed: FW 8.42.2.0 Add fw overlay feature commit

  • qmi_wwan
    • Add support for ASKEY WWHC050 commit

    • Re-add DW5821e pre-production variant commit

  • qtnfmac
    • Add module param to configure DFS offload commit

    • Add support for STA HE rates commit

    • Add support for TWT responder and spatial reuse commit

  • r8152: Add MAC passthrough support to new device commit

  • r8169: use generic ndo_do_ioctl handler phy_do_ioctl commit

  • rtw88: Add wowlan support for 8822c commit, commit, commit, commit, commit, commit, commit

  • stmmac
    • TSN support using TAPRIO API commit, commit, commit, commit, commit, commit, commit

    • ETF support commit, commit, commit, commit, commit, commit, commit, commit

    • Print more information in DebugFS DMA Capabilities file commit

  • wil6210
    • add support for set_cqm_rssi_config commit

    • Support set_multicast_to_unicast cfg80211 operation commit

  • wlcore: mesh: Add support for RX Broadcast Key commit

13.6. Audio

  • soundwire: qcom: add support for SoundWire controller commit

  • Fix year 2038 issue for sound subsystem commit, commit, commit, commit, commit, commit, commit, commit, commit

  • cmipci: Allow disabling MPU port via module option commit

  • control: Add verification for kctl accesses commit

  • dice: add support for Alesis MasterControl commit

  • The already deprecated dimension support in ALSA control API is dropped completely now commit, commit, commit, commit

  • hda
    • Add docking station support for Lenovo Thinkpad T420s commit

    • realtek: Add Headset Button supported for ThinkPad X1 commit

    • realtek: Add Headset Mic supported commit

    • realtek: Add Headset Mic supported for HP cPC commit

    • Add JasperLake PCI ID and codec vid commit

  • ASoC
    • Adapt the recent PCM API updates to ASoC drivers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

    • SOF: Intel: add codec_mask module parameter commit

    • Add MediaTek MT6660 Speaker Amp Driver commit

    • Intel: Add machine driver for da7219_max98373 commit

    • Intel: common: add match tables for CNL/CFL/CML w/ SoundWire commit

    • Intel: common: add match tables for ICL w/ SoundWire commit

    • Intel: common: add match tables for TGL w/ SoundWire commit

    • SOF: Add asynchronous sample rate converter topology support commit

    • SOF: Intel: add PCI ID for JasperLake commit

    • SOF: Intel: add module namespace support commit, commit, commit, commit, commit, commit, commit, commit

    • SOF: Intel: hda: Add iDisp4 DAI commit

    • soc-acpi: add support for SoundWire-based machines commit, commit, commit, commit, commit, commit

    • amd MMAP_INTERLEAVED Support commit

    • amd: add ACP3x TDM mode support commit

    • codecs: Add jz4770-codec driver commit

    • codecs: add wsa881x amplifier support commit

    • fsl_asrc: Add support for imx8qm & imx8qxp commit

    • gtm601: add Broadmobi bm818 sound profile commit

    • intel/skl/hda - export number of digital microphones via control components commit

    • intel: Add Broadwell rt5650 machine driver commit

    • intel: sof_rt5682: Add support for tgl-max98357a-rt5682 commit

    • qcom: sdm845: add support to DB845c and Lenovo Yoga commit

    • rt1015: add rt1015 amplifier driver commit

    • rt1308-sdw: add rt1308 SdW amplifier driver commit

    • rt700: add rt700 codec driver commit

    • rt711: add rt711 codec driver commit

    • rt715: add RT715 codec driver commit

    • sgtl5000: add multi endpoint support commit

    • tlv320aic31xx: Add HP output driver pop reduction controls commit

    • tlv320aic31xx: Add Volume Soft Stepping control commit

    • Add support to WCD9340/WCD9341 codec commit, commit, commit, commit, commit, commit, commit, commit

13.7. Tablets, touch screens, keyboards, mouses

  • tm2-touchkey - add support for Coreriver TC360 variant commit

  • Add IOC3 serio driver commit

  • ili210x - add ili2120 support commit

  • HID
    • hidraw: add support uniq ioctl commit

    • Logitech HID++ Bluetooth LE support commit, commit

    • logitech-hidpp: read battery voltage from newer devices commit

    • logitech: Add MX Master 3 Mouse commit

    • apple: Add support for recent firmware on Magic Keyboards commit

    • google: add moonball USB id commit

13.8. TV tuners, webcams, video capturers

  • atmel: atmel-isc-base: add support for Y10 format commit

  • atmel: atmel-isi: add support for mono sensors, GRAY and Y16 commit

  • coda: jpeg: add CODA960 JPEG encoder support commit

  • cx23885: Add support for AVerMedia CE310B commit

  • dvb: add support for TerraTec TC2 Stick (193534) commit

  • rc: ir-hix5hd2: add hi3796cv300-ir support commit

  • rtl28xxu: Add support for PROlectrix DV107669 DVB-T dongle commit

  • sun4i-csi: Add support for A10 CSI1 camera sensor interface commit

  • ti-vpe: cal: Add AM654 support commit

  • ti-vpe: cal: Add DRA76x support commit

  • ti-vpe: cal: Enable DMABUF export commit

  • vivid: Add touch support commit

  • vivid: support multiplanar touch devices commit

13.9. Universal Serial Bus

  • EHCI: ehci-mv: add HSIC support commit

  • cdns3: Add streams support to cadence USB3 DRD driver commit

  • cdns3: add NXP imx8qm glue layer commit

  • dwc3: pci: add ID for the Intel Comet Lake -V variant commit

  • gadget: composite: Support more than 500mA MaxPower commit

  • gadget: configfs: Add max_speed setting commit, commit

  • xhci-tegra: Implement basic ELPG support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • misc: iowarrior: add support for 2 OEMed devices commit

  • misc: iowarrior: add support for the 100 device commit

  • misc: iowarrior: add support for the 28 and 28L devices commit

  • musb: Add support for MediaTek musb controller commit

  • phy: show USB charger type for user commit

  • serial: option: add ME910G1 ECM composition 0x110b commit

  • serial: pl2303: add device-id for HP LD381 commit

  • typec: ucsi: add support for separate DP altmode devices commit

13.10. Serial Peripheral Interface (SPI)

  • Add HiSilicon v3xx SPI NOR flash controller driver commit

  • pxa2xx: Add support for Intel Comet Lake PCH-V commit

  • rspi: Add support for GPIO chip selects commit

  • rspi: Add support for multiple native chip selects commit

  • spi-ti-qspi: support large flash devices commit

13.11. Watchdog

  • it87_wdt: add IT8786 ID commit

  • mtk_wdt: mt8183: Add reset controller commit

  • mtk_wdt: mt2712: Add reset controller commit

13.12. Serial

  • 8250: Support disabling mdelay-filled probes of 16550A variants commit

  • 8250_exar: add support for ACCES cards commit

  • baudrate: SPARC supports few more baud rates commit

  • serial: meson_uart: Add support for kernel debugger commit

13.13. Device Voltage and Frequency Scaling

  • devfreq: improve devfreq statistics counting add ability to reset statistics using sysfs commit

  • devfreq: Add new name sysfs attribute in order to get device name commit

  • devfreq: Add dynamic scaling for imx8m ddr controller commit

  • devfreq: Add debugfs support with devfreq_summary file commit

13.14. Voltage, current regulators, power capping, power supply

  • power
    • avs: Add support for CPR (Core Power Reduction) found in Qualcomm products commit

    • supply: core: Add battery internal resistance temperature table support commit

    • supply: bq25890_charger: Add support of BQ25892 and BQ25896 chips commit

    • supply: axp20x_usb_power: Allow offlining commit

    • supply: max17042: add MAX17055 support commit

  • regulator
    • add IPQ4019 SDHCI VQMMC LDO driver commit

    • bd71828: Basic support for ROHM bd71828 PMIC regulators commit

    • mp8859: add config option and build entry commit

    • mp8859: add driver commit

    • mpq7920: add mpq7920 regulator driver commit

13.15. Real Time Clock (RTC)

  • at91rm9200: add sama5d4 and sama5d2 compatibles commit

  • bd70528: add BD71828 support commit

  • rv3029: add RTC_VL_READ/RTC_VL_CLEAR support commit

  • rv3029: add nvram support commit

13.16. Pin Controllers (pinctrl)

  • Ingenic: Add missing parts for X1000 and X1500 commit

  • Ingenic: Add pinctrl driver for X1830 commit

  • aspeed-g6: Add AST2600 pinconf support commit

  • aspeed-g6: Add support for the AST2600 USB pinmux commit

  • freescale: Add i.MX8MP pinctrl driver support commit

  • sunrisepoint: Add Coffee Lake-S ACPI ID commit

13.17. Multi Media Card (MMC)

  • sdhci-brcmstb: Add ability to use HS400ES transfer mode commit

  • sdhci-brcmstb: Add support for Command Queuing (CQE) commit

  • sdhci-msm: Add CQHCI support for sdhci-msm commit

  • sdhci: add support for using external DMA devices commit

13.18. Memory Technology Devices (MTD)

  • spi-nor: Add support for at25sl321 commit

  • spi-nor: Add support for mx25r3235f commit

  • spi-nor: Add support for sst26vf016b commit

  • spi-nor: Add support for w25q32jwm commit

  • spi-nor: add Gigadevice gd25lq128d support commit

  • spi-nor: intel-spi: Add support for Intel Comet Lake-V SPI serial flash commit

  • spi-nor: intel-spi: Add support for Intel Jasper Lake SPI serial flash commit

  • spinand: add support for Toshiba TC58CVG2S0HRAIJ commit

13.19. Industrial I/O (iio)

  • max31856: provide more configuration options, also extending IIO core commit, commit, commit, commit, commit, commit, commit, commit, commit

  • accel: Add driver for the BMA400 commit

  • accel: bma180: BMA254 support commit

  • accel: bma180: Basic regulator support commit

  • adc: Add support for AD7091R5 ADC commit

  • adc: ad7923: Add support for the ad7908/ad7918/ad7928 commit

  • adc: new driver to support Linear technology's ltc2496 commit

  • imu: adis16480: Add support for ADIS16490 commit

  • imu: inv_mpu6050: add fifo temperature data support commit

  • imu: inv_mpu6050: add support of MPU9150 magnetometer commit

  • ping: add parallax ping sensors commit

  • pressure: Add driver for DLH pressure sensors commit

13.20. Multi Function Devices (MFD)

  • ab8500-core: Add device tree support for AB8505 commit

  • bd71828: Add power-key support commit

  • bd71828: Support ROHM BD71828 PMIC - core commit

  • da9062: add support for the DA9062 GPIOs in the core commit

  • intel-lpss: Add Intel Jasper Lake PCI IDs commit

  • ioc3: Add driver for SGI IOC3 chip commit

  • wcd934x: Add support to wcd9340/wcd9341 codec commit

13.21. Pulse-Width Modulation (PWM)

  • sun4i: Add support for H6 PWM commit

13.22. Inter-Integrated Circuit (I2C + I3C)

  • i3c
    • master: cdns: add data hold delay support commit

  • I2C
    • JZ4780: Add support for the X1000 commit

    • parport-light: remove driver commit

    • i801: Add support for Intel Comet Lake PCH-V commit

    • designware: Add ACPI HID for Hisilicon Hip08-Lite I2C controller commit

13.23. Hardware monitoring (hwmon)

  • Add support for enable attributes to hwmon core commit

  • Add intrusion templates commit

  • Driver for MAX31730 commit

  • Driver for disk and solid state drives with temperature sensors commit

  • adm1177: Add ADM1177 Hot Swap Controller and Digital Power Monitor driver commit

  • k10temp: Add debugfs support commit

  • k10temp: Display up to eight sets of CCD temperatures commit

  • k10temp: Report temperatures per CPU die commit

  • k10temp: Show core and SoC current and voltages on Ryzen CPUs commit

  • pmbus/ibm-cffps: Add new manufacturer debugfs entries commit

  • pmbus/ibm-cffps: Add the VMON property for version 2 commit

  • pmbus/ucd9000: Add support for UCD90320 Power Sequencer commit

  • pmbus: Add MAX20796 to devices supported by generic pmbus driver commit

  • pmbus: Add support for vid mode calculation per page bases commit, commit, commit, commit, commit

  • pmbus: Driver for MAX20730, MAX20734, and MAX20743 commit

  • w83627ehf: remove nct6775 and nct6776 support commit

13.24. General Purpose I/O (gpio)

  • Add support for the Xylon LogiCVC GPIOs commit

  • bd71828: Initial support for ROHM BD71828 PMIC GPIOs commit

  • sifive: Add GPIO driver for SiFive SoCs commit

  • wcd934x: Add support to wcd934x gpio controller commit

13.25. Leds

  • lm3692x: Allow to configure over voltage protection commit

  • tps6105x: add driver for MFD chip LED mode commit

13.26. DMA engines

  • Create symlinks between DMA channels and slaves, because currently it is not easy to find out which DMA channels are in use, and which slave devices are using which channels commit

  • JZ4780: Add support for the X1830 commit

  • fsl-edma: Add eDMA support for QorIQ LS1028A platform commit

  • hisilicon: Add Kunpeng DMA engine support commit

  • idxd driver for Intel Data Streaming Accelerator commit, commit, commit, commit, commit, commit, commit, commit, commit

  • PLX Switch DMA Engine Driver commit, commit, commit, commit, commit

  • sun4i: Add support for cyclic requests with dedicated DMA commit

  • Add Texas Instruments UDMA support commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

13.27. Hardware Random Number Generator (hwrng)

  • iproc-rng200 - Add support for BCM2711 commit

13.28. Cryptography hardware acceleration

  • caam: Add support for i.MX8M Mini commit

  • caam: add support for i.MX8M Nano commit

  • caam: add support for i.MX8M Plus commit

  • ccp: add TEE support for Raven Ridge commit

  • chtls: Add support for AES256-GCM based ciphers commit

  • hisilicon: Add aead support on SEC2 commit

  • sun4i-ss: add the A33 variant of SS commit

13.29. PCI

  • P2PDMA: Add Intel SkyLake-E to the whitelist commit

  • brcmstb: Add Broadcom STB PCIe host controller driver commit

  • brcmstb: Add MSI support commit

  • dwc: intel: PCIe RC controller driver commit

  • qcom: Add support for SDM845 PCIe controller commit

  • switchtec: Add Gen4 device IDs commit

  • switchtec: Add Gen4 flash information interface support commit

  • vmd: Add two VMD Device IDs commit

13.30. Thunderbolt

  • (FEATURED) thunderbolt: Add support for USB 4. USB4 is the public specification of Thunderbolt 3 protocol commit, commit, commit, commit, commit, commit, commit, commit, commit

13.31. Clock

  • Add support for setting clk_rate via debugfs commit

  • fsl-sai: new driver commit

  • imx: Add support for i.MX8MP clock driver commit

  • ls1028a: Add clock driver for Display output interface commit

  • meson: add a driver for the Meson8/8b/8m2 DDR clock controller commit

  • qcom: Add MSM8998 Multimedia Clock Controller (MMCC) driver commit

  • qcom: Add display clock controller driver for SC7180 commit

  • qcom: Add graphics clock controller driver for SC7180 commit

  • qcom: Add ipq6018 Global Clock Controller support commit

  • qcom: Add video clock controller driver for SC7180 commit

  • timer-microchip-pit64b: Add Microchip PIT64B support commit

  • zynqmp: Add support for get max divider commit

13.32. PHY ("physical layer" framework)

  • core: Add consumer device link support commit

  • cadence: Sierra: Add support for SERDES_16G used in J721E SoC commit

  • intel-lgm-emmc: Add support for eMMC PHY commit

  • ti: j721e-wiz: Add support for WIZ module present in TI J721E SoC commit

  • usb: Add support for new Synopsys USB controller on the 7211b0 commit

  • usb: Add support for new Synopsys USB controller on the 7216 commit

  • usb: Add support for wake and USB low power mode for 7211 S2/S5 commit

13.33. Various

  • PCI/switchtec: Add Gen4 system info register support commit

  • PCI/switchtec: Add support for Intercomm Notify and Upstream Error Containment commit

  • firmware: qcom_scm: Dynamically support SMCCC and legacy conventions commit

  • interconnect: Add interconnect_graph file to debugfs commit

  • interconnect: qcom: Add MSM8916 interconnect provider driver commit

  • iommu/arm-smmu-v3: Add support for Substream IDs commit

  • iommu/vt-d: Add Kconfig option to enable/disable scalable mode commit

  • iommu/vt-d: debugfs: Add support to show page table internals commit

  • irqchip/gic-v4.1: Implement the v4.1 flavour of VMAPP commit

  • irqchip/meson-gpio: Add support for meson a1 SoCs commit

  • irqchip: Add Aspeed SCU interrupt controller commit

  • irqchip: Add NXP INTMUX interrupt multiplexer support commit

  • isdn: capi: dead code removal commit

  • memory: tegra: Add support for the Tegra194 memory controller commit

  • memory: tegra: Implement EMC debugfs interface on Tegra20 commit and Tegra30 commit

  • misc: alcor_pci: Add AU6625 to list of supported PCI_IDs commit

  • nvmem: add QTI SDAM driver commit

  • nvmem: add support for the write-protect pin commit

  • remoteproc/mediatek: add SCP support for mt8183 commit

  • remoteproc: mss: q6v5-mss: Add modem support on SC7180 commit

  • remoteproc: qcom: pas: Add MSM8998 ADSP and SLPI support commit

  • remoteproc: qcom: pas: Add SM8150 ADSP, CDSP, Modem and SLPI support commit

  • reset: Add Broadcom STB RESCAL reset controller commit

  • reset: intel: Add system reset controller driver commit

  • rpmsg: add rpmsg support for mt8183 SCP commit

  • soc/tegra: fuse: Add Tegra194 support commit

  • soc: ti: k3: add navss ringacc driver commit

14. List of Pull Requests

  • arm64 updates

  • m68k updates

  • tpm updates

  • hwmon updates

  • EDAC updates

  • RAS updates

  • i3c updates

  • MMC updates

  • x86 platform driver updates

  • HID updates

  • livepatching updates

  • dmaengine updates

  • regmap updates

  • spi updates

  • regulator updates

  • power management updates

  • ACPI updates

  • device properties framework updates

  • core block updates

  • block driver updates

  • libata updates

  • ioremap updates

  • workqueue updates

  • cgroup updates

  • audit update

  • SELinux update

  • timer fixes

  • watchdog updates

  • debugobjects update

  • timer updates

  • core SMP updates

  • irq updates

  • x86 pti updates

  • header cleanup

  • objtool updates

  • RCU updates

  • EFI updates

  • locking updates

  • perf updates

  • scheduler updates

  • x86 asm updates

  • x86 boot update

  • x86 resource control updates

  • x86 cleanups

  • misc x86 updates

  • x86 cpu-features updates

  • x86 FPU updates

  • x86 mtrr updates

  • btrfs updates

  • fscrypt updates

  • fsverity updates

  • cifs updates

  • crypto updates

  • networking updates

  • sound updates

  • thermal updates

  • UML updates

  • s390 updates

  • IMA updates

  • GPIO updates

  • pin control updates

  • USB/Thunderbolt/PHY driver updates

  • tty/serial driver updates

  • staging and IIO updates

  • driver core updates

  • char/misc driver updates

  • core fixes

  • openat2 support

  • adfs updates

  • erofs updates

  • printk update

  • y2038 updates

  • Kselftest update

  • Kselftest kunit updates

  • documentation updates

  • device mapper updates

  • SCSI updates

  • io_uring updates

  • thread management updates

  • mmu_notifier updates

  • sparc updates

  • IDE updates

  • devicetree updates

  • power supply and reset updates

  • drm updates

  • ext4 updates

  • xfs updates

  • UDF, quota, reiserfs, ext2 fixes and cleanups

  • f2fs updates

  • UBI/UBIFS updates

  • MTD updates

  • x86 MPX removal

  • KVM updates

  • RISC-V updates

  • ARC updates

  • MIPS changes

  • module updates

  • memory management updates

  • gfs2 updates

  • more power manadement updates

  • rdma updates

  • media updates

  • PCI updates

  • random changes

  • Kbuild updates

  • Kconfig updates

  • pcmcia updates

  • LED updates

  • Hyper-V updates

  • MFD updates

  • backlight updates

  • kgdb updates

  • input updates

  • clk updates

  • VFIO updates

  • ibft update

  • percpu updates

  • RTC updates

  • chrome platform updates

  • drm ttm/mm updates

  • more memory management updates

  • hwspinlock updates

  • remoteproc updates

  • overlayfs update

  • Microblaze update

  • powerpc updates

  • ARM updates

  • vfs timestamp updates

  • vfs recursive removal updates

  • parisc updates

  • more s390 updates

  • xen updates

  • iommu updates

  • pwm updates

  • libata updates

  • more block updates

  • tracing updates

  • moar xfs updates

  • m68knommu updates

  • ceph fixes

  • more KVM updates

  • xtensa updates

  • virtio updates

  • watchdog updates

  • more power management updates

  • more ACPI updates

  • i2c updates

  • NFS client updates

  • nfsd updates

  • fuse fixes

  • thundering herd avoidance on pipe IO

  • misc vfs updates

  • vfs file system parameter updates

  • ARM SoC platform updates

  • ARM Device-tree updates

  • ARM SoC-related driver updates

  • ARM SoC defconfig updates

  • ARM SoC late updates

  • vboxfs

  • cifs fixes

  • new zonefs file system

  • more Kbuild updates

15. Other news sites

  • LWN's merge window part 1, part 2, development stats

  • Phoronix Linux 5.6 Is The Most Exciting Kernel In Years With So Many New Features

  • MoinMoin Powered
  • Python Powered
  • GPL licensed
  • Valid HTML 4.01