• Immutable Page
  • Info
  • Attachments

Linux 4.7

Linux 4.7 was released on Sun, 24 Jul 2016.

Summary: This release adds support for the recent Radeon RX 480 GPUs, support for parallel pathname lookups in the same directory, a new experimental 'schedutils' frequency governor that should be faster and more accurate than existing governors, support for the EFI 'Capsule' mechanism for upgrading firmware, support for virtual USB Devices in USB/IP to make emulated phones behave as real USB devices, a new security module 'LoadPin' that ensures that all kernel modules are loaded from the same filesystem, an interface to create histograms of events in the ftrace interface, support for attaching BPF programs to kernel tracepoints, support for callchains of events in the perf trace utility, stable support for the Android's sync_file fencing mechanism, and many other improvements and new drivers.

  1. Prominent features
    1. Support for Radeon RX480 GPUs
    2. Parallel directory lookups
    3. New 'schedutil" frequency governor
    4. Histograms of events in ftrace
    5. perf trace calls stack
    6. Allow BPF programs to attach to tracepoints
    7. EFI 'Capsule' firmware updates
    8. Support for creating virtual USB Device Controllers in USB/IP
    9. Android's sync_file fencing mechanism considered stable
    10. LoadPin, a security module to restrict the origin of kernel modules
  2. Core (various)
  3. File systems
  4. Memory management
  5. Block layer
  6. Security
  7. Tracing, perf, BPF
  8. Virtualization
  9. Networking
  10. Architectures
  11. Drivers
    1. Graphics
    2. Storage
    3. Staging
    4. Networking
    5. Audio
    6. Input devices: Tablets, touch screens, keyboards, mouses
    7. TV tuners, webcams, video capturers
    8. USB
    9. Serial Peripheral Interface (SPI)
    10. Watchdog
    11. Serial
    12. ACPI, EFI, cpufreq, thermal, Power Management
    13. Real Time Clock (RTC)
    14. Voltage, current regulators, power capping, power supply
    15. Pin Controllers (pinctrl)
    16. Memory Technology Devices (MTD)
    17. Multi Media Card (mmc)
    18. Industrial I/O (iio)
    19. Multi Function Devices (MFD)
    20. Inter-Integrated Circuit (I2C)
    21. Hardware monitoring (hwmon)
    22. General Purpose I/O (gpio)
    23. Clocks
    24. System On Chip specific Drivers
    25. PCI
    26. DMA Engine
    27. Various
  12. List of merges
  13. Other news sites

1. Prominent features

1.1. Support for Radeon RX480 GPUs

This release includes support for just released Radeon RX 480 GPUs in the amdgpu driver, which is the first device based on the new Polaris architecture. Support is on par with the rest of devices of the amdgpu driver.

Code: (merge)

1.2. Parallel directory lookups

The directory cache caches information about path names to make them quickly available for pathname lookup. This allows to speed up many common operations; for example, it allows to determine if a particular file or directory exists without having to read the disk. This cache uses a mutex to serialize lookup of names in the same directory.

In this release, the serializing mutex has been switched to a read-write semaphore, allowing for parallel pathname lookups in the same directory. Most workloads won't notice any improvement (cached pathname lookups are fast and having locking contention issues there is very rare), specific workloads that make very heavy use of pathname lookups in the same directory will be faster because they will be able to do them in parallel. Most filesystems have been converted to allow this feature.

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

1.3. New 'schedutil" frequency governor

This release adds a new governor to the dynamic frequency scaling subsystem (cpufreq). There are two main differences between it and the existing governors. First, it uses information provided by the scheduler directly for making its decisions. Second, it can invoke cpufreq drivers and change the frequency to adjust CPU performance right away, without having to spawn work items to be executed in process context or similar.

What this means is that the latency to make frequency changes in the face of workload variations should be very small, and thanks to the information provided by the scheduler, it can make more accurate decisions. Note also that the schedutil governor, as included in this release is very simple and it's regarded as a foundation for improving on the integration of the scheduler with CPU power management; but it works and the preliminary results are encouraging. The governor shares some tunables management with other governors.

Recommended LWN article: Improvements in CPU frequency management

Code: commit

1.4. Histograms of events in ftrace

'Hist' triggers are a new addition to ftrace, the Linux tracing infrastructure available since 2.6.27 that it's embedded in the kernel and lives at /sys/kernel/debug/tracing/. This release adds the "hist" command, which provides the ability to build "histograms" of events by aggregating event hits. As an example, let's say a user needs to get a list of bytes read from files from each process. You can get this information using hist triggers, with the following command command:

echo 'hist:key=common_pid.execname:val=count:sort=count.descending' > /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/trigger

What this strange command does is to write a command to the trigger file of the sys_enter_read event (the one corresponding to a process entering the read() system call, that is, trying to read a file). Triggering this event will run the following hist command (hist:) that means the following: for each hit on the event, get the PID (common_pid (you can see all the possible fields to query in /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/format) and convert it to process names (.execname suffix); this will be used as key (key=) in the histogram. The val=count parameter makes the hist command to also query the count field, which in the sys_enter_read event it means the number of bytes read. Finally, after the : separator, the sort=count.descending makes the command sort the result by the field count in descending order. This is the resulting output (note that the hits for the same PID will be aggregated):

# cat /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/hist 
# trigger info: hist:keys=common_pid.execname:vals=count:sort=count.descending:size=2048 [active]

{ common_pid: gnome-terminal  [      3196] } hitcount:        280  count:    1093512
{ common_pid: Xorg            [      1309] } hitcount:        525  count:     256640
{ common_pid: compiz          [      2889] } hitcount:         59  count:     254400
{ common_pid: bash            [      8710] } hitcount:          3  count:      66369
{ common_pid: dbus-daemon-lau [      8703] } hitcount:         49  count:      47739
{ common_pid: irqbalance      [      1252] } hitcount:         27  count:      27648
{ common_pid: 01ifupdown      [      8705] } hitcount:          3  count:      17216
{ common_pid: dbus-daemon     [       772] } hitcount:         10  count:      12396
{ common_pid: Socket Thread   [      8342] } hitcount:         11  count:      11264
{ common_pid: nm-dhcp-client. [      8701] } hitcount:          6  count:       7424
{ common_pid: gmain           [      1315] } hitcount:         18  count:       6336
{ common_pid: postgres        [      1892] } hitcount:          2  count:         32
{ common_pid: postgres        [      1891] } hitcount:          2  count:         32
{ common_pid: gmain           [      8704] } hitcount:          2  count:         32
{ common_pid: upstart-dbus-br [      2740] } hitcount:         21  count:         21
{ common_pid: nm-dispatcher.a [      8696] } hitcount:          1  count:         16
{ common_pid: indicator-datet [      2904] } hitcount:          1  count:         16
{ common_pid: gdbus           [      2998] } hitcount:          1  count:         16
{ common_pid: rtkit-daemon    [      2052] } hitcount:          1  count:          8
{ common_pid: init            [         1] } hitcount:          2  count:          2

        Hits: 2116
        Entries: 51
        Dropped: 0

This output shows what processes are reading files, how much (count), and how often they try to read (hitcount, which wasn't specified but it is included by default). For more information about hist and its possibilities, see the hist triggers documentation in Documentation/trace/events.txt, or read this recommended blog post from Brendan Egg Hist Triggers in Linux 4.7. For development context of the feature, also see this recommended LWN article: Ftrace and histograms: a fork in the road. For more documentation on ftrace, see Documentation/trace/ftrace.txt or this recommended LWN article.

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

1.5. perf trace calls stack

In this release, perf trace adds the ability of printing a userspace callchain each time an system call is hit. An example of a callchain for a recvmsg() syscall issued by gnome-shell:

3292.421 ( 0.002 ms): gnome-shell/2287 recvmsg(fd: 11<socket:[35818]>, msg: 0x7ffc5ea266e0                   ) = 32 
                                       __GI___libc_recvmsg+0x2d (/usr/lib64/libpthread-2.22.so)
                                       _xcb_in_read+0xa7 (/usr/lib64/libxcb.so.1.1.0)
                                       poll_for_next_event+0x68 (/usr/lib64/libxcb.so.1.1.0)
                                       poll_for_event+0xb8 (/usr/lib64/libX11.so.6.3.0)
                                       poll_for_response+0xab (/usr/lib64/libX11.so.6.3.0)
                                       _XEventsQueued+0x5d (/usr/lib64/libX11.so.6.3.0)
                                       XPending+0x57 (/usr/lib64/libX11.so.6.3.0)
                                       gdk_event_source_check+0x51 (/usr/lib64/libgdk-3.so.0.1800.9)
                                       g_main_context_check+0x1b1 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                       g_main_context_iterate.isra.29+0x120 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                       g_main_loop_run+0xc2 (/usr/lib64/libglib-2.0.so.0.4600.2)
                                       meta_run+0x2c (/usr/lib64/libmutter.so.0.0.0)
                                       main+0x3f7 (/usr/bin/gnome-shell)
                                       __libc_start_main+0xf0 (/usr/lib64/libc-2.22.so)
                                       [0x2909] (/usr/bin/gnome-shell)

You can try it with commands such as # trace --call dwarf ping You can also only print callchains for a single event, for example: perf trace --event sched:sched_switch/call-graph=fp/ -a sleep 1. Tracing page faults (option -F/--pf) also support it, for example, tracing write syscalls and major page faults with callchains while starting firefox, limiting the stack to 5 frames, can be done with # perf trace -e write --pf maj --max-stack 5 firefox. An excerpt of a system wide perf trace --call dwarf session can be found here.

1.6. Allow BPF programs to attach to tracepoints

Tracepoints are a sort of dynamic printf()s that developers introduce in their code so that they can be used later to analyse the system behaviour. Tracepoints can be accessed from several utilities: LTTng, perf, SystemTap, ftrace...but they couldn't be accessed by BPF programs.

This release adds a new type of BPF program (BPF_PROG_TYPE_TRACEPOINT) that can be used to build BPF programs that can be attached to kernel tracepoints. This makes possible to build programs that collect data from tracepoints and process them in the BPF program. This is a faster alternative to access tracepoints than kprobes, it can make the tracing programs more stable, and allows to build more complex tracing tools.

Recommended LWN article: Tracepoints with BPF

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

1.7. EFI 'Capsule' firmware updates

This release adds support for the the EFI Capsule mechanism, which allows to pass data blobs to the EFI firmware. The firmware then parses them and makes some decision based upon their contents. The most common use case is to bundle a flashable firmware image into a capsule that the firmware can use to upgrade in the next boot the existing version in the flash. Users can upload capsule by writting the firmware to the /dev/efi_capsule_loader device

Recommended blog: Better Firmware Updates in Linux using UEFI Capsules

Code: commit, commit

1.8. Support for creating virtual USB Device Controllers in USB/IP

USB/IP allows to shared USB devices over the network. The USB devices need, however, to be real devices. This release brings the ability to create virtual USB Device Controllers without needing any physical USB device, using the USB gadget subsystem.

This feature has several uses; for example, it makes possible to improve phone emulation in development environments. Emulated phones can be now connected to developer's machine or another virtual machine as if it would be a physical phone. It is also useful for testing USB and for educational purposes.

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

1.9. Android's sync_file fencing mechanism considered stable

In this release, the sync_file code that was in the staging/ directory has been moved to the real kernel. The Linux Kernel only had an implicit fencing mechanism where the fence are attached directly to buffers and userspace is unaware of what is happening; explicit fencing is not supported.

sync_file is a explicit fencing mechanism designed for Android that help the userspace handles fences directly. Instead of attaching a fence to the buffer a producer driver, it sends the fence related to the buffer to userspace via a sync_file, which can then be sent to the consumer, that will not use the buffer for anything before the fence(s) signals. With this explicit fencing we have a global mechanism that optimizes the flow of buffers between consumers and producers, avoid a lot of waiting. So instead of waiting for a buffer to be processed by the GPU before sending it to DRM in an Atomic IOCTL we can get a sync_file fd from the GPU driver at the moment we submit the buffer processing. The compositor then passes these fds to DRM in a atomic commit request, that will not be displayed until the fences signal, i.e, the GPU finished processing the buffer and it is ready to display.

Documentation: Documentation/sync_file.txt

Code: commit, commit, commit, commit

1.10. LoadPin, a security module to restrict the origin of kernel modules

LoadPin is a new Linux Security Module that ensures all files loaded by the kernel (kernel modules, firmware, kexec images, security policies) all originate from the same filesystem. The expectation is that the filesystem is backed by a read-only device such as a CDROM or dm-verity (this feature comes from ChromeOS, where the device as a whole is verified cryptographically via dm-verity). This allows systems that have a verified and/or unchangeable filesystem to enforce module and firmware loading restrictions without needing to sign the files individually.

Recommended LWN article: The LoadPin security module

Code: commit, commit

2. Core (various)

  • (FEATURED) Parallel directory lookups commit, commit, commit, commit, commit, commit

  • printk: make the NMI backtraces safe on all architectures and make all NMI messages almost safe on all architectures. Also make NMI buffer size configurable commit, commit, commit, commit

  • procfs: expose umask in /proc/PID/status, because it's not possible to read the process umask without also modifying it, which is what umask(2) does commit

  • Add RWF_DSYNC and RWF_SYNC flag for preadv2()/pwritev2(). This is the per-I/O equivalent of O_DSYNC and O_SYNC, and very useful for all kinds of file servers and storage targets commit

  • CPU accounting controller: Split cpuacct.usage into user usage and sys usage commit

  • GDB scripts: add a Radix Tree Parser commit, add cpu iterators commit, add io resource readers commit, add mount point list command commit, provide kernel list item generators commit, provide linux constants commit,

  • Improve the sigaltstack(2) interface by adding the SS_AUTODISARM flag. When this flag is set, sigaltstack(2) will be disabled when entering the signal handler; when leaving the signal handler, the sigaltstack is restored. This makes safe to use swapcontext() in a sighandler that works on sigaltstack(). Without this flag, the subsequent signal will corrupt the state of the switched-away sighandler. The inspiration is more robust dosemu signal handling commit, commit, commit, commit, commit, commit

  • The kernel and some modules make many symbols available for other modules to use via EXPORT_SYMBOL() and variants. Depending on the set of modules being selected in your kernel configuration, many of those exported symbols might never be used. This release adds a new configuration option (CONFIG_TRIM_UNUSED_KSYMS) that allows for unused exported symbols to be dropped from the build. In turn, this provides the compiler more opportunities (especially when using LTO) for optimizing the code and reducing binary size commit

  • Initial infrastructure to migrate the kernel documentation to reStructuredText format (recommended LWN article (merge)

3. File systems

  • XFS

  • Btrfs

    • Add support for renameat2() RENAME_EXCHANGE (atomically exchanges paths), and RENAME_WHITEOUT (used to support overlayfs) commit

    • Introduce new ioctl which allows device delete by devid commit

    • Allow balancing to dup with multi-device commit

  • OCFS2

    • When storage down, all nodes will fence self due to write timeout. With this release, all nodes will keep going until storage back online, except if the following issue happens, then all nodes will do as before to fence self commit, commit, commit, commit, commit, commit

  • Ceph

    • Multi-filesystem support (multiple namespaces within the same Ceph cluster) commit

    • A major OSD client update, which has evolved significantly over the last couple years, with lots of additional behaviors commit

  • ext4

    • Allow readdir()'s of large empty directories to be interrupted commit

  • F2FS

  • NFS

    • Add support for NFS/RDMA over IPv6 commit, commit

    • Support for the NFS v4.2 COPY operation. Linux 4.5 added the copy_file_range(2) system call, and it also added support in NFS for the CLONE operation present in the NFS v4.2 draft, which allows to clone ranges of a file into another. This release adds support for the COPY operation, which allows to make copies of entire files commit

4. Memory management

  • Support bigger cache working sets and protect against writes. Due to problems with some specific PostgreSQL workloads, two changes have been made to the memory management code: 1) stop promoting pages that are written or rewritten to the active list of file pages, because there are good chances that the data may not be read again, or they may even be rewritten again before they are read, so these pages may occupy space in the active file list that could be used by pages that are read frequently 2) remove the enforcement that requires the inactive file list have a minimum size of 50% of the file cache. With the workingset refault measurement, the system can afford (on a larger systems) to make the inactive file list smaller. This release allows to increase the active list on the same ratios used for anonymous memory, which should help things like database workloads, where only half the page cache could be used to cache the database working set commit, commit, commit

  • A set of microoptimizations described as "Another year, another round of page allocator optimisations focusing this time on the alloc and free fast paths". See first commit for details and benchmarks commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Add CONFIG_MEMORY_HOTPLUG_DEFAULT_ONLINE, which sets the default policy setting for memory hotplug onlining policy (/sys/devices/system/memory/auto_online_blocks) which determines what happens to newly added memory regions commit. A new kernel command line, memhp_default_state=online/offline command line parameter to tweak this behaviour at boot time commit

  • Reduce latency of direct async compaction, which also means a higher chance of succeeding until it detects contention commit, commit, commit

  • Rework OOM detection to make it more reliable (recommended LWN article) [https://git.kernel.org/torvalds/c/b6459cc154e804f0de0d61fa023c4946b742cc96 commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • slab allocator (not to confuse with the default slub allocator): reduce lock contention in alloc path to improve concurrent allocation. Performance is improved greatly (roughly more than 50%) for the object class whose size is more than 128 bytes commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • Provide new sysctl /proc/sys/vm/stat_refresh; when read or written anything it will force an immediate update of per-cpu into global vmstats: useful to avoid a sleep(2) or whatever before checking counts when testing; eg. cat /proc/sys/vm/stat_refresh /proc/meminfo commit

  • Provides optional config CONFIG_SLAB_FREELIST_RANDOM to randomize the SLAB freelist. This security feature reduces the predictability of the kernel SLAB allocator against heap overflows rendering attacks much less stable commit

  • Enable RLIMIT_DATA by default with workaround for valgrind commit

  • KASAN: initial memory quarantine implementation, which isolates freed objects in a separate queue. The objects are returned to the allocator later when they are required; this to detect use-after-free errors commit

  • compressed swap: add z3fold, a special purpose allocator for storing compressed pages. It is designed to store up to three compressed pages per physical page. It is a ZBUD derivative which allows for higher compression ratio keeping the simplicity and determinism of its predecessor commit

  • zram: introduce per-device debug_stat in /sys/block/zram<id>/debug_stat commit

  • vmscan: consider classzone_idx in compaction_ready commit

5. Block layer

  • Device DAX (/dev/dax) for persistent memory: Device DAX is the device-centric analogue of filesystem DAX (CONFIG_FS_DAX). It allows memory ranges to be allocated and mapped to without need of an intervening file system. Device DAX is strict, precise and predictable. Specifically this interface: Guarantees fault granularity with respect to a given page size set at configuration time, and enforces deterministic behaviour by being strict about what fault scenarios are supported commit, commit, commit, commit

  • Async discard support commit

  • libnvdimm: report multiple 'NVDIMM Control Region Structure' instances per-DIMM commit

  • Device Mapper multipath: make fast code-paths lockless, to significantly improve large NUMA performance when using blk-mq commit

  • Add a write_cache sysfs file that will display whether the device has write back caching enabled or not. It will return "write back" for the former case, and "write through" for the latter. Writing to this file can change the kernels view of the device, but it doesn't alter the device state commit

  • UBI: Add ro-mode sysfs attribute commit

6. Security

  • (FEATURED) New Linux Security Module, LoadPin, which enforces that kernel-loaded files (modules, firmware, etc) must all come from the same filesystem, with the expectation that such a filesystem is backed by a read-only device such as dm-verity or CD-ROM. This allows systems that have a verified and/or unchangeable filesystem to enforce module and firmware loading restrictions without needing to sign the files individually commit, commit

  • SELinux: restrict kernel module loading commit

  • Keys: Adds userspace access to Diffie-Hellman computations through a new keyctl() syscall command (KEYCTL_DH_COMPUTE) to calculate shared secrets or public keys using input parameters stored in the keyring commit

  • Keys: Add a facility whereby proposed new links to be added to a keyring can be vetted, permitting them to be rejected if necessary. This can be used to block public keys from which the signature cannot be verified or for which the signature verification fails. It could also be used to provide blacklisting commit, commit

  • Keys: Big keys stored encrypted commit

  • IMA: Add a config option (IMA_KEYRINGS_PERMIT_SIGNED_BY_BUILTIN_OR_SECONDARY) that, when enabled, allows keys to be added to the IMA keyrings by userspace - with the restriction that each must be signed by a key in the system trusted keyrings commit

  • IMA: add support for creating files using the mknodat syscall commit

  • audit: add tty field to LOGIN event commit

7. Tracing, perf, BPF

  • tracing: With a new tracing option event-fork which, when set, will have tasks with PIDs in set_event_pid, when they fork, to have their child PIDs added to set_event_pid and the child will be traced as well commit, commit

  • (FEATURED) Hist triggers commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit, commit

  • (FEATURED) perf trace: Add support for callchains, with e.g. perf trace --call dwarf ping An example of system-wide perf trace --call dwarf can be seen here (You may need to bump the number of mmap pages with --mmap-pages) commit, commit, commit, commit

  • perf trace: Add --max-stack knob to limit the depth of callchains commit; and also a --min-stack knob, to show syscalls that had a userspace callchain leading to it at least min-stack deep commit

  • perf bpf: Automagically create a 'bpf-output' event, easing the setup of BPF C "scripts" that produce output via the perf ring buffer. Now it is just a matter of calling any perf tool, such as 'trace', with a C source file that references the __bpf_stdout__ output channel and that channel will be created and connected to the script commit

  • (FEATURED) perf bpf: allow bpf programs attach to tracepoints commit, (merge)

  • perf: Allow to set a maximum allowed stack in /proc/sys/kernel/perf_event_max_stack commit

  • perf trace: "beautify" several syscall arguments in the output commit, commit, commit, commit, commit

  • perf: Adds an extension to the --itrace argument that skips 'n' events (instructions, branches or transactions) at the beginning commit

  • perf mem: Add -U and -K as alias of --all-user  and --all-kernel commit

  • perf jit: Add support for using TSC as a timestamp. Use of TSC is selected by an environment variable JITDUMP_USE_ARCH_TIMESTAMP and flagged in the jitdump file with flag JITDUMP_FLAGS_ARCH_TIMESTAMP commit

  • perf record: Add --timestamp-filename option to append timestamp to output file name, e.g. perf.data.2015122622265847. Will be useful after funcionality is introduced to make perf.data file snapshots commit

  • perf record: Add new --switch-output. It allows to generate multiple perf.data files, timestamp prefixed, and perf record will switch to a new one when receiving the SIGUSR2 signal commit

  • perf report: Add srcline_from and srcline_to branch sort keys that allow to show the source lines of a branch commit

  • perf sched map: Display only given cpus with option --cpus commit, allow requesting that some CPUs or PIDs be highlighted with --color-pids and --color-cpus commit, commit

  • perf script: Add support for backtraces in Perl, like in Python commit

  • perf script: Add --max-stack knob to limit the depth of callchains commit

  • perf script: Enable database export to output sampled callchains commit, commit, commit

  • BPF

    • Add support for further security hardening of JIT generated images through generic support for blinding constants. A new /proc/sys/net/core/bpf_jit_harden file is provided that admins can tweak along with /proc/sys/net/core/bpf_jit_enable, so that for cases where JIT should be enabled for performance reasons, the generated image can be further hardened with blinding constants for unpriviledged users (bpf_jit_harden == 1), with trading off performance for these, but not for privileged ones. bpf_hit_harden enables blinding for all users. This functionality provides a generic eBPF byte-code level based blinding implementation, which is then just transparently JITed. JIT compilers need to make only a few changes to integrate this facility commit

    • Extended BPF carried over two instructions from classic to access network packet data: LD_ABS and LD_IND. They're highly optimized in JITs, but due to their design they have to do length check for every access. This releases incorporates direct packet access, which eliminates the overhead commit

    • Add event output helper for notifications/sampling/logging commit

8. Virtualization

  • KVM

    • Create debugfs dir and stat files for each VM, named after its PID and file descriptor. The directories contain the same kind of files that are already in the KVM debugfs directory, but the data exported through them is now VM specific commit

    • Add kvm_stat vm monitor script commit, commit

  • virtio: add noring tool, useful to measure testing framework overhead commit

  • Hyper-V: Implement APIs to support "in place" consumption of vmbus packets, which help batched in-place processing of vmbus packets commit

  • Hyper-V: Implement support for VF drivers on hv_netvsc commit

  • xen-netback: support for control ring commit, commit, commit, commit

  • um: add extended processor state save/restore support commit

9. Networking

  • Add support for partial Generic Segmentation Offload. The basic idea is that the kernel can support a broader range of devices for segmentation if the kernel uses fixed outer headers and have the hardware only really deal with segmenting the inner header commit

  • Generic Routing Encapsulation (GRE): Add support for Generic Receive Offload/Generic Segmentation Offload of IPv6 GRE traffic commit

  • Generic Receive Offload: Allow TCP to aggregate TCP frames with a fixed IPv4 ID field. As a result the kernel should now be able to aggregate flows that were converted from IPv6 to IPv4. Also force the IP ID to be incrementing by 1 unless the DF bit is set in the outer IPv4 header to avoid creating overlapping series of IP IDs that could possibly be fragmented if the frame goes through GRO and is then resegmented via GSO commit

  • Infiniband

    • IPoIB: Currently an IPoIB interface will always be created with a device address based on its node GUID without a way to change that. This release adds the ability to set the device address of an IPoIB interface by value commit

    • IPoIB: Add readout of statistics using ethtool commit

    • Support new type of join-state for multicast. There are four types for MCG, FullMember, NonMember and SendOnlyNonMember. This release adds a new type: SendOnlyFullMember, which allows host to send join request as sendonly, it will cause the group to be created but without getting packets from this multicast back to the host commit

    • netlink: Add a new local service operation, IP to GID resolution commit

  • Wireless

    • Allow a scan request for a specific BSSID to be optimized by the user space by requesting to set the Probe Request frame BSSID field (Address 3) to the specified BSSID instead of the wildcard BSSID. This prevents other APs from replying which reduces airtime need and latency in getting the response from the target AP through commit, commit

    • Add support for Aggregationg of MAC Service Data Unit tx. Requires software tx queueing and fast-xmit support commit

    • Add fast-rx path commit

    • hwsim: Support a hw scan request for a specific BSSID commit

    • Add support for NL80211_STA_INFO_RX_DURATION. If present, this attribute contains the aggregate PPDU duration (in microseconds) for all the frames from the peer. This is useful to help understand the total time spent transmitting by all of the connected peers commit

    • Extend the NL80211_CMD_CONNECT command to allow the NL80211_ATTR_PREV_BSSID attribute to be used similarly to way this was already allowed with NL80211_CMD_ASSOCIATE. This allows user space to request reassociation (instead of association) when already connected to an AP, providing an option to reassociate within an ESS without having to disconnect and associate with the AP commit

    • Legacy clients don't support P2P power save mechanisms, and thus if a P2P GO has a legacy client connected to it, it has to make some changes in the PS behavior. To handle this, this release adds an attribute to specify whether a station supports P2P PS or not commit

  • devlink: Add userspace API for configuration of shared buffers and a monitoring interface commit, commit

  • bridge: export per-vlan stats in netlink commit

  • Add receive path support for IPv6 with foo-over-UDP commit, commit, commit, commit

  • Add fair queuing framework, based on a generalization of the codel algorithm, so codel can be reused by others commit

  • fq_codel qdisc: add memory limitation per queue commit

  • ila: Support checksum neutral ILA as described in the ILA draft commit

  • Support Generic Segmentation Offload/Generic Receive Offload in ip4ip6 commit and ip6ip6 commit

  • Support for Generic Segmentation Offload in ip6gre commit

  • Add support for foo-over-UDP/Generic UDP Encapsulation encapsulation in IPv6 Generic Route Encapsulation commit

  • Add support for foo-over-UDP/Generic UDP Encapsulation in IPv6 tunnels commit

  • geneve: change to use UDP socket Generic Receive Offload commit

  • IP Virtual Server

    • Allow SIP connections originating from real-servers to be load balanced by the SIP persistence engine as is already implemented in the other direction commit

    • Release connections immediately for One-packet-scheduling (OPS) for improved performancecommit

  • SCTP

    • Add sctp_diag module to implement diag interface on sctp commit, commit

    • Add support for RPS and RFS commit

  • Adds support for NETIF_F_TSO_MANGLEID if a given tunnel supports NETIF_F_TSO. This way if needed a device can then later enable the TCP Segmentation Offload with IP ID mangling and the tunnels on top of that device can then also make use of the IP ID mangling as well commit

  • Add SOCK_RCU_FREE socket flag that UDP sockets and TCP listeners can set so that their lookup can use traditional RCU rules, without refcount changes. The UDP stack is instructed to not use SLAB_DESTROY_BY_RCU, in order to speedup rx processing for traffic encapsulated in UDP; performance for a single UDP socket receiving flood traffic from many RX queues/cpus is increased. TCP listeners are changed to use SOCK_RCU_FREE as well to avoid touching sk_refcnt under synflood. Peak performance under SYNFLOOD is increased by ~33% commit, commit, commit, commit, commit

  • Add rate limiting on ACK sent on behalf of SYN_RECV to better resist to SYNFLOOD targeting one or few flows commit, commit

  • Add support for skip-sw flag to tc u32 classifier. commit

  • L3 master device: l3mdev: Allow send on enslaved interface commit

  • Netfilter

    • bridge: add a nf_afinfo for the ethernet bridge, which enables queuing to userspace for the AF_BRIDGE family commit

    • bridge: pass L2 header and VLAN as netlink attributes in queues to userspace commit

    • nftables: add connlabel set support commit

  • TCP

    • Make the TCP code more preemptible (merge)

    • Improve even more the resistance to synflood (performance under synflood goes from 3.2 Mpps to 6 Mpps) commit, commit

  • Enable TX timestamping via cmsg. Currently, SOL_TIMESTAMPING can only be enabled using setsockopt. This is very costly when users want to sample writes to gather TX timestamps. This release adds support for enabling SO_TIMESTAMPING via control messages. For more details see the documentation. commit, commit, commit, commit, commit, commit, commit, commit

  • UDP: Add Generic Receive Offload functions to UDP socket and removes udp_offload infrastructure commit, commit

  • veth: Update features to include all tunnel Generic Segmentation Offload types commit

  • vxlan

    • Change vxlan to use UDP socket Generic Receive Offload commit

    • Implement VXLAN-GPE commit

  • rtnetlink: add new RTM_GETSTATS message to dump link stats. RTM_NEWLINK also dumps stats today, but it's too heavy commit

  • ethtool: add support for 25G/50G/100G speed modes commit

  • Bluetooth: Allow setting BT_SECURITY_FIPS with setsockopt for an L2CAP socket commit

  • ppp: add rtnetlink device creation support commit

10. Architectures

  • ARM

    • device tree sources

      • Add Aspeed ast2500 device tree commit, add Aspeed ast2400 device tree commit, commit

      • Add Oxford Semiconductor OX810SE dtsi commit

      • Add Western Digital My Book World Edition device tree commit

      • Add support for dra72-evm rev C (SR2.0) commit

      • Amazon Kindle Fire (first generation) codename kc1 basic support commit

      • Add DTS for Baltos IR2110 commit

      • Add DTS for Baltos IR3220 commit

      • am335x: Add initial support for ICEv2 board commit

      • db600c: add board support with serial commit

      • exynos: Add exynos3250-artik5 dtsi file for ARTIK5 module commit

      • imx6: Add DTS for Embest MarS Board commit, add support for more Ka-Ro electronics modules commit, add support for the Ka-Ro electronics 'MB7' baseboard commit

      • imx6ul-pico-hobbit: Add initial support commit

      • imx6ul: add support for Ka-Ro electronics TXUL modules commit

      • imx: add Boundary Devices Nitrogen6_MAX QP board commit, add Boundary Devices Nitrogen6_SoloX board commit

      • Introduce MPS2 AN385/AN386 commit

      • Introduce MPS2 AN399/AN400 commit

      • kirkwood: Add DTS for Linksys EA4200v2/EA4500 commit

      • orion5x: add device tree for kurobox-pro commit

      • realview: DT support for the PBA8 and PBX-A9 commit, support all the RealView EB board variants commit

      • rockchip: add MiQi board from mqmaker commit

      • socfpga: Add samtec VIN|ING board commit

      • sun4i: Add dts file for Dserve DSRV9703C tablet commit

      • sun5i: Add dts for Difrence DIT4350 tablet commit

      • sun6i: Add dts for Colorfly e708 q1 tablet commit

      • sun8i: Add Orange Pi PC support commit, add dts file for the Orange Pi One SBC commit, add dts file for the Polaroid MID2809PXE4 tablet commit, add dts for Orange Pi 2 SBC commit, base Orange Pi Plus dts on the Orange Pi 2 dts commit

      • sunxi: Add a olinuxino-lime2-emmc commit

      • vf610-zii-dev: Add ZII development board. commit

      • ipq4019: Add support for IPQ4019 DK01 board commit

      • qcom: ipq4019: Add basic board/dts support for IPQ4019 SoC commit

    • Remove pci=firmware command line parameter handling commit

    • socfpga: Enable Arria10 L2 cache ECC on startup commit

    • socfpga: Enable Arria10 OCRAM ECC on startup commit

    • socfpga: Initialize Arria10 OCRAM ECC on startup commit

    • vexpress/mps2: introduce MPS2 platform commit

  • coresight: new stm driver for CoreSight STM component commit; tmc: implement the AUX area interfaces required to use the TMC (configured as an ETF) from the Perf sub-system commit, etb10: splitting sysFS "status" entry commit, etm4x: adding config and traceid registers commit, etm4x: implementing the perf PMU API commit, etm4x: implementing user/kernel mode tracing commit

  • ARM64

    • Add NUMA support commit

    • Add NUMA balancing support commit

    • perf: Add Broadcom Vulcan PMU support commit

    • Add acpi=on cmdline option to prefer ACPI boot over DT commit

    • kaslr: increase randomization granularity commit

    • Add support for hibernate/suspend-to-disk commit

    • kvm: allows KVM CPU hotplug commit

    • device tree source

      • amlogic: Add P200/P201 boards commit, add Hardkernel ODROID-C2 commit

      • Add dts files for LG Electronics's lg1312 SoC commit

      • Add initial dts for Hisilicon Hip06 D03 board commit

      • Add LS1043a-QDS board support commit

      • marvell: initial DT description of Armada 7K/8K CP110 master commit

      • rockchip: Add rk3368 GeekBox dts commit, add core dtsi file for RK3399 SoCs commit, add dts file for RK3399 evaluation board commit

      • tegra: Add support for Google Pixel C commit

  • x86

    • Addition of support of the SGI/UV4 platform (merge)

    • RAS: Add SMCA support to AMD Error Injector commit

    • Add explicit KASAN checks to user memory access API to ensure that userspace writes to (or reads from) a valid kernel memory commit

    • stm class: Support devices that override software assigned masters commit

    • perf

      • Add Intel Goldmont CPU support commit

      • Add LBR filter support for Intel Silvermont and Airmont CPUs commit

      • rapl: Add missing Intel Broadwell model commit

      • rapl: Support Intel Skylake RAPL domains commit

      • Make the Intel RAPL PMU driver modular commit, make the Intel uncore PMU driver modular commit, modularize driver commit

      • msr: Add AMD IRPERF (Instructions Retired) performance counter commit

    • vdso: Remove direct HPET access through the vDSO commit

    • intel_th: pci: Add Intel Broxton-M SOC support commit

    • KVM svm: Add interrupt injection via AVIC commit

    • KVM: Detect and Initialize AVIC support commit

    • chrome

      • Add Chrome OS keyboard backlight LEDs support commit

      • chromeos_laptop - Add Elan touchpad for Wolf commit, add elan trackpad option for C720 commit, add Leon Touch commit

    • Add the Power Management Controller driver for Intel Core SoC architecture. This driver can utilize debugging capabilities and supported features as exposed by the Power Management Controller commit

    • fujitsu-laptop: Support radio LED commit

  • MIPS

    • Add support for relocatable kernel so it can be loaded someplace besides the default 1MB. The relocations make the kernel binary about 15% larger, but are discarded at runtime commit, commit, commit, commit, commit, commit, commit,commit

    • Add KASLR support using relocatable support commit,commit

    • Add perf counter feature commit

    • Add support for extending builtin cmdline commit

    • seccomp: Support compat with both O32 and N32 commit

    • ath79: Add support for DTB passed using the UHI boot protocol commit, remove the builtin DTB support commit, add zboot debug serial support commit, add initial support for DPT-Module commit, Dragino MS14 (Dragino 2) commit and Onion Omega commit

    • BMIPS: Add BCM6358 support commit, commit, add Whirlwind (BMIPS5200) initialization code commit, add support for BCM63268 commit

    • Lantiq: Add support for device tree file from boot loader commit

    • Add basic Loongson 3A support commit, commit

    • Add support for CN73xx, CN75xx and CN78xx commit

    • Octeon: Add DTS for D-Link DSR-1000N commit

    • Detect DSP v3 support commit

    • Detect MIPSr6 Virtual Processor support commit

    • Enable ptrace hw watchpoints on MIPS R6 commit

    • Probe the M6250 CPU commit, and the P6600 core commit

    • Support sending SIG_SYS to 32bit userspace from 64bit kernel commit

    • qca: introduce AR9331 devicetree commit

    • ralink: add MT7628 EPHY LEDs pinmux support commit

    • smp-cps: Add nothreads kernel parameter commit

    • smp-cps: Support MIPSr6 Virtual Processors commit

    • MIPS64: Support a maximum at least 48 bits of application virtual memory commit


    • Add live patching support for ppc64le commit, commit, commit

    • Support for Power ISA 3.0 (Power9) Radix Tree MMU commit (and others)

    • perf: Add support for sampling interrupt register state commit

    • perf: Add support for unwinding perf-stackdump commit, commit

    • Add support for userspace Power9 copy paste, an optimised mechanism for a userspace application to copy a cacheline commit


    • Add native high-resolution timing code for sched_clock() and other timing functions based on the processor internal cr16 cycle counters commit

    • Add syscall tracepoint support commit

    • Add ARCH_TRACEHOOK and regset support commit

  • ARC

  • S390

    • dasd: Add new ioctl BIODASDCHECKFMT to check a range of tracks on a DASD volume for correct formatting commit

    • dasd: add query host access to volume support commit


    • Introduce KVM_MAX_VCPU_ID to separate the vCPU numbering from the total number of vCPUs commit

11. Drivers

11.1. Graphics

  • Add Analogix ANX78XX bridge. ANX78XX is an ultra-low Full-HD SlimPort transmitter designed for portable devices. The ANX78XX transforms the HDMI output of an application processor to MyDP or DisplayPort commit

  • Add Allwinner A10 Display Engine support commit

  • Add Hisilicon kirin display driver (merge)

  • Add Mediatek MT8173 display driver commit, commit, commit

  • ARC PGU - bitstreamer on Synopsys ARC SDP boards commit

  • amdgpu

    • (FEATURED) support for Polaris GPUs in the amdgpu driver, the new generation Radeon RX 480 GPUs. Support is on par with the rest of devices of the amdgpu driver (merge)

    • GPUVM/Scheduler/Clock/Power improvements (see previous merge link)

    • Async pageflip (DRM_MODE_PAGE_FLIP_ASYNC) support commit

    • New Mesa feature support

  • i915

    • Color manager support commit, commit

    • broxton: Enable runtime PM commit

    • Add DSI support for broxton commit

    • Add GEM debugging Kconfig option commit

    • Add fault injection support commit

    • Add module param "enable_dp_mst", enabled by default. Disabling the parameter forces newly connected DisplayPort sinks to report as not supporting multi-stream transport (MST), thus "forcing" the use of single-stream transport (SST) commit

    • Add more Kabylake PCIIDs more

  • Nouveau (nvidia)

  • radeon

    • Support DRM_MODE_PAGE_FLIP_ASYNC commit

    • Add driver option to disable uvd block. commit and vce block commit

  • vc4

    • Add DPI output support commit

    • Add render node support commit

    • Add gamma ramp support commit

  • vmwgfx

    • Add VMWare host messaging capability commit

  • exynos

    • Add Exynos5433 support commit

    • Pipeline clock support commit

    • HW trigger mode support commit

  • msm

    • Add support for more RGBX formats commit

    • Make HDCP support optional commit

  • atmel-hlcdc

    • Support asynchronous atomic commit operations commit

    • bridge support commit

  • rockchip

    • Add Rockchip specific extensions for Analogix DP driver commit

  • panel

    • Add support for Innolux AT070TN92 commit

  • fsl-dcu

    • Add Timing Controller for LCD support commit

    • Pixel clock polarity support commit

  • (FEATURED) Android's sync_file fencing mechanism considered stable commit, commit, commit, commit

  • Generic fbdev deferred IO support commit, commit

  • Allow signals to interrupt drm_aux-dev reads/writes commit

  • Forbid legacy MAP functions for DRIVER_MODESET commit

  • fbdev: sh_mipi_dsi: remove driver commit

11.2. Storage

  • NVMe: Allow user initiated rescan commit

  • SCSI

    • Disable automatic target scan commit

    • tcm_qla2xxx Add SCSI command jammer/discard capability commit

    • hpsa: add sas_address to sysfs device attibute commit

    • ibft: Expose iBFT ACPI header via sysfs commit

    • lpfc: Add support for SmartSAN 2.0 commit

    • ncr5380: Remove disused atari_NCR5380.c core driver commit

    • cxgbit: Add Chelsio iSCSI target offload driver commit

    • hisi_sas: add v2 hw support for >4 SATA phys commit

    • snic: Added additional stats commit

    • scsi_debug: add multiple queue support commit

  • libata:

    • Support Zone ATA Command support for Shingled Magnetic Recording devices (merge)

    • Implement NCQ autosense commit

  • skd: remove broken discard support commit

11.3. Staging

  • iio: adis16204: Remove adis16204 driver commit

  • iio: adis16220: Remove adis16220 driver commit

  • android: remove timed output/gpio driver commit

11.4. Networking

  • Bluetooth: Add support for Intel Bluetooth device 8265 (8087:0a2b) commit

  • Bluetooth: hci_bcm: Add BCM2E71 ACPI ID commit

  • Infiniband

    • Move hfi1 driver (for Intel Omni-Path HFI Silicon 100 Series) out of staging commit

    • mlx5: Add Scatter FCS support for Raw Packet QP commit

  • NFC: pn533: add I2C phy driver commit

  • Re-enable 8192eu support commit

  • ath10k: implement push-pull tx commit, commit, commit, enable set_tsf vdev command to WMI 10.4 commit, commit, introduce Extended Resource Config support for 10.4 commit, remove MSI range support commit, enable debugfs provision to enable Peer Stats feature commit

  • ath9k: Add a module parameter to invert LED polarity commit

  • bnx2fc: Add driver tunables. commit

  • bnxt_en: Add BCM57314 device ID. commit, add basic EEE support commit, commit, commit

  • brcmfmac: Add 4356 sdio support commit, add support for nl80211 BSS_SELECT feature commit

  • cxgb4vf: Add support to enable logging of firmware mailbox commands for VF commit

  • cxgb4: Add device id of T540-BT adapter commit

  • emac: add Atheros AR8035 phy initialization code commit

  • dsa: Add mdio device support to Marvell switches commit

  • gtp: add initial driver for datapath of GPRS Tunneling Protocol (GTP-U) commit

  • i40e/i40evf: Add support for GSO partial with UDP_TUNNEL_CSUM and GRE_CSUM commit, add support for IPIP and SIT offloads commit, allow up to 12K bytes of data per Tx descriptor instead of 8K commit

  • i40e: Add DeviceID for X722 QSFP+ commit, add VF promiscuous mode driver support commit, add allmulticast support for the VF commit, add device IDs for X722 commit, add promiscuous on VLAN support commit, commit, add support for configuring VF RSS commit, add vf-true-promisc-support priv flag commit, enable Geneve offload for FW API ver > 1.4 for XL710/X710 devices commit, support trusted VF commit

  • i40evf: Add driver support for promiscuous mode commit, allow PF driver to configure RSS commit

  • ibmvnic: enable RX checksum offload commit

  • igb/igbvf: Add support for GSO partial commit

  • ifb: support more features commit

  • intel: Add support for IPv6 IP-in-IP offload commit

  • iwlwifi: turn on SGI support for VHT 160 MHz commit, add a debugfs hook for LQM commit, mvm: add LQM vendor command and notification commit, mvm: add support for new TX CMD API commit, mvm: allow a debug knob for Tx A-MSDU even if rate control forbids it commit, mvm: enable TCP/UDP checksum support for 9000 family commit, mvm: implement driver RX queues sync command commit, mvm: support dumping UMAC internal txfifos commit, mvm: support p2p device frames tx on dqa queue #2 commit

  • ixgbe/ixgbevf: Add support for GSO partial commit

  • ixgbe: Add support for x550em_a-based KR backplane devices commit, add support for SGMII backplane interface commit, add support for generic Tx checksums commit, add support for redirect action to cls_u32 offloads commit, add support for single-port X550 device commit, add support for toggling VLAN filtering flag via ethtool commit, add support for x550em_a 10G MAC type commit, extend cls_u32 offload to support UDP headers commit, add WoL support for some 82599 subdevice IDs commit

  • ixgbevf: Add support for generic Tx checksums commit, add the device ID's presented while running on Hyper-V commit, support Windows hosts (Hyper-V) commit, add support for per-queue ethtool stats commit

  • mlxsw: add support for config and control of shared buffers commit, commit, commit, commit, spectrum: Add IEEE 802.1Qaz ETS support commit, spectrum: Add IEEE 802.1Qbb PFC support commit, spectrum: Add support for PAUSE frames commit, spectrum: Add support for physical port names commit, spectrum: Allow setting maximum rate for a TC commit

  • mrf24j40: apply the security-enabled bit on secured outbound frames commit

  • mwifiex: add pcie usb/uart firmware download support commit

  • hsr: Added support for HSR v1 commit

  • mlx4_en: Add support for UDP tunnel segmentation with outer checksum offload commit, add support for inner IPv6 checksum offloads and TSO commit

  • mlx5: E-Switch, Add promiscuous and allmulti FDB flowtable groups commit, E-Switch, Implement promiscuous rx modes vf request handling commit, E-Switch, Implement trust vf ndo commit, E-Switch, Introduce VST vport ingress/egress ACLs commit

  • mlx5: Flow steering, Add vport ACL support commit, introduce device queue counters commit

  • mlx5e: Add accelerated RFS support commit, add ethtool counter for RX buffer allocation failures commit, add ethtool support for dump module EEPROM commit, add ethtool support for rxvlan-offload (vlan stripping) commit, add fragmented memory support for RX multi packet WQE commit, add per priority group to PPort counters commit, add support for RXALL netdev feature commit, add support for UDP tunnel segmentation with outer checksum offload commit, CQE compression commit, create aRFS flow tables commit, enable CQE compression when PCI is slower than link commit, enabling aRFS mechanism commit, expand WQE stride when CQE compression is enabled commit, Hardware offloaded flower filter statistics support commit, support RX multi-packet WQE (Striding RQ) commit

  • Add Qualcomm IPC router commit

  • bcmgenet: add BQL support commit

  • dsa: Provide CPU port statistics to master netdev commit, mv88e6131: enable hardware bridging commit, mv88e6xxx: add STU capability commit

  • hns: add a new dsaf mode for debug port commit, add attribute cpld_ctrl for dsaf port node commit, add attribute port-idx-in-ae in enet node. commit, add attribute port-mode-offset for dsaf port node commit, add attribute port-rst-offset for dsaf port node commit, add attribute reset-field-offset for dsaf node commit, add support of pause frame ctrl for HNS V2 commit, add syscon operation for dsaf commit, separate debug dsaf device from service dsaf device commit

  • w5100: support SPI interface mode commit, support W5500 commit

  • nfp: allow ring size reconfiguration at runtime commit

  • qed/qede: Add SR-IOV support, adding a new PCI device ID for a VF that is shared between all the various PFs that support IOV (merge); add tunneling support for VXLAN, GRE and GENEVE tunnels to be used over this driver. With this support, adapter can perform TSO offload, inner/outer checksums offloads on TX and RX for encapsulated packets (merge); bandwidth configuration support for the PF on the link change notification or on explicit request of bandwidth update from the management firmware (merge); allow various RSS-related configuration via ethtool (merge)

  • ravb: Add dma queue interrupt support commit

  • rtlwifi: btcoexist: Implement antenna selection commit

  • r8152: Add support for setting pass through MAC address on RTL8153-AD commit

  • stmmac: add GMAC4 support commit, commit, commit

  • wil6210: Add PBSS (Personal Basic Service Set) support commit, add support for discovery mode during scan commit, add P2P support commit, commit, add support for device led configuration commit, add support for platform specific notification events commit

  • wcn36xx: Implement multicast filtering commit

11.5. Audio

  • dice: add support for M-Audio Profire 610 and perhaps 2626 commit

  • hda: Add PCI ID for Intel Kabylake commit, commit

  • hda/realtek - Add support for ALC295/ALC3254 commit, add support for new codecs ALC700/ALC701/ALC703 commit,new codecs support for ALC234/ALC274/ALC294 commit

  • hda: add AMD Stoney PCI ID with proper driver caps commit

  • ASoC

    • Add max98371 codec driver commit

    • Intel: Add Broxton-P machine driver commit, add Broxton DSP support commit, skylake: Add multichannel support for HDMI commit

    • add support for TAS5720 digital amplifier commit

    • bcm2835: Add S16_LE support via packed DMA transfers commit, add 24bit support commit

    • cs47l24: Add support for audio trace firmware commit

    • da7219: Add initial ACPI id for device commit

    • dmaengine_pcm: Add support for packed transfers commit

    • hdac_hdmi: Add multichannel support commit, add link management commit

    • mediatek: Add HDMI dai-links in the mt8173-rt5650-rt5676 machine driver commit, add second I2S on mt8173-rt5650 machine driver commit, HDMI audio LR channel swapped commit

    • pcm5102a: Add support for PCM5102A codec commit

    • tas571x: added support for TAS5721 commit, implemented digital mute commit

    • tlv320aic32x4: Add 96k sample rate commit, add SPI support commit

    • wm_adsp: Add support for TLV based binary controls commit

11.6. Input devices: Tablets, touch screens, keyboards, mouses

  • HID: Asus X205TA keyboard driver commit

  • HID: asus: add support for VivoBook E200HA commit

  • xpad: Xbox One Elite controller support commit, add more third-party controllers commit

11.7. TV tuners, webcams, video capturers

  • TW686x frame grabber driver commit

  • adv7180: Add cropcap operation commit, add g_std operation commit, add g_tvnorms operation commit

  • az6027: Add support for Elgato EyeTV Sat v3 commit

  • dib0700: add USB ID for another STK8096-PVR ref design based card commit

  • em28xx: add support for Hauppauge WinTV-dualHD DVB tuner commit, add missing USB IDs commit

  • i2c: saa7115: Support CJC7113 detection commit

  • mceusb: add support for Adaptec eHome receiver commit, add support for SMK eHome receiver commit

  • media: Support Intersil/Techwell TW686x-based video capture cards commit

  • smipcie: add support for TechnoTrend S2-4200 Twin commit

  • v4l: vsp1: Add Z-order support for DRM pipeline commit, add global alpha support for DRM pipeline commit, add support for the RPF alpha multiplier on Gen3 commit

11.8. USB

11.9. Serial Peripheral Interface (SPI)

  • pic32-sqi: add SPI driver for PIC32 SQI controller. commit

  • spi-pic32: Add PIC32 SPI master driver commit

11.10. Watchdog

  • f71808e_wdt: Add F81865 support commit

  • pic32-dmt: Add PIC32 deadman timer driver commit

  • pic32-wdt: Add PIC32 watchdog driver commit

  • renesas-wdt: add driver commit

11.11. Serial

  • tty: serial: meson: Implement earlycon support commit

  • tty: serial: msm: Support more bauds commit

  • mps2-uart: add MPS2 UART driver commit, add support for early console commit

  • mxs-auart: add Alphascale ASM9260 support commit

  • pic32_uart: Add PIC32 UART driver commit

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

  • ACPI

    • Add full ACPI 6.1 support along with some previously missing bits of ACPI 6.0 support commit, commit

    • Implement Generic Event Device in ACPI 6.1, which allows platforms to handle platform interrupts in ACPI ASL statements commit

    • Allows users to easily find the hardware version reported by ACPI _HRV object by looking at the sysfs hrv commit

    • Convert initrd table override to table upgrade mechanism commit

  • nfit: add sysfs dimm 'family' and 'dsm_mask' attributes commit and export subsystem ids as attributes commit; disable vendor-specific commands commit

  • EFI

    • (FEATURED) Add 'capsule' update support. The EFI capsule mechanism allows data blobs to be passed to the EFI firmware. A common use case is performing firmware updates. Users can upload capsule by writting the firmware to the /dev/efi_capsule_loader device commit, commit

    • Add EFI Bootloader Control module. If reboot is invoked with a string argument NNN, "NNN" is copied to the "LoaderEntryOneShot" EFI variable, to be read by the bootloader. If the string matches one of the boot labels defined in its configuration, the bootloader will boot once to that label. The "LoaderEntryRebootReason" EFI variable is set with the reboot reason: "reboot" or "shutdown". The bootloader reads this reboot reason and takes particular action according to its policy commit

    • Implement generic support for the Memory Attributes table commit

  • Thermal

    • Add ACPI INT340X thermal driver. Newer laptops and tablets that use ACPI may have thermal sensors and other devices with thermal control capabilities outside the core CPU/SOC, for thermal safety reasons. They are exposed for the OS to use via the INT3400 ACPI device object as the master, and INT3401~INT340B ACPI device objects as the slaves. This driver exposes the temperature information and cooling ability from these objects to userspace via the normal thermal framework. This means that a wide range of applications and GUI widgets can show the information to the user or use this information for making decisions. For example, the Intel Thermal Daemon can use this information to allow the user to select his laptop to run without turning on the fans commit

    • Add temperature sensor support for tango SoC commit

    • generic-adc: Add ADC-based thermal sensor driver commit

    • rockchip: Support RK3366 SoCs in the thermal driver commit

    • tegra: add PM support commit

    • tegra: add Tegra132 specific SOC_THERM driver commit

    • tegra: add Tegra210 specific SOC_THERM driver commit

    • tegra: add a debugfs to show registers commit

  • cpufreq

    • (FEATURED) schedutil: New governor based on scheduler utilization data commit

    • acpi-cpufreq: Support for fast frequency switching to provide a method for switching CPU frequencies from interrupt context and update the cpufreq core to support that method if available commit

    • intel_pstate: For platforms which are controlled via remove node manager, enable ACPI _PPC performance limits by default. These platforms are mostly categorized as enterprise server or performance servers commit

  • devfreq

    • Add new passive governor. It sets the frequency based on the frequency of its parent devfreq device. This governor does not change the frequency by itself through sysfs entries. The passive governor recommends that devfreq device uses the OPP table to get the frequency/voltage commit

    • event: Add new EXYNOS NoC (Network On Chip) Probe DEVFREQ event Driver. It provides NoC (Network on Chip) Probe counters to measure the bandwidth of AXI bus commit

    • exynos: Add generic exynos bus frequency driver commit

    • exynos: Add support of bus frequency of sub-blocks using passive governor commit

    • exynos: Remove unused exynos4/5 busfreq driver commit

  • intel_idle: add Broxton support commit

  • powercap: adds a new platform domain (AKA PSys) to the current power capping Intel RAPL driver commit

11.13. Real Time Clock (RTC)

  • m41t80: add alarm functionality commit, add wakealarm functionality commit

  • rv3029: Add support of RV3049 commit

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

  • regulator

    • fan53555: Add support for FAN53555BUC18X type commit, add support for FAN53555UC13X type commit

    • lp873x: Add support for lp873x PMIC regulators commit

    • max77620: Add support for device specific ramp rate setting commit

    • max8973: add support for junction thermal warning commit

    • pv88080: new regulator driver commit

    • qcom_spmi: Add support for pm8994 commit

11.15. Pin Controllers (pinctrl)

  • amd: Add device HID for future AMD GPIO controller commit

  • amlogic: Add support for Amlogic Meson GXBB SoC commit

  • Add support for pin control (pin muxing and pin configuration) for Baytrail platform commit, commit, commit, commit, commit, commit

  • ns2: add pinmux driver support for Broadcom NS2 SoC commit

  • sh-pfc: Add drive strength support commit,

  • sh-pfc: r8a7790: Implement voltage switching for SDHI commit

  • sh-pfc: r8a7795: Add drive strength support commit

11.16. Memory Technology Devices (MTD)

  • ifc: Add support for IFC controller version 2.0 commit

  • brcmnand: Add support for v6.2 controllers commit

  • m25p80: add support for mmap read request commit

  • nand: enable ECC pipelining commit

  • spi-nor: support GigaDevice gd25lq64c commit

11.17. Multi Media Card (mmc)

  • sh_mobile_sdhi: Add UHS-I mode support commit

  • tmio, sh_mobile_sdhi: Add support for variable input clock frequency commit

  • tmio: Add UHS-I mode support commit

  • usdhi6rol0: add support for UHS modes commit

11.18. Industrial I/O (iio)

  • core: mounting matrix support commit

  • tools: generic_buffer: auto-enable channels commit

  • Add max44000 driver for Maxim Integrated's MAX44000 ambient and infrared proximity sensor device commit, commit, commit, commit

  • Add Vishay VEML6070 UV A light sensor driver commit

  • Add channel for UV index commit

  • accel: Add support for the h3lis331dl accelerometer commit

  • adc: add NXP LPC18xx ADC driver commit

  • adc: rockchip_saradc: add saradc support for rk3399 commit

  • dac: Add support for the AD5592R/AD5593R ADCs/DACs commit

  • dac: add NXP LPC18xx DAC driver commit

  • humidity: Add support for AM2315 commit, add triggered buffer support for AM2315 commit

  • imu: Add initial support for Bosch BMI160 commit

  • inv_mpu6050: Add explicit support for MPU9150 commit

  • light: new driver for the ROHM BH1780 commit

  • magn: bmc150: Introduce SPI support commit

  • mma8452: add support for FXLS8471Q commit, add support for runtime power management commit

  • potentiometer: add driver for Maxim Integrated DS1803 commit, add driver for Microchip MCP413X/414X/415X/416X/423X/424X/425X/426X commit

  • pressure: bmp280: add ability to control oversampling rate commit, add support for BMP180 commit

  • pressure: hp03: Add Hope RF HP03 sensor support commit

  • st_gyro: Add lsm9ds0-gyro support commit

  • adis: Add support for manual self-test flag clear commit

  • ak8975: add mounting matrix support commit

  • imu: mpu6050: enhance mounting matrix support commit

  • magnetometer:ak8975: power regulator support commit, triggered buffer support commit

  • pressure:ms5611: oversampling rate support commit

  • hp206c: Initial support for reading sensor values commit

  • ti-adc081c: Add support for adc101c and adc121c commit

  • ti-adc081c: Initial triggered buffer support commit

11.19. Multi Function Devices (MFD)

  • hi655x: Add MFD driver for hi655x commit

  • max77620: Add core driver for MAX77620/MAX20024 commit

11.20. Inter-Integrated Circuit (I2C)

  • i801: Add runtime PM support with autosuspend commit

  • octeon: Add support for cn78xx chips commit, enable High-Level Controller commit

  • rcar: add DMA support commit

  • tegra: enable multi-master mode for tegra210 commit

11.21. Hardware monitoring (hwmon)

  • it87: Add support for IT8628E commit, add support for VIN7 to VIN10 on IT8620E commit, add support for all PWM channels on IT8620E commit, add support for second Super-IO chip commit, support automatic PWM control on newer chips commit, support disabling fan control for all pwm control and chips commit, support up to 6 temperature sensors on IT8620E commit

  • max31722: Add support for MAX31722/MAX31723 temperature sensors commit

11.22. General Purpose I/O (gpio)

  • Loongson1: add Loongson1 GPIO driver commit

  • amdpt: Add a new ACPI HID commit

  • dwapb: Add ACPI device ID for DWAPB GPIO controller on X-Gene platforms commit

  • gpio-it87: Add support for IT8620 and IT8628 commit

  • pca953x: add PCAL9535 interrupt support for Galileo Gen2 commit

  • tegra: Add support for gpio debounce commit

  • xgene: Enable ACPI support for X-Gene GFC GPIO driver commit

  • xlp: Add GPIO driver support for Broadcom Vulcan ARM64 commit

11.23. Clocks

  • microchip: Add Microchip PIC32 clock driver. commit

  • axs10x: Add I2S PLL clock driver commit

  • Add Oxford Semiconductor OXNAS Standard Clocks commit

  • Add artpec-6 clock controller commit

  • hisilicon: add CRG driver for hi3519 soc commit

  • mvebu: new driver for Armada AP806 system controller commit, new driver for Armada CP110 system controller commit

  • renesas: r8a7795: Add CSI2 clocks commit,add VIN clocks commit

  • rockchip: Add support for multiple clock providers commit, add clock controller for the RK3399 commit, add new pll-type for rk3399 and similar socs commit

  • sunxi: Add PLL3 clock commit, add TCON channel1 clock commit, add display and TCON0 clocks driver commit, add sun6i/8i display support commit

  • tegra: Add interface to enable hardware control of SATA/XUSB PLLs commit

  • driversi/mps2: add MPS2 Timer driver commit

  • Add NPS400 timers driver commit

11.24. System On Chip specific Drivers

  • brcmstb: add SoC driver to brcmstb commit

  • mediatek: PMIC wrap: add MT2701/7623 support commit

  • qcom: smd: Support multiple channels per sdev commit

  • qcom: smd: Support opening additional channels commit

  • renesas: rcar-sysc: Add support for R-Car E2 power areas commit, add support for R-Car H1 power areas commit, add support for R-Car H2 power areas commit, add support for R-Car H3 power areas commit, add support for R-Car M2-N power areas commit, add support for R-Car M2-W power areas commit, enable Clock Domain for I/O devices commit

  • rockchip: power-domain: add support for sub-power domains commit

11.25. PCI

  • Add driver for the PCI Express Downstream Port Containment extended capability. DPC is an optional capability to contain uncorrectable errors below a port commit

  • Add Intel Thunderbolt device IDs commit

  • armada: Add driver for Marvell Armada 7K/8K PCIe controller commit

  • imx6: Add initial imx6sx support commit

  • tegra: Support per-lane PHYs commit

11.26. DMA Engine

  • mpc512x: Implement additional chunk sizes for DMA transfers commit

  • mv_xor: add support for Armada 3700 SoC commit

  • qcom_hidma: add debugfs hooks commit

  • qcom_hidma: add support for object hierarchy commit

  • tegra-adma: Add support for Tegra210 ADMA commit

  • vdma: Add 64 bit addressing support to the driver commit

  • vdma: Add Support for Xilinx AXI Central Direct Memory Access Engine commit

  • vdma: Add Support for Xilinx AXI Direct Memory Access Engine commit

  • vdma: Add clock support commit

11.27. Various

  • mcb: export bus information via sysfs commit

  • memory: Add support for Samsung Exynos SROM driver commit

  • memory: omap-gpmc: Introduce GPMC to NAND interface commit

  • memory: omap-gpmc: Support WAIT pin edge interrupts commit

  • memory: omap-gpmc: Support general purpose input for WAITPINs commit

  • memory: samsung: exynos-srom: Add support for bank configuration commit

  • EDAC, altera: Add Arria10 L2 Cache ECC handling commit

  • EDAC, altera: Add Arria10 OCRAM ECC support commit

  • EDAC, ie31200_edac: Add Skylake support commit

  • HSI: omap-ssi: add clk change support commit

  • cxl: Allow initialization on timebase sync failures commit

  • can: sja1000: plx_pci: Add support for Marathon CAN-bus-PCIe card commit

  • mxc-scc: add basic crypto driver for the MXC SCC commit

  • iommu/arm-smmu: Support SMMUv1 64KB supplement commit

  • iommu/mediatek: Add 4GB mode support commit

  • irda: sh_irda: remove driver commit

  • hwrng: hisi - Add support for Hisilicon SoC RNG commit

  • irqchip/gic-v3: Add support for partitioned PPIs commit

  • irqchip: Add LPC32xx interrupt controller driver commit

  • irqchip: Add Layerscape SCFG MSI controller support commit

  • irqchip: Add per-cpu interrupt partitioning library commit

  • irqchip: add nps Internal and external irqchips commit

  • leds: trigger: Introduce a kernel panic LED trigger commit

  • mailbox/omap: add support for suspend/resume commit

  • phy: Add Nvidia Tegra XUSB pad controller support commit

  • phy: Add support for NS2 SATA3 PHY in Broadcom SATA3 PHY driver commit

  • phy: bcm-ns-usb2: new driver for USB 2.0 PHY on Northstar commit

  • phy: exynos-mipi-video: Add support for Exynos 5420 and 5433 SoCs commit

  • phy: phy-mt65xx-usb3: add support for mt2701 platform commit

  • phy: rcar-gen3-usb2: add extcon support commit

  • phy: tegra: Add Tegra210 support commit

  • reset: Add Oxford Semiconductor Reset Controller driver commit

  • reset: hisilicon: add reset controller driver for hisilicon SOCs commit

  • thunderbolt: Support 1st gen Light Ridge controller commit

  • w1: add ability to set (SRAM) and store (EEPROM) configuration for temp sensors like DS18B20 commit

  • w1: enable active pullup for DS2482 by default commit

12. List of merges

13. Other news sites

Tell others about this page:

last edited 2017-01-30 19:35:17 by diegocalleja