mirror-linux/include/linux
Kirti Wankhede 7b96953bc6 vfio: Mediated device Core driver
Design for Mediated Device Driver:
Main purpose of this driver is to provide a common interface for mediated
device management that can be used by different drivers of different
devices.

This module provides a generic interface to create the device, add it to
mediated bus, add device to IOMMU group and then add it to vfio group.

Below is the high Level block diagram, with Nvidia, Intel and IBM devices
as example, since these are the devices which are going to actively use
this module as of now.

 +---------------+
 |               |
 | +-----------+ |  mdev_register_driver() +--------------+
 | |           | +<------------------------+ __init()     |
 | |  mdev     | |                         |              |
 | |  bus      | +------------------------>+              |<-> VFIO user
 | |  driver   | |     probe()/remove()    | vfio_mdev.ko |    APIs
 | |           | |                         |              |
 | +-----------+ |                         +--------------+
 |               |
 |  MDEV CORE    |
 |   MODULE      |
 |   mdev.ko     |
 | +-----------+ |  mdev_register_device() +--------------+
 | |           | +<------------------------+              |
 | |           | |                         |  nvidia.ko   |<-> physical
 | |           | +------------------------>+              |    device
 | |           | |        callback         +--------------+
 | | Physical  | |
 | |  device   | |  mdev_register_device() +--------------+
 | | interface | |<------------------------+              |
 | |           | |                         |  i915.ko     |<-> physical
 | |           | +------------------------>+              |    device
 | |           | |        callback         +--------------+
 | |           | |
 | |           | |  mdev_register_device() +--------------+
 | |           | +<------------------------+              |
 | |           | |                         | ccw_device.ko|<-> physical
 | |           | +------------------------>+              |    device
 | |           | |        callback         +--------------+
 | +-----------+ |
 +---------------+

Core driver provides two types of registration interfaces:
1. Registration interface for mediated bus driver:

/**
  * struct mdev_driver - Mediated device's driver
  * @name: driver name
  * @probe: called when new device created
  * @remove:called when device removed
  * @driver:device driver structure
  *
  **/
struct mdev_driver {
         const char *name;
         int  (*probe)  (struct device *dev);
         void (*remove) (struct device *dev);
         struct device_driver    driver;
};

Mediated bus driver for mdev device should use this interface to register
and unregister with core driver respectively:

int  mdev_register_driver(struct mdev_driver *drv, struct module *owner);
void mdev_unregister_driver(struct mdev_driver *drv);

Mediated bus driver is responsible to add/delete mediated devices to/from
VFIO group when devices are bound and unbound to the driver.

2. Physical device driver interface
This interface provides vendor driver the set APIs to manage physical
device related work in its driver. APIs are :

* dev_attr_groups: attributes of the parent device.
* mdev_attr_groups: attributes of the mediated device.
* supported_type_groups: attributes to define supported type. This is
			 mandatory field.
* create: to allocate basic resources in vendor driver for a mediated
         device. This is mandatory to be provided by vendor driver.
* remove: to free resources in vendor driver when mediated device is
         destroyed. This is mandatory to be provided by vendor driver.
* open: open callback of mediated device
* release: release callback of mediated device
* read : read emulation callback.
* write: write emulation callback.
* ioctl: ioctl callback.
* mmap: mmap emulation callback.

Drivers should use these interfaces to register and unregister device to
mdev core driver respectively:

extern int  mdev_register_device(struct device *dev,
                                 const struct parent_ops *ops);
extern void mdev_unregister_device(struct device *dev);

There are no locks to serialize above callbacks in mdev driver and
vfio_mdev driver. If required, vendor driver can have locks to serialize
above APIs in their driver.

Signed-off-by: Kirti Wankhede <kwankhede@nvidia.com>
Signed-off-by: Neo Jia <cjia@nvidia.com>
Reviewed-by: Jike Song <jike.song@intel.com>
Reviewed-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2016-11-17 08:24:48 -07:00
..
amba fbdev changes for 4.9 2016-10-12 11:01:37 -07:00
bcma Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-10-05 10:11:24 -07:00
byteorder
can can: dev: fix deadlock reported after bus-off 2016-09-22 10:01:21 +02:00
ceph libceph: initialize last_linger_id with a large integer 2016-11-10 20:13:08 +01:00
clk
crush
decompress
dma dmaengine: hsu: refactor hsu_dma_do_irq() to return int 2016-09-15 21:15:40 +05:30
extcon extcon: adc-jack: Remove the usage of extcon_set_state() 2016-09-10 16:48:46 +05:30
firmware/meson firmware: Amlogic: Add secure monitor driver 2016-09-01 14:23:39 -07:00
fpga
fsl
gpio treewide: remove redundant #include <linux/kconfig.h> 2016-10-11 15:06:33 -07:00
hsi
i2c
iio Second set of iio new device support, features and cleanups for the 4.9 cycle. 2016-09-14 20:42:03 +02:00
input
irqchip irqchip/gic-v3-its: Fix entry size mask for GITS_BASER 2016-10-17 16:26:29 +01:00
isdn
lockd
mailbox
mfd - Core Frameworks 2016-10-07 08:35:35 -07:00
mlx4 net/mlx4: Fix firmware command timeout during interrupt test 2016-10-29 16:23:48 -04:00
mlx5 net/mlx5: PCI error recovery health care simulation 2016-10-29 12:00:39 -04:00
mmc MMC core: 2016-10-05 11:34:53 -07:00
mtd mtd: nand: Fix data interface configuration logic 2016-10-28 09:58:36 +02:00
netfilter netfilter: conntrack: remove packet hotpath stats 2016-09-12 19:59:39 +02:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-10-03 19:43:08 -07:00
phy phy: Add reset callback for not generic phy 2016-11-05 13:45:02 +05:30
pinctrl
platform_data media updates for v4.9-rc1 2016-10-11 13:22:22 -07:00
power power: supply: bq27xxx_battery: allow kernel poll_interval parameter runtime update 2016-09-21 02:08:04 +02:00
qed qed*: Reduce the memory footprint for Rx path 2016-10-22 17:08:07 -04:00
raid Merge tag 'md/4.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shli/md 2016-10-07 09:45:43 -07:00
regulator Merge remote-tracking branches 'regulator/topic/of', 'regulator/topic/pv88080', 'regulator/topic/rk808', 'regulator/topic/set-voltage' and 'regulator/topic/tps65218' into regulator-next 2016-09-30 09:13:58 -07:00
reset
rtc
sched
soc
spi Merge remote-tracking branches 'spi/topic/fsl-espi', 'spi/topic/imx', 'spi/topic/jcore', 'spi/topic/loopback' and 'spi/topic/meson' into spi-next 2016-09-30 09:14:10 -07:00
ssb
sunrpc NFS client updates for Linux 4.9 2016-10-13 21:28:20 -07:00
ulpi usb: patches for v4.9 merge window 2016-09-14 20:37:50 +02:00
unaligned
usb
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h Merge branch 'device-properties' 2016-11-11 23:23:02 +01:00
acpi_dma.h
acpi_iort.h ACPI: Add new IORT functions to support MSI domain handling 2016-09-12 20:32:40 +01:00
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h PCI/AER: Remove duplicate AER severity translation 2016-09-20 14:35:59 -05:00
agp_backend.h
agpgart.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h iommu/amd: Implements irq_set_vcpu_affinity() hook to setup vapic mode for pass-through devices 2016-09-05 12:41:46 +02:00
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arm-cci.h
arm-smccc.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h
ata_platform.h
atalk.h
ath9k_platform.h
atm.h
atm_suni.h
atm_tcp.h
atmdev.h
atmel-mci.h
atmel-ssc.h
atmel_pdc.h
atmel_serial.h tty/serial: atmel: fix fractional baud rate computation 2016-09-27 12:54:03 +02:00
atmel_tc.h
atomic.h
attribute_container.h
audit.h
auto_dev-ioctl.h autofs4: move linux/auto_dev-ioctl.h to uapi/linux 2016-10-11 15:06:31 -07:00
auto_fs.h autofs: move inclusion of linux/limits.h to uapi 2016-10-11 15:06:31 -07:00
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
bfin_mac.h
binfmts.h
bio.h block: export bio_free_pages to other modules 2016-09-22 07:48:03 -06:00
bit_spinlock.h
bitfield.h add basic register-field manipulation macros 2016-09-09 12:09:24 +03:00
bitmap.h
bitops.h mm/vmalloc.c: fix align value calculation error 2016-10-07 18:46:26 -07:00
bitrev.h
blk-cgroup.h Merge branch 'for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2016-10-14 12:18:50 -07:00
blk-mq-pci.h blk-mq: provide a default queue mapping for PCI device 2016-09-15 08:42:03 -06:00
blk-mq.h Merge branch 'for-4.9/block-smp' of git://git.kernel.dk/linux-block 2016-10-09 17:32:20 -07:00
blk_types.h block: remove bio_destructor_t 2016-09-14 09:18:06 -06:00
blkdev.h blk-mq: introduce blk_mq_delay_kick_requeue_list() 2016-09-14 11:48:34 -06:00
blkpg.h
blktrace_api.h
blockgroup_lock.h blockgroup_lock.h: simplify definition of NR_BG_LOCKS 2016-09-15 18:29:06 -04:00
bma150.h
bootmem.h mm/nobootmem.c: remove duplicate macro ARCH_LOW_ADDRESS_LIMIT statements 2016-10-07 18:46:28 -07:00
bottom_half.h
bpf.h bpf: allow access into map value arrays 2016-09-29 01:35:35 -04:00
bpf_verifier.h bpf: allow access into map value arrays 2016-09-29 01:35:35 -04:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h add basic register-field manipulation macros 2016-09-09 12:09:24 +03:00
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cec-funcs.h
cec.h
cfag12864b.h
cgroup-defs.h
cgroup.h Merge branch 'for-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup 2016-10-14 12:18:50 -07:00
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-provider.h clk: core: add __init decoration for CLK_OF_DECLARE_DRIVER function 2016-10-17 15:27:27 -07:00
clk.h
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.h
coda_psdev.h
compaction.h mm, compaction: restrict full priority to non-costly orders 2016-10-07 18:46:29 -07:00
compat.h compat: remove compat_printk() 2016-09-27 21:20:53 -04:00
compiler-clang.h
compiler-gcc.h latent_entropy: Mark functions with __latent_entropy 2016-10-10 14:51:45 -07:00
compiler-intel.h
compiler.h This adds a new gcc plugin named "latent_entropy". It is designed to 2016-10-15 10:03:15 -07:00
completion.h
component.h
concap.h
configfs.h
connector.h
console.h Revert "console: don't prefer first registered if DT specifies stdout-path" 2016-11-11 08:12:37 -08:00
console_struct.h
consolemap.h
container.h
context_tracking.h
context_tracking_state.h
cordic.h
coredump.h
coresight-pmu.h
coresight-stm.h
coresight.h coresight: etm-perf: pass struct perf_event to source::enable/disable() 2016-08-31 13:05:43 +02:00
count_zeros.h
cper.h
cpu.h nmi_backtrace: generate one-line reports for idle cpus 2016-10-07 18:46:30 -07:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h cpufreq: fix overflow in cpufreq_table_find_index_dl() 2016-10-20 16:35:50 +02:00
cpuhotplug.h clocksource: Add J-Core timer/clocksource driver 2016-10-20 20:10:17 +02:00
cpuidle.h
cpumask.h
cpuset.h
cputime.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
cred.h cred: simpler, 1D supplementary groups 2016-10-07 18:46:30 -07:00
crypto.h
cryptohash.h
cs5535.h
ctype.h include/linux/ctype.h: make isdigit() table lookupless 2016-10-11 15:06:30 -07:00
cuda.h
cyclades.h
davinci_emac.h
dax.h dax: provide an iomap based fault handler 2016-09-19 11:24:50 +10:00
dca.h
dcache.h vfs: make argument of d_real_inode() const 2016-09-16 12:44:20 +02:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h debugfs: introduce a public file_operations accessor 2016-09-21 12:13:31 +02:00
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dell-led.h
devcoredump.h
devfreq-event.h PM / devfreq: event: remove duplicate devfreq_event_get_drvdata() 2016-09-06 13:08:40 +09:00
devfreq.h
devfreq_cooling.h
device-mapper.h dm rq: add DM_MAPIO_DELAY_REQUEUE to delay requeue of blk-mq requests 2016-09-14 13:56:38 -04:00
device.h iommu: Introduce iommu_fwspec 2016-09-16 09:34:15 +01:00
device_cgroup.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-dirty-log.h
dm-io.h
dm-kcopyd.h
dm-region-hash.h
dm9000.h
dma-buf.h
dma-contiguous.h
dma-debug.h dma-debug: add support for resource mappings 2016-09-26 22:16:41 +05:30
dma-direction.h
dma-iommu.h iommu/dma: Avoid PCI host bridge windows 2016-09-16 09:34:22 +01:00
dma-mapping.h dma-mapping: introduce the DMA_ATTR_NO_WARN attribute 2016-10-11 15:06:32 -07:00
dma_remapping.h
dmaengine.h
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds2782_battery.h
dtlk.h
dw_apb_timer.h
dynamic_debug.h
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 * Refactor the EFI memory map code into architecture neutral files 2016-09-13 20:21:55 +02:00
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
exportfs.h exportfs: be careful to only return expected errors. 2016-10-06 09:07:44 -04:00
ext2_fs.h
extable.h
extcon.h include: extcon: Fix compilation error caused because of incomplete merge 2016-09-16 08:53:41 +02:00
f2fs_fs.h f2fs: use crc and cp version to determine roll-forward recovery 2016-09-30 10:05:46 -07:00
f75375s.h
falloc.h vfs: add a FALLOC_FL_UNSHARE mode to fallocate to unshare a range of blocks 2016-10-03 09:11:14 -07:00
fanotify.h
fault-inject.h
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h This adds a new gcc plugin named "latent_entropy". It is designed to 2016-10-15 10:03:15 -07:00
fec.h
fence-array.h
fence.h
file.h
filter.h bpf: add BPF_CALL_x macros for declaring helpers 2016-09-09 19:36:04 -07:00
fips.h
firewire.h
firmware-map.h
firmware.h
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
frame.h
freezer.h
frontswap.h mm, frontswap: make sure allocated frontswap map is assigned 2016-11-11 08:12:37 -08:00
fs.h aio: fix freeze protection of aio writes 2016-10-30 13:09:42 -04:00
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache.h
fscrypto.h Lots of bug fixes and cleanups. 2016-10-07 15:15:33 -07:00
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h fsnotify: support overlayfs 2016-09-16 12:44:20 +02:00
fsnotify_backend.h fanotify: use notification_lock instead of access_lock 2016-10-07 18:46:26 -07:00
ftrace.h This release cycle is rather small. Just a few fixes to tracing. 2016-10-06 11:48:41 -07:00
ftrace_irq.h tracing: Add NMI tracing in hwlat detector 2016-09-02 12:47:55 -04:00
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h latent_entropy: Mark functions with __latent_entropy 2016-10-10 14:51:45 -07:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
glob.h
goldfish.h
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.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 HID: add missing \n to end of dev_warn messages 2016-09-29 10:40:13 +02:00
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
htcpld.h
htirq.h
huge_mm.h thp: reduce usage of huge zero page's atomic counter 2016-10-07 18:46:28 -07:00
hugetlb.h mm: remove unnecessary condition in remove_inode_hugepages 2016-10-07 18:46:29 -07:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h hwmon: (core) Add basic pwm attribute support to new API 2016-09-08 21:34:15 -07:00
hwspinlock.h
hyperv.h Revert "hv_netvsc: report vmbus name in ethtool" 2016-10-29 15:03:14 -04:00
hypervisor.h virt, sched: Add generic vCPU pinning support 2016-09-05 13:52:38 +02:00
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-dev.h
i2c-gpio.h
i2c-mux-gpio.h
i2c-mux-pinctrl.h
i2c-mux.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-xiic.h
i2c.h i2c: export i2c_adapter_depth() 2016-09-24 10:48:18 +02:00
i7300_idle.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
idr.h
ieee80211.h
ieee802154.h
if_arp.h
if_bridge.h net: bridge: add per-port multicast flood flag 2016-09-01 22:48:33 -07:00
if_eql.h
if_ether.h
if_fddi.h
if_frad.h
if_link.h net: Update API for VF vlan protocol 802.1ad support 2016-09-24 08:01:26 -04:00
if_ltalk.h
if_macvlan.h
if_phonet.h
if_pppol2tp.h
if_pppox.h
if_team.h Fixing a bug in team driver due to incorrect 'unsigned int' to 'int' conversion 2016-10-07 23:50:39 -04:00
if_tun.h
if_tunnel.h
if_vlan.h vlan: Check for vlan ethernet types for 8021.q or 802.1ad 2016-09-08 17:10:28 -07:00
igmp.h
ihex.h
ima.h
in.h
in6.h
inet.h
inet_diag.h net: inet: diag: expose the socket mark to privileged processes. 2016-09-08 16:13:09 -07:00
inetdevice.h
init.h This adds a new gcc plugin named "latent_entropy". It is designed to 2016-10-15 10:03:15 -07:00
init_ohci1394_dma.h
init_task.h sched/core: Free the stack early if CONFIG_THREAD_INFO_IN_TASK 2016-09-16 09:18:54 +02:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-svm.h
intel_pmic_gpio.h
interrupt.h genirq/affinity: Remove old irq spread infrastructure 2016-09-14 22:11:09 +02:00
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h x86/io: add interface to reserve io memtype for a resource range. (v1.1) 2016-10-26 15:45:38 +10:00
ioc3.h
ioc4.h
iocontext.h
iomap.h iomap: add IOMAP_REPORT 2016-10-20 15:51:28 +11:00
iommu-common.h
iommu-helper.h
iommu.h iommu: Introduce iommu_fwspec 2016-09-16 09:34:15 +01:00
iopoll.h
ioport.h
ioprio.h block: remove IOPRIO_BITS 2016-09-14 09:18:09 -06:00
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h net: Require exact match for TCP socket lookups if dif is l3mdev 2016-10-17 10:17:05 -04:00
ipv6_route.h
irq.h Merge branch 'irq/urgent' into irq/core 2016-09-20 23:20:32 +02:00
irq_cpustat.h
irq_poll.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h genirq: Expose interrupt information through sysfs 2016-09-14 15:28:15 +02:00
irqdomain.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
jbd2.h
jhash.h
jiffies.h jiffies: add time comparison functions for 64 bit jiffies 2016-10-07 18:46:26 -07:00
journal-head.h
joystick.h
jump_label.h Merge branch 'ras-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-10-03 13:22:39 -07:00
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h kprobes: Unpoison stack in jprobe_return() for KASAN 2016-10-16 11:02:31 +02:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h kconfig.h: remove config_enabled() macro 2016-10-27 18:43:43 -07:00
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h printk: reinstate KERN_CONT for printing continuation lines 2016-10-09 12:23:38 -07:00
kernel-page-flags.h
kernel.h min/max: remove sparse warnings when they're nested 2016-10-07 18:46:30 -07:00
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h kdump, vmcoreinfo: report memory sections virtual addresses 2016-10-11 15:06:33 -07:00
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h mm: kmemleak: avoid using __va() on addresses that don't have a lowmem mapping 2016-10-11 15:06:33 -07:00
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h
kthread.h kthread: add kerneldoc for kthread_create() 2016-10-11 15:06:33 -07:00
ktime.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-10-05 10:11:24 -07:00
kvm_host.h kvm: create per-vcpu dirs in debugfs 2016-09-16 16:57:47 +02:00
kvm_irqfd.h
kvm_para.h
kvm_types.h
l2tp.h
lapb.h
latencytop.h
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.h leds: gpio: introduce gpio_blink_set_t 2016-09-15 16:49:39 +02:00
leds_pwm.h
lguest.h
lguest_launcher.h
libata.h libata: remove <asm-generic/libata-portmap.h> 2016-09-22 11:50:29 -04:00
libfdt.h
libfdt_env.h
libnvdimm.h libnvdimm, region: move region-mapping input-paramters to nd_mapping_desc 2016-09-30 19:13:42 -07:00
libps2.h
license.h
lightnvm.h lightnvm: expose device geometry through sysfs 2016-09-21 07:57:31 -06:00
linkage.h
linux_logo.h
lis3lv02d.h
list.h list: Expand list_first_entry_or_null() 2016-09-14 12:57:43 -07:00
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
livepatch.h
llc.h
llist.h
lockdep.h lockdep: make MAX_LOCKDEP_SUBCLASSES unconditionally visible 2016-09-24 10:48:32 +02:00
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h lsm,audit,selinux: Introduce a new audit data type LSM_AUDIT_DATA_FILE 2016-09-19 13:42:38 -04:00
lsm_hooks.h Merge branch 'stable-4.9' of git://git.infradead.org/users/pcmoore/selinux into next 2016-09-19 12:27:10 +10:00
lz4.h
lzo.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mailbox_client.h
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h bus: mvebu-mbus: Provide stub function for mvebu_mbus_get_io_win_info() 2016-09-15 21:13:50 +05:30
mc6821.h
mc146818rtc.h
mcb.h mcb: Add a dma_device to mcb_device 2016-09-27 12:33:47 +02:00
mdev.h vfio: Mediated device Core driver 2016-11-17 08:24:48 -07:00
mdio-bitbang.h
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h mm/memblock.c: expose total reserved memory 2016-10-07 18:46:28 -07:00
memcontrol.h mm: memcontrol: consolidate cgroup socket tracking 2016-10-07 18:46:29 -07:00
memory.h
memory_hotplug.h
mempolicy.h mm, mempolicy: task->mempolicy must be NULL before dropping final reference 2016-09-01 17:52:01 -07:00
mempool.h
memremap.h
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate.h
migrate_mode.h
mii.h
miscdevice.h miscdevice: Add helper macro for misc device boilerplate 2016-08-31 14:12:35 +02:00
mm-arch-hooks.h
mm.h mm: unexport __get_user_pages() 2016-10-24 19:13:20 -07:00
mm_inline.h
mm_types.h kernel, oom: fix potential pgd_lock deadlock from __mmdrop 2016-10-07 18:46:27 -07:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h mm: remove per-zone hashtable of bitlock waitqueues 2016-10-27 09:27:57 -07:00
mnt_namespace.h
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h mnt: Add a per mount namespace limit on the number of mounts 2016-09-30 12:46:48 -05:00
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route 2016-09-25 23:41:39 -04:00
mroute6.h ipmr, ip6mr: fix scheduling while atomic and a deadlock with ipmr_get_route 2016-09-25 23:41:39 -04:00
msdos_fs.h
msg.h
msi.h genirq/msi: Add cpumask allocation to alloc_msi_entry 2016-09-14 22:11:08 +02:00
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h libnvdimm, namespace: sort namespaces by dpa at init 2016-10-07 09:20:53 -07:00
net.h
netdev_features.h
netdevice.h net: add recursion limit to GRO 2016-10-20 14:32:22 -04:00
netfilter.h Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2016-09-25 23:34:19 +02:00
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h netfilter: replace list_head with single linked list 2016-09-25 14:38:48 +02:00
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h NFSv4.1: Allow revoked stateids to skip the call to TEST_STATEID 2016-09-27 14:34:01 -04:00
nfs_fs.h
nfs_fs_i.h
nfs_fs_sb.h nfs: allow blocking locks to be awoken by lock callbacks 2016-09-22 15:54:27 -04:00
nfs_iostat.h
nfs_page.h
nfs_xdr.h pnfs: add a new mechanism to select a layout driver according to an ordered list 2016-09-19 13:11:13 -04:00
nfsacl.h
nl802154.h
nls.h
nmi.h nmi_backtrace: add more trigger_*_cpu_backtrace() methods 2016-10-07 18:46:30 -07:00
node.h
nodemask.h
notifier.h
ns_common.h
nsc_gpio.h
nsproxy.h
ntb.h
ntb_transport.h
nubus.h
numa.h
nvme-rdma.h
nvme.h nvme.h: add an enum for cns values 2016-10-19 11:36:22 -06:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
of.h of: Add array read functions with min/max size limits 2016-09-15 08:33:01 -05:00
of_address.h
of_device.h
of_dma.h
of_fdt.h of/serial: move earlycon early_param handling to serial 2016-09-28 17:43:15 +02:00
of_gpio.h gpio: OF: localize some gpiochip init functions 2016-10-03 23:38:11 +02:00
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_pci.h of/irq: Break out msi-map lookup (again) 2016-09-16 09:34:14 +01:00
of_pdt.h
of_platform.h
of_reserved_mem.h
oid_registry.h
olpc-ec.h
omap-dma.h dmaengine/ARM: omap-dma: Fix the DMAengine compile test on non OMAP configs 2016-09-28 08:53:14 +05:30
omap-dmaengine.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h mm, oom: enforce exit_oom_victim on current task 2016-10-07 18:46:28 -07:00
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h padata: Convert to hotplug state machine 2016-09-19 21:44:30 +02:00
page-flags-layout.h
page-flags.h
page-isolation.h
page_counter.h
page_ext.h mm/page_owner: don't define fields on struct page_ext by hard-coding 2016-10-07 18:46:27 -07:00
page_idle.h
page_owner.h mm/page_owner: move page_owner specific function to page_owner.c 2016-10-07 18:46:27 -07:00
page_ref.h
pageblock-flags.h
pagemap.h mm: split gfp_mask and mapping flags into separate fields 2016-10-11 15:06:34 -07:00
pagevec.h
parport.h
parport_pc.h
parser.h
pata_arasan_cf_data.h
patchkey.h
path.h
pch_dma.h
pci-acpi.h
pci-aspm.h
pci-ats.h
pci-dma-compat.h
pci-dma.h
pci-ecam.h
pci.h PCI changes for the v4.9 merge window: 2016-10-07 11:46:37 -07:00
pci_hotplug.h
pci_ids.h
pcieport_if.h
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu-rwsem.h locking/percpu-rwsem: Add down_read_preempt_disable() 2016-09-22 15:25:54 +02:00
percpu.h
percpu_counter.h
percpu_ida.h
perf_event.h perf/powerpc: Don't call perf_event_disable() from atomic context 2016-10-28 11:06:25 +02:00
perf_regs.h
personality.h
pfn.h
pfn_t.h
phonet.h
phy.h net: ethernet: mediatek: add extension of phy-mode for TRGMII 2016-09-22 08:21:21 -04:00
phy_fixed.h
pid.h
pid_namespace.h
pim.h
pipe_fs_i.h pipe: fix comment in pipe_buf_operations 2016-10-05 18:24:00 -04:00
pkeys.h pkeys: Remove easily triggered WARN 2016-10-14 11:36:59 -07:00
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm-trace.h
pm.h
pm2301_charger.h
pm_clock.h
pm_domain.h PM / Domains: Add support for removing nested PM domains by provider 2016-09-13 02:49:34 +02:00
pm_opp.h
pm_qos.h
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pmem.h
pmu.h
pnfs_osd_xdr.h
pnp.h
poison.h
poll.h
posix-clock.h
posix-timers.h
posix_acl.h Merge remote-tracking branch 'jk/vfs' into work.misc 2016-10-08 11:06:08 -04:00
posix_acl_xattr.h posix_acl: uapi header split 2016-09-27 21:52:00 -04:00
power_supply.h
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
pr.h
preempt.h
prefetch.h
printk.h printk: reinstate KERN_CONT for printing continuation lines 2016-10-09 12:23:38 -07:00
proc_fs.h
proc_ns.h nsfs: add ioctl to get a parent namespace 2016-09-22 19:59:41 -05:00
profile.h
projid.h
property.h include/linux/property.h: fix typo/compile error 2016-09-30 15:26:52 -07:00
psci.h
pstore.h pstore/pmsg: drop bounce buffer 2016-09-08 15:01:10 -07:00
pstore_ram.h pstore/pmsg: drop bounce buffer 2016-09-08 15:01:10 -07:00
pti.h
ptp_classify.h
ptp_clock_kernel.h ptp_clock: future-proofing drivers against PTP subsystem becoming optional 2016-09-22 02:18:33 -04:00
ptr_ring.h
ptrace.h
pvclock_gtod.h
pwm.h pwm: Unexport children before chip removal 2016-09-05 16:45:39 +02:00
pwm_backlight.h
pxa2xx_ssp.h spi: pxa2xx: Default thresholds to PXA configuration 2016-09-12 20:01:43 +01:00
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h radix-tree: 'slot' can be NULL in radix_tree_next_slot() 2016-10-11 15:06:30 -07:00
raid_class.h
ramfs.h
random.h This adds a new gcc plugin named "latent_entropy". It is designed to 2016-10-15 10:03:15 -07:00
range.h
ras.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcutiny.h
rcutree.h
reboot.h
reciprocal_div.h
regmap.h Merge remote-tracking branches 'regmap/fix/header' and 'regmap/fix/macro' into regmap-linus 2016-10-29 12:14:39 -06:00
regset.h
relay.h relay: Use irq_work instead of plain timer for deferred wakeup 2016-10-11 15:06:32 -07:00
remoteproc.h remoteproc: Split driver and consumer dereferencing 2016-10-02 22:50:21 -07:00
reservation.h
reset-controller.h
reset.h
resource.h
resource_ext.h
rfkill-regulator.h
rfkill.h
rhashtable.h rhashtable: Add rhlist interface 2016-09-20 04:43:36 -04:00
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
rmi.h
rndis.h
root_dev.h
rpmsg.h rpmsg: Allow callback to return errors 2016-09-08 22:15:25 -07:00
rslib.h
rtc.h
rtmutex.h
rtnetlink.h rtnetlink: fdb dump: optimize by saving last interface markers 2016-09-01 16:56:15 -07:00
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
sbitmap.h sbitmap: push alloc policy into sbitmap_queue 2016-09-17 08:39:12 -06:00
scatterlist.h
scc.h
sched.h thp: reduce usage of huge zero page's atomic counter 2016-10-07 18:46:28 -07:00
sched_clock.h
scif.h
scpi_protocol.h
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h Merge branch 'stable-4.9' of git://git.infradead.org/users/pcmoore/selinux into next 2016-09-19 12:27:10 +10:00
selection.h
selinux.h
sem.h ipc/sem.c: fix complex_count vs. simple op race 2016-10-11 15:06:33 -07:00
semaphore.h
seq_buf.h
seq_file.h seq/proc: modify seq_put_decimal_[u]ll to take a const char *, not char 2016-10-07 18:46:30 -07:00
seq_file_net.h
seqlock.h
seqno-fence.h
serial.h
serial_8250.h Revert "tty/serial/8250: use mctrl_gpio helpers" 2016-08-31 15:36:01 +02:00
serial_bcm63xx.h
serial_core.h ACPI: parse SPCR and enable matching console 2016-09-28 17:46:46 +02:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
sfi.h
sfi_acpi.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
shdma-base.h
shm.h
shmem_fs.h
shrinker.h
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h doc: update docbook annotations for socket and skb 2016-10-26 17:31:23 -04:00
slab.h slab: Convert to hotplug state machine 2016-09-06 18:30:20 +02:00
slab_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h smp: Add function to execute a function synchronously on a CPU 2016-09-05 13:52:39 +02:00
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h new iov_iter flavour: pipe-backed 2016-10-05 18:23:36 -04:00
spmi.h
srcu.h
ssbi.h
stackdepot.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h
stringhash.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
sunxi-rsb.h
superhyway.h
suspend.h PM / sleep: enable suspend-to-idle even without registered suspend_ops 2016-09-13 02:17:19 +02:00
svga.h
sw842.h
swab.h
swait.h
swap.h mm, swap: add swap_cluster_list 2016-10-07 18:46:27 -07:00
swap_cgroup.h
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h generic syscalls: kill cruft from removed pkey syscalls 2016-10-17 09:50:56 -07:00
syscore_ops.h
sysctl.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2016-10-06 09:52:23 -07:00
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h scsi: sd: Move DIF protection types to t10-pi.h 2016-09-15 09:51:14 -04:00
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h
tboot.h
tc.h
tca6416_keypad.h
tcp.h tcp: export data delivery rate 2016-09-21 00:23:00 -04:00
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h thermal: Enhance thermal_zone_device_update for events 2016-09-27 14:35:21 +08:00
thinkpad_acpi.h
thread_info.h sched/core, x86: Make struct thread_info arch specific again 2016-10-20 13:27:47 +02:00
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time.h
time64.h time: Avoid undefined behaviour in timespec64_add_safe() 2016-08-31 14:43:35 -07:00
timecounter.h
timekeeper_internal.h
timekeeping.h timekeeping: Include the correct header for errno definitions 2016-09-22 17:02:55 +02:00
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
torture.h
toshiba.h
tpm.h
tpm_command.h
trace_clock.h
trace_events.h
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
tracepoint.h
transport_class.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h u64_stats: Introduce IRQs disabled helpers 2016-09-30 11:46:40 +02:00
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uinput.h
uio.h Merge branch 'work.splice_read' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2016-10-10 13:38:49 -07:00
uio_driver.h
uprobes.h
usb.h
usb_usual.h scsi: introduce a quirk for false cache reporting 2016-09-13 08:08:24 +02:00
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h Merge branch 'nsfs-ioctls' into HEAD 2016-09-22 20:00:36 -05:00
userfaultfd_k.h
util_macros.h
uts.h
utsname.h
uuid.h
uwb.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h
virtio_byteorder.h
virtio_caif.h
virtio_config.h
virtio_console.h
virtio_mmio.h
virtio_net.h
virtio_ring.h
virtio_vsock.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h
vme.h vme: change LM callback argument to void pointer 2016-08-31 13:20:15 +02:00
vmpressure.h
vmstat.h
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
wait.h sched/wait: Introduce init_wait_entry() 2016-09-30 10:54:03 +02:00
wanrouter.h
watchdog.h watchdog: add watchdog pretimeout governor framework 2016-10-08 10:27:10 +02:00
win_minmax.h lib/win_minmax: windowed min or max estimator 2016-09-21 00:22:59 -04:00
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h mm, vmscan: get rid of throttle_vm_writeout 2016-10-07 18:46:27 -07:00
ww_mutex.h
xattr.h vfs: Remove {get,set,remove}xattr inode operations 2016-10-07 21:48:36 -04:00
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zutil.h