twx-linux/include/linux
Andrii Nakryiko 457f44363a bpf: Implement BPF ring buffer and verifier support for it
This commit adds a new MPSC ring buffer implementation into BPF ecosystem,
which allows multiple CPUs to submit data to a single shared ring buffer. On
the consumption side, only single consumer is assumed.

Motivation
----------
There are two distinctive motivators for this work, which are not satisfied by
existing perf buffer, which prompted creation of a new ring buffer
implementation.
  - more efficient memory utilization by sharing ring buffer across CPUs;
  - preserving ordering of events that happen sequentially in time, even
  across multiple CPUs (e.g., fork/exec/exit events for a task).

These two problems are independent, but perf buffer fails to satisfy both.
Both are a result of a choice to have per-CPU perf ring buffer.  Both can be
also solved by having an MPSC implementation of ring buffer. The ordering
problem could technically be solved for perf buffer with some in-kernel
counting, but given the first one requires an MPSC buffer, the same solution
would solve the second problem automatically.

Semantics and APIs
------------------
Single ring buffer is presented to BPF programs as an instance of BPF map of
type BPF_MAP_TYPE_RINGBUF. Two other alternatives considered, but ultimately
rejected.

One way would be to, similar to BPF_MAP_TYPE_PERF_EVENT_ARRAY, make
BPF_MAP_TYPE_RINGBUF could represent an array of ring buffers, but not enforce
"same CPU only" rule. This would be more familiar interface compatible with
existing perf buffer use in BPF, but would fail if application needed more
advanced logic to lookup ring buffer by arbitrary key. HASH_OF_MAPS addresses
this with current approach. Additionally, given the performance of BPF
ringbuf, many use cases would just opt into a simple single ring buffer shared
among all CPUs, for which current approach would be an overkill.

Another approach could introduce a new concept, alongside BPF map, to
represent generic "container" object, which doesn't necessarily have key/value
interface with lookup/update/delete operations. This approach would add a lot
of extra infrastructure that has to be built for observability and verifier
support. It would also add another concept that BPF developers would have to
familiarize themselves with, new syntax in libbpf, etc. But then would really
provide no additional benefits over the approach of using a map.
BPF_MAP_TYPE_RINGBUF doesn't support lookup/update/delete operations, but so
doesn't few other map types (e.g., queue and stack; array doesn't support
delete, etc).

The approach chosen has an advantage of re-using existing BPF map
infrastructure (introspection APIs in kernel, libbpf support, etc), being
familiar concept (no need to teach users a new type of object in BPF program),
and utilizing existing tooling (bpftool). For common scenario of using
a single ring buffer for all CPUs, it's as simple and straightforward, as
would be with a dedicated "container" object. On the other hand, by being
a map, it can be combined with ARRAY_OF_MAPS and HASH_OF_MAPS map-in-maps to
implement a wide variety of topologies, from one ring buffer for each CPU
(e.g., as a replacement for perf buffer use cases), to a complicated
application hashing/sharding of ring buffers (e.g., having a small pool of
ring buffers with hashed task's tgid being a look up key to preserve order,
but reduce contention).

Key and value sizes are enforced to be zero. max_entries is used to specify
the size of ring buffer and has to be a power of 2 value.

There are a bunch of similarities between perf buffer
(BPF_MAP_TYPE_PERF_EVENT_ARRAY) and new BPF ring buffer semantics:
  - variable-length records;
  - if there is no more space left in ring buffer, reservation fails, no
    blocking;
  - memory-mappable data area for user-space applications for ease of
    consumption and high performance;
  - epoll notifications for new incoming data;
  - but still the ability to do busy polling for new data to achieve the
    lowest latency, if necessary.

BPF ringbuf provides two sets of APIs to BPF programs:
  - bpf_ringbuf_output() allows to *copy* data from one place to a ring
    buffer, similarly to bpf_perf_event_output();
  - bpf_ringbuf_reserve()/bpf_ringbuf_commit()/bpf_ringbuf_discard() APIs
    split the whole process into two steps. First, a fixed amount of space is
    reserved. If successful, a pointer to a data inside ring buffer data area
    is returned, which BPF programs can use similarly to a data inside
    array/hash maps. Once ready, this piece of memory is either committed or
    discarded. Discard is similar to commit, but makes consumer ignore the
    record.

bpf_ringbuf_output() has disadvantage of incurring extra memory copy, because
record has to be prepared in some other place first. But it allows to submit
records of the length that's not known to verifier beforehand. It also closely
matches bpf_perf_event_output(), so will simplify migration significantly.

bpf_ringbuf_reserve() avoids the extra copy of memory by providing a memory
pointer directly to ring buffer memory. In a lot of cases records are larger
than BPF stack space allows, so many programs have use extra per-CPU array as
a temporary heap for preparing sample. bpf_ringbuf_reserve() avoid this needs
completely. But in exchange, it only allows a known constant size of memory to
be reserved, such that verifier can verify that BPF program can't access
memory outside its reserved record space. bpf_ringbuf_output(), while slightly
slower due to extra memory copy, covers some use cases that are not suitable
for bpf_ringbuf_reserve().

The difference between commit and discard is very small. Discard just marks
a record as discarded, and such records are supposed to be ignored by consumer
code. Discard is useful for some advanced use-cases, such as ensuring
all-or-nothing multi-record submission, or emulating temporary malloc()/free()
within single BPF program invocation.

Each reserved record is tracked by verifier through existing
reference-tracking logic, similar to socket ref-tracking. It is thus
impossible to reserve a record, but forget to submit (or discard) it.

bpf_ringbuf_query() helper allows to query various properties of ring buffer.
Currently 4 are supported:
  - BPF_RB_AVAIL_DATA returns amount of unconsumed data in ring buffer;
  - BPF_RB_RING_SIZE returns the size of ring buffer;
  - BPF_RB_CONS_POS/BPF_RB_PROD_POS returns current logical possition of
    consumer/producer, respectively.
Returned values are momentarily snapshots of ring buffer state and could be
off by the time helper returns, so this should be used only for
debugging/reporting reasons or for implementing various heuristics, that take
into account highly-changeable nature of some of those characteristics.

One such heuristic might involve more fine-grained control over poll/epoll
notifications about new data availability in ring buffer. Together with
BPF_RB_NO_WAKEUP/BPF_RB_FORCE_WAKEUP flags for output/commit/discard helpers,
it allows BPF program a high degree of control and, e.g., more efficient
batched notifications. Default self-balancing strategy, though, should be
adequate for most applications and will work reliable and efficiently already.

Design and implementation
-------------------------
This reserve/commit schema allows a natural way for multiple producers, either
on different CPUs or even on the same CPU/in the same BPF program, to reserve
independent records and work with them without blocking other producers. This
means that if BPF program was interruped by another BPF program sharing the
same ring buffer, they will both get a record reserved (provided there is
enough space left) and can work with it and submit it independently. This
applies to NMI context as well, except that due to using a spinlock during
reservation, in NMI context, bpf_ringbuf_reserve() might fail to get a lock,
in which case reservation will fail even if ring buffer is not full.

The ring buffer itself internally is implemented as a power-of-2 sized
circular buffer, with two logical and ever-increasing counters (which might
wrap around on 32-bit architectures, that's not a problem):
  - consumer counter shows up to which logical position consumer consumed the
    data;
  - producer counter denotes amount of data reserved by all producers.

Each time a record is reserved, producer that "owns" the record will
successfully advance producer counter. At that point, data is still not yet
ready to be consumed, though. Each record has 8 byte header, which contains
the length of reserved record, as well as two extra bits: busy bit to denote
that record is still being worked on, and discard bit, which might be set at
commit time if record is discarded. In the latter case, consumer is supposed
to skip the record and move on to the next one. Record header also encodes
record's relative offset from the beginning of ring buffer data area (in
pages). This allows bpf_ringbuf_commit()/bpf_ringbuf_discard() to accept only
the pointer to the record itself, without requiring also the pointer to ring
buffer itself. Ring buffer memory location will be restored from record
metadata header. This significantly simplifies verifier, as well as improving
API usability.

Producer counter increments are serialized under spinlock, so there is
a strict ordering between reservations. Commits, on the other hand, are
completely lockless and independent. All records become available to consumer
in the order of reservations, but only after all previous records where
already committed. It is thus possible for slow producers to temporarily hold
off submitted records, that were reserved later.

Reservation/commit/consumer protocol is verified by litmus tests in
Documentation/litmus-test/bpf-rb.

One interesting implementation bit, that significantly simplifies (and thus
speeds up as well) implementation of both producers and consumers is how data
area is mapped twice contiguously back-to-back in the virtual memory. This
allows to not take any special measures for samples that have to wrap around
at the end of the circular buffer data area, because the next page after the
last data page would be first data page again, and thus the sample will still
appear completely contiguous in virtual memory. See comment and a simple ASCII
diagram showing this visually in bpf_ringbuf_area_alloc().

Another feature that distinguishes BPF ringbuf from perf ring buffer is
a self-pacing notifications of new data being availability.
bpf_ringbuf_commit() implementation will send a notification of new record
being available after commit only if consumer has already caught up right up
to the record being committed. If not, consumer still has to catch up and thus
will see new data anyways without needing an extra poll notification.
Benchmarks (see tools/testing/selftests/bpf/benchs/bench_ringbuf.c) show that
this allows to achieve a very high throughput without having to resort to
tricks like "notify only every Nth sample", which are necessary with perf
buffer. For extreme cases, when BPF program wants more manual control of
notifications, commit/discard/output helpers accept BPF_RB_NO_WAKEUP and
BPF_RB_FORCE_WAKEUP flags, which give full control over notifications of data
availability, but require extra caution and diligence in using this API.

Comparison to alternatives
--------------------------
Before considering implementing BPF ring buffer from scratch existing
alternatives in kernel were evaluated, but didn't seem to meet the needs. They
largely fell into few categores:
  - per-CPU buffers (perf, ftrace, etc), which don't satisfy two motivations
    outlined above (ordering and memory consumption);
  - linked list-based implementations; while some were multi-producer designs,
    consuming these from user-space would be very complicated and most
    probably not performant; memory-mapping contiguous piece of memory is
    simpler and more performant for user-space consumers;
  - io_uring is SPSC, but also requires fixed-sized elements. Naively turning
    SPSC queue into MPSC w/ lock would have subpar performance compared to
    locked reserve + lockless commit, as with BPF ring buffer. Fixed sized
    elements would be too limiting for BPF programs, given existing BPF
    programs heavily rely on variable-sized perf buffer already;
  - specialized implementations (like a new printk ring buffer, [0]) with lots
    of printk-specific limitations and implications, that didn't seem to fit
    well for intended use with BPF programs.

  [0] https://lwn.net/Articles/779550/

Signed-off-by: Andrii Nakryiko <andriin@fb.com>
Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
Link: https://lore.kernel.org/bpf/20200529075424.3139988-2-andriin@fb.com
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
2020-06-01 14:38:22 -07:00
..
amba amba: Initialize dma_parms for amba devices 2020-04-28 17:44:34 +02:00
avf virtchnl: Add missing explicit padding to structures 2020-05-22 20:47:21 -07:00
bcma
byteorder
can can: dev: peak_canfd.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
ceph ceph: consider inode's last read/write when calculating wanted caps 2020-03-30 12:42:42 +02:00
clk
crush
decompress
device driver core: Rename deferred_probe_timeout and make it global 2020-03-04 18:11:44 +01:00
dma
dsa net: dsa: tag_sja1105: implement sub-VLAN decoding 2020-05-12 13:08:08 -07:00
extcon
firmware ARM: driver updates 2020-04-03 15:05:35 -07:00
fpga
fsl ptp_qoriq: output PPS signal on FIPER2 in default 2020-04-30 20:25:37 -07:00
gpio gpio: Rename variable in core APIs 2020-03-31 21:29:04 +02:00
greybus
hsi
i3c
iio First set of IIO fixes for the 5.7 cycle. 2020-04-20 14:07:00 +02:00
input Input: lm8333 - update contact email 2020-05-05 17:12:06 -07:00
irqchip irqchip/gic-v4.1: Add support for VPENDBASER's Dirty+Valid signaling 2020-04-16 10:28:12 +01:00
isdn
lockd
mailbox
mfd linux-watchdog 5.7-rc1 tag 2020-04-08 21:29:10 -07:00
mlx4 IB/mlx4: Replace zero-length array with flexible-array 2020-05-09 20:49:13 -07:00
mlx5 net/mlx5: IPSec: Fix incorrect type for spi 2020-05-29 21:20:22 -07:00
mmc mmc: core: Re-work the code for eMMC sanitize 2020-03-26 14:45:31 +01:00
mtd Raw NAND core changes: 2020-03-30 10:14:19 +02:00
mux
netfilter netfilter: nf_conntrack_pptp: fix compilation warning with W=1 build 2020-05-27 13:39:08 +02:00
netfilter_arp netfilter: Replace zero-length array with flexible-array member 2020-03-15 15:20:16 +01:00
netfilter_bridge netfilter: Replace zero-length array with flexible-array member 2020-03-15 15:20:16 +01:00
netfilter_ipv4 netfilter: Replace zero-length array with flexible-array member 2020-03-15 15:20:16 +01:00
netfilter_ipv6 netfilter: Replace zero-length array with flexible-array member 2020-03-15 15:20:16 +01:00
perf arm64: perf: Add support for ARMv8.5-PMU 64-bit counters 2020-03-17 22:50:30 +00:00
phy phy: tegra: xusb: Add support to get companion USB 3 port 2020-03-19 13:59:46 +01:00
pinctrl pinctrl: Define of_pinctrl_get() dummy for !PINCTRL 2020-03-31 22:08:54 +02:00
platform_data chrome-platform fixes for v5.7-rc5 2020-05-06 16:40:14 -07:00
power change email address for Pali Rohár 2020-04-10 15:36:22 -07:00
qed qed: Add EDPM mode type for user-fw compatibility 2020-05-26 15:15:40 -07:00
raid block: cleanup how md_autodetect_dev is called 2020-03-24 07:57:08 -06:00
regulator regulator: driver.h: fix regulator_map_* function names 2020-03-18 21:57:20 +00:00
remoteproc remoteproc: add IPA notification to q6v5 driver 2020-03-08 22:07:09 -07:00
reset
rpmsg
rtc
sched Merge branch 'work.sysctl' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2020-04-28 21:23:38 +02:00
soc ARM: driver updates 2020-04-03 15:05:35 -07:00
soundwire Merge branch 'topic/ro_wordlength' into next 2020-03-20 19:25:14 +05:30
spi - Fix-ups 2020-04-07 19:44:52 -07:00
ssb
sunrpc Fixes: 2020-05-11 12:04:52 -07:00
ulpi
unaligned scsi: treewide: Consolidate {get,put}_unaligned_[bl]e24() definitions 2020-03-16 22:08:34 -04:00
usb sound updates for 5.7-rc1 2020-04-02 15:50:04 -07:00
wimax
8250_pci.h
a.out.h
acct.h
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
acpi.h libnvdimm for 5.7 2020-04-08 21:03:40 -07:00
adb.h
adfs_fs.h
adxl.h
aer.h PCI/AER: Rationalize error status register clearing 2020-03-28 13:19:05 -05:00
agp_backend.h
agpgart.h
ahci_platform.h
ahci-remap.h
aio.h
alarmtimer.h
alcor_pci.h
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 arm64 updates for 5.7: 2020-03-31 10:05:01 -07:00
arm_sdei.h
arm-cci.h
arm-smccc.h
armada-37xx-rwtm-mailbox.h
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
ath9k_platform.h
atm_suni.h
atm_tcp.h
atm.h
atmdev.h
atmel_pdc.h
atmel-isc-media.h media: atmel: atmel-isc-base: expose white balance as v4l2 controls 2020-02-24 16:12:28 +01:00
atmel-mci.h
atmel-ssc.h
atomic-fallback.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
backing-dev-defs.h bdi: add a ->dev_name field to struct backing_dev_info 2020-05-09 16:07:57 -06:00
backing-dev.h bdi: move bdi_dev_name out of line 2020-05-07 08:45:47 -06:00
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 exec: Add exec_update_mutex to replace cred_guard_mutex 2020-03-25 10:03:36 -05:00
bio.h bio: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
bit_spinlock.h
bitfield.h bitfield.h: add FIELD_MAX() and field_max() 2020-03-12 15:48:37 -07:00
bitmap.h include/bitmap.h: add new functions to documentation 2020-03-05 13:23:25 -08:00
bitops.h bitops: always inline sign extension helpers 2020-04-07 10:43:42 -07:00
bitrev.h
bits.h linux/bits.h: add compile time sanity check of GENMASK inputs 2020-04-07 10:43:43 -07:00
blk_types.h blk_types: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
blk-cgroup.h blkcg: don't offline parent blkcg first 2020-04-01 14:56:44 -06:00
blk-mq-pci.h
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h blk-mq: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
blk-pm.h
blkdev.h for-5.7/drivers-2020-03-29 2020-03-30 11:43:51 -07:00
blkpg.h
blktrace_api.h blktrace: Protect q->blk_trace with RCU 2020-02-25 08:40:07 -07:00
blockgroup_lock.h
bma150.h
bootconfig.h tools/bootconfig: Show line and column in parse error 2020-03-03 17:38:42 -05:00
bottom_half.h
bpf_lirc.h
bpf_lsm.h bpf: lsm: Implement attach, detach and execution 2020-03-30 01:34:00 +02:00
bpf_trace.h
bpf_types.h bpf: Implement BPF ring buffer and verifier support for it 2020-06-01 14:38:22 -07:00
bpf_verifier.h bpf: Implement BPF ring buffer and verifier support for it 2020-06-01 14:38:22 -07:00
bpf-cgroup.h bpf: Add get{peer, sock}name attach types for sock_addr 2020-05-19 11:32:04 -07:00
bpf.h bpf: Implement BPF ring buffer and verifier support for it 2020-06-01 14:38:22 -07:00
bpfilter.h
brcmphy.h net: phy: broadcom: add support for BCM54811 PHY 2020-05-15 10:56:31 -07:00
bsearch.h
bsg-lib.h
bsg.h
btf.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h ext4: use non-movable memory for superblock readahead 2020-04-15 23:58:48 -04:00
bug.h
build_bug.h
build-salt.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h bpf, capability: Introduce CAP_BPF 2020-05-15 17:29:41 +02:00
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup_rdma.h
cgroup_subsys.h
cgroup-defs.h Merge branch 'for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2020-04-03 11:30:20 -07:00
cgroup.h
circ_buf.h
cleancache.h
clk-provider.h clk: Pass correct arguments to __clk_hw_register_gate() 2020-03-25 17:38:23 -07:00
clk.h
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h linux/clocksource.h: Extract common header for vDSO 2020-03-21 15:23:56 +01:00
cm4000_cs.h
cma.h mm: cma: NUMA node interface 2020-04-10 15:36:21 -07:00
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
compaction.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
compat.h Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2020-03-31 11:04:05 -07:00
compiler_attributes.h
compiler_types.h compiler: remove CONFIG_OPTIMIZE_INLINING entirely 2020-04-07 10:43:42 -07:00
compiler-clang.h
compiler-gcc.h
compiler-intel.h
compiler.h x86: Fix early boot crash on gcc-10, third try 2020-05-15 11:48:01 +02:00
completion.h completion: Use simple wait queues 2020-03-21 16:00:24 +01:00
component.h
configfs.h
connector.h
console_struct.h
console.h Merge branch 'for-5.7-console-exit' of git://git.kernel.org/pub/scm/linux/kernel/git/pmladek/printk into tty-next 2020-03-17 15:26:43 +01:00
consolemap.h
const.h linux/const.h: Extract common header for vDSO 2020-03-21 15:23:53 +01:00
container.h
context_tracking_state.h
context_tracking.h
cordic.h
coredump.h sysctl: remove all extern declaration from sysctl.c 2020-04-27 02:06:53 -04:00
coresight-pmu.h
coresight-stm.h
coresight.h coresight: cti: Enable CTI associated with devices 2020-03-21 11:32:20 +01:00
count_zeros.h
counter_enum.h
counter.h
cper.h efi: cper: Add support for printing Firmware Error Record Reference 2020-05-14 11:11:20 +02:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h lib: cpu_rmap: Replace zero-length array with flexible-array member 2020-04-18 15:44:55 -05:00
cpu.h cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus() 2020-03-28 11:42:55 +01:00
cpufeature.h
cpufreq.h cpufreq: add function to get the hardware max frequency 2020-03-06 16:02:50 +00:00
cpuhotplug.h irqchip/sifive-plic: Enable/Disable external interrupts upon cpu online/offline 2020-03-16 15:48:54 +00:00
cpuidle_haltpoll.h
cpuidle.h
cpumask.h sched/core: Distribute tasks within affinity masks 2020-03-20 13:06:18 +01:00
cpuset.h Revert "cpuset: Make cpuset hotplug synchronous" 2020-04-03 11:32:13 -04:00
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
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h dax,iomap: Add helper dax_iomap_zero() to zero a range 2020-04-02 19:15:03 -07:00
dca.h
dcache.h
dccp.h net: dccp: Replace zero-length array with flexible-array member 2020-02-28 12:08:37 -08:00
dcookies.h
debug_locks.h
debugfs.h debugfs: remove return value of debugfs_create_u32() 2020-04-17 17:08:50 +02:00
debugobjects.h
delay.h timer: add fsleep for flexible sleeping 2020-05-06 17:03:34 -07:00
delayacct.h
delayed_call.h
dev_printk.h
devcoredump.h
devfreq_cooling.h thermal: devfreq_cooling: inline all stubs for CONFIG_DEVFREQ_THERMAL=n 2020-04-07 10:45:15 +02:00
devfreq-event.h
devfreq.h PM / devfreq: Get rid of some doc warnings 2020-03-25 08:35:03 +09:00
device_cgroup.h device_cgroup: Cleanup cgroup eBPF device filter code 2020-04-13 14:41:54 -04:00
device-mapper.h dm,dax: Add dax zero_page_range operation 2020-04-02 19:15:03 -07:00
device.h IOMMU Updates for Linux v5.7 2020-04-08 11:00:00 -07:00
devpts_fs.h
digsig.h digsig.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
dim.h
dio.h dio: Remove unused dio_dev_driver() 2020-03-09 11:12:19 +01:00
dirent.h dirent.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
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-buf: fix documentation build warnings 2020-04-30 19:47:39 +05:30
dma-contiguous.h
dma-debug.h
dma-direct.h
dma-direction.h
dma-fence-array.h
dma-fence-chain.h
dma-fence.h
dma-heap.h
dma-iommu.h
dma-mapping.h
dma-noncoherent.h dma-direct: provide a arch_dma_clear_uncached hook 2020-03-16 10:48:12 +01:00
dma-resv.h
dmaengine.h dmaengine: fix channel index enumeration 2020-04-27 21:26:23 +05:30
dmapool.h
dmar.h iommu/vt-d: Silence RCU-list debugging warnings 2020-03-10 10:30:52 +01:00
dmi.h
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 clocksource: Replace setup_irq() by request_irq() 2020-02-27 12:15:24 +01:00
dynamic_debug.h
dynamic_queue_limits.h
earlycpio.h
ecryptfs.h
edac.h
edd.h
eeprom_93cx6.h
eeprom_93xx46.h
efi_embedded_fw.h platform/x86: touchscreen_dmi: Add EFI embedded firmware info support 2020-03-20 14:57:54 +01:00
efi-bgrt.h
efi.h efi: Pull up arch-specific prototype efi_systab_show_arch() 2020-05-17 11:46:50 +02:00
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h linux/elfnote.h: Replace elf.h with UAPI equivalent 2020-03-21 15:24:00 +01:00
enclosure.h enclosure.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
energy_model.h energy_model.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
err.h err.h: remove deprecated PTR_RET for good 2020-03-22 23:06:34 +01:00
errname.h
errno.h
error-injection.h
errqueue.h
errseq.h
etherdevice.h net: add helper eth_hw_addr_crc 2020-05-04 11:19:58 -07:00
ethtool_netlink.h net: ethtool: Add helpers for cable test TDR data 2020-05-26 23:22:20 -07:00
ethtool.h ethtool.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h extcon: Remove unneeded extern keyword from extcon-provider.h 2020-03-19 07:41:01 +01:00
extcon.h extcon: Mark extcon_get_edev_name() function as exported symbol 2020-03-25 08:16:13 +09:00
f2fs_fs.h f2fs: Add a new CP flag to help fsck fix resize SPO issues 2020-03-22 21:16:28 -07:00
f75375s.h
falloc.h
fanotify.h fanotify: turn off support for FAN_DIR_MODIFY 2020-05-27 18:55:54 +02:00
fault-inject.h
fb.h
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h sysctl: remove all extern declaration from sysctl.c 2020-04-27 02:06:53 -04:00
filter.h bpf: Avoid gcc-10 stringop-overflow warning in struct bpf_prog 2020-05-04 22:54:42 +02:00
fips.h
firewire.h
firmware-map.h
firmware.h firmware: Add new platform fallback mechanism and firmware_request_platform() 2020-03-20 14:54:04 +01:00
fixp-arith.h
flat.h
flex_proportions.h
font.h
frame.h
freezer.h
frontswap.h
fs_context.h
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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-06 22:10:13 -07:00
fscache-cache.h
fscache.h
fscrypt.h fscrypt: add FS_IOC_GET_ENCRYPTION_NONCE ioctl 2020-03-19 21:56:54 -07: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 fanotify: send FAN_DIR_MODIFY event flavor with dir inode and name 2020-03-25 10:27:16 +01:00
fsnotify.h fanotify: send FAN_DIR_MODIFY event flavor with dir inode and name 2020-03-25 10:27:16 +01:00
fsverity.h
ftrace_irq.h
ftrace.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-15 13:48:59 -07:00
futex.h futex: Fix inode life-time issue 2020-03-06 11:06:15 +01:00
fwnode.h driver core: Add fw_devlink kernel commandline option 2020-03-04 17:58:48 +01:00
gameport.h
gcd.h
genalloc.h genalloc.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:54 -05:00
generic-radix-tree.h
genetlink.h
genhd.h for-5.7/block-2020-03-29 2020-03-30 11:20:13 -07:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm: make it clear that gfp reclaim modifiers are valid only for sleepable allocations 2020-04-07 10:43:38 -07:00
glob.h
gnss.h
goldfish.h
gpio_keys.h
gpio-pxa.h
gpio.h
greybus.h
hardirq.h lockdep: Rename trace_hardirq_{enter,exit}() 2020-03-21 16:03:53 +01:00
hash.h
hashtable.h list/hashtable: minor documentation corrections. 2020-03-17 17:25:06 +01:00
hdlc.h
hdlcdrv.h
hdmi.h video: hdmi: Change return type of hdmi_avi_infoframe_init() to void 2020-02-26 13:31:18 +02:00
hid-debug.h
hid-roccat.h
hid-sensor-hub.h
hid-sensor-ids.h
hid.h
hiddev.h
hidraw.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hmm.h mm/hmm: remove HMM_FAULT_SNAPSHOT 2020-03-27 20:19:24 -03:00
host1x.h drm/tegra: Fix SMMU support on Tegra124 and Tegra210 2020-04-28 11:44:07 +02:00
hp_sdc.h
hpet.h
hrtimer_defs.h
hrtimer.h
htcpld.h
huge_mm.h mm: merge parameters for change_protection() 2020-04-07 10:43:39 -07:00
hugetlb_cgroup.h hugetlb_cgroup: add accounting for shared mappings 2020-04-02 09:35:32 -07:00
hugetlb_inline.h
hugetlb.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
hypervisor.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-mux.h i2c: mux: Replace zero-length array with flexible-array 2020-05-15 11:23:49 +02:00
i2c-smbus.h i2c: smbus: remove outdated references to irq level triggers 2020-03-10 12:20:04 +01:00
i2c.h i2c: use my kernel.org address from now on 2020-05-05 16:29:09 +02:00
i8042.h
i8253.h
icmp.h
icmpv6.h icmp: allow icmpv6_ndo_send to work with CONFIG_IPV6=n 2020-02-25 11:01:39 -08:00
ide.h
idle_inject.h
idr.h
ieee80211.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-31 17:48:46 -07:00
ieee802154.h
if_arp.h
if_bridge.h bridge: mrp: Extend bridge interface 2020-04-27 11:40:25 -07: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_rmnet.h
if_tap.h
if_team.h team: Replace zero-length array with flexible-array 2020-05-11 13:19:00 -07:00
if_tun.h
if_tunnel.h
if_vlan.h
igmp.h ip*_mc_gsfget(): lift copyout of struct group_filter into callers 2020-05-20 20:31:27 -04:00
ihex.h ihex.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:55 -05:00
ima.h ima: add a new CONFIG for loading arch-specific policies 2020-03-12 07:43:57 -04:00
imx-media.h
in6.h
in.h
indirect_call_wrapper.h
inet_diag.h inet_diag: add cgroup id attribute 2020-04-30 12:54:01 -07:00
inet.h
inetdevice.h
init_ohci1394_dma.h
init_task.h
init.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel_rapl.h
intel_th.h
intel-iommu.h iommu/vt-d: Fix debugfs register reads 2020-03-13 14:25:46 +01:00
intel-ish-client-if.h
intel-pti.h
intel-svm.h
interconnect-provider.h
interconnect.h
interrupt.h genirq: Provide interrupt injection mechanism 2020-03-08 11:06:42 +01:00
interval_tree_generic.h
interval_tree.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h docs: fix pointers to io-mapping.rst and io_ordering.rst files 2020-03-11 14:15:20 -06:00
io-pgtable.h
io.h mm/memremap_pages: Kill unused __devm_memremap_pages() 2020-02-19 11:21:41 -08:00
ioasid.h
iocontext.h block: Fix use-after-free issue accessing struct io_cq 2020-03-12 07:07:38 -06:00
iomap.h
iommu-helper.h
iommu.h iommu: Move fwspec->iommu_priv to struct dev_iommu 2020-03-27 11:14:52 +01:00
iopoll.h iopoll: Introduce read_poll_timeout_atomic macro 2020-05-06 11:29:25 +03:00
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc_namespace.h
ipc.h
ipmi_smi.h
ipmi.h
ipv6_route.h
ipv6.h net: ipv6: add support for rpl sr exthdr 2020-03-29 22:30:57 -07:00
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h lockdep: Annotate irq_work 2020-03-21 16:00:24 +01:00
irq.h A set of fixes/updates for the interrupt subsystem: 2020-04-19 11:23:33 -07:00
irqbypass.h
irqchip.h
irqdesc.h genirq: fix kerneldoc comment for irq_desc 2020-03-17 19:13:32 +01:00
irqdomain.h genirq/irqdomain: Make sure all irq domain flags are distinct 2020-02-21 11:29:15 +01:00
irqflags.h hrtimer: Don't dereference the hrtimer pointer after the callback 2020-04-01 13:20:14 +02:00
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isicom.h
iversion.h
jbd2.h
jhash.h
jiffies.h linux/jiffies.h: Extract common header for vDSO 2020-03-21 15:23:58 +01:00
journal-head.h
joystick.h
jump_label_ratelimit.h
jump_label.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h kasan: detect negative size in memory operation function 2020-04-02 09:35:30 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel_stat.h
kernel-page-flags.h
kernel.h sched: Provide cant_migrate() 2020-02-20 21:17:24 +01:00
kernelcapi.h
kernfs.h kernfs: Add option to enable user xattrs 2020-03-16 15:53:47 -04:00
kexec.h
key-type.h KEYS: Don't write out to userspace while holding key semaphore 2020-03-29 12:40:41 +01:00
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
kprobes.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h kthread: mark timer used by delayed kthread works as IRQ safe 2020-04-02 09:35:25 -07:00
ktime.h timekeeping and timer updates: 2020-03-30 18:51:47 -07:00
kvm_host.h KVM: Introduce kvm_make_all_cpus_request_except() 2020-05-08 07:44:32 -04:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lantiq.h
lapb.h
latencytop.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
lcd.h
lcm.h
led-class-flash.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-lp3952.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds-ti-lmu-common.h
leds.h leds: old enums are not really applicable to new code 2020-04-06 22:55:27 +02:00
libata.h ata: move ata_eh_analyze_ncq_error() & co. to libata-sata.c 2020-03-26 10:28:20 -06:00
libfdt_env.h
libfdt.h
libgcc.h
libnvdimm.h libnvdimm/region: Introduce NDD_LABELING 2020-03-17 12:23:21 -07:00
libps2.h
license.h
lightnvm.h
limits.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-03-31 17:29:33 -07:00
linkage.h
linkmode.h
linux_logo.h
lis3lv02d.h
list_bl.h
list_lru.h list_lru.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:55 -05:00
list_nulls.h
list_sort.h
list.h list/hashtable: minor documentation corrections. 2020-03-17 17:25:06 +01:00
livepatch.h
llc.h
llist.h
lockdep.h completion: Use lockdep_assert_RT_in_threaded_ctx() in complete_all() 2020-03-23 18:40:25 +01:00
lockref.h
log2.h
logic_pio.h
lp.h
lru_cache.h
lsm_audit.h
lsm_hook_defs.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-15 13:10:06 -07:00
lsm_hooks.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next 2020-03-31 17:29:33 -07:00
lz4.h
lzo.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h linux/math64.h: Extract common header for vDSO 2020-03-21 15:23:56 +01:00
max17040_battery.h
mbcache.h
mbus.h
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio-xpcs.h net: phy: Add Synopsys DesignWare XPCS MDIO module 2020-03-09 20:13:16 -07:00
mdio.h net: mdiobus: add clause 45 mdiobus accessors 2020-05-26 15:31:45 -07:00
mei_cl_bus.h
mem_encrypt.h
memblock.h mm: cma: NUMA node interface 2020-04-10 15:36:21 -07:00
memcontrol.h mm, memcg: fix inconsistent oom event behavior 2020-05-14 10:00:35 -07:00
memfd.h
memory_hotplug.h mm/memory_hotplug: add pgprot_t to mhp_params 2020-04-10 15:36:21 -07:00
memory.h drivers/base/memory.c: drop section_count 2020-04-07 10:43:40 -07:00
mempolicy.h mm/mempolicy: check hugepage migration is supported by arch in vma_migratable() 2020-04-02 09:35:31 -07:00
mempool.h
memregion.h
memremap.h libnvdimm for 5.7 2020-04-08 21:03:40 -07:00
memstick.h
mhi.h bus: mhi: core: Fix typo in comment 2020-05-05 16:58:36 +02:00
mic_bus.h
micrel_phy.h
microchipphy.h
migrate_mode.h
migrate.h mm: handle multiple owners of device private pages in migrate_vma 2020-03-26 14:33:38 -03:00
mii_timestamper.h
mii.h net: mii: add linkmode_adv_to_mii_adv_x() 2020-03-15 17:10:14 -07:00
min_heap.h lib: Introduce generic min-heap 2020-03-06 11:56:59 +01:00
miscdevice.h rtc/ia64: remove legacy efirtc driver 2020-03-19 07:41:02 +01:00
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm_inline.h mm: code cleanup for MADV_FREE 2020-04-07 10:43:38 -07:00
mm_types_task.h
mm_types.h mm: fix ambiguous comments for better code readability 2020-04-07 10:43:41 -07:00
mm-arch-hooks.h
mm.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-31 17:48:46 -07:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
mnt_namespace.h
mod_devicetable.h Char/Misc driver patches for 5.7-rc1 2020-04-03 13:22:40 -07:00
module_signature.h
module.h
moduleloader.h
moduleparam.h
most.h staging: most: move core files out of the staging area 2020-03-24 13:42:44 +01:00
mount.h
moxtet.h
mpage.h
mpi.h
mpls_iptunnel.h
mpls.h
mroute6.h
mroute_base.h
mroute.h
msdos_fs.h
msdos_partition.h partitions/msdos: remove LINUX_SWAP_PARTITION 2020-03-24 07:57:08 -06:00
msg.h
msi.h
mtio.h
mutex.h lockdep: Introduce wait-type checks 2020-03-21 16:00:24 +01:00
mv643xx_eth.h
mv643xx_i2c.h
mv643xx.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h sanitize handling of nd->last_type, kill LAST_BIND 2020-03-13 21:08:19 -04:00
nd.h
ndctl.h
net.h net: remove kernel_setsockopt 2020-05-29 13:10:39 -07:00
netdev_features.h docs: networking: convert netdev-features.txt to ReST 2020-04-30 12:56:36 -07:00
netdevice.h net: devres: provide devm_register_netdev() 2020-05-23 16:56:17 -07:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h netfilter: revert introduction of egress hook 2020-03-18 16:35:48 -07:00
netfilter_ipv4.h
netfilter_ipv6.h
netfilter.h
netlink.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-03-25 18:58:11 -07:00
netpoll.h netpoll: netpoll_send_skb() returns transmit status 2020-05-07 18:11:07 -07:00
nfs3.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h NFS: Clean up process of marking inode stale. 2020-04-06 13:56:33 -04:00
nfs_iostat.h
nfs_page.h NFS: Try to join page groups before an O_DIRECT retransmission 2020-04-01 13:37:57 -04:00
nfs_xdr.h NFSv4.1: fix handling of backchannel binding in BIND_CONN_TO_SESSION 2020-04-28 15:58:38 -04:00
nfs.h
nfsacl.h
nl802154.h
nls.h
nmi.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
node.h
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 nvme-fc: Revert "add module to ops template to allow module references" 2020-04-04 09:09:39 +02:00
nvme-fc.h
nvme-rdma.h
nvme-tcp.h
nvme.h
nvmem-consumer.h nvmem: core: add nvmem_cell_read_u64 2020-03-19 07:41:02 +01: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 net: mdio: of: export part of of_mdiobus_register_phy() 2020-04-22 19:41:26 -07:00
of_net.h
of_pci.h
of_pdt.h
of_platform.h
of_reserved_mem.h
of.h
oid_registry.h
olpc-ec.h
omap-dma.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
packing.h
padata.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h mm: introduce page_ref_sub_return() 2020-04-02 09:35:27 -07:00
page_reporting.h mm/page_reporting: add budget limit on how many pages can be reported per pass 2020-04-07 10:43:39 -07:00
page-flags-layout.h
page-flags.h mm: introduce Reported pages 2020-04-07 10:43:38 -07:00
page-isolation.h
pageblock-flags.h
pagemap.h include/linux/pagemap.h: optimise find_subpage for !THP 2020-04-07 10:43:38 -07:00
pagevec.h
pagewalk.h
parman.h
parport_pc.h
parport.h
parser.h
part_stat.h block: move the part_stat* helpers from genhd.h to a new header 2020-03-25 09:50:09 -06:00
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci_hotplug.h
pci_ids.h pci-v5.7-changes 2020-04-03 14:25:02 -07:00
pci-acpi.h PCI/DPC: Add Error Disconnect Recover (EDR) support 2020-03-28 13:19:04 -05:00
pci-ats.h
pci-dma-compat.h
pci-ecam.h
pci-ep-cfs.h
pci-epc.h PCI: endpoint: Fix ->set_msix() to take BIR and offset as arguments 2020-04-02 17:57:10 +01:00
pci-epf.h PCI: dwc: Fix dw_pcie_ep_raise_msix_irq() to get correct MSI-X table address 2020-04-02 17:57:10 +01:00
pci-p2pdma.h
pci.h pci-v5.7-changes 2020-04-03 14:25:02 -07:00
pda_power.h
pe.h efi: Bump the Linux EFI stub major version number to #1 2020-02-23 21:59:42 +01:00
percpu_counter.h percpu_counter: fix a data race at vm_committed_as 2020-04-07 10:43:43 -07:00
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h
percpu.h
perf_event.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
perf_regs.h
personality.h
pfn_t.h
pfn.h
phonet.h
phy_fixed.h
phy_led_triggers.h
phy.h net: ethtool: Allow PHY cable test TDR data to configured 2020-05-26 23:22:21 -07:00
phylink.h net: phylink, dsa: eliminate phylink_fixed_state_cb() 2020-04-24 16:45:37 -07:00
pid_namespace.h proc: Remove the now unnecessary internal mount of proc 2020-02-28 12:06:14 -06:00
pid.h sysctl: remove all extern declaration from sysctl.c 2020-04-27 02:06:53 -04:00
pim.h
pipe_fs_i.h
pkeys.h
pktcdvd.h
pl320-ipc.h
pl353-smc.h
platform_device.h driver core: platform: Initialize dma_parms for platform devices 2020-04-28 17:44:33 +02:00
plist.h
pm2301_charger.h
pm_clock.h
pm_domain.h
pm_opp.h
pm_qos.h
pm_runtime.h PM: runtime: Add pm_runtime_get_if_active() 2020-03-04 11:01:18 +01:00
pm_wakeirq.h
pm_wakeup.h
pm-trace.h
pm.h
pmbus.h
pmu.h
pnfs_osd_xdr.h
pnp.h pnp: Use list_for_each_entry() instead of open coding 2020-04-22 11:36:11 +02:00
poison.h
poll.h
posix_acl_xattr.h
posix_acl.h posix_acl.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:55 -05:00
posix-clock.h
posix-timers.h posix-cpu-timers: Store a reference to a pid not a task 2020-03-04 09:54:55 +01:00
power_supply.h
powercap.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
pps_kernel.h
pps-gpio.h
pr.h
preempt.h sched/rt: Provide migrate_disable/enable() inlines 2020-02-20 21:17:24 +01:00
prefetch.h
prime_numbers.h
printk.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
proc_fs.h net: bpf: Add netlink and ipv6_route bpf_iter targets 2020-05-09 17:05:26 -07:00
proc_ns.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2020-04-02 11:22:17 -07:00
processor.h
profile.h
projid.h
property.h
psci.h
pseudo_fs.h
psi_types.h psi: Fix cpu.pressure for cpu.max and competing cgroups 2020-03-20 13:06:18 +01:00
psi.h psi: Optimize switching tasks inside shared cgroups 2020-03-20 13:06:19 +01:00
psp-sev.h
psp-tee.h
pstore_ram.h
pstore.h
ptdump.h
pti.h
ptp_classify.h
ptp_clock_kernel.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-05-15 13:48:59 -07:00
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm_backlight.h backlight: pwm_bl: Switch to full GPIO descriptor 2020-03-18 15:05:57 +00:00
pwm.h pwm: Implement some checks for lowlevel drivers 2020-03-30 16:55:26 +02:00
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qcom-geni-se.h
qnx6_fs.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h random: add arch_get_random_*long_early() 2020-02-27 23:21:52 -05: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 rculist: Add brackets around cond argument in __list_check_rcu macro 2020-02-20 15:58:23 -08:00
rcupdate_wait.h
rcupdate.h
rcutiny.h rcutorture: Suppress forward-progress complaints during early boot 2020-02-20 16:03:30 -08:00
rcutree.h rcutorture: Suppress forward-progress complaints during early boot 2020-02-20 16:03:30 -08:00
rcuwait.h rcuwait: Add @state argument to rcuwait_wait_event() 2020-03-21 16:00:22 +01:00
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h locking/refcount: Document interaction with PID_MAX_LIMIT 2020-04-08 12:05:07 +02:00
regmap.h regmap: provide helpers for simple bit operations 2020-06-01 11:35:18 -07:00
regset.h
relay.h
remoteproc.h remoteproc: Introduce "panic" callback in ops 2020-03-25 22:29:45 -07:00
resctrl.h
reset-controller.h
reset.h
resource_ext.h
resource.h
restart_block.h
rfkill.h
rhashtable-types.h
rhashtable.h rhashtable: Document the right function parameters 2020-03-06 22:33:38 -08:00
ring_buffer.h ring-buffer/tracing: Have iterator acknowledge dropped events 2020-03-27 16:39:01 -04:00
rio_drv.h
rio_ids.h
rio_regs.h
rio.h rio.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:56 -05:00
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h rslib.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:56 -05:00
rtc.h rtc: remove rtc_time_to_tm and rtc_tm_to_time 2020-04-02 18:47:30 +02:00
rtmutex.h
rtnetlink.h
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwlock_api_smp.h
rwlock_types.h lockdep: Introduce wait-type checks 2020-03-21 16:00:24 +01:00
rwlock.h
rwsem.h lockdep: Introduce wait-type checks 2020-03-21 16:00:24 +01:00
s3c_adc_battery.h
sbitmap.h
scatterlist.h
scc.h
sched_clock.h
sched.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2020-04-02 11:22:17 -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 seccomp: allow TSYNC and USER_NOTIF together 2020-03-04 14:48:54 -08:00
securebits.h
security.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
sed-opal.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
seg6.h
selection.h vt: selection, introduce vc_is_sel 2020-02-21 10:31:18 +01:00
sem.h
semaphore.h
seq_buf.h
seq_file_net.h
seq_file.h seq_file: remove m->version 2020-04-07 10:43:42 -07:00
seqlock.h
seqno-fence.h
serdev.h
serial_8250.h serial: 8250_port: Don't use power management for kernel console 2020-03-17 15:58:00 +01:00
serial_bcm63xx.h
serial_core.h serial: core: Refactor uart_unlock_and_check_sysrq() 2020-03-12 17:16:42 +01:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serial.h
serio.h
set_memory.h
sfi_acpi.h
sfi.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h mm: remove CONFIG_TRANSPARENT_HUGE_PAGECACHE 2020-04-07 10:43:38 -07:00
shrinker.h
signal_types.h
signal.h x86: get rid of put_user_try in __setup_rt_frame() (both 32bit and 64bit) 2020-03-26 14:41:22 -04:00
signalfd.h
siox.h
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h net: allow __skb_ext_alloc to sleep 2020-05-17 12:35:34 -07:00
skmsg.h bpf, sockmap: bpf_tcp_ingress needs to subtract bytes from sg.size 2020-05-06 00:22:22 +02:00
slab_def.h
slab.h docs: mm: slab.h: fix a broken cross-reference 2020-04-10 15:36:20 -07:00
slimbus.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h net: cleanly handle kernel vs user buffers for ->msg_control 2020-05-11 16:59:16 -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 lockdep: Introduce wait-type checks 2020-03-21 16:00:24 +01:00
spinlock_up.h
spinlock.h lockdep: Introduce wait-type checks 2020-03-21 16:00:24 +01:00
splice.h splice: make do_splice public 2020-03-02 14:04:31 -07:00
spmi.h
sram.h
srcu.h
srcutiny.h
srcutree.h
ssbi.h
stackdepot.h kasan: stackdepot: move filter_irq_stacks() to stackdepot.c 2020-04-07 10:43:43 -07:00
stackleak.h
stackprotector.h arm64: initialize ptrauth keys for kernel booting task 2020-03-18 09:50:20 +00:00
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
stm.h
stmmac.h net: stmmac: Enable SERDES power up/down sequence 2020-04-21 15:54:45 -07:00
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string_helpers.h
string.h
stringhash.h
stringify.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h PM: remove s390 specific callbacks 2020-03-23 13:41:55 +01:00
svga.h
sw842.h
swab.h
swait.h
swap_cgroup.h
swap_slots.h
swap.h swap.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:56 -05:00
swapfile.h
swapops.h include/linux/swapops.h: correct guards for non_swap_entry() 2020-04-07 10:43:41 -07:00
swiotlb.h
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys_soc.h
sys.h
syscalls.h
syscore_ops.h
sysctl.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
sysfs.h sysfs: remove redundant __compat_only_sysfs_link_entry_to_kobj fn 2020-04-05 11:34:35 -07:00
syslog.h
sysrq.h sysctl/sysrq: Remove __sysrq_enabled copy 2020-03-07 09:52:02 +01:00
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 tcp: add tcp_sock_set_keepcnt 2020-05-28 11:11:45 -07:00
tee_drv.h tee: remove redundant teedev in struct tee_shm 2020-02-28 13:37:42 +01:00
textsearch_fsm.h
textsearch.h
tfrc.h
thermal.h thermal: Fix build warning of !defined(CONFIG_THERMAL_OF) 2020-03-12 11:56:53 +01:00
thread_info.h
threads.h threads: Update PID limit comment according to futex UAPI change 2020-03-21 17:48:13 +01:00
thunderbolt.h
ti_wilink_st.h ti_wilink_st.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:56 -05:00
ti-emif-sram.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time32.h timekeeping and timer updates: 2020-03-30 18:51:47 -07:00
time64.h linux/time64.h: Extract common header for vDSO 2020-03-21 15:23:58 +01:00
time_namespace.h
time.h linux/time.h: Extract common header for vDSO 2020-03-21 15:23:57 +01:00
timecounter.h
timekeeper_internal.h
timekeeping32.h y2038: remove unused time32 interfaces 2020-02-21 11:22:15 -08:00
timekeeping.h
timer.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h bpf: Verifier, do explicit ALU32 bounds tracking 2020-03-30 14:59:53 -07:00
topology.h revert "topology: add support for node_to_mem_node() to determine the fallback node" 2020-04-02 09:35:26 -07:00
torture.h
toshiba.h
tpm_command.h
tpm_eventlog.h tpm_eventlog.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:56 -05:00
tpm.h
trace_clock.h
trace_events.h tracing: Save off entry when peeking at next entry 2020-03-19 17:48:36 -04:00
trace_seq.h
trace.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h tracing: Remove DECLARE_TRACE_NOARGS 2020-04-22 22:06:35 -04:00
transport_class.h
ts-nbus.h
tsacct_kern.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h gcc-10 warnings: fix low-hanging fruit 2020-05-04 09:16:37 -07:00
typecheck.h
types.h y2038: remove unused time32 interfaces 2020-02-21 11:22:15 -08:00
u64_stats_sync.h
uacce.h uacce: unmap remaining mmapping from user space 2020-03-06 12:28:24 +11:00
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio_driver.h uio: add resource managed devm_uio_register_device() function 2020-03-18 12:34:10 +01:00
uio.h
umh.h
unicode.h
units.h
uprobes.h
usb_usual.h
usb.h USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
usbdevice_fs.h USB: Replace zero-length array with flexible-array member 2020-02-23 19:24:51 +01:00
user_namespace.h
user-return-notifier.h
user.h
userfaultfd_k.h userfaultfd: wp: support write protection for userfault vma range 2020-04-07 10:43:39 -07:00
util_macros.h
uts.h
utsname.h
uuid.h uuid: Remove no more needed macro 2020-03-23 17:01:47 +01:00
vbox_utils.h
vdpa.h vdpa: allow a 32 bit vq alignment 2020-04-17 06:05:30 -04:00
verification.h
vermagic.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-04-25 20:18:53 -07:00
vexpress.h
vfio.h Merge branches 'v5.7/vfio/alex-sriov-v3' and 'v5.7/vfio/yan-dma-rw-v4' into v5.7/vfio/next 2020-03-24 09:32:41 -06:00
vfs.h
vga_switcheroo.h
vgaarb.h
vhost_iotlb.h vhost: factor out IOTLB 2020-04-01 12:06:26 -04:00
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 net: be more gentle about silly gso requests coming from user 2020-05-28 16:31:30 -07:00
virtio_ring.h
virtio_vsock.h vsock/virtio: fix multiple packet delivery to monitoring devices 2020-04-27 10:18:01 -07:00
virtio.h virtio: drop vringh.h dependency 2020-04-17 06:05:30 -04:00
visorbus.h
vlynq.h
vm_event_item.h mm, thp: track fallbacks due to failed memcg charges separately 2020-04-07 10:43:38 -07:00
vmacache.h
vmalloc.h vmalloc: fix remap_vmalloc_range() bounds checks 2020-04-21 11:11:56 -07:00
vme.h
vmpressure.h
vmstat.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h virtio/test: fix up after IOTLB changes 2020-04-16 18:31:08 -04:00
vt_buffer.h
vt_kern.h vt: vt_kern.h, remove extern from functions 2020-03-06 08:35:39 +01:00
vt.h
vtime.h
w1-gpio.h
w1.h
wait_bit.h
wait.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h Merge branch 'for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq 2020-04-03 12:27:36 -07:00
writeback.h sysctl: pass kernel pointers to ->proc_handler 2020-04-27 02:07:40 -04:00
ww_mutex.h
xarray.h xarray: Fix early termination of xas_for_each_marked 2020-03-12 17:42:08 -04:00
xattr.h xattr.h: Replace zero-length array with flexible-array member 2020-04-18 15:44:56 -05:00
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h zorro: Move zorro_bus_type to bus-private header file 2020-03-09 11:12:19 +01:00
zpool.h
zsmalloc.h
zstd.h
zutil.h