Linus Torvalds has just released Linux 4.12:
Things were quite calm this week, so I really didn’t have any real reason to delay the 4.12 release.
As mentioned over the various rc announcements, 4.12 is one of the bigger releases historically, and I think only 4.9 ends up having had more commits. And 4.9 was big at least partly because Greg announced it was an LTS kernel. But 4.12 is just plain big.
There’s also nothing particularly odd going on in the tree – it’s all just normal development, just more of it that usual. The shortlog below is obviously just the minor changes since rc7 – the whole 4.12 shortlog is much too large to post.
In the diff department, 4.12 is also very big, although the reason there isn’t just that there’s a lot of development, we have the added bulk of a lot of new header files for the AMD Vega support. That’s almost exactly half the bulk of the patch, in fact, and partly as a result of that the driver side dominates everything else at 85+% of the release patch (it’s not all the AMD Vega headers – the Intel IPU driver in staging is big too, for example).
But aside from just being large, and a blip in size around rc5, the rc’s stabilized pretty nicely, so I think we’re all good to go.
Go out and use it.
Oh, and obviously this means that the merge window for 4.13 is thus open. You know the drill.
Linux 4.11 provided various improvements for Intel Bay Trail and Cherry Trail targets, OPAL drive support, pluggable IO schedulers framework, and plenty of ARM and MIPS changes.
Some of the most notable changes in Linux 4.12 include:
- Initial AMD Radeon RX Vega GPU support
- BFQ (Budget Fair Queuing) and Kyber block I/O schedulers have been merged, meaning the kernel now has two multiqueue I/O schedulers suitable for various use cases that should improve the responsiveness of systems.
- Added AnalyzeBoot tool to create a timeline of the kernel’s bootstrap process in HTML format.
- Implemented “hybrid consistency model” for live kernel patching in order to enable the applications patchsets that change function or data semantics. See here for details.
- Build of Open Sound System (OSS) audio drivers has been disabled, and will likely be removed in future Linux releases
- AVR32 support has been removed
Some of the bug fixes and improvements for the ARM architecture include:
- Allwinner H3 – USB OTG support
- Allwinner H5 – pinctrl driver, CCU (sunxi-ng) driver, USB OTG support
- Allwinner A31/H3 SPI driver – Support transfers larger than 64 bytes
- AXP PMICs – AXP803 basic support, ACIN Power Supply driver, ADC IIO driver, Battery Power Supply driver
- Added support for: FriendlyARM NanoPi NEO Air, Xunlong Orange Pi PC 2
- Updates to Rockchip clock drivers
- Modification for Rockchip PCI driver
- RK3328 pinctrl driver
- Sound support for Radxa Rock2
- USB 3.0 controllers for RK3399
- Various changes for RK3368 (dma, i2s, disable mailbox per default, mmc-resets)
- Added Samsung Chromebook Plus (Kevin) and the other RK3399 “Gru family” of ChromeOS devices.
- Added Rockchip RK3288 support for ASUS Tinker board, Phytec phyCORE-RK3288 SoM and RDK; added Rockchip RK3328 evaluation board
- New clock drivers for I2S and SPDIF audio, and Mali GPU
- DRM/HDMI support for Amlogic GX SoC
- Add GPIO reset to Ethernet driver
- Enable PWM LEDs and LEDs default-on trigger
- New boards: Khadas VIM, HwaCom AmazeTV
- Split building of the PMU driver between ARMv7 and ARMv8
- Various Samsung pincrl drivers updates
- ARM DT updates:
- Enhancements to PCIe nodes on Exynos5440.
- Fix thermal values on some of Exynos5420 boards like Odroid XU3.
- Add proper clock frequency properties to DSI nodes.
- Fix watchdog reset on Exynos4412.
- Fix watchdog infinite interrupt in soft mode on Exynos4210, Exynos5440, S3C64xx and S5Pv210.
- Enable watchdog on Exynos4 and S3C SoCs.
- Enable DYNAMIC_DEBUG because it is useful for debugging
- Increase CMA memory region to allow handling H.264 1080p videos.
- ARM64 DT updates:
- Exynos power management drivers support now ARMv8 SoC – Exynos5433 – so select them in ARCH_EXYNOS
- Enable few Exynos drivers (video, DRM and LPASS drivers) for supported ARMv8 SoCs (Exynos5433 and Exynos7)
- Add IR, touchscreen and panel to TM2/TM2E boards
- Add proper clock frequency properties to DSI nodes
- Enable options needed for QCom DB410c board in defconfig
- Added new PHY driver for Qualcomm’s QMP PHY (used by PCIe, UFS and USB), and Qualcomm’s QUSB2 PHY
- Qualcomm Device Tree Changes
- Add Coresight components for MSM8974
- Fixup MSM8974 ADSP XO clk and add RPMCC node
- Fix typo in APQ8060
- Add SDCs on MSM8660
- Revert MSM8974 USB gadget change due to issues
- Add SCM APIs for restore_sec_cfg and iommu secure page table
- Enable QCOM remoteproc and related drivers
- Qualcomm ARM64 Updates for v4.12
- Fixup MSM8996 SMP2P and add ADSP PIL / SLPI SMP2P node
- Replace PMU compatible w/ A53 specific one
- Add APQ8016 ramoops
- Update MSM8916 hexagon node
- Add PM8994 RTC
- New clock drivers for MT6797, and hi655x PMIC
- Fix Mediatek SPI (flash) controller driver
- Add DRM driver and thermal driver for Mediatek MT2701 SoC
- Add support for MT8176 and MT817x to the Mediatek cpufreq driver
- Add driver for hardware random generator on MT7623 SoC
- Add DSA support to Mediatek MT7530 7-port GbE switch
- Add v4l2 driver for Mediatek JPEG Decoder
- Added ARM TEE framework to support trusted execution environments on processors with that capability (e.g. ARM CPUs with TrustZone)
- ARM64 architecture now has kernel crash-dump functionality.
- Other new ARM hardware platforms and SoCs:
- NXP – NXP/Freescale LS2088A and LKS1088A SoC, I2SE’s i.MX28 Duckbill-2 boards, Gateworks Ventana i.MX6 GW5903/GW5904, Zodiac Inflight Innovations RDU2 board, Engicam i.CoreM6 Quad/Dual OpenFrame modules, Boundary Device i.MX6 Quad Plus SoM.
- Nvidia – Expanded support for Tegra186 and Jetson TX2
- Spreadtrum – Device tree for SP9860G
- Marvell – Crypto engine for Armada 8040/7040
- Hisilicon – Device tree bindings for Hi3798CV200 and Poplar board
- Texas Instruments – Motorola Droid4 (OMAP processor)
- ST Micro – STM32H743 Cortex-M7 MCU support
- Various Linksys platforms, Synology DS116
The MIPS architecture also had its share of changes:
- Fix misordered instructions in assembly code making kenel startup via UHB unreliable.
- Fix special case of MADDF and MADDF emulation.
- Fix alignment issue in address calculation in pm-cps on 64 bit.
- Fix IRQ tracing & lockdep when rescheduling
- Systems with MAARs require post-DMA cache flushes.
- Fix build with KVM, DYNAMIC_DEBUG and JUMP_LABEL
- Three highmem fixes:
- Fixed mapping initialization
- Adjust the pkmap location
- Ensure we use at most one page for PTEs
- Fix makefile dependencies for .its targets to depend on vmlinux
- Fix reversed condition in BNEZC and JIALC software branch emulation
- Only flush initialized flush_insn_slot to avoid NULL pointer dereference
- perf: Remove incorrect odd/even counter handling for I6400
- ftrace: Fix init functions tracing
- math-emu – Add missing clearing of BLTZALL and BGEZALL emulation counters; Fix BC1EQZ and BC1NEZ condition handling; Fix BLEZL and BGTZL identification
- BPF – Add JIT support for SKF_AD_HATYPE; use unsigned access for unsigned SKB fields; quit clobbering callee saved registers in JIT code; fix multiple problems in JIT skb access helpers
- Loongson 3 – Select MIPS_L1_CACHE_SHIFT_6
- Octeon – Remove vestiges of CONFIG_CAVIUM_OCTEON_2ND_KERNEL, as well as PCIERCX, L2C & SLI types and macros; Fix compile error when USB is not enabled; Clean up platform code.
- SNI – Remove recursive include of cpu-feature-overrides.h
- Sibyte – Export symbol periph_rev to sb1250-mac network driver; fix Kconfig warning.
- Generic platform – Enable Root FS on NFS in generic_defconfig
- SMP-MT – Use CPU interrupt controller IPI IRQ domain support
- UASM – Add support for LHU for uasm; remove needless ISA abstraction
- mm – Add 48-bit VA space and 4-level page tables for 4K pages.
- PCI – Add controllers before the specified head
- irqchip driver for MIPS CPU – Replace magic 0x100 with IE_SW0; prepare for non-legacy IRQ domains; introduce IPI IRQ domain support
- NET – sb1250-mac: Add missing MODULE_LICENSE()
- CPUFREQ – Loongson2: drop set_cpus_allowed_ptr()
- Other misc changes, and code cleanups…
For further details, you could read the full Linux 4.12 changelog – with comments only – generated using
git log v4.11..v4.12 --stat. You may also want to ead kernelnewsbies’s Linux 4.12 changelog once it is up.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.