KernelNewbies:

Changes done in each Linux kernel release. Other places to get news about the Linux kernel are LWN kernel status or the Linux Kernel mailing list (there is a web interface in www.lkml.org or lore.kernel.org/lkml). The lore.kernel.org/lkml/ archive is also available via NTTP if you prefer to use a newsreader: use nntp://nntp.lore.kernel.org/org.kernel.vger.linux-kernel for that. 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.13 has been released on Sun, 27 June 2021

Summary: This release includes the Landlock security module, which aims to make easier to sandbox applications; support for the Clang Control Flow Integrity, which aims to abort the program upon detecting certain forms of undefined behavior; support for randomising the stack address offset in each syscall; support for concurrent TBL flushing; preparatory Apple M1 support; support for incoming AMD and Intel graphics chips; BPF support for calling kernel functions directly; a virtio sound driver for improved sound experience on virtualized guests; io_uring support for multi shot mode and a misc cgroup for miscellaneous resources. As always, there are many other features, new drivers, improvements and fixes.

1. Prominent features

1.1. Landlock security module

Landlock is a new Linux security module that allows to sandbox applications. The goal of Landlock is to enable to restrict ambient rights (e.g. global filesystem access) for a set of processes. Because Landlock is a stackable LSM, it makes possible to create safe security sandboxes as new security layers in addition to the existing system-wide access-controls. This kind of sandbox is expected to help mitigate the security impact of bugs or unexpected/malicious behaviors in user-space applications. Landlock empowers any process, including unprivileged ones, to securely restrict themselves.

Landlock is inspired by seccomp-bpf but instead of filtering syscalls and their raw arguments, a Landlock rule can restrict the use of kernel objects like file hierarchies, according to the kernel semantic. Landlock also takes inspiration from other OS sandbox mechanisms: XNU Sandbox, FreeBSD Capsicum or OpenBSD Pledge/Unveil.

In this current form, Landlock misses some access-control features. This enables to minimize this patch series and ease review. This series still addresses multiple use cases, especially with the combined use of seccomp-bpf: applications with built-in sandboxing, init systems, security sandbox tools and security-oriented APIs

Recommended LWN article: Sandboxing with the Landlock security module

1.2. Support for Clang Control Flow Integrity

This release builds on last cycle's LTO work, and allows the arm64 kernels to be built with Clang's Control Flow Integrity feature, which is designed to abort the program upon detecting certain forms of undefined behavior that can potentially allow attackers to subvert the program’s control flow. This feature has happily lived in Android kernels for almost 3 years. CFI support for x86 is still under development, but is pretty close.

Recommended LWN article: Control-flow integrity for the kernel

1.3. Support for randomising the stack address offset in each syscall

This release supports randomized stack offsets per syscall to make stack-based attacks harder which rely on the deterministic stack layout. The feature is based on the original idea of PaX's RANDSTACK feature, but uses a significantly different implementation.

The feature is guarded with a static branch which avoids the overhead when disabled. As of this release this is supported for X86 and ARM64.

1.4. Support for concurrent TBL flushing

Currently, local and remote TLB flushes are not performed concurrently, which introduces unnecessary overhead - each INVLPG can take 100s of cycles. This patch-set allows TLB flushes to be run concurrently: first request the remote CPUs to initiate the flush, then run it locally, and finally wait for the remote CPUs to finish their work. In testing this improved sysbench performance measurably by a couple of percentage points, especially if TLB-heavy security mitigations are active.

1.5. Preparatory Apple M1 support

This kernel includes initial support for the Apple M1 platform. The Apple M1 is the processor used it all current generation Apple Macintosh computers. Support for this platform so far is rudimentary, but it boots and can use framebuffer and serial console over a special USB cable.

Support for several essential on-chip devices (USB, PCIe, IOMMU, NVMe) is work in progress but was not ready in time for this release.

A very detailed description of what works is in the commit messages and on the AsahiLinux wiki

1.6. Support for incoming AMD and Intel graphics chips

This release includes initial support for future Intel and AMD chips, such as Intel Alderlake S or AMD Adebaran support

1.7. BPF support for calling kernel functions directly

This release allows bpf programs calling kernel functions (initially to reuse TCP congestion control implementations)

Recommended LWN article: Calling kernel functions from BPF

1.8. A virtio sound driver for improved sound experience on virtualized guests

This release implements a driver part of the virtio sound device specification.

The driver supports PCM playback and capture substreams, jack and channel map controls. A message-based transport is used to write/read PCM frames to/from a device.

As a device part was used OpenSynergy proprietary implementation.

1.9. io_uring support for multi shot mode

Support for multi-shot poll. This allows arming a poll request for a given event mask, and then have it trigger multiple times. The default behavior for io_uring POLL_ADD has been one-shot, where one SQE issued will result in one CQE filled (when the event triggers) and termination of the poll request after that. With multi-shot, one POLL_ADD will generate a CQE every time the event triggers.

1.10. Add misc cgroup

This implements generic support for misc resources which can be controlled by simply counting and limiting the number of resource instances - ie there's X number of these on the system and this cgroup subtree can have upto Y of those.

The first user is the address space IDs used for virtual machine memory encryption and expected future usages are similar - niche hardware features with concrete resource limits and simple usage models

2. Core (various)

3. File systems

4. Memory management

5. Block layer

  • multiqueue: set default elevator as deadline in case of hctx shared tagset commit

  • Add sysfs entry for virt boundary mask commit

  • bio: limit bio max size commit

  • rnbd-clt: Support polling mode for IO latency optimization commit

  • rnbd-clt: Generate kobject_uevent when the rnbd device state changes commit

  • null_blk: add option for managing virtual boundary commit

  • md/raid10: Improve handling raid10 discard request commit, commit

  • dm integrity: add the "reset_recalculate" feature flag that will restart recalculating from the beginning of the device commit

6. Tracing, perf and BPF

7. Virtualization

8. Security

9. Networking

10. Architectures

10.1. ARM

10.2. X86

10.3. MIPS

  • Loongson64: Add kexec/kdump support commit

  • Enable bpf_probe_read{, str}() on MIPS again commit

  • Add support for CONFIG_DEBUG_VIRTUAL commit

  • Loongson64: Add support for the Loongson-2K1000 to get cpu_clock_freq commit, commit

  • octeon: Add Ubiquiti E300 board commit

  • Remove broken/unmaintained MIPS KVM trap and emulate support commit, commit

  • perf tools: Support MIPS unwinding and dwarf-regs commit

10.4. POWERPC

  • Enable OPTPROBES on PPC32 commit

  • Add support for time namespaces commit

  • perf: Infrastructure to support checking of attr.config* commit

  • papr_scm: Implement support for H_SCM_FLUSH hcall commit

  • Implement extended BPF on PPC32 commit

  • Enable KFENCE for PPC32 commit

  • Enable passing IMA log to next kernel on kexec commit

  • perf tools: Support pipeline stage cycles for powerpc commit * perf events: Initial JSON/events list for power10 platform commit

  • perf powerpc: Add support for PERF_SAMPLE_WEIGHT_STRUCT commit

10.5. RISCV

10.6. S390

  • Add support for syscall stack randomization commit

  • Expose UID uniqueness guarantee commit, commit

  • cio: introduce CIO debugfs directory commit

  • cio: add CRW inject functionality commit

  • bpf: Implement new atomic ops commit

  • KVM: implement KVM_CAP_SET_GUEST_DEBUG2 commit

10.7. IA64

  • Drop marked broken DISCONTIGMEM and VIRTUAL_MEM_MAP commit

10.8. XTENSA

  • ISS: add GDBIO implementation to semihosting interface commit

11. Drivers

11.1. Graphics

11.2. Power Management

11.3. Storage

  • ata: ahci_tegra: Add AHCI support for Tegra186 commit

  • nvme
    • Add 'kato' sysfs attribute commit

    • Export fast_io_fail_tmo to sysfs commit

    • Implement non-mdts command limits commit

    • Introduce generic per-namespace chardev commit

  • SCSI
    • Add mq_poll support to SCSI layer commit

    • megaraid_sas: mq_poll support commit

    • pm80xx: Add sysfs attribute to check MPI state commit

    • pm80xx: Add sysfs attribute to check controller hmi error commit

    • pm80xx: Add sysfs attribute to track RAAE count commit

    • pm80xx: Add sysfs attribute to track iop0 count commit

    • pm80xx: Add sysfs attribute to track iop1 count commit

    • qedf: Enable devlink support commit

    • qla2xxx: Add marginal path handling support commit

    • scsi_debug: mq_poll support commit

    • smartpqi: Add new PCI IDs commit

    • smartpqi: Add stream detection commit

    • smartpqi: Add support for BMIC sense feature cmd and feature bits commit

    • smartpqi: Add support for RAID1 writes commit

    • smartpqi: Add support for RAID5 and RAID6 writes commit

    • smartpqi: Add support for long firmware version commit

    • smartpqi: Add support for new product ids commit

    • smartpqi: Add support for wwid commit

    • storvsc: Parameterize number hardware queues commit

    • target: tcmu: Support DATA_BLOCK_SIZE = N * PAGE_SIZE commit

    • ufs: ufs-debugfs: Add user-defined exception event rate limiting commit

    • ufs: ufs-debugfs: Add user-defined exception_event_mask commit

    • ufs: ufs-pci: Add support for Intel LKF commit

  • Buslogic: remove ISA support commit

  • advansys: remove ISA support commit

11.4. Drivers in the Staging area

  • comedi: Finally move out of staging directory commit

  • media: imx: imx7_media-csi: Add support for additional Bayer patterns commit

  • dpaa2-switch: add .ndo_start_xmit() callback commit

  • iio:cdc:ad7150: Add sampling_frequency support commit

  • most: add ALSA sound driver commit

  • clocking-wizard: Add support for fractional support commit

  • clocking-wizard: Add support for dynamic reconfiguration commit

  • wimax: delete from the tree commit

  • gasket: remove it from the kernel commit

  • xsysace: Remove SYSACE driver commit

  • block: remove the umem driver commit

11.5. Networking

11.6. Audio

  • Add generic LED API, which tries to resolve the diversity in the audio LED control among the ALSA drivers commit, commit, commit, commit, commit, commit

  • soundwire: qcom: various improvements commit, commit, commit, commit, commit, commit, commit, commit, commit

  • bebob: enable to deliver MIDI messages for multiple ports commit

  • hda
    • cirrus: Add support for CS8409 HDA bridge and CS42L42 companion codec commit, commit, commit, commit

    • bind headset buttons to the headphone jack commit

    • realtek: Enable mute/micmute LEDs and limit mic boost on EliteBook 845 G8 commit

    • Add AlderLake-M PCI ID commit

  • usb-audio: Add dB range mapping for Sennheiser Communications Headset PC 8 commit

  • (FEATURED) Add virtio sound driver commit, commit, commit, commit, commit, commit, commit, commit, commit

  • ASoC
    • Intel: add max98390 echo reference support commit

    • Intel: board: add BE DAI link for WoV commit

    • Intel: bytcr_wm5102: Add jack detect support commit

    • Intel: cht_bsw_rt5672: Add support for Bay Trail CR / SSP0 commit

    • Intel: soc-acpi: add ADL jack-less SoundWire configurations commit, commit

    • Intel: sof_rt5682: Add ALC1015Q-VB speaker amp support commit

    • ak5558: Add support for ak5552 commit

    • amd: Add support for ALC1015P codec in acp3x machine driver commit

    • amd: Add support for RT5682 codec in machine driver commit

    • SoC codecs: TLV320AIC3X add SPI support commit, commit, commit, commit

    • codecs: tlv320aic3x: add AIC3106 commit

    • cs42l42: Report jack and button detection + Capture Support commit, commit

    • fsl-asoc-card: Add support for WM8958 codec commit

    • fsl_sai: Add pm qos cpu latency support commit

    • Add audio driver base on rpmsg on i.MX platform commit, commit, commit, commit, commit, commit

    • max98390: Add support for tx slot configuration commit

    • Add I2S-MCC support for Microchip's SAMA7G5 commit, commit, commit, commit, commit

    • mediatek: mt6359: add MT6359 accdet jack driver commit

    • mediatek: mt8183: support machine driver with rt1015p commit

    • rt1015p: add acpi device id for rt1015p commit

    • rt1015p: add support on format S32_LE commit

    • rt1019: add rt1019 amplifier driver commit

    • rt1316: Add RT1316 SDCA vendor-specific driver commit

    • rt5670: Add emulated 'DAC1 Playback Switch' control commit

    • rt711-sdca: Add RT711 SDCA vendor-specific driver commit

    • rt715-sdca: Add RT715 sdca vendor-specific driver commit

    • rt715: add main capture switch and main capture volume commit

    • simple-card-utils: enable flexible CPU/Codec/Platform commit

    • tegra20: ac97: Add reset control commit

    • tegra20: i2s: Add reset control commit

11.7. Tablets, touch screens, keyboards, mouses

  • Add support for Azoteq IQS626A commit

  • Add support for ILITEK Lego Series commit

  • Add MStar MSG2638 touchscreen driver commit

  • Add driver for the Hycon HY46XX touchpanel series commit

  • atc260x: Add onkey driver for ATC260x PMICs commit

  • exc3000: add type sysfs attribute commit

  • iqs5xx: expose firmware revision to user space commit

  • mms114: support MMS136 commit

  • xpad: add support for Amazon Game Controller commit

  • HID
    • Add support for Surface Aggregator Module HID transport commit

    • ft260: add usb hid to i2c host bridge driver commit

    • map battery capacity (00850065) commit

    • intel-ish-hid: ipc: Add Alder Lake device IDs commit

    • lenovo: Add support for Thinkpad X1 Tablet Thin keyboard commit

    • logitech-dj: Handle newer quad/bt2.0 receivers in HID proxy mode commit

    • magicmouse: add Apple Magic Mouse 2 support commit

    • semitek: new driver for GK6X series keyboards commit

    • Support for initialization of some Thrustmaster wheels commit

    • surface-hid: Add support for legacy keyboard interface commit

11.8. TV tuners, webcams, video capturers

11.9. Universal Serial Bus

11.10. Serial Peripheral Interface (SPI)

  • Add HiSilicon SPI Controller Driver for Kunpeng SoCs commit

  • Add Micron SPI NOR Authenta device compatible commit

  • mediatek: add mt8195 spi slave support commit

  • mediatek: add mtk_spi_compatible support commit

  • pxa2xx: Add support for Intel Alder Lake PCH-M commit

  • spi-nxp-fspi: Add imx8dxl driver support commit

  • spi-nxp-fspi: Add imx8dxl support commit

  • spi-nxp-fspi: Add support for IP read only commit

  • stm32-qspi: Add dirmap support commit

11.11. Watchdog

  • npcm: Add support for WPCM450 commit

  • wdt: Support wdt on ROHM BD9576MUF and BD9573MUF commit

11.12. Serial

  • 8250: Add new 8250-core based Broadcom STB driver commit

  • 8250_of: Add nuvoton,wpcm450-uart commit

  • 8250_pci: Add support for new HPE serial device commit

  • 8250_dw: Add device HID for new AMD UART controller commit

  • serial: samsung_tty: Add earlycon support for Apple UARTs commit

  • serial: samsung_tty: Add support for Apple UARTs commit

  • cyclades, remove this orphan commit

  • isicom, remove this orphan commit

  • rocket, remove the driver commit

11.13. CPU Frequency scaling

  • CPPC: Add support for frequency invariance commit

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

  • supply: Add AC driver for Surface Aggregator Module commit

  • supply: Add battery driver for Surface Aggregator Module commit

  • supply: bq27xxx: Add support for BQ78Z100 commit

  • regulator: fan53555: Add TCS4525 DCDC support commit

  • regulator: qcom-rpmh: Add PM7325/PMR735A regulator support commit

  • regulator: spmi: Add support for ULT LV_P50 and ULT P300 commit

  • regulator: Support ROHM BD71815 regulators commit

11.15. Real Time Clock (RTC)

  • bd70528: Support RTC on ROHM BD71815 commit

  • New driver for RTC in Netronix embedded controller commit

  • pcf8523: add alarm support commit

  • ab-eoz9: add alarm support commit

  • pm8xxx: Add RTC support for PMIC PMK8350 commit

  • rx6110: add ACPI bindings to I2C commit

11.16. Pin Controllers (pinctrl)

  • Add ZynqMP pinctrl driver commit, commit

  • Ingenic: Add DMIC pins support for Ingenic SoCs commit

  • Ingenic: Add pinctrl driver for JZ4730 commit

  • Ingenic: Add pinctrl driver for JZ4750 commit

  • Ingenic: Add pinctrl driver for JZ4755 commit

  • Ingenic: Add pinctrl driver for JZ4775 commit

  • Ingenic: Add pinctrl driver for X2000 commit

  • Ingenic: Add support for read the pin configuration of X1830 commit

  • Add a pincontrol driver for BCM6318 commit

  • Add a pincontrol driver for BCM63268 commit

  • Add a pincontrol driver for BCM6328 commit

  • Add a pincontrol driver for BCM6358 commit

  • Add a pincontrol driver for BCM6362 commit

  • Add a pincontrol driver for BCM6368 commit

  • Add drive for I2C related pins on MT8195 commit

  • Add pinctrl driver on mt8195 commit

  • bcm: add bcm63xx base code commit

  • pinmux: Add pinmux-select debugfs file commit

  • qcom-pmic-gpio: Add support for pm8008 commit

  • qcom: sc8180x: add ACPI probe support commit

  • qcom: spmi-gpio: Add support for PM8350 and friends commit

  • renesas: Add support for R-Car SoCs with pull-down only pins commit

  • rockchip: add support for rk3568 commit

11.17. Multi Media Card (MMC)

  • sdhci-of-dwcmshc: add rockchip platform support commit

  • sdhci-acpi: Add device ID for the AMDI0041 variant of the AMD eMMC controller commit

  • sdhci-pci: Add PCI IDs for Intel LKF commit

11.18. Memory Technology Devices (MTD)

  • Add OTP (one-time-programmable) erase ioctl commit

  • parsers: ofpart: support BCM4908 fixed partitions commit

  • parsers: ofpart: support Linksys Northstar partitions commit

  • rawnand: Add support for secure regions in NAND memory commit

  • spi-nor
  • spinand: gigadevice: Support GD5F1GQ5UExxG commit

11.19. Industrial I/O (iio)

11.20. Multi Function Devices (MFD)

  • Add MFD driver for ATC260x PMICs commit

  • Add ROHM BD71815 ID commit

  • Add base driver for Netronix embedded controller commit

  • Remove support for AB3100 commit

  • Support ROHM BD9576MUF and BD9573MUF PMICs commit, commit, commit, commit, commit, commit

  • Support for ROHM BD71815 PMIC core commit

  • da9063: Support SMBus and I2C mode commit

  • intel-m10-bmc: Add support for MAX10 BMC Secure Updates commit

  • intel_pmt: Add support for DG1 commit

  • ntxec: Support for EC in Tolino Shine 2 HD commit

11.21. Pulse-Width Modulation (PWM)

  • Add Raspberry Pi Firmware based PWM bus commit

  • ntxec: Add driver for PWM function in Netronix EC commit

  • pca9685: Support hardware readout commit

  • visconti: Add Toshiba Visconti SoC PWM support commit

11.22. Inter-Integrated Circuit (I2C + I3C)

  • Add support for HiSilicon I2C controller commit

  • cp2615: add i2c driver for Silicon Labs' CP2615 Digital Audio Bridge commit

  • designware: Add driver support for AMD NAVI GPU commit

  • i801: Add support for Intel Alder Lake PCH-M commit

  • stm32f7: add support for DNF i2c-digital-filter binding commit

11.23. Hardware monitoring (hwmon)

  • pmbus: Add pmbus driver for MAX15301 commit

  • pmbus/tps53679: Add support for TI TPS53676 commit

  • Add driver for fsp-3y PSUs and PDUs commit

  • pmbus: Add driver for Infineon IR36021 commit

  • pmbus: Add driver for BluTek BPA-RS600 commit

  • corsair-psu: add support for critical values commit

  • Add driver for NZXT Kraken X42/X52/X62/X72 commit

  • pmbus/stpddc60: Add ST STPDDC60 pmbus driver commit

  • nct6683: Support NCT6686D commit

  • Remove amd_energy driver commit

11.24. General Purpose I/O (gpio)

  • Support ROHM BD71815 GPOs commit

  • sch: Add edge event support commit

  • mpc8xxx: Add ACPI support commit

  • Add Realtek Otto GPIO support commit

11.25. Leds

  • rt4505: Add support for Richtek RT4505 flash LED controller commit

11.26. DMA engines

11.27. Cryptography hardware acceleration

11.28. PCI

  • Add sysfs MSI-X vector assignment interface commit

  • Allow VPD access for QLogic ISP2722 commit

  • j721e: Add support to provide refclk to PCIe connector commit

  • mediatek-gen3: commit, commit, commit, commit, commit, commit

  • tegra: Add Tegra194 MCFG quirks for ECAM errata commit

  • xilinx-nwl: Enable coherent PCIe DMA traffic using CCI commit

11.29. Remote Processors

11.30. Clock

  • qcom: rpmh: add support for SDX55 rpmh IPA clock commit

  • ralink: add clock driver for mt7621 SoC commit

  • rockchip: add clock controller for rk3568 commit

  • bd718x7: Add support for clk gate on ROHM BD71815 PMIC commit

  • clocksource
    • npcm: Add support for WPCM450 commit

    • ingenic-ost: Add support for the JZ4760B commit

    • ingenic: Add support for the JZ4760 commit

11.31. PHY ("physical layer" framework)

  • Add Sparx5 ethernet serdes PHY driver commit

  • add support for Armada CP110 UTMI PHY commit

  • qcom-qmp: add support for sm8250-usb3-dp phy commit

  • ti: j721e-wiz: Add support for configuring QSGMII commit

  • cadence-torrent: Add support to drive refclk out commit == IRQ chips ==

  • Add driver for WPCM450 interrupt controller commit

  • Add support for IDT 79rc3243x interrupt controller commit

  • apple-aic: Add support for the Apple Interrupt Controller commit

  • irq-mst: Support polarity configuration commit

  • stm32: add usart instances exti direct event support commit

11.32. Various

  • bus: mhi: core: Add support for Flash Programmer execution environment commit

  • bus: mhi: pci_generic: Add FIREHOSE channels commit

  • bus: mhi: pci_generic: Add SDX24 based modem support commit

  • bus: mhi: pci_generic: Add support for runtime PM commit

  • bus: mhi: pci_generic: Introduce Foxconn T99W175 support commit

  • bus: mhi: pci_generic: Introduce quectel EM1XXGR-L support commit

  • counter: add IRQ or GPIO based counter commit

  • counter: 104-quad-8: Remove IIO counter ABI commit

  • counter: stm32-lptimer-cnt: remove iio counter abi commit

  • extcon: qcom-spmi: Add support for VBUS detection commit, commit, commit

  • fpga: Add support for Xilinx DFX AXI Shutdown manager commit

  • fpga: dfl: add support for Intel D5005 card commit, commit, commit

  • habanalabs
    • Add debugfs to DMA from the device commit

    • Add custom timeout flag per cs commit

    • Debugfs access to user mapped host addresses commit

    • Return current power via INFO IOCTL commit

    • Support legacy and new pll indexes commit

  • hwspinlock: remove sirf driver commit

  • interconnect: qcom: Add SDM660 interconnect provider driver commit

  • interconnect: qcom: Add SM8350 interconnect provider driver commit

  • iommu: add Unisoc IOMMU basic driver commit

  • mailbox: sprd: Add supplementary inbox support commit

  • mei: me: add Alder Lake P device id commit

  • misc: Add Add Synopsys DesignWare xData IP driver commit, commit, commit, commit

  • nvmem: qfprom: Add support for fuse blowing on sc7280 commit

  • of: property: fw_devlink: Add support for remote-endpoint commit

  • phy: Add media type and speed serdes configuration interfaces commit

  • vDPA/ifcvf: enable Intel C5000X-PL virtio-block for vDPA commit, commit, commit

  • vDPA/ifcvf: enable Intel C5000X-PL virtio-net for vDPA commit, commit, commit, commit, commit, commit, commit

  • tools: dma-mapping: benchmark: Add support for multi-pages map/unmap commit

  • iommu/dma: Resurrect the "forcedac" option commit

  • PCI: Remove MicroGate SyncLink device IDs commit

12. List of Pull Requests

13. Other news sites

KernelNewbies: LinuxChanges (last edited 2021-09-04 00:38:17 by diegocalleja)