Linux 4.6 was released on Sun, 15 May 2016.

Summary: This release adds support for USB 3.1 SuperSpeedPlus (10 Gbps), the new distributed file system OrangeFS, a more reliable out-of-memory handling, support for Intel memory protection keys, a facility to make easier and faster implementations of application layer protocols, support for 802.1AE MAC-level encryption (MACsec), support for the version V of the BATMAN protocol, a OCFS2 online inode checker, support for cgroup namespaces, support for the pNFS SCSI layout, and many other improvements and new drivers.

1. Prominent features

1.1. USB 3.1 SuperSpeedPlus (10 Gbps) support

USB 3.1 specification includes a new SuperSpeedPlus protocol supporting up to 10Gbps speeds. USB 3.1 devices using the new SuperSpeedPlus protocol are called USB 3.1 Gen2 devices (note that USB 3.1 SuperSpeedPlus is not the same as Type-C or power delivery).

This release adds support for the USB 3.1 SuperSpeedPlus 10 Gbps speeds for USB core and xHCI host controller, meaning that a USB 3.1 mass storage connected to a USB 3.1 capable xHCI host should work with 10 Gbps speeds.

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

1.2. Improve the reliability of the Out Of Memory task killer

In previous releases, the OOM killer (which tries to kill a task to free memory) tries to kill a single task in a good hope that the task will terminate in a reasonable time and frees up its memory. In practice, it has been shown that it's easy to find workloads which break that assumption, and the OOM victim might take unbounded amount of time to exit because it might be blocked in the uninterruptible state waiting for an event which is blocked by another task looping in the page allocator. This release adds a specialized kernel thread oom_reaper that tries to reclaim memory by preemptively reaping the anonymous or swapped out memory owned by the OOM victim, under an assumption that such a memory won't be needed when its owner is killed anyway.

Recommended LWN article: Toward more predictable and reliable out-of-memory handling

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit

1.3. Support for Intel memory protection keys

This release adds support for a memory protection hardware feature that is available in upcoming Intel CPUs: protection keys. Protection keys allow the encoding of user-controllable permission masks in the page table entries (pte). Instead of having a fixed protection mask in the pte (which needs a system call to change and works on a per page basis), the user can map a handful of protection mask variants. User space can then manipulate a new user-accessible, thread-local register, (PKRU) with two separate bits (Access Disable and Write Disable) for each mask. This makes possible to dynamically switch the protection bits of very large amounts of virtual memory by just manipulating a CPU register, without having to change every single page in the affected virtual memory range.

It also allows more precise control of MMU permission bits: for example the executable bit is separate from the read bit. This release adds the infrastructure for that, plus it adds a high level API to make use of protection keys. If a user-space application calls: mmap(..., PROT_EXEC) or mprotect(ptr, sz, PROT_EXEC) (note PROT_EXEC-only, without PROT_READ/WRITE), the kernel will notice this special case, and will set a special protection key on this memory range. It also sets the appropriate bits in the PKRU register so that the memory becomes unreadable and unwritable. So using protection keys the kernel is able to implement 'true' PROT_EXEC : code that can be executed, but not read, which is a small security advantage (but note that malicious code can manipulate the PKRU register too). In the future, there will further work around protection keys that will offer more high level call APIs to manage protection keys.

Recommended LWN article: Memory protection keys

Code: (merge)

1.4. OrangeFS, a new distributed file system

OrangeFS is an LGPL scale-out parallel storage system. Oiginally called PVFS, it was first developed in 1993 by Walt Ligon and Eric Blumer as a parallel file system for Parallel Virtual Machine as part of a NASA grant to study the I/O patterns of parallel programs. It is ideal for large storage problems faced by HPC, BigData, Streaming Video, Genomics, Bioinformatics. OrangeFS can be accessed through included system utilities, user integration libraries, MPI-IO and can be used by the Hadoop ecosystem as an alternative to the HDFS filesystem.

Applications often don't require Orangefs to be mounted into the VFS, but the Orangefs kernel client allows Orangefs filesystems to be mounted as a VFS. The kernel client communicates with a userspace daemon which in turn communicates with the Orangefs server daemons that implement the file system. The server daemons (there's almost always more than one) need not be running on the same host as the kernel client. Orangefs filesystems can also be mounted with FUSE.

Recommended LWN article: The OrangeFS distributed filesystem

Documentation: Documentation/filesystems/orangefs.txt

Website: http://www.orangefs.org/

Code: fs/orangefs

1.5. Kernel Connection Multiplexor, a facility for accelerating application layer protocols

This release adds Kernel Connection Multiplexor (KCM), a facility that provides a message-based interface over TCP for accelerating application layer protocols. The motivation for this is based on the observation that although TCP is byte stream transport protocol with no concept of message boundaries, a common use case is to implement a framed application layer protocol running over TCP. Most TCP stacks offer byte stream API for applications, which places the burden of message delineation, message I/O operation atomicity, and load balancing in the application.

With KCM an application can efficiently send and receive application protocol messages over TCP using a datagram interface. The kernel provides necessary assurances that messages are sent and received atomically. This relieves much of the burden applications have in mapping a message based protocol onto the TCP stream. KCM also make application layer messages a unit of work in the kernel for the purposes of steerng and scheduling, which in turn allows a simpler networking model in multithreaded applications. In order to delineate message in a TCP stream for receive in KCM, the kernel implements a message parser based on BPF, which parses application layer messages and returns a message length. Nearly all binary application protocols are parseable in this manner, so KCM should be applicable across a wide range of applications.

For development plans, benchmarks and FAQ, see the merge

Recommended LWN article: The kernel connection multiplexer

API documentation: Documentation/networking/kcm.txt

Code: commit, commit, commit, commit, commit, commit, commit

1.6. 802.1AE MAC-level encryption (MACsec)

This release adds support for MACsec IEEE 802.1AE, a standard that provides encryption over ethernet. It encrypts and authenticate all traffic in a LAN with GCM-AES-128. It can protect DHCP traffic and VLANs, prevent tampering on ethernet headers. MACsec is designed to be used with the MACsec Key Agreement protocol extension to 802.1X, which provides channel attribution and key distribution to the nodes, but can also be used with static keys getting fed manually by an administrator.

Media: DevConf.cz video about MACsec

Code: commit

1.7. BATMAN V protocol

B.A.T.M.A.N. (Better Approach To Mobile Adhoc Networking) adds support for the V protocol, successor of the IV protocol. The new protocol splits the OGM protocol into two subcomponents: ELP (Echo Location Protocol), in charge of dealing with the neighbour discovery and link quality estimation; and a new OGM protocol, OGMv2, which implements the algorithm that spreads the metrics around the network and computes optimal paths. The biggest change introduced with B.A.T.M.A.N. V is the new metric: the protocol won't rely on packet loss anymore, but the estimated throughput.

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

1.8. dma-buf: new ioctl to manage cache coherency between CPU and GPU

Userspace might need some sort of cache coherency management e.g. when CPU and GPU domains are being accessed through dma-buf at the same time. To circumvent this problem there are begin/end coherency markers, that forward directly to existing dma-buf device drivers vfunc hooks. Userspace can make use of those markers through the DMA_BUF_IOCTL_SYNC ioctl.

Recommender article: Sharing CPU and GPU buffers on Linux

Code: commit

1.9. OCFS2 online inode checker

OCFS2 is often used in high-availaibility systems. OCFS2 usually converts the filesystem to read-only when encounters an error, but this decreases availability and is not always necessary. OCFS2 has the mount option ( errors=continue ), which returns the EIO error to the calling process, it doesn't remount the filesystem to read-only, and the problematic file's inode number is reported in the kernel log. This release adds a very simple in-kernel inode checker that can be used to check and reset the inode. Note that this feature is intended for very small issues which may hinder day-to-day operations of a cluster filesystem by turning the filesystem read-only, it is not suited for complex checks which involve dependency of other components of the filesystem. In these cases, the offline fsck is recommended.

The scope of checking/fixing is at the file level, initially only for regular files. The way this file checker is by writting the inode number, reported in dmesg, to /sys/fs/ocfs2/devname/filecheck/check , then read the output of that file to know what kind of error it has. If you determine to fix this inode, write the inode number to /sys/fs/ocfs2/devname/filecheck/fix , then read the file to know if the inode was able to be fixed or not. For more details see the documentation

Code: commit, commit, commit, commit, commit

1.10. Support for cgroup namespaces

This release adds support for cgroup namespaces, which provides a mechanism to virtualize the view of the /proc/$PID/cgroup file and cgroup mounts. A new clone flag, CLONE_NEWCGROUP , can be used with clone(2) and unshare(2) to create a new cgroup namespace. For a correctly setup container this enables container-tools (like libcontainer, lxc, lmctfy, etc.) to create completely virtualized containers without leaking system level cgroup hierarchy.

Without cgroup namespace, the /proc/$PID/cgroup file shows the complete path of the cgroup of a process. In a container setup where a set of cgroups and namespaces are intended to isolate processes the /proc/$PID/cgroup file may leak potential system level information to the isolated processes.

Documentation https://git.kernel.org/torvalds/c/d4021f6cd41f03017f831b3d40b0067bed54893d

Code: commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

1.11. Add support for the pNFS SCSI layout

This release adds NFSv4.1 support for parallel NFS SCSI layouts in the Linux NFS server, a variant of the block layout which uses SCSI features to offer improved fencing and device identification. With pNFS SCSI layouts, the NFS server acts as Metadata Server for pNFS, which in addition to handling all the metadata access to the NFS export, also hands out layouts to the clients so that they can directly access the underlying SCSI LUNs that are shared with the client. See draft-ietf-nfsv4-scsi-layout for more details

To use pNFS SCSI layouts, the exported file system needs to support the pNFS SCSI layouts (currently just XFS), and the file system must sit on a SCSI LUN that is accessible to the clients in addition to the MDS. As of now the file system needs to sit directly on the exported LUN, striping or concatenation of LUNs on the MDS and clients is not supported yet. On a server built with CONFIG_NFSD_SCSI , the pNFS SCSI volume support is automatically enabled if the file system is exported using the "pnfs" option and the underlying SCSI device support persistent reservations. On the client make sure the kernel has the CONFIG_PNFS_BLOCK option enabled, and the file system is mounted using the NFSv4.1 protocol version ( mount -o vers=4.1 .

Code: commit, commit, commit, commit

2. Core (various)

Futex scalability improvements: remove page lock use for shared futex get_futex_key() , which speeds up 'perf bench futex hash' benchmarks by over 40% on a 60-core Westmere. This makes anon-mem shared futexes perform close to private futexes commit

Allow to restrict the default irq affinity mask with the command line option irqaffinity commit

Process scheduler Make scheduler statistics a runtime tunable that is disabled by default. As most distributions enable CONFIG_SCHEDSTATS due to its instrumentation value, this is a nice performance enhancement. The way to enable it at runtime is using the sched_schedstats sysctl, or at boot time with the schedstats kernel option commit Add deadline scheduler bandwidth ratio to /proc/sched_debug commit NUMA: Spread memory on nodes according to CPU and memory use commit

timers Add /proc/<pid>/timerslack_ns . This file allows controlling processes to set the timerslack value on other processes. After setting the slack value on a bash process to 10 seconds, the command sleep 1 will last 10 seconds. This functionality is used by power/performance management software, they set the timer slack for other threads according to its policy (such as when the thread is designated foreground vs. background activity) in order to save power by avoiding wakeups (something Android does currently via out-of-tree patches) commit, commit Support for cross clock domain timestamps, and a new PTP_SYS_OFFSET_PRECISE PTP ioctl interface: Currently, network/system cross-timestamping is performed in the PTP_SYS_OFFSET ioctl, which represents a best effort where the latency between the capture of system time ( getnstimeofday() ) and the device time ( gettime64() driver callback), but at best, the precision of this cross timestamp is on the order of several microseconds due to software latencies, abd sub-microsecond precision is required for industrial control and some media applications. The getcrosststamp() callback and corresponding PTP_SYS_OFFSET_PRECISE ioctl allows the driver to perform better device/system correlation when for example cross timestamp hardware is available (modern Intel systems can do this for onboard Ethernet controllers using the ART counter; which has virtually zero latency between captures of the ART and network device clock). In this release, only the e1000e supports this interface commit, commit, commit, commit, commit, commit, commit

Add two new syscalls, preadv2() and pwritev2() . See the recommended LWN article: The return of preadv2()/pwritev2() and the documentation in the Linux man pages; commit, commit

quotas: Add a new quotaclt, Q_GETNEXTQUOTA . It is like Q_GETQUOTA , except that it will return quota information for the id equal to or greater than the id requested; if the requested id has no quota, it will return quota information for the next higher id which does have a quota set. This allows filesystems to do efficient iteration (today, ext4 with a hidden quota inode requires getpwent-style iterations, and for systems which have i.e. LDAP backends, this can be very slow). Also a analogue Q_XGETNEXTQUOTA command is added to complement Q_XGETQUOTA commit, commit

Add kcov code coverage. kcov provides code coverage collection for coverage-guided fuzzing (randomized testing). Coverage-guided fuzzing is a testing technique that uses coverage feedback to determine new interesting inputs to a system. A notable user-space example is AFL. kcov has been used to build syzkaller system call fuzzer, which has found 90 kernel bugs in just 2 months commit

CPU hotplug: Add sysfs state interface. The whole CPU hotplugging support is getting a complete revamp, for more details see this recommended LWN article: Rationalizing CPU hotplugging. commit

Add objtool, a tool to perform compile-time validation of the stack frame, living at tools/objtool . It enforces a set of rules on asm code and C inline assembly code so that stack traces can be reliable. This is needed for future projects. Recommended LWN article: Compile-time stack validation commit, commit

cgroup: provide cgroup_no_v1= kernel parameter. Testing cgroup2 can be painful with system software automatically mounting and populating all cgroup controllers in v1 mode. With this boot option it is posible to disable certain controllers in v1 mounts, so that they remain available for cgroup2 mounts. Example use: cgroup_no_v1=memory,cpu , or cgroup_no_v1=all commit, commit

Add support for cgroup namespaces (featured) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

GDB scripts: add lx-cmdline and lx-version commands commit, commit

kallsyms: add support for relative offsets in kallsyms address table commit

Introduce __ro_after_init to mark read-write memory regions that are used only during init as read-only after init (recommended LWN article: Post-init read-only memory) commit

3. File systems

OrangeFS New Orangefs file system (featured) fs/orangefs

Btrfs Change max_inline default from 4KB to 2K. This means that only files with a size of 2KB or smaller will be inlined in the metadata by default commit Introduce new mount option nologreplay to disable tree log replay at mount time to prevent filesystem modification and co-operate with "ro" mount option to get real readonly mount, like "norecovery" in ext and xfs. A filesystem mounted with this option cannot transition to a read-write mount via remount,rw - the filesystem must be unmounted and mounted back again if read-write access is desired commit. Also introduce mount option norecovery as an alias for nologreplay to keep "norecovery" behavior the same with other filesystems commit Introduce new mount option usebackuproot as a replacement for recovery , since the word "recovery" is too generic and may be confusing for some users commit Add GET_SUPPORTED_FEATURES to the control device ioctls. This is already possible using the sysfs files, this ioctl is for parity and convenience commit This release renames some existing key types and gives them a more generalized meaning (backward compatible), in order to allow more flexible extensions by various patchsets without key type exhaustion. Two types of persistent items are added to store status data: temporary (exists to store state of a running operation like balance) and permanent (exists if a feature is used) commit, commit, commit, commit, commit, commit

XFS Add support for the quota ioctl Q_XGETNEXTQUOTA, added in this release. It allows quotactl to quickly find all active quotas by examining the quota inode, and skipping over unallocated or uninitialized regions commit

OCFS2 OCFS2 online inode checker (featured) commit, commit, commit, commit, commit Improve Direct I/O performance commit, commit, commit, commit, commit, commit, commit, commit Add a new DEREF_DONE message and corresponding handler to fix a disorder issue. As a new message is added, so increase the minor number of dlm protocol version commit, commit, commit, commit

NFS Add NFSv4.1 support for the new pNFS SCSI layout (featured) commit, commit, commit, commit Add support for multiple NFSv4.1 callbacks in flight commit parallel nfs: Add multipath capabilities to pNFS flexfiles servers over NFSv3 commit Make NFS swap work with multipath commit

ext4 Improve xattr scalability with a mbcache rewrite commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

ext2 Improve xattr scalability with mbcache rewrite (see ext4)

F2FS Export dirty_nats_ratio in sysfs commit Introduce lifetime write IO statistics in /sys/fs/f2fs/<disk>/lifetime_write_kbytes commit Speed up handling holes in fiemap commit

FAT Add config option CONFIG_FAT_DEFAULT_UTF8 to set UTF-8 mount option utf8 by default commit

PSTORE Add support for 64-bit address space commit

AUTOFS Show pipe inode in mount options. This is required for CRIU (Checkpoint Restart In Userspace) to migrate a mount point when write end in user space is closed commit

CACHEFILES Provide read-and-reset objects- and blocks-released counters for cachefilesd to use to work out whether there's anything new that can be culled, instead of spinning commit



4. Memory management

Improve OOM reliability (featured) commit, commit, commit, commit, commit, commit, commit, commit, commit

Memory protection keys (featured) (merge)

Implementing the accelerated bulk API for SLAB allocator and add the new kfree_bulk() API commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Implement SLAB support for KASAN: commit, commit, commit, commit, commit, commit

Introduce kcompactd kernel threads. These kernel threads are per node and are intended to take the task of memory compaction from kswapd. For more details see the commits commit, commit, commit, commit

Add rodata=off kernel boot parameter to disable read-only kernel mappings commit

Add kernelcore=mirror kernel boot parameter. When mirror is specified, mirrored (reliable) memory is used for non-movable allocations and remaining memory is used for Movable pages commit, commit

Allow to configure page poisoning separately of debug utilities, because it has an use as a security measure: clearing of the pages on free provides an increase in security as it helps to limit the risk of information leaks. It's not compatible with hibernation commit, commit

SLUB: support left redzone commit

zsmalloc: add new `freeable' column to pool stat, which will tell how many pages ideally can be freed by class compaction, so it will be easier to analyze zsmalloc fragmentation commit

cgroup2: report the following cgroup stats in memory.stat : kernel stack usage commit and slab usage commit

memory hotplug: Introduce default policy for the newly added memory blocks in /sys/devices/system/memory/auto_online_blocks file with two possible values: "offline" which preserves the current behavior and "online" which causes all newly added memory blocks to go online as soon as they're added. The default is "offline" commit

dma-buf: Add ioctls to allow userspace to flush. The userspace might need some sort of cache coherency management e.g. when CPU and GPU domains are being accessed through dma-buf at the same time. To circumvent this problem, this release adds begin/end coherency markers that userspace can make use of through the DMA_BUF_IOCTL_SYNC ioctl commit

tool/vm/page-types: add commands for memory cgroup dumping and filtering commit, support swap entry commit

5. Block layer

libnvdimm: Asynchronous address range scrub. Given the capacities of next generation persistent memory devices a scrub operation to find all poison may take 10s of seconds. By making the scrub asynchronous, the system can boot faster commit, commit, commit, commit, commit, commit, commit, commit

libnvdimm: Clear poison command support. ACPI 6.1 introduces the ability to send "clear error" commands to the ACPI0012:00 device representing the root of an "nvdimm bus". Similar to relocating a bad block on a disk, this support clears media errors in response to a write commit, commit, commit

nvme: Expose the cntlid in sysfs, because for NVMe over Fabrics it can be used by systemd/udev to create link to the device commit

Device Mapper dm cache: make the 'mq' policy an alias for 'smq'. smq seems to be performing better than the old mq policy in all situations, as well as using a quarter of the memory. The tunables that were present for the old mq are faked, and have no effect. mq hould be considered deprecated now commit Add 'dm_mq_nr_hw_queues' (Number of hardware queues for request-based dm-mq devices) and 'dm_mq_queue_depth' (Queue depth for request-based dm-mq devices) module params commit Add 'dm_numa_node' module parameter, which allows to control which NUMA node the memory for DM device structures is allocated from commit

Add support for runtime changes in the number of hardware queues, something that may happen with resource provisioning commit

Enable polling support by default (a feature added in Linux 4.4. Note that this will only have an affect on driver that supply a poll function, which currently only includes nvme commit

For partitions, add new uevent parameters PARTN which specifies the partitions index in the table, and PARTNAME , which specifies the partition name of a partition device commit

Enable writeback cgroup support commit

6. Cryptography

atmel-sha - add support of sama5d2x SoCs commit

ccp: Add hash state import and export support commit, support for multiple CCPs commit

compress: remove unused pcomp interface commit

rockchip: add hash support for crypto engine in rk3288 commit

X.509: Support leap seconds commit

7. Security

Integrity Measurement Architecture Support for measuring and appraising the IMA policy itself commit Support for kexec image and initramfs commit Require the IMA policy to be signed when additional rules can be added commit

Keys: Allow to reserve area for inserting a certificate without recompiling commit

scripts/sign-file: Add support for signing a kernel module with a raw detached PKCS#7 signature/message commit

8. Tracing and perf tool

perf report/top Hierarchy histogram mode for perf top and perf report , showing multiple levels, one per --sort entry. Example, # perf top --hierarchy -s '{comm,dso},sym' commit, commit, commit Add 'L' hotkey to dynamically set the percent threshold for histogram entries and callchains, i.e. dynamicly do what the --percent-limit command line option to 'top' and 'report' does

perf mem: Add -e option for perf mem record command, to be able to specify memory event directly (for example, perf mem record -e ldlat-loads true ). Also, allow to list the available events via perf mem record -e list commit

perf record Add perf record --all-user/--all-kernel options, so that one can tell that all the events in the command line should be restricted to the user or kernel levels, i.e.: perf record -e cycles:u,instructions:u is equivalent to perf record --all-user -e cycles,instructions commit Make perf record collect CPU cache info in the perf.data file header. This information will be used in perf c2c and eventually in perf diff to allow, for instance running the same workload in multiple machines and then when using 'diff' show the hardware difference. It's displayed under header info with -I option, perf report --header-only -I commit Improved support for Java, using the JVMTI agent library to do jitdumps that then will be inserted in synthesized PERF_RECORD_MMAP2 events via perf inject --jit pointed to synthesized ELF files stored in ~/.debug and keyed with build-ids, to allow symbol resolution and even annotation with source line info. For more details see the commits commit, commit, commit, commit

perf script/trace Decode data_src values (e.g. perf.data files generated by perf mem record ) in perf script commit Improve support to data_src, weight and addr fields commit, commit

perf stat Shows shadow metrics (insn per cycle, etc) in interval mode too commit Enable metrics printing in --per-core / --per-socket mode commit Implement --metric-only mode to only print metrics commit, commit Implement CSV metrics output commit

perf BPF Print bpf-output events in perf script commit Add API to set values of map entries in a BPF object, be it individual map slots or ranges commit Support converting data from bpf events in 'perf data' commit, commit, commit, commit, commit Introduce support for the bpf-output event. BPF programs can output data to a perf ring buffer through that new type of perf event, and perf can create events of that type, and a perf user can use the following cmdline to receive output data from BPF programs perf record -a -e bpf-output/no-inherit,name=evt/ -e ./test_bpf_output.c map:channel.event=evt/ ls / commit Print content of bpf-output event in perf trace commit

perf config: Add --system and --user options to select which config file is used. --system means $(sysconfdir)/perfconfig and --user}} means {{{$HOME/.perfconfig . If none is used, both are read commit

perf: Enable to set config and setting names for legacy cache events commit

perf: Enable to set config terms for raw and numeric events commit

9. Virtualization

Xen netback: implement dynamic multicast control commit balloon: Add support for the newly added kernel memory auto onlining policy commit hvc_xen: add earlycon support commit

virtio vhost_net: basic polling support. The maximum time spent on polling are specified through a new kind of vring ioctl commit virtio_balloon: export 'available' memory to balloon statistics commit virtio_net: add ethtool support for set and get of settings commit virtio_pci: Use the DMA API if enabled commit virtio_ring: Support DMA APIs commit, commit

Hyper-V KVM: Implement Hyper-V hypercall userspace exit KVM_EXIT_HYPERV_HCALL for Hyper-V VMBus hypercalls (postmsg, signalevent) to handle these hypercalls by QEMU commit hv_netvsc: add ethtool support for set and get of settings commit, add software transmit timestamp support commit Add a new driver which exposes a root PCI bus whenever a PCI Express device is passed through to a guest VM under Hyper-V. The device can be single- or multi-function commit vmbus: Support kexec on ws2012 r2 and above commit

pvqspinlock: Enable slowpath locking count tracking commit

firmware: introduce sysfs driver for QEMU's fw_cfg device commit

10. Networking

11. Architectures

ARM Device tree sources BCM5301X: Add DT for D-Link DIR-885L commit Add minimal Support for Logic PD DM3730 SOM-LV commit Add dts for Uniwest evi commit artpec: add Artpec-6 development board dts commit, commit Add Engicam IMX6 Q7 initial support commit imx: Add basic dts support for imx6qp SOC commit, imx6qp-sabreauto commit and imx6qp-sabresd commit; add support for Toradex Apalis iMX6Q/D SoM commit, add support for Toradex Ixora carrier board commit, add Advantech BA-16 Qseven module commit, add support for Advantech/GE B450v3 commit, add support for Advantech/GE B650v3 commit, add support for Advantech/GE B850v3 commit, add support for Advantech/GE Bx50v3 commit keystone: Add Initial DT support for TI K2G SoC family commit kirkwood: add device tree for buffalo linkstation ls-qvl commit mediatek: add MT7623 basic support commit orion5x: add device tree for buffalo linkstation ls-gl commit rockchip: add to support emac for rk3036 SoCs commit sun7i: Add dts file for the lamobo-r1 board commit sun8i: Add A83T HomletV2 Board by Allwinner commit, commit, add device tree for Cubietruck Plus commit sunxi: Introduce Allwinner for A83T support commit uniphier: add PH1-Pro4 Ace board support commit, add PH1-Pro4 Sanji board support commit Add DTS file to support the Nexus7 2013 (flo) device. commit Add DT binding for the Marvell Armada 3700 SoC family commit stm32: Supply a DTS file for the STM32F469 Discovery board commit amd: Add AMD XGBE device tree file commit, add support for AMD/Linaro 96Boards Enterprise Edition Server board commit, add support for new AMD Overdrive boards commit bcm2835: dt: Add Raspberry Pi Model A commit DRA722: Add ID detect for Silicon Rev 2.0 commit debug: add support for Palmchip BK-310x UART commit mx25: Add basic suspend/resume support commit coresight: etm-perf: new PMU driver for ETM tracers commit, arm-cci: CoreLink CCI-550 PMU driver commit

ARM64 Device tree source Broadcom Vulcan support commit Add msm8996 SoC and MTP board support commit Add support for Juno r2 board commit Add .dts for GICv3 Foundation model commit Add the Alpine v2 EVP commit Add the Marvell Armada 3700 family and a development board commit marvell: add Device Tree files for Armada 7K/8K commit amlogic: Add Device Trees for Tronsmart Vega S95 Pro, Meta and Telos TV boxes commit Add mvebu architecture entry commit Introduce Allwinner SoC config option commit Enable Amlogic Meson GXBaby platform commit add Alpine SoC family commit perf: Add Cavium ThunderX PMU support commit Add support for Half precision (16bit) floating point/asimd data processing instructions present in ARM8.2 extensions commit KVM: VHE support so that we can run the kernel at EL2 on ARMv8.1 systems commit Add PMU support for guests commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit KVM: Introduce per-vcpu kvm device controls commit Add support for building vmlinux as a relocatable PIE binary commit Add support for ASLR commit, commit, commit Allow kernel Image to be loaded anywhere in physical memory commit Enable CONFIG_DEBUG_RODATA by default commit Add support for User Access Override, a new ARMv8.2 feature which allows the unprivileged load and store instructions to be overridden to behave in the normal way commit Implement ACPI parking protocol commit Add ubsan support commit Mark vDSO code as read-only commit Initial machine port for artpec-6 SoC commit Add support for Exynos PMU driver commit

X86 Enable new AVX-512 features commit Always enable CONFIG_DEBUG_RODATA and remove the configuration option commit Enable full randomization on i386 and X86_32 (until this release, only the stack and the executable are randomized but not other mmapped files commit If the CPU feature INVPCID is available, use it to flush global mappings. Also add a 'noinvpcid' option to turn it off commit, commit system trace modules: Add heartbeat stm source device. It sends periodic heartbeat messages to trace hosts over STM devices commit Add Intel Memory Bandwith Monitoring. Memory bandwidth monitoring (MBM) provides OS/VMM a way to monitor bandwidth from one level of cache to another. The current patches support L3 external bandwidth monitoring. It supports both 'local bandwidth' and 'total bandwidth' monitoring for the socket. Local bandwidth measures the amount of data sent through the memory controller on the socket and total b/w measures the total system bandwidth commit, commit, commit, commit Add an AMD accumlated power reporting mechanism for the Family 15h, Model 60h processor that can be used to calculate the average power consumed by a processor during a measurement interval commit Add support for new IOMMU performance events based on the information in table 74 of the AMD I/O Virtualization Technology (IOMMU) Specification (Document Id: 4882, Rev 2.62, Feb 2015) commit intel/rapl: Add missing Broadwell models commit Intel Trace Hub: Add Apollo Lake SOC support commit, add Broxton SOC support commit x86 Platforms toshiba_acpi: add a module parameter to disable hotkeys registration commit, add support for cooling method feature commit, commit dell-wmi: support new hotkeys on the XPS 13 9350 (Skylake) commit, enable receiving WMI events on Dell Vostro V131 commit, properly process Dell Instant Launch hotkey commit, support Dell Inspiron M5110 commit alienware-wmi: add initial support for alienware graphics amplifier. commit, add support for deep sleep control. commit, add support for new platform: X51-R3 commit, add support for two new systems: ASM200 and ASM201. commit hp_accel: Add support for HP ProBook 440 G3 commit fujitsu-laptop: Support radio toggle button commit

POWERPC Enable page parallel initialisation (for 4GB of memory, boot time is improved by 59%) commit EEH Support for SRIOV VFs commit, commit ftrace: Add support for ftrace ABI -mprofile-kernel (available for ppc64 on gcc > 4.8.5) commit, commit mpc85xx: Add CPU hotplug support for E6500 commit, add hotplug support on E5500 and E500MC cores commit perf: hv-24x7: Display domain indices in sysfs ( /sys/bus/event_source/devices/hv_24x7/interface/domains ) commit perf: Export the generic hardware and cache perf events for Power8 to sysfs, so users can precisely determine the PMU event monitored by the generic event commit powernv: Remove support for p5ioc2 commit Add RCPM driver commit xmon: Add xmon command ( P ) to dump process/task information similar to ps: task pointer, kernel stack pointer, PID, PPID, state (interpreted), CPU where (last) running, and command commit Enable VFIO device for powerpc commit perf: Port perf kvm stat to powerpc commit, commit cxl: Support added to the CXL driver for running on both bare-metal and hypervisor systems commit, commit, commit, commit, commit, commit, commit, commit, commit, commit KVM: Add support for 64bit TCE windows commit Add support for multiple-TCE hypercalls for user space emulated devices such as IBMVIO devices or emulated PCI. These calls allow adding multiple entries (up to 512) into the TCE table in one call which saves time on transition between kernel and user space commit Book3S HV: Add tunable to control H_IPI redirection commit Intel MIC Add VOP (Virtio over PCIe) driver support. The VOP driver allows virtio drivers, e.g. net, console and block drivers, on the card connect to user space virtio devices on the host commit, commit, commit, commit, commit, commit, commit, commit

S390 Add a user space interface (device and ioctl) to issue call logical-processor instructions commit Add DEBUG_RODATA support commit Optimized xor routing using the XC instruction commit oprofile: add z13/z13s model numbers commit

XTENSA Add Three Core HiFi-2 MX Variant. commit Make fake NMI configurable commit Support hardware breakpoints/watchpoints commit

SH Add device tree support and generic board using device tree commit

MICROBLAZE Support generic Xilinx AXI PCIe Host Bridge IP driver commit

SPARC New driver adds support for Logical Domains vSwitch (ldmvsw). The ldmvsw driver operates on Oracle systems running SPARC Linux in a Logical Domains environment (typically in the control domain). The ldmvsw driver is very similar in function to the existing sunvnet, it creates a network interface for each "vsw-port" node found in the Machine Description (MD) of a service domain. These nodes correspond to ports on a vswitch created by the logical domains manager. The created network interface(s) can be used by bridge/vswitch software (such as the Linux bridge or Open vSwitch) to provide guest domain(s) with network interconnectivity or connectivity to a physical network commit Recognize and support Sonoma CPU type commit

ARC Add PCI support commit ioremap: Support dynamic peripheral address space commit

M68KNOMMU Remove obsolete 68360 support commit

H8300 Switch EARLYCON commit

ALTERA Add Altera L2 cache and OCRAM support commit



12. Drivers

12.1. Graphics

i915 Enable Panel Self Refresh by default on Haswell and Broadwell. commit; and Valleyview and Cherryview. commit Enable FrameBuffer Compression by default on Haswell and Broadwell commit bxt: update list of PCIIDs commit skl: Add missing SKL ids commit Add GuC Addition Data Structure. The ADS itself is a chunk of memory created by driver to share with GuC. The GuC firmware uses this for various purposes commit, commit, commit, commit

amdgpu/radeon ACP support for i2s audio support commit New powerplay sysfs interface for manually selecting clocks commit, commit, commit, commit

vmwgfx Add Support for DX10 gen mipmaps commit Add suggested screen x and y connector properties as a generic way to tell a display manager about the GUI layout commit

exynos Add DRM_EXYNOS_GEM_MAP ioctl commit Support exynos5422 mipi-dsi commit Add exynos5420 support for FIMD commit

Nouveau Signed firmware support from NVidia for GM20x cards - adds acceleration for Maxwell GPUs commit, commit, commit GM200 support commit GM20B clock driver support commit GM20B volt driver commit hwmon: add power consumption commit iccsense: implement for ina209, ina219 and ina3221 commit

imx Fence support commit

msm Adreno 430 support commit, commit HDMI support for 8996 (snapdragon 820) commit, commit Timestamp queries support commit

rockchip Add support for Innosilicion HDMI commit

rcar-du Add R-Car Gen3 support commit Add R8A7795 device support commit Add VSP1 compositor support commit, commit, commit Add tri-planar memory formats support commit

omapdrm Support double-pixel mode commit HDMI5: Add interlace support commit HDMI: support double-pixel pixel clock commit Implement dma_buf import commit Support double-pixel commit

tilcdc dma-buf support commit pinctrl support commit

vc4 Add support for YUV planes. commit Add support for scaling of display planes. commit Improve throughput by pipelining binning and rendering jobs commit

Add support for ARM's HDLCD controller. The HDLCD controller is a display controller that supports resolutions up to 4096x4096 pixels. It is present on various development boards produced by ARM Ltd and emulated by the latest Fast Models from the company commit

sti Atomic support for planes commit Add debugfs entries for CURSOR plane commit, DVO connector commit, GDP planes commit, HDA connector commit, HDMI connector commit, HQVDP plane commit, MIXER crtc commit, TVOUT encoders commit, VID plane commit, fps_show/fps_get mechanism for planes commit

panel: simple: Add URT UMSH-8596MD-xT panels support commit, support for LG lp120up1 panel commit

Add a drm_aux-dev module for reading/writing dpcd registers. commit

Introduce pipe color correction properties. This introduces optional properties to enable color correction at the pipe level commit

Apple GMUX vga switcheroo support commit, commit

12.2. Storage

sata_via: Implement hotplug for VT6421 commit

libata: support AHCI on OCTEON platform commit

ahci_mvebu: add support for Armada 3700 variant commit

ahci: Add runtime PM support for the host controller commit

AHCI: Remove obsolete Intel Lewisburg SATA RAID device IDs commit

ata: add AMD Seattle platform driver commit

SCSI Add 'access_state' and 'preferred_path' sysfs attributes commit stex: Add S3/S4 support commit, add hotplug support commit, add support to Pegasus series commit qla2xxx: Add debugfs node for target sess list /sys/kernel/debug/qla2xxx/qla2xxx_31/tgt_sess commit, add support for Private link statistics counters. commit, add support for buffer to buffer credit value for ISP27XX commit, add support for online flash update for ISP27XX commit, enable T10-DIF for ISP27XX commit megaraid_sas: Dual queue depth support commit, IO throttling support commit, introduce module parameter for SCSI command timeout commit, Reply Descriptor Post Queue (RDPQ) support commit, task management support commit mpt3sas: Add support for configurable Chain Frame Size commit, added smp_affinity_enable module parameter. commit, added support for high port count HBA variants. commit hisi_sas: add v1 hw ACPI support commit aacraid: SCSI blk tag support commit hpsa: add SMR drive support commit

nvmem: NXP LPC18xx EEPROM memory NVMEM driver commit

nvmem: Add Mediatek EFUSE driver commit

cpqarray: remove it from the kernel commit

NVMe: Expose ns wwid through single sysfs entry commit

12.3. Staging

fsl-mc: Added generic MSI support for FSL-MC devices commit, commit, commit

lustre: Dynamic LNet Configuration (DLC) commit, commit, commit, commit, commit, commit, commit, commit

iio: ad7192: Add support for the AD7193 commit

Staging: fbtft: add ssd1305 controller support commit

Staging: fbtft: add ssd1325 controller support commit

iio: Remove periodic RTC trigger driver commit

Delete STE RMI4 hackish driver commit

Staging: dgap: Remove obsolete driver commit

12.4. Networking

ixgbe: add support for tc_u32 offload commit

can ifi: Add IFI CANFD IP support commit rcar_can: Add r8a7795 support commit sja1000: of: add compatibility with Technologic Systems version commit

e1000e: Adds hardware supported cross timestamp on e1000e nic commit, initial support for KabeLake commit

igb: Add support for VLAN promiscuous with SR-IOV and NTUPLE commit, add support for generic Tx checksums commit, enable use of "bridge fdb add" to set unicast table entries commit

igbvf: Add support for generic Tx checksums commit

thunderx: Add TX timeout and RX buffer alloc failure stats. commit

Add mediatek ethernet driver for MediaTek SoCs from the MT7623 family commit, commit

mlx5: QoS IEEE dcbnl and VxLAN offloads support for Mellanox 100G mlx5 driver commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit; implement modify HCA vport command commit ; add hardware offload support for cls_flower commit, commit, commit, commit, commit, commit, introduce offload arithmetic hardware capabilities commit, add ConnectX-5 to list of supported devices commit

i40e: Add new device IDs for X722 commit, SCTP offload support commit, allow channel bonding of VFs commit, add 100Mb ethtool reporting commit, add new proxy-wol bit for X722 commit, add a new "set switch config" admin queue command and the new Cisco VXLAN-GPE cloud tunnel type for the admin queue commands commit, commit, commit, commit, add counter for arq overflows commit, add debugfs output for dump VSI commit, drop unused debugfs file "dump" commit, add support for IPv4 encapsulated in IPv6 commit, support segmenting UDP tunnels with outer checksums enabled commit, add functions to blink led on 10GBaseT PHY commit, support coalesce getting by queue commit, support coalesce setting by queue commit, add adminq commands for Rx CTL registers commit, add support for client interface for IWARP driver commit

i40evf: Add support for IPv4 encapsulated in IPv6 commit, support segmenting UDP tunnels with outer checksums enabled commit, support packet split receive commit

Add i40iw driver for Intel Ethernet X722 iWARP devices commit

dsa: mv88e6xxx: support VLAN filtering commit

macb: add wake-on-lan support via magic packet commit

mvneta: add support for hardware buffer management commit, commit

phy Add SGMII support for Marvell 88E1510/1512/1514/1518 commit bcm7xxx: Add entries for Broadcom BCM7346 and BCM7362 commit, dp83848: Add PHY ID for TI version of DP83848C commit, add support for TI TLK10x Ethernet PHYs commit spi_ks8995: add support for MICREL KSZ8795CLX commit, add support for resetting switch using GPIO commit

libertas: add an cfg80211 interface for powersaving commit

mwifiex: add debugfs file (/sys/kernel/debug/mwifiex/mlan0/verext) to read chip information commit, adds support for waking up the device on finding better RSSI commit, add schedule scan support commit, add support for wakeup when configured network is detected commit, commit, enable pcie MSIx interrupt mode support commit, firmware dump support for w8997 chipset commit

mlx4: Implement devlink interface commit, commit

mlxsw: Implement devlink interface commit, commit

lan78xx: add ethtool set & get pause functions commit

iwlwifi: Add P2P client snoozing commit, support setting minimum quota (for a single virtual interface) from debugfs commit, add 9000 series multi queue rx DMA support commit, commit, commit, commit, add run-time power management for PCIe commit, commit, allow to disable beacon filtering for AP/GO interface from debugfs commit, add CT-KILL notification commit, allow to limit the A-MSDU from debugfs commit, enable VHT MU-MIMO for supported hardware commit, add new configuration to enable MSIX commit, add disable_11ac module parameter to disable VHT capabilities commit, add ctdp operations to debugfs commit, add device IDs for the 8265 device commit

brcmfmac: add support for 14e4:4365 PCI ID with BCM4366 chipset commit, add 802.11w management frame protection support commit, add support for the PCIE 4366c0 chip commit, add wowl gtk rekeying offload support commit, remove pcie gen1 support commit

bnx2x: Add Geneve inner-RSS support commit, add support for single-port DCBx commit, extend DCBx support commit

bnxt_en: Add installed-package firmware version reporting via Ethtool GDRVINFO commit, add port statistics support. commit, enable AER support. commit, include hardware port statistics in ethtool -S. commit, commit

ath10k: start adding support for qca4019 chip (merge), debugfs support for Per STA total rx duration commit, enable periodic peer stats update commit, commit, implement basic support for new tx path firmware commit

ath9k_htc: add device ID for Toshiba WLM-20U2/GN-1080 commit

amd-xgbe: Disable VLAN filtering when in promiscuous mode commit, enable/disable PFC per traffic class commit

Bluetooth btusb: Add new AR3012 ID 0489:e095 commit, add a new AR3012 ID 04ca:3014 commit, add new AR3012 ID 13d3:3395 commit hci_bcm: Add BCM2E55 ACPI ID used in Lenovo ThinkPad Tablet 8 commit, add BCM2E7C ACPI ID commit, add new ACPI ID for bcm43241 commit hci_uart: Add Intel/AG6xx support commit, add diag and address support for Intel/AG6xx commit

pasemi_mac: Replace LRO with GRO commit

qed: Add infrastructure support for hardware GRO commit, add support for HW attentions commit, add vlan filtering offload support commit, commit

qede: Add slowpath/fastpath support and enable hardware GRO commit

qmi_wwan: Added support for Gemalto's Cinterion PHxx WWAN interface commit, add "D-Link DWM-221 B1" device id commit

rocker: implement get settings mode command commit

rt2x00: add new rt2800usb device Buffalo WLI-UC-G450 commit

rtl8xxxu: Add 8723bu support (merge)

sfc: implement IPv6 NFC (and IPV4_USER_FLOW) commit

iw_cxgb3: support for iWARP port mapping commit

xgene: Add support for Classifier engine commit, add support for RSS commit, add support for multiple queues commit

cxgb4: TOS support (also for iw_cxgb4) commit, add pci device id for chelsio t520-cr adapter commit, add iSCSI DDP page pod manager commit, large receive offload support commit

RDMA/nes: Replace LRO with GRO commit

RDMA/ocrdma: Support RoCE-v2 in the RC path commit, support RoCE-v2 in the UD path commit, support user AH creation for RoCE-v2 commit

bgmac: support Ethernet device on BCM47094 SoC commit

Infiniband ipoib: Add support for configuring VFs commit mlx5: adds user-space support for memory windows allocation and deallocation commit, add support for CSUM in RX flow commit, add support for don't trap rules commit, add support for setting source QP number commit, add support for re-registration of MRs commit, implement UD QP offloads for IPoIB in the TX flow commit qib: Support query gid in rdmavt commit



12.5. Audio

hda: Add new GPU codec ID 0x10de0082 to snd-hda commit, add PCI ID for Intel Broxton-T commit, add AMD Polaris-10/11 AZ PCI IDs with proper driver caps commit

usb-audio: adds a new option "quirk_alias" to snd-usb-audio driver for allowing user to pass the quirk alias list commit

Remove deprecated AU1X00 AC97 driver commit

ASoC Add max9867 codec driver commit Add max98926 codec driver commit Intel: Atom: add support for CHT w/ RT5640 commit Intel: Bxtn: Add Broxton PCI ID commit Intel: boards: Enable HDMI and DP on SKL nau88l25_max98357 machine commit, enable HDMI and DP on nau88l2 machine commit, enable HDMI and DP on skl_rt286 machine commit cht_bsw_rt5645: Enable jack detection commit fsl-asoc-card: add cs4271 and cs4272 support commit hdac_hdmi: Add broxton device ID commit, add jack reporting commit, enable DP1.2 and all converters/pins commit mediatek: Add machine driver for ALC5650 codec commit, add machine driver for rt5650 rt5514 codec commit omap-hdmi-audio: Support for DRA7xx family commit pcm179x: Add I2C interface driver commit, support continuous rates commit qcom: add mic support commit, apq8016-sbc: add mic support commit rsnd: SRC TIMSEL support for Capture commit, add CTU support commit, commit rsrc-card: add convert channels support commit rt5514: add rt5514 codec driver commit rt5616: Add support sample rate to 192KHz commit sunxi: Add support for the SPDIF block commit, add sun4i SPDIF transceiver commit



12.6. Tablets, touch screens, keyboards, mouses

Add MELFAS MIP4 Touchscreen driver commit

Add BYD PS/2 touchpad driver commit

melfas_mip4 - add hw_version sysfs attribute commit

synaptics-rmi4: add I2C transport driver commit, add SPI transport driver commit, add support for 2D sensors and F11 commit, add support for F12 commit, add support for F30 commit, add support for Synaptics RMI4 devices commit

touchscreen: Add imx25 TCQ driver commit

xpad: add Mad Catz FightStick TE 2 VID/PID commit

wacom: Add support for DTK-1651 commit

12.7. TV tuners, webcams, video capturers

Add support for Avermedia AverTV Volar HD 2 (TD110) commit

Add support for Terratec Cinergy S2 Rev.4 commit

UVC: Add support for R200 depth camera commit

add media controller support to videobuf2-dvb commit

af9035: add support for 2nd tuner of MSI DigiVox Diversity commit

dib8000: Add support for Mygica/Geniatech S2870 commit

dvb-usb-dvbsky: add new product id for TT CT2-4650 CI commit

dw2102: Add support for Terratec Cinergy S2 USB BOX commit, add support for TeVii S662 commit

em28xx: add media controller support commit, add support for Terratec Grabby REC button commit, add support for Terratec Grabby Record led commit

ti-vpe: Add CAL v4l2 camera capture driver commit

mn88473: move out of staging commit

mt9v011: add media controller support commit

pwc: Add USB id for Philips Spc880nc webcam commit

saa7134: Add support for Snazio TvPVR PRO commit, add DMABUF support commit, add media controller support commit

soc_camera: rcar_vin: Add ARGB8888 caputre format support commit

soc_camera: rcar_vin: Add R-Car Gen3 support commit

soc_camera/mx2_camera.c: move to staging in preparation, for removal commit

soc_camera/mx3_camera.c: move to staging in preparation, for removal commit

soc_camera/omap1: move to staging in preparation for removal commit

tvp5150: Add pixel rate control support commit, add tvp5151 support commit, add HW input connectors support commit

vsp1: Add VSP+DU support commit, add support for the R-Car Gen3 VSP2 commit, add tri-planar memory formats support commit

vivid: support new multiplanar YUV formats commit

v4l2-ctrls: add V4L2_CID_DV_RX/TX_IT_CONTENT_TYPE controls commit

v4l: Add YUV 4:2:2 and YUV 4:4:4 tri-planar non-contiguous formats commit

12.8. USB

USB 3.1 SuperSpeedPlus support (featured) commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

Add a new USBDEVFS_DROP_PRIVILEGES ioctl, used to relinquish the ability to do certain operations which are considered to be privileged on a usbfs file descriptor. This includes claiming arbitrary interfaces, resetting a device on which there are currently claimed interfaces from other users, and issuing USBDEVFS_IOCTL calls. The ioctl parameter is a 32 bit mask of interfaces the user is allowed to claim on this file descriptor. A simple utility to test the ioctl, is located at Documentation/usb/usbdevfs-drop-permissions.c commit

Add support for usbfs zerocopy commit

option: add "D-Link DWM-221 B1" device id commit

serial: cp210x: Adding GE Healthcare Device ID commit

serial: ftdi_sio: Add support for ICP DAS I-756xU devices commit

uas: add full support for RESPONSE IU commit

dwc2: Add support for Lantiq ARX and XRX SoCs commit

dwc3: Enable SuperSpeedPlus commit

renesas_usbhs: add R-Car Gen3 power control commit

usbtmc: Implement support for the USB488 defined READ_STATUS_BYTE ioctl, and SRQ notifications with fasync and poll/select in order to be able to synchronize with variable duration instrument operations. Also add convenience ioctl to return all device capabilities, and ioctls for other USB488 requests commit commit, commit, commit, commit

HID Support for CMedia CM6533 HID audio jack controls commit logitech-hidpp: Force feedback support for the Logitech G920 commit microsoft: Add ID for MS Wireless Comfort Keyboard commit, add support for 3 more devices commit sony: Add nyko core controller support commit

serial: cp210x: add ID for Link ECU commit, add Straizona Focusers device ids ECU commit

12.9. Serial Peripheral Interface (SPI)

Add Analog Devices AXI SPI Engine controller support commit

master driver to enable RTC on ICPDAS LP-8841 commit

pxa2xx: Add support for Intel Broxton B-Step commit, commit

spi-pxa2xx-pci: Add ID and driver type for WildcatPoint PCH commit

spi-ti-qspi: add mmap mode read support commit

12.10. Watchdog

Add watchdog timer support for the WinSystems EBC-C384 commit

Add a device driver (mei_wdt) for the Intel MEI iAMT watchdog, which is an OS Health (Hang/Crash) watchdog commit, commit, commit

Add NI 903x/913x watchdog driver (ni903x_wdt) commit

pnx4008: add support for soft reset commit, support "cmd" from userspace commit

w83627hf: Added NCT6102D support. commit

Introduce ARM SBSA watchdog driver commit

12.11. Serial

bcm2835: add driver for bcm2835-aux-uart commit

mvebu-uart: initial support for Armada-3700 serial port commit

serial-uartlite: add earlycon support commit

8250: Add software emulated RS485 support commit; enabñe suspend/resume for 8250_of driver commit, add omap8250 earlycon commit, add earlycon support for Tegra commit

sh-sci: Add CONFIG_SERIAL_EARLYCON support commit, add support for SCIFA/SCIFB variable sampling rates commit

xuartps: Enable OF earlycon support commit

Remove 68328 driver commit

12.12. ACPI, EFI, cpufreq, thermal, Power Management

tools/power turbostat Add --out option for saving output in a file commit Initial support for: BXT commit, KBL commit, SKX commit Show column GFX%rc6 (comes from counter /sys/class/drm/card0/power/rc6_residency_ms) commit, column GFXMHz (snapshot of attribute /sys/class/graphics/fb0/device/drm/card0/gt_cur_freq_mhz) commit, IRQs per CPU (difference between /proc/interrupts shapshots)commit

Add Mediatek thermal controller support commit

cpuidle: intel_idle: Add SKX and KBL support commit, commit, support for Intel Xeon Phi Processor x200 Product Family commit

cpufreq intel_pstate: Enable HWP by default commit powernv: Add sysfs attributes to show throttle stats commit

ACPI Add support to load ACPI tables via initrd commit Add device HID for future AMD UART controller commit Add support for ACPI 6.0 ACPI0010 processor container, an abstract container used to represent CPU topology commit AMBA bus probing support commit Allow memory error injection to NVDIMM commit



12.13. Real Time Clock (RTC)

Implement a sysfs interface for clock offset. Clock offset may be set and read in decimal parts per billion attribute is /sys/class/rtc/rtcN/offset commit

Add Alphascale asm9260 driver commit

Add driver for RX6110SA real time clock commit

Add PIC32 real time clock driver commit

abx80x: handle autocalibration commit

ds1307: add clock provider support for DS3231 commit, add temperature sensor support for ds3231 commit

max77686: Add max77802 support commit, add support for MAX20024/MAX77620 RTC IP commit

pcf2127: add pcf2129 device id commit, add support for spi interface commit

rv3029: Add "rv3029" I2C device id commit, add thermometer hwmon support commit

Remove Maxim 77802 driver commit

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

core: Add support for active-discharge configuration commit

act8945a: add regulator driver for ACT8945A commit

axp20x: Support new AXP223 PMIC commit

hi655x: enable regulator for hi655x PMIC commit

lp872x: Add enable GPIO pin support commit

max77620: Add support to configure active-discharge commit

max77620: add regulator driver for max77620/max20024 commit

tps65912: Add regulator driver for the TPS65912 PMIC commit

power: act8945a: add charger driver for ACT8945A commit

power: Add types for USB Type C and PD chargers commit

powercap: intel_rapl: Add missing Haswell model commit

12.15. Rapid I/O

Add mport character device driver to provide user space interface to basic RapidIO subsystem operations commit

Add mport removal support commit

Add outbound window configuration support commit

tsi721: add mport removal support commit, add option to configure direct mapping of IB window commit, add outbound windows mapping support commit

net/rionet: add capability to change MTU commit, add mport removal handling commit

12.16. Pin Controllers (pinctrl)

Add STM32 MCUs support commit

mediatek: Add Pinctrl/GPIO/EINT driver for MT7623 commit and for mt2701 commit

pinctrl-pic32: Add PIC32 pin control driver commit

qcom: Add IPQ4019 pinctrl support commit

rockchip: add support for the rk3399 commit

sh-pfc: r8a7795: Add CAN FD support commit, add CAN support commit, add PWM support commit, add USB2.0 host support commit, add support for INTC-EX IRQ pins commit

sunxi: Add H3 R_PIO controller support commit

Add driver for Allwinner A64 SoC commit

12.17. Memory Technology Devices (MTD)

atmel_nand: Support PMECC on SAMA5D2 commit, support 32-bit ECC strength commit

qcom_nand: Add driver for the Qualcomm NAND controller, found in SoCs like IPQ806x, MSM7xx, MDM9x15 series commit

pxa3xx_nand: add support for partial chunks commit

sunxi: add randomizer support commit

spi-nor: Add support for s25fl116k commit, add TB (Top/Bottom) protect support commit, fsl-quadspi: add support for layerscape commit, fsl-quadspi: add support for ls1021a commit, support lock/unlock for a few Winbond chips commit

12.18. Multi Media Card

core: enable mmc host device to suspend/resume asynchronously commit

mediatek: add SD write protect support commit

sdhci-acpi: add QCOM controllers commit

sdhci-iproc: add bcm2835 support commit, add support and PCI IDs for more Broxton host controllers commit

sdhci-pic32: Add PIC32 SDHCI host controller driver commit

sdhi: Add r8a7795 support commit

sunxi: Support 8 bit eMMC DDR transfer modes commit, support MMC_DDR52 timing modes commit, support vqmmc regulator commit

12.19. Industrial I/O (iio)

Add IIO support for the DAC on the Apex Embedded Systems STX104 commit

adc Add TI ADS1015 ADC driver support commit Add imx25-gcq ADC driver commit Move mxs-lradc out of staging commit Add support for ADC0831/ADC0832/ADC0834/ADC0838 chips commit mcp3422: Add support for MCP3425 commit

add ad5761 DAC driver commit

chemical: add Atlas pH-SM sensor support commit

dac: mcp4725: Add basic support for MCP4726 commit

dac: vf610_dac: Add IIO DAC driver for Vybrid SoC commit

health: Add driver for the TI AFE4403 heart monitor commit, add driver for the TI AFE4404 heart monitor commit

hmc5843: Add attributes for measurement config of bias current commit, move out of staging commit

imu: inv_mpu6050: Add SPI support for MPU6000 commit, add calibration offset support commit

mma8452: add freefall detection for Freescale's accelerometers commit, add support for MMA8451Q commit

potentiometer: add TI tpl0102 support commit

pressure: mpl115: support MPL115A1 commit

pressure: ms5611: Add triggered buffer support commit

si7005: add support for Hoperf th02 commit

si7020: add support for Hoperf th06 commit

ad5064: Add AD5625/AD5627/AD5645/AD5647/AD4665/AD5657 support commit

ad5064: Add support for ltc2617 and similar devices commit

ad5064: Structural changes to support LTC2617 commit

adc:at91_adc8xx: introduce new atmel adc driver commit

pressure:ms5611: power regulator support commit

12.20. Multi Function Devices (MFD)

lpss: Add PCI IDs for Intel Broxton B-Step platform commit

max77686: Add max77802 to I2C device ID table commit

mt6397: Add MT6323 support to MT6397 driver commit

tps65086: Add driver for the TPS65086 PMIC commit

tps65912: Add driver for the TPS65912 PMIC commit, commit

12.21. Inter-Integrated Circuit (I2C)

designware: Add device HID for future AMD I2C controller commit

iproc: Support larger TX transfer commit

mt65xx: add 4GB DMA mode support in i2c driver commit

mux: demux-pinctrl: add driver commit

qup: Add V2 tags support commit, add bam dma capabilities commit

xiic: Implement power management commit

ismt: Add Intel DNV PCI ID commit

rk3x: add support for rk3228 commit

12.22. Hardware monitoring (hwmon)

Add LTC2990 sensor driver commit

Create an NSA320 hardware monitoring driver commit

adm1275: Add support for ADM1278 commit

ntc_thermistor: Add support for ncpXXxh103 commit

scpi: add energy meter support commit

12.23. General Purpose I/O (gpio)

The GPIO stack has been changed to make the GPIO drivers real devices. For this reason, a new userspace ABI has been created: the GPIO character device. This release takes small steps, so first a pure *information* ABI has been added, along with the tool "lsgpio" that will list all GPIO devices on the system and all lines on these devices. GPIOs can now be properly discovered from userspace (but not be used from userspace). The old sysfs ABI is still available opt-in (and can be used in parallel) and will be maintained around for the foreseeable future, but it will not be extended

tools/gpio: create GPIO tools, adds a single example program (lsgpio) to list the GPIOs commit

Add a userspace chardev ABI for GPIOs commit, commit, commit, commit

gpio-f7188x: Add F81866 GPIO supports commit

Add GPIO support for the ACCES 104-DIO-48E commit

Add GPIO support for the WinSystems WS16C48 commit

Add driver for SPI serializers commit

Add driver for TI TPIC2810 commit

add TS-4800 fpga GPIO support commit

add driver for MEN 16Z127 GPIO controller commit

add tps65218 gpio commit

ath79: Add support for the interrupt controller commit

mcp23s08: Add support for mcp23s18 commit

tps65086: Add GPO driver for the TPS65086 PMIC commit

tps65912: Add GPIO driver for the TPS65912 PMIC commit

12.24. Clocks

axi-clkgen: Add multi-parent support commit, remove version 1 support commit

imx: Add clock support for imx6qp commit

iproc: Add support for Cygnus audio clocks commit

qcom: Add IPQ4019 Global Clock Controller support commit, gdsc: Add GDSCs in msm8996 commit, commit, commit, commit, commit

shmobile: r8a7795: Add SD divider support commit

ti: Add support for dm814x ADPLL commit

12.25. PCI

designware: Add driver for prototyping kits based on ARC SDP commit

layerscape: Add "fsl,ls2085a-pcie" compatible ID commit

thunder: Add PCIe host driver for ThunderX processors commit, add driver for ThunderX-pass{1,2} on-chip devices commit

xilinx-nwl: Add support for Xilinx NWL PCIe Host Controller commit

Unbreak dra7xx PCI driver as broken" commit

12.26. Various

VFIO: Capability chains, similar to PCI device capabilities, that allow extending ioctls. Extensions here include device specific regions and sparse mmap descriptions (merge)

spmi: pmic-arb: Support more than 128 peripherals commit

remoteproc: Supply controller driver for ST's Remote Processors commit

reset: img: Add Pistachio reset controller driver commit

phy: Add driver for rockchip Display Port PHY commit

phy: add a driver for the Rockchip SoC internal eMMC PHY commit

phy: mdio-thunder: Add driver for Cavium Thunder SoC MDIO buses. commit

Move panel driver out of staging commit

memory: mediatek: Add SMI driver commit

mei: me: add broxton pci device ids commit

mailbox: Add support for APM X-Gene platform mailbox driver commit

mailbox: Hi6220: add mailbox driver commit

mailbox: Introduce TI message manager driver commit

leds: Add SN3218 and SN3216 support to the IS31FL32XX driver commit

leds: Add driver for the ISSI IS31FL32xx family of LED controllers commit

iommu/arm-smmu: Support DMA-API domains commit

iommu/exynos: Add support for v5 SYSMMU commit

iommu/io-pgtable: Add ARMv7 short descriptor support commit

iommu/mediatek: Add mt8173 IOMMU driver commit

irqchip/gic/realview: Support more RealView DCC variants commit

irqchip/mvebu-odmi: Add new driver for platform MSI on Marvell 7K/8K commit

irqchip/tango: Add support for Sigma Designs SMP86xx/SMP87xx interrupt controller commit

irqchip: Add the Alpine MSIX interrupt controller commit

irqchips/bmips: Add bcm6345-l1 interrupt controller commit

hwrng: pic32 - Add PIC32 RNG hardware driver commit

extcon: palmas: Add the support for VBUS detection by using GPIO commit

dmaengine: add Qualcomm Technologies HIDMA channel driver commit

dmaengine: add Qualcomm Technologies HIDMA management driver commit

dmaengine: pl330: support burst mode for dev-to-mem and mem-to-dev transmit commit

bq24735_charger: add status property to view/enable/disable charging commit

bcma: add support for BCM47094 commit

bcma: support chipsets with PMU and GCI cores (devices) commit

bcma: support identifying MX25L25635F serial flash commit

HSI: nokia-modem: add n950 and n9 support commit

13. List of merges

14. Other news sites