twx-linux/include/linux
John Hubbard fc1d8e7cca mm: introduce put_user_page*(), placeholder versions
A discussion of the overall problem is below.

As mentioned in patch 0001, the steps are to fix the problem are:

1) Provide put_user_page*() routines, intended to be used
   for releasing pages that were pinned via get_user_pages*().

2) Convert all of the call sites for get_user_pages*(), to
   invoke put_user_page*(), instead of put_page(). This involves dozens of
   call sites, and will take some time.

3) After (2) is complete, use get_user_pages*() and put_user_page*() to
   implement tracking of these pages. This tracking will be separate from
   the existing struct page refcounting.

4) Use the tracking and identification of these pages, to implement
   special handling (especially in writeback paths) when the pages are
   backed by a filesystem.

Overview
========

Some kernel components (file systems, device drivers) need to access
memory that is specified via process virtual address.  For a long time,
the API to achieve that was get_user_pages ("GUP") and its variations.
However, GUP has critical limitations that have been overlooked; in
particular, GUP does not interact correctly with filesystems in all
situations.  That means that file-backed memory + GUP is a recipe for
potential problems, some of which have already occurred in the field.

GUP was first introduced for Direct IO (O_DIRECT), allowing filesystem
code to get the struct page behind a virtual address and to let storage
hardware perform a direct copy to or from that page.  This is a
short-lived access pattern, and as such, the window for a concurrent
writeback of GUP'd page was small enough that there were not (we think)
any reported problems.  Also, userspace was expected to understand and
accept that Direct IO was not synchronized with memory-mapped access to
that data, nor with any process address space changes such as munmap(),
mremap(), etc.

Over the years, more GUP uses have appeared (virtualization, device
drivers, RDMA) that can keep the pages they get via GUP for a long period
of time (seconds, minutes, hours, days, ...).  This long-term pinning
makes an underlying design problem more obvious.

In fact, there are a number of key problems inherent to GUP:

Interactions with file systems
==============================

File systems expect to be able to write back data, both to reclaim pages,
and for data integrity.  Allowing other hardware (NICs, GPUs, etc) to gain
write access to the file memory pages means that such hardware can dirty
the pages, without the filesystem being aware.  This can, in some cases
(depending on filesystem, filesystem options, block device, block device
options, and other variables), lead to data corruption, and also to kernel
bugs of the form:

    kernel BUG at /build/linux-fQ94TU/linux-4.4.0/fs/ext4/inode.c:1899!
    backtrace:
        ext4_writepage
        __writepage
        write_cache_pages
        ext4_writepages
        do_writepages
        __writeback_single_inode
        writeback_sb_inodes
        __writeback_inodes_wb
        wb_writeback
        wb_workfn
        process_one_work
        worker_thread
        kthread
        ret_from_fork

...which is due to the file system asserting that there are still buffer
heads attached:

        ({                                                      \
                BUG_ON(!PagePrivate(page));                     \
                ((struct buffer_head *)page_private(page));     \
        })

Dave Chinner's description of this is very clear:

    "The fundamental issue is that ->page_mkwrite must be called on every
    write access to a clean file backed page, not just the first one.
    How long the GUP reference lasts is irrelevant, if the page is clean
    and you need to dirty it, you must call ->page_mkwrite before it is
    marked writeable and dirtied. Every. Time."

This is just one symptom of the larger design problem: real filesystems
that actually write to a backing device, do not actually support
get_user_pages() being called on their pages, and letting hardware write
directly to those pages--even though that pattern has been going on since
about 2005 or so.

Long term GUP
=============

Long term GUP is an issue when FOLL_WRITE is specified to GUP (so, a
writeable mapping is created), and the pages are file-backed.  That can
lead to filesystem corruption.  What happens is that when a file-backed
page is being written back, it is first mapped read-only in all of the CPU
page tables; the file system then assumes that nobody can write to the
page, and that the page content is therefore stable.  Unfortunately, the
GUP callers generally do not monitor changes to the CPU pages tables; they
instead assume that the following pattern is safe (it's not):

    get_user_pages()

    Hardware can keep a reference to those pages for a very long time,
    and write to it at any time.  Because "hardware" here means "devices
    that are not a CPU", this activity occurs without any interaction with
    the kernel's file system code.

    for each page
        set_page_dirty
        put_page()

In fact, the GUP documentation even recommends that pattern.

Anyway, the file system assumes that the page is stable (nothing is
writing to the page), and that is a problem: stable page content is
necessary for many filesystem actions during writeback, such as checksum,
encryption, RAID striping, etc.  Furthermore, filesystem features like COW
(copy on write) or snapshot also rely on being able to use a new page for
as memory for that memory range inside the file.

Corruption during write back is clearly possible here.  To solve that, one
idea is to identify pages that have active GUP, so that we can use a
bounce page to write stable data to the filesystem.  The filesystem would
work on the bounce page, while any of the active GUP might write to the
original page.  This would avoid the stable page violation problem, but
note that it is only part of the overall solution, because other problems
remain.

Other filesystem features that need to replace the page with a new one can
be inhibited for pages that are GUP-pinned.  This will, however, alter and
limit some of those filesystem features.  The only fix for that would be
to require GUP users to monitor and respond to CPU page table updates.
Subsystems such as ODP and HMM do this, for example.  This aspect of the
problem is still under discussion.

Direct IO
=========

Direct IO can cause corruption, if userspace does Direct-IO that writes to
a range of virtual addresses that are mmap'd to a file.  The pages written
to are file-backed pages that can be under write back, while the Direct IO
is taking place.  Here, Direct IO races with a write back: it calls GUP
before page_mkclean() has replaced the CPU pte with a read-only entry.
The race window is pretty small, which is probably why years have gone by
before we noticed this problem: Direct IO is generally very quick, and
tends to finish up before the filesystem gets around to do anything with
the page contents.  However, it's still a real problem.  The solution is
to never let GUP return pages that are under write back, but instead,
force GUP to take a write fault on those pages.  That way, GUP will
properly synchronize with the active write back.  This does not change the
required GUP behavior, it just avoids that race.

Details
=======

Introduces put_user_page(), which simply calls put_page().  This provides
a way to update all get_user_pages*() callers, so that they call
put_user_page(), instead of put_page().

Also introduces put_user_pages(), and a few dirty/locked variations, as a
replacement for release_pages(), and also as a replacement for open-coded
loops that release multiple pages.  These may be used for subsequent
performance improvements, via batching of pages to be released.

This is the first step of fixing a problem (also described in [1] and [2])
with interactions between get_user_pages ("gup") and filesystems.

Problem description: let's start with a bug report.  Below, is what
happens sometimes, under memory pressure, when a driver pins some pages
via gup, and then marks those pages dirty, and releases them.  Note that
the gup documentation actually recommends that pattern.  The problem is
that the filesystem may do a writeback while the pages were gup-pinned,
and then the filesystem believes that the pages are clean.  So, when the
driver later marks the pages as dirty, that conflicts with the
filesystem's page tracking and results in a BUG(), like this one that I
experienced:

    kernel BUG at /build/linux-fQ94TU/linux-4.4.0/fs/ext4/inode.c:1899!
    backtrace:
        ext4_writepage
        __writepage
        write_cache_pages
        ext4_writepages
        do_writepages
        __writeback_single_inode
        writeback_sb_inodes
        __writeback_inodes_wb
        wb_writeback
        wb_workfn
        process_one_work
        worker_thread
        kthread
        ret_from_fork

...which is due to the file system asserting that there are still buffer
heads attached:

        ({                                                      \
                BUG_ON(!PagePrivate(page));                     \
                ((struct buffer_head *)page_private(page));     \
        })

Dave Chinner's description of this is very clear:

    "The fundamental issue is that ->page_mkwrite must be called on
    every write access to a clean file backed page, not just the first
    one.  How long the GUP reference lasts is irrelevant, if the page is
    clean and you need to dirty it, you must call ->page_mkwrite before it
    is marked writeable and dirtied.  Every.  Time."

This is just one symptom of the larger design problem: real filesystems
that actually write to a backing device, do not actually support
get_user_pages() being called on their pages, and letting hardware write
directly to those pages--even though that pattern has been going on since
about 2005 or so.

The steps are to fix it are:

1) (This patch): provide put_user_page*() routines, intended to be used
   for releasing pages that were pinned via get_user_pages*().

2) Convert all of the call sites for get_user_pages*(), to
   invoke put_user_page*(), instead of put_page(). This involves dozens of
   call sites, and will take some time.

3) After (2) is complete, use get_user_pages*() and put_user_page*() to
   implement tracking of these pages. This tracking will be separate from
   the existing struct page refcounting.

4) Use the tracking and identification of these pages, to implement
   special handling (especially in writeback paths) when the pages are
   backed by a filesystem.

[1] https://lwn.net/Articles/774411/ : "DMA and get_user_pages()"
[2] https://lwn.net/Articles/753027/ : "The Trouble with get_user_pages()"

Link: http://lkml.kernel.org/r/20190327023632.13307-2-jhubbard@nvidia.com
Signed-off-by: John Hubbard <jhubbard@nvidia.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Reviewed-by: Mike Rapoport <rppt@linux.ibm.com>		[docs]
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Jérôme Glisse <jglisse@redhat.com>
Reviewed-by: Christoph Lameter <cl@linux.com>
Tested-by: Ira Weiny <ira.weiny@intel.com>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Dave Chinner <david@fromorbit.com>
Cc: Jason Gunthorpe <jgg@ziepe.ca>
Cc: Matthew Wilcox <willy@infradead.org>
Cc: Michal Hocko <mhocko@kernel.org>
Cc: Ralph Campbell <rcampbell@nvidia.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2019-05-14 09:47:47 -07:00
..
amba video: amba-clcd: Decomission Versatile and Nomadik 2019-04-11 19:25:12 +02:00
avf
bcma
byteorder
can
ceph libceph: wait for latest osdmap in ceph_monc_blacklist_add() 2019-03-20 16:27:40 +01:00
clk Merge branch 'clk-ti' into clk-next 2019-05-07 11:46:02 -07:00
crush
decompress
dma dmaengine: idma64: Move driver name to the header 2019-04-26 16:55:23 +05:30
dsa net: dsa: sja1105: Add support for traffic through standalone ports 2019-05-05 21:52:42 -07:00
extcon
firmware EDAC/altera, firmware/intel: Add Stratix10 ECC DBE SMC call 2019-04-02 17:42:15 +02:00
fpga
fsl include/fsl: add common FlexTimer #defines in a separate header. 2019-04-25 21:33:41 +02:00
gpio This is the bulk of the GPIO changes for the v5.2 kernel cycle: 2019-05-11 10:54:43 -04:00
hsi
i3c
iio iio: trigger: stm32-timer: fix build issue when disabled 2019-04-22 11:34:14 +01:00
input
irqchip irqchip updates for 5.1, take #2 2019-03-21 12:30:54 +01:00
isdn
lockd lockd: Store the lockd client credential in struct nlm_host 2019-04-26 17:51:23 -04:00
mailbox
mfd LED updates for 5.2-rc1. 2019-05-07 18:02:51 -07:00
mlx4
mlx5 5.2 Merge Window pull request 2019-05-09 09:02:46 -07:00
mmc mmc: sdio: Add helper macro for sdio_driver boilerplate 2019-04-23 18:09:07 +02:00
mtd mtd: nand: Make flags for bad block marker position more granular 2019-04-18 08:54:07 +02:00
mux
netfilter ipset: drop ipset_nest_start() and ipset_nest_end() 2019-04-27 17:03:44 -04:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy phy: core: Add *release* phy_ops invoked when the consumer relinquishes PHY 2019-04-17 14:13:17 +05:30
pinctrl
platform_data This pull request contains the following changes for MTD: 2019-05-12 17:57:52 -04:00
power
qed drivers: Remove explicit invocations of mmiowb() 2019-04-08 12:01:02 +01:00
raid
regulator regulator: add regulator_get_linear_step() stub helper 2019-03-21 14:59:38 +00:00
remoteproc
reset
rpmsg
rtc rtc: ds1685: use threaded interrupt 2019-04-16 18:03:48 +02:00
sched Merge branch 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2019-05-09 13:52:12 -07:00
soc
soundwire soundwire: remove multiple blank lines 2019-05-02 17:17:52 +02:00
spi spi: expand mode support 2019-05-02 10:37:55 +09:00
ssb
sunrpc SUNRPC: Cache cred of process creating the rpc_client 2019-04-26 16:00:48 -04:00
ulpi
unaligned
usb USB: changes for v5.2 merge window 2019-05-03 18:05:27 +02:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_iort.h perf/smmuv3: Enable HiSilicon Erratum 162001800 quirk 2019-04-04 16:49:22 +01:00
acpi_pmtmr.h
acpi.h Driver core/kobject patches for 5.2-rc1 2019-05-07 13:01:40 -07:00
adb.h
adfs_fs.h
adxl.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
alcor_pci.h mmc: alcor: work with multiple-entry sglists 2019-05-06 11:55:39 +02:00
altera_jtaguart.h
altera_uart.h
amd-iommu.h
anon_inodes.h
apm_bios.h
apm-emulation.h
apple_bl.h
apple-gmux.h
arch_topology.h
arm_sdei.h
arm-cci.h
arm-smccc.h
armada-37xx-rwtm-mailbox.h mailbox: Add support for Armada 37xx rWTM mailbox 2019-05-09 00:41:00 -05:00
ascii85.h
asn1_ber_bytecode.h
asn1_decoder.h
asn1.h
assoc_array_priv.h
assoc_array.h
async_tx.h
async.h
ata_platform.h
ata.h
atalk.h appletalk: Fix potential NULL pointer dereference in unregister_snap_client 2019-03-15 11:25:48 -07:00
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel_tc.h
atmel-mci.h
atmel-ssc.h
atomic-fallback.h
atomic.h
attribute_container.h
audit.h ntp: Audit NTP parameters adjustment 2019-04-15 18:14:01 -04:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
backing-dev.h
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
bio.h block: switch all files cleared marked as GPLv2 to SPDX tags 2019-04-30 16:11:57 -06:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h
bitrev.h include/linux/bitrev.h: fix constant bitrev 2019-04-05 16:02:30 -10:00
bits.h
blk_types.h block: bio: ensure newly added bio flags don't override BVEC_POOL_IDX 2019-04-04 09:30:37 -06:00
blk-cgroup.h
blk-mq-pci.h
blk-mq-rdma.h block: add a SPDX tag to blk-mq-rdma.h 2019-04-30 16:12:02 -06:00
blk-mq-virtio.h
blk-mq.h blk-mq: always free hctx after request queue is freed 2019-05-04 07:24:08 -06:00
blk-pm.h
blkdev.h blk-mq: always free hctx after request queue is freed 2019-05-04 07:24:08 -06:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bottom_half.h
bpf_lirc.h
bpf_trace.h
bpf_types.h bpf: Introduce bpf sk local storage 2019-04-27 09:07:04 -07:00
bpf_verifier.h bpf: remove global variables 2019-04-23 01:50:43 +02:00
bpf-cgroup.h bpf: Add file_pos field to bpf_sysctl ctx 2019-04-12 13:54:58 -07:00
bpf.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2019-05-02 22:14:21 -04:00
bpfilter.h
brcmphy.h net: phy: bcm54xx: Encode link speed and activity into LEDs 2019-03-26 11:24:47 -07:00
bsearch.h
bsg-lib.h block: switch all files cleared marked as GPLv2 or later to SPDX tags 2019-04-30 16:11:59 -06:00
bsg.h
btf.h bpf: allow for key-less BTF in array map 2019-04-09 17:05:46 -07:00
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build_bug.h
build-salt.h
bvec.h block: fix mismerge in bvec_advance 2019-05-07 08:39:02 -06:00
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h cgroup: cgroup v2 freezer 2019-04-19 11:26:48 -07:00
cgroup.h cgroup: get rid of cgroup_freezer_frozen_exit() 2019-05-06 08:39:11 -07:00
circ_buf.h
cleancache.h
clk-provider.h Merge branch 'clk-parent-rewrite-1' into clk-next 2019-05-07 11:46:13 -07:00
clk.h clk: Add missing stubs for a few functions 2019-04-25 08:19:15 -07:00
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda_psdev.h
coda.h
compaction.h
compat.h
compiler_attributes.h
compiler_types.h
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler.h tracing: Improve "if" macro code generation 2019-04-03 09:36:27 +02:00
completion.h
component.h
concap.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
const.h
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h
coresight-pmu.h coresight: etm4x: Add kernel configuration for CONTEXTID 2019-04-25 22:00:16 +02:00
coresight-stm.h
coresight.h coresight: Communicate perf event to sink buffer allocation functions 2019-04-25 22:00:17 +02:00
count_zeros.h
counter_enum.h counter: Introduce the Generic Counter interface 2019-04-25 21:33:37 +02:00
counter.h counter: Introduce the Generic Counter interface 2019-04-25 21:33:37 +02:00
cper.h
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpu.h Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-06 14:44:49 -07:00
cpufeature.h
cpufreq.h cpufreq: intel_pstate: Update max frequency on global turbo changes 2019-04-08 11:26:09 +02:00
cpuhotplug.h powerpc updates for 5.2 2019-05-10 05:29:27 -07:00
cpuidle.h cpuidle: Export the next timer expiration for CPUs 2019-04-10 00:32:34 +02:00
cpumask.h
cpuset.h
crash_core.h
crash_dump.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
crc32poly.h
crc64.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
cred.h security: don't use RCU accessors for cred->session_keyring 2019-04-10 10:28:21 -07:00
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h
dca.h
dcache.h Clean up fscrypt's dcache revalidation support, and other 2019-05-07 21:28:04 -07:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
devcoredump.h
devfreq_cooling.h
devfreq-event.h
devfreq.h
device_cgroup.h
device-mapper.h
device.h We have a couple new features and changes in the core clk framework this time 2019-05-09 14:50:09 -07:00
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm_plock.h
dlm.h
dm9000.h
dm-bufio.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h dma-buf: add new dma_fence_chain container v7 2019-04-01 12:05:02 +02:00
dma-fence.h dma-buf: explicitely note that dma-fence-chains use 64bit seqno 2019-04-16 14:49:10 +02:00
dma-iommu.h
dma-mapping.h dma-mapping: remove leftover NULL device support 2019-04-08 17:52:46 +02:00
dma-noncoherent.h dma-mapping: add a Kconfig symbol to indicate arch_dma_prep_coherent presence 2019-05-06 15:04:40 +02:00
dmaengine.h
dmapool.h
dmar.h
dmi.h efi: Unify DMI setup code over the arm/arm64, ia64 and x86 architectures 2019-03-29 07:35:00 +01:00
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd_genl_api.h
drbd_genl.h
drbd_limits.h
drbd.h
ds2782_battery.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h RDMA/core: Introduce RDMA subsystem ibdev_* print functions 2019-05-01 12:29:28 -04:00
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h x86/reboot, efi: Use EFI reboot for Acer TravelMate X514-51T 2019-04-16 10:01:24 +02:00
efs_vh.h
eisa.h
elevator.h bfq: update internal depth state when queue depth changes 2019-04-13 19:08:22 -06:00
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
energy_model.h
err.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next 2019-04-28 08:42:41 -04:00
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
f2fs_fs.h f2fs: correct spelling mistake 2019-03-12 18:59:17 -07:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2019-05-07 22:03:58 -07:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
frame.h
freezer.h
frontswap.h
fs_context.h vfs: Implement logging through fs_context 2019-03-20 18:49:06 -04:00
fs_enet_pd.h
fs_parser.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_types.h
fs_uart_pd.h
fs.h Add as a feature case-insensitive directories (the casefold feature) 2019-05-07 21:12:44 -07:00
fscache-cache.h
fscache.h
fscrypt.h This pull request contains the following changes for UBI/UBIFS 2019-05-12 18:16:31 -04:00
fsi-occ.h
fsi-sbefifo.h
fsi.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsl-diu-fb.h
fsldma.h
fsnotify_backend.h fsnotify: switch send_to_group() and ->handle_event to const struct qstr * 2019-04-26 13:51:03 -04:00
fsnotify.h fsnotify(): switch to passing const struct qstr * for file_name 2019-04-26 13:37:25 -04:00
ftrace_irq.h
ftrace.h tracing: Cleanup stack trace code 2019-04-29 12:37:46 +02:00
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
generic-radix-tree.h generic radix trees 2019-03-12 10:04:02 -07:00
genetlink.h
genhd.h block: fix use-after-free on gendisk 2019-04-22 09:48:12 -06:00
genl_magic_func.h genetlink: make policy common to family 2019-03-22 10:38:23 -04:00
genl_magic_struct.h
getcpu.h
gfp.h hugetlb: allow to free gigantic pages regardless of the configuration 2019-05-14 09:47:47 -07:00
glob.h
gnss.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.h
hardirq.h
hash.h
hashtable.h
hdlc.h
hdlcdrv.h
hdmi.h
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h Merge branches 'for-5.1/upstream-fixes', 'for-5.2/core', 'for-5.2/ish', 'for-5.2/logitech', 'for-5.2/macally', 'for-5.2/picolcd', 'for-5.2/sensor' and 'for-5.2/u2fzero' into for-linus 2019-05-06 15:45:18 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hmm.h mm/hmm: convert to use vm_fault_t 2019-03-12 10:04:00 -07:00
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
huge_mm.h mm/huge_memory: fix vmf_insert_pfn_{pmd, pud}() crash, handle unaligned addresses 2019-05-14 09:47:44 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
hugetlb.h include/linux/hugetlb.h: convert to use vm_fault_t 2019-03-29 10:01:37 -07:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h hwmon: Add support for samples attributes 2019-04-15 17:19:53 -07:00
hwspinlock.h
hyperv.h Drivers: hv: vmbus: Fix race condition with new ring_buffer_info mutex 2019-04-10 18:58:56 -04:00
hypervisor.h
i2c-algo-bit.h i2c: algo: bit: add flag to whitelist atomic transfers 2019-04-16 13:08:16 +02:00
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-mux.h
i2c-pxa.h
i2c-smbus.h
i2c.h i2c: core: ratelimit 'transfer when suspended' errors 2019-05-03 15:25:00 +02:00
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idle_inject.h
idr.h
ieee80211.h ieee80211: update HE IEs to D4.0 spec 2019-04-26 13:02:11 +02:00
ieee802154.h
if_arp.h
if_bridge.h bridge: broute: make broute a real ebtables table 2019-04-12 01:47:50 +02:00
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_tap.h
if_team.h
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h
ihex.h
ima.h s390/kexec_file: Disable kexec_load when IPLed secure 2019-04-29 10:44:03 +02:00
imx-media.h
in6.h
in.h
indirect_call_wrapper.h
inet_diag.h
inet.h
inetdevice.h ipv4: Move IN_DEV_IGNORE_ROUTES_WITH_LINKDOWN to helper 2019-03-29 10:48:03 -07:00
init_ohci1394_dma.h
init_task.h
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h iommu/vt-d: Aux-domain specific domain attach/detach 2019-04-11 17:15:48 +02:00
intel-ish-client-if.h HID: intel-ish-hid: Add interface function for PCI device pointer 2019-03-19 11:57:24 +01:00
intel-pti.h
intel-svm.h
interconnect-provider.h
interconnect.h
interrupt.h softirq: Remove tasklet_hrtimer 2019-03-22 14:36:02 +01:00
interval_tree_generic.h
interval_tree.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io-pgtable.h iommu: io-pgtable: Add ARM Mali midgard MMU page table format 2019-04-12 12:52:38 -05:00
io.h
ioc3.h
ioc4.h
iocontext.h
iomap.h iomap: Add a page_prepare callback 2019-05-01 07:47:37 -07:00
iommu-helper.h
iommu.h Merge branch 'api-features' into arm/smmu 2019-04-26 17:11:46 +02:00
iopoll.h
ioport.h
ioprio.h
iova.h iommu/iova: Separate atomic variables to improve performance 2019-04-11 15:42:54 +02:00
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi-fru.h
ipmi.h
ipv6_route.h
ipv6.h
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h
irq.h genirq: Fix typo in comment of IRQD_MOVE_PCNTXT 2019-03-21 11:52:37 +01:00
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iversion.h
jbd2.h crypto: shash - remove shash_desc::flags 2019-04-25 15:38:12 +08:00
jhash.h
jiffies.h time: Introduce jiffies64_to_msecs() 2019-04-08 22:56:14 +02:00
journal-head.h
joystick.h
jump_label_ratelimit.h locking/static_key: Add support for deferred static branches 2019-04-29 08:29:20 +02:00
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h Linux 5.1-rc2 2019-03-28 10:58:28 +01:00
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h Linux 5.1-rc6 2019-04-22 09:47:36 -06:00
kernelcapi.h
kernfs.h selinux/stable-5.2 PR 20190507 2019-05-07 18:48:09 -07:00
kexec.h
key-type.h
key.h
keyboard.h
keyctl.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject_ns.h
kobject.h kobject: Add support for default attribute groups to kobj_type 2019-04-25 22:06:10 +02:00
kprobes.h x86/kprobes: Verify stack frame on kretprobe 2019-04-19 14:26:05 +02:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h
ktime.h
kvm_host.h KVM: fix spectrev1 gadgets 2019-04-16 15:38:07 +02:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lantiq.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds_pwm.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h
libata.h
libfdt_env.h
libfdt.h
libgcc.h
libnvdimm.h device-dax for 5.1 2019-03-16 13:05:32 -07:00
libps2.h
license.h
lightnvm.h
limits.h
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
list.h list: add function list_rotate_to_front() 2019-05-14 09:47:44 -07:00
livepatch.h livepatch: Remove custom kobject state handling 2019-05-03 21:11:22 +02:00
llc.h
llist.h
lockdep.h Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-06 13:50:15 -07:00
lockref.h
log2.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h Merge branch 'work.mount-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-07 20:17:51 -07:00
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h net: phy: marvell: add new default led configure for m88e151x 2019-04-23 10:40:32 -07:00
math64.h math64: New DIV64_U64_ROUND_CLOSEST helper 2019-04-02 09:50:48 +02:00
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h IOMMU Updates for Linux v5.2 2019-05-13 09:23:18 -04:00
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h net: mdio: rename mdio_device reset to reset_gpio 2019-04-18 17:42:54 -07:00
mei_cl_bus.h mei: adjust the copyright notice in the files. 2019-03-28 02:07:54 +09:00
mem_encrypt.h
memblock.h memblock: remove memblock_{set,clear}_region_flags 2019-03-12 10:04:02 -07:00
memcontrol.h mm: memcontrol: push down mem_cgroup_node_nr_lru_pages() 2019-05-14 09:47:46 -07:00
memfd.h
memory_hotplug.h xen: fixes and features for 5.1-rc1 2019-03-11 17:08:14 -07:00
memory.h
mempolicy.h
mempool.h
memremap.h
memstick.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate_mode.h
migrate.h
mii.h net: mii: Fix PAUSE cap advertisement from linkmode_adv_to_lcl_adv_t() helper 2019-03-27 22:49:06 -07:00
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h mm: memcontrol: track LRU counts in the vmstats array 2019-05-14 09:47:46 -07:00
mm_types_task.h
mm_types.h mm: remove stale comment from page struct 2019-05-14 09:47:45 -07:00
mm-arch-hooks.h
mm.h mm: introduce put_user_page*(), placeholder versions 2019-05-14 09:47:47 -07:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: memcontrol: quarantine the mem_cgroup_[node_]nr_lru_pages() API 2019-05-14 09:47:47 -07:00
mnt_namespace.h
mod_devicetable.h
module.h Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security 2019-05-09 12:54:40 -07:00
moduleloader.h
moduleparam.h moduleparam: Save information about built-in modules in separate file 2019-05-07 21:50:24 +09:00
mount.h acct_on(): don't mess with freeze protection 2019-04-04 21:04:13 -04:00
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute_base.h
mroute.h
msdos_fs.h
msg.h
msi.h
mutex.h
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
ndctl.h
net_dim.h
net.h net: rework SIOCGSTAMP ioctl handling 2019-04-19 14:07:40 -07:00
netdev_features.h
netdevice.h net/tls: move definition of tls ops into net/tls.h 2019-04-27 16:52:21 -04:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h netfilter: nf_tables: merge route type into core 2019-04-08 23:01:42 +02:00
netfilter.h netfilter: slightly optimize nf_inet_addr_mask 2019-05-06 01:18:58 +02:00
netlink.h
netpoll.h
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h NFS: Store the credential of the mount process in the nfs_server 2019-04-26 16:11:54 -04:00
nfs_fs.h NFS: Replace custom error reporting mechanism with generic one 2019-04-25 14:18:14 -04:00
nfs_iostat.h
nfs_page.h NFS: Remove redundant open context from nfs_page 2019-04-25 14:18:15 -04:00
nfs_xdr.h
nfs.h
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h node: Add memory-side caching attributes 2019-04-04 18:41:21 +02:00
nodemask.h
nospec.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb_transport.h
ntb.h
nubus.h
numa.h
nvme-fc-driver.h scsi: scsi_transport_fc: nvme: display FC-NVMe port roles 2019-04-12 20:09:34 -04:00
nvme-fc.h
nvme-rdma.h nvme-rdma: fix typo in struct comment 2019-04-25 16:51:42 +02:00
nvme-tcp.h
nvme.h nvmet: fix discover log page when offsets are used 2019-04-11 17:28:30 +02:00
nvmem-consumer.h nvmem: core: add nvmem_cell_read_u16 2019-04-25 19:43:12 +02:00
nvmem-provider.h
nvram.h
objagg.h
of_address.h
of_clk.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h of: fix clang -Wunsequenced for be32_to_cpu() 2019-05-01 14:26:36 -05:00
oid_registry.h crypto: ecrdsa - add EC-RDSA (GOST 34.10) algorithm 2019-04-18 22:15:02 +08:00
olpc-ec.h
omap-dma.h
omap-dmaengine.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h
openvswitch.h
oprofile.h
osq_lock.h
overflow.h overflow: Fix -Wtype-limits compilation warnings 2019-03-27 10:23:03 -03:00
oxu210hp.h
packing.h lib: Add support for generic packing operations 2019-05-03 10:49:17 -04:00
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
page-flags-layout.h
page-flags.h
page-isolation.h mm/hotplug: fix offline undo_isolate_page_range() 2019-03-29 10:01:37 -07:00
pageblock-flags.h
pagemap.h mm: page cache: store only head pages in i_pages 2019-05-14 09:47:45 -07:00
pagevec.h
parman.h
parport_pc.h
parport.h Revert "parport: daisy: use new parport device model" 2019-03-25 14:49:00 -07:00
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h
pci-epf.h
pci-p2pdma.h
pci.h IOMMU Updates for Linux v5.2 2019-05-13 09:23:18 -04:00
pda_power.h
pe.h
percpu_counter.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2019-05-06 14:16:36 -07:00
perf_regs.h
personality.h
pfn_t.h
pfn.h
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h net: phy: improve resuming from hibernation 2019-05-04 00:50:58 -04:00
phylink.h
pid_namespace.h
pid.h clone: add CLONE_PIDFD 2019-05-07 14:31:03 +02:00
pim.h
pipe_fs_i.h There tracing fixes: 2019-04-26 11:09:55 -07:00
pkeys.h
pktcdvd.h
pl320-ipc.h
pl353-smc.h
platform_device.h
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h PM / Domains: Allow to attach a CPU via genpd_dev_pm_attach_by_id|name() 2019-04-25 23:18:03 +02:00
pm_opp.h OPP: Introduce dev_pm_opp_find_freq_ceil_by_volt() 2019-04-10 12:13:31 +05:30
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h PM / wakeup: Drop wakeup_source_drop() 2019-03-12 09:43:00 +01:00
pm-trace.h
pm.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h Drop flex_arrays 2019-03-12 10:04:03 -07:00
poll.h
posix_acl_xattr.h
posix_acl.h
posix-clock.h
posix-timers.h
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h
pr.h
preempt.h
prefetch.h
prime_numbers.h
printk.h printk: Tie printk_once / printk_deferred_once into .data.once for reset 2019-04-15 10:23:53 +02:00
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h device property: Add fwnode_graph_get_endpoint_by_id() 2019-04-18 16:44:05 +02:00
psci.h
psi_types.h
psi.h
psp-sev.h crypto: ccp - introduce SEV_GET_ID2 command 2019-04-08 14:36:16 +08:00
pstore_ram.h
pstore.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h
ptrace.h ptrace: Remove maxargs from task_current_syscall() 2019-04-04 09:17:15 -04:00
purgatory.h
pvclock_gtod.h
pwm_backlight.h
pwm.h pwm: Fix deadlock warning when removing PWM device 2019-03-20 12:21:31 +01:00
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qcom-geni-se.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h random: move rand_initialize() earlier 2019-04-19 23:27:05 -04:00
range.h
ras.h
ratelimit.h
rational.h
rbtree_augmented.h
rbtree_latch.h
rbtree.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist_bl.h
rculist_nulls.h
rculist.h
rcupdate_wait.h
rcupdate.h rcu: Do a single rhp->func read in rcu_head_after_call_rcu() 2019-03-26 14:38:38 -07:00
rcutiny.h
rcutree.h
rcuwait.h rcuwait: Annotate task_struct with __rcu 2019-04-03 12:34:31 +02:00
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h reset: Add acquire/release support for arrays 2019-03-20 11:18:53 +01:00
resource_ext.h
resource.h
restart_block.h
rfkill.h
rhashtable-types.h rhashtable: use bit_spin_locks to protect hash bucket. 2019-04-07 19:12:12 -07:00
rhashtable.h rhashtable: use BIT(0) for locking. 2019-04-12 17:34:45 -07:00
ring_buffer.h tracing: kdb: Fix ftdump to not sleep 2019-03-13 09:46:10 -04:00
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h rtc: drop set_mms and set_mmss64 2019-05-08 22:14:36 +02:00
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwlock_api_smp.h
rwlock_types.h
rwlock.h
rwsem.h locking/rwsem: Optimize rwsem structure for uncontended lock acquisition 2019-04-10 10:56:06 +02:00
s3c_adc_battery.h
sbitmap.h sbitmap: trivial - update comment for sbitmap_deferred_clear_bit 2019-03-22 11:01:02 -06:00
scatterlist.h lib/scatterlist: Remove leftover from sg_page_iter comment 2019-05-07 12:47:47 -03:00
scc.h
sched_clock.h
sched.h Merge branch 'for-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2019-05-09 13:52:12 -07:00
scif.h
scmi_protocol.h
scpi_protocol.h
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h Merge branch 'work.mount-syscalls' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2019-05-07 20:17:51 -07:00
sed-opal.h block: switch all files cleared marked as GPLv2 to SPDX tags 2019-04-30 16:11:57 -06:00
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h vt: selection: allow functions to be called from inside kernel 2019-04-19 15:09:10 +02:00
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h
seqlock.h
seqno-fence.h
serdev.h
serial_8250.h
serial_bcm63xx.h
serial_core.h docs: serial: convert docs to ReST and rename to *.rst 2019-04-25 11:37:42 +02:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
set_memory.h x86/mm/cpa: Add set_direct_map_*() functions 2019-04-30 12:37:56 +02:00
sfi_acpi.h
sfi.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
sha256.h
shdma-base.h
shm.h
shmem_fs.h mm: swapoff: shmem_unuse() stop eviction without igrab() 2019-04-19 09:46:04 -07:00
shrinker.h
signal_types.h
signal.h
signalfd.h
siox.h
siphash.h inet: switch IP ID generator to siphash 2019-03-27 14:29:26 -07:00
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h bpf: support BPF_PROG_QUERY for BPF_FLOW_DISSECTOR attach_type 2019-04-25 23:49:06 +02:00
skmsg.h
slab_def.h
slab.h mm: add support for kmem caches in DMA32 zone 2019-03-29 10:01:37 -07:00
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h smpboot: Place the __percpu annotation correctly 2019-04-24 12:17:08 +02:00
smsc911x.h
smscphy.h
sock_diag.h
socket.h net: add documentation to socket.c 2019-03-15 15:29:47 -07:00
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h mmiowb: Hook up mmiowb helpers to spinlocks and generic I/O accessors 2019-04-08 11:59:47 +01:00
splice.h
spmi.h
sram.h
srcu.h srcu: Remove cleanup_srcu_struct_quiesced() 2019-03-26 14:39:24 -07:00
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h lib/stackdepot: Remove obsolete functions 2019-04-29 12:37:57 +02:00
stackleak.h
stackprotector.h
stacktrace.h stacktrace: Provide common infrastructure 2019-04-29 12:37:57 +02:00
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h lib/string: Add strscpy_pad() function 2019-04-08 16:44:21 -06:00
stringhash.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h PM / sleep: Refactor filesystems sync to reduce duplication 2019-04-02 10:53:19 +02:00
svga.h
sw842.h
swab.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h include/linux/swap.h: use offsetof() instead of custom __swapoffset macro 2019-03-14 14:36:20 -07:00
swapfile.h
swapops.h
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscalls.h vfs: syscall: Add fspick() to select a superblock for reconfiguration 2019-03-20 18:49:06 -04:00
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting_ops.h
task_io_accounting.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h
tee_drv.h
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h
thread_info.h
threads.h
thunderbolt.h thunderbolt: Add XDomain UUID exchange support 2019-04-18 11:18:53 +03:00
ti_wilink_st.h
ti-emif-sram.h
tick.h Power management updates for 5.2-rc1 2019-05-06 19:40:31 -07:00
tifm.h
timb_dma.h
timb_gpio.h
time32.h
time64.h timekeeping: Force upper bound for setting CLOCK_REALTIME 2019-03-28 13:41:06 +01:00
time.h
timecounter.h
timekeeper_internal.h
timekeeping32.h
timekeeping.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm_command.h
tpm_eventlog.h
tpm.h
trace_clock.h
trace_events.h
trace_seq.h
trace.h
tracefs.h
tracehook.h
tracepoint-defs.h bpf: add writable context for raw tracepoints 2019-04-26 19:04:19 -07:00
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h
typecheck.h
types.h block: remove CONFIG_LBDAF 2019-04-06 10:48:35 -06:00
u64_stats_sync.h
uaccess.h x86/uaccess: Introduce user_access_{save,restore}() 2019-04-03 11:02:19 +02:00
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h
uio.h iov_iter: fix iov_iter_type 2019-05-01 08:38:47 -06:00
umh.h
unicode.h unicode: implement higher level API for string handling 2019-04-25 13:51:22 -04:00
uprobes.h uprobes: Initialize uprobes earlier 2019-04-30 12:37:51 +02:00
usb_usual.h
usb.h USB/PHY patches for 5.2-rc1 2019-05-08 10:03:52 -07:00
usbdevice_fs.h
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h userfaultfd/sysctl: add vm.unprivileged_userfaultfd 2019-05-14 09:47:45 -07:00
util_macros.h
uts.h
utsname.h
uuid.h
uwb.h
vbox_utils.h virt: vbox: Implement passing requestor info to the host for VirtualBox 6.0.x 2019-03-28 01:55:18 +09:00
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via_i2c.h
via-core.h
via-gpio.h
via.h
videodev2.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_net.h
virtio_ring.h virtio: Honour 'may_reduce_num' in vring_create_virtqueue 2019-04-08 17:05:52 -04:00
virtio_vsock.h
virtio.h
visorbus.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h mm/vmalloc: Add flag for freeing of special permsissions 2019-04-30 12:37:58 +02:00
vme.h
vmpressure.h
vmstat.h mm: move recent_rotated pages calculation to shrink_inactive_list() 2019-05-14 09:47:45 -07:00
vmw_vmci_api.h
vmw_vmci_defs.h VMCI: Use BIT() macro for bit definitions 2019-04-02 16:58:30 +02:00
vringh.h
vt_buffer.h
vt_kern.h
vt.h
vtime.h
w1-gpio.h
w1.h
wait_bit.h
wait.h docs: Add colon clearing sphinx warning 2019-04-09 15:14:49 -06:00
wanrouter.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h
writeback.h
ww_mutex.h
xarray.h
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zstd.h
zutil.h