linux-kernelorg-stable/include/linux
Logan Gunthorpe 233ed09d7f chardev: add helper function to register char devs with a struct device
Credit for this patch goes is shared with Dan Williams [1]. I've
taken things one step further to make the helper function more
useful and clean up calling code.

There's a common pattern in the kernel whereby a struct cdev is placed
in a structure along side a struct device which manages the life-cycle
of both. In the naive approach, the reference counting is broken and
the struct device can free everything before the chardev code
is entirely released.

Many developers have solved this problem by linking the internal kobjs
in this fashion:

cdev.kobj.parent = &parent_dev.kobj;

The cdev code explicitly gets and puts a reference to it's kobj parent.
So this seems like it was intended to be used this way. Dmitrty Torokhov
first put this in place in 2012 with this commit:

2f0157f char_dev: pin parent kobject

and the first instance of the fix was then done in the input subsystem
in the following commit:

4a215aa Input: fix use-after-free introduced with dynamic minor changes

Subsequently over the years, however, this issue seems to have tripped
up multiple developers independently. For example, see these commits:

0d5b7da iio: Prevent race between IIO chardev opening and IIO device
(by Lars-Peter Clausen in 2013)

ba0ef85 tpm: Fix initialization of the cdev
(by Jason Gunthorpe in 2015)

5b28dde [media] media: fix use-after-free in cdev_put() when app exits
after driver unbind
(by Shauh Khan in 2016)

This technique is similarly done in at least 15 places within the kernel
and probably should have been done so in another, at least, 5 places.
The kobj line also looks very suspect in that one would not expect
drivers to have to mess with kobject internals in this way.
Even highly experienced kernel developers can be surprised by this
code, as seen in [2].

To help alleviate this situation, and hopefully prevent future
wasted effort on this problem, this patch introduces a helper function
to register a char device along with its parent struct device.
This creates a more regular API for tying a char device to its parent
without the developer having to set members in the underlying kobject.

This patch introduce cdev_device_add and cdev_device_del which
replaces a common pattern including setting the kobj parent, calling
cdev_add and then calling device_add. It also introduces cdev_set_parent
for the few cases that set the kobject parent without using device_add.

[1] https://lkml.org/lkml/2017/2/13/700
[2] https://lkml.org/lkml/2017/2/10/370

Signed-off-by: Logan Gunthorpe <logang@deltatee.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Hans Verkuil <hans.verkuil@cisco.com>
Reviewed-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2017-03-21 06:44:32 +01:00
..
amba
bcma
byteorder
can
ceph libceph: osd_request_timeout option 2017-03-07 14:30:38 +01:00
clk
crush crush: merge working data and scratch 2017-02-20 12:16:11 +01:00
decompress
dma
extcon
firmware/meson
fpga fpga: Add flag to indicate bitstream needs decrypting 2017-03-17 15:10:48 +09:00
fsl
gpio This is the bulk of GPIO changes for the v4.11 cycle 2017-02-23 08:46:04 -08:00
hsi
i2c
iio
input
irqchip KVM: arm/arm64: vgic-v3: Don't pretend to support IRQ/FIQ bypass 2017-03-06 10:30:57 +00:00
isdn
lockd
mailbox
mfd RTC for 4.11 2017-02-27 19:59:21 -08:00
mlx4 net/mlx4: && vs & typo 2017-03-01 09:50:58 -08:00
mlx5 Mellanox specific updates for 4.11 merge window 2017-02-23 11:27:49 -08:00
mmc Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-02-22 10:15:09 -08:00
mtd scripts/spelling.txt: add "partiton" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
pinctrl
platform_data RTC for 4.11 2017-02-27 19:59:21 -08:00
power
qed qed: Add support for hardware offloaded FCoE. 2017-02-19 18:10:42 -05:00
raid
regulator scripts/spelling.txt: add "disble(d)" pattern and fix typo instances 2017-03-09 17:01:09 -08:00
remoteproc
reset
rpmsg
rtc
sched sched/headers: Remove the <linux/topology.h> include from <linux/sched.h> 2017-03-03 01:45:41 +01:00
soc ARM: SoC driver updates 2017-02-23 15:57:04 -08:00
spi scripts/spelling.txt: add "partiton" pattern and fix typo instances 2017-02-27 18:43:46 -08:00
ssb
sunrpc sched/headers: Prepare to move signal wakeup & sigpending methods from <linux/sched.h> into <linux/sched/signal.h> 2017-03-02 08:42:32 +01:00
ulpi
unaligned
usb
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h ACPI updates for v4.11-rc1 2017-02-20 17:55:15 -08:00
acpi_dma.h
acpi_iort.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci-remap.h
ahci_platform.h
aio.h
alarmtimer.h
altera_jtaguart.h
altera_uart.h
amd-iommu.h
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 async_tx: deprecate broken support for channel switching 2017-02-16 10:08:41 +05:30
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
atmel_tc.h
atomic.h
attribute_container.h
audit.h Merge branch 'stable-4.11' of git://git.infradead.org/users/pcmoore/audit 2017-02-21 13:25:50 -08:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h average: change to declare precision, not factor 2017-03-02 08:32:46 +01:00
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 sched/headers, vfs/execve: Move the do_execve*() prototypes from <linux/sched.h> to <linux/binfmts.h> 2017-03-03 01:45:23 +01:00
bio.h block: introduce bio_clone_bioset_partial() 2017-02-15 11:22:05 -08:00
bit_spinlock.h
bitfield.h
bitmap.h
bitops.h
bitrev.h
blk-cgroup.h
blk-mq-pci.h
blk-mq-virtio.h blk-mq: provide a default queue mapping for virtio device 2017-02-27 20:54:05 +02:00
blk-mq.h blk-mq: Provide freeze queue timeout 2017-03-02 08:56:04 -07:00
blk_types.h
blkdev.h Revert "scsi, block: fix duplicate bdi name registration crashes" 2017-03-08 10:55:17 -07:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf-cgroup.h
bpf.h bpf: make jited programs visible in traces 2017-02-17 13:40:05 -05:00
bpf_trace.h
bpf_verifier.h
brcmphy.h
bsearch.h
bsg-lib.h
bsg.h
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h bug: switch data corruption check to __must_check 2017-02-24 17:46:56 -08:00
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h chardev: add helper function to register char devs with a struct device 2017-03-21 06:44:32 +01:00
cdrom.h
cfag12864b.h
cgroup-defs.h sched/headers, cgroups: Remove the threadgroup_change_*() wrappery 2017-03-02 08:42:25 +01:00
cgroup.h
cgroup_rdma.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-provider.h
clk.h
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h mm: cma_alloc: allow to specify GFP mask 2017-02-24 17:46:55 -08:00
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
compaction.h
compat.h sigaltstack: support SS_AUTODISARM for CONFIG_COMPAT 2017-02-27 18:43:45 -08:00
compiler-clang.h
compiler-gcc.h objtool, modules: Discard objtool annotation sections for modules 2017-03-01 20:32:25 +01:00
compiler-intel.h
compiler.h Merge branch 'akpm' (patches from Andrew) 2017-02-27 23:09:29 -08:00
completion.h
component.h
concap.h
configfs.h
connector.h
console.h
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
count_zeros.h
cper.h
cpu.h sched/headers: Prepare to move _init() prototypes from <linux/sched.h> to <linux/sched/init.h> 2017-03-02 08:42:40 +01:00
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h
cpuhotplug.h virtio, vhost: optimizations, fixes 2017-03-02 13:53:13 -08:00
cpuidle.h
cpumask.h Merge branch 'timers-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 10:06:32 -08:00
cpuset.h sched/headers: Prepare to move the task_lock()/unlock() APIs to <linux/sched/task.h> 2017-03-02 08:42:38 +01:00
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 sched/headers: Prepare to remove <linux/cred.h> inclusion from <linux/sched.h> 2017-03-02 08:42:31 +01:00
crypto.h
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h mm: replace FAULT_FLAG_SIZE with parameter to huge_fault 2017-02-24 17:46:54 -08:00
dca.h
dcache.h rcu: Separate the RCU synchronization types and APIs into <linux/rcupdate_wait.h> 2017-03-02 08:42:24 +01:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-02-23 20:33:51 -08:00
debugobjects.h
delay.h
delayacct.h sched/headers: Remove <linux/sched.h> and <linux/slab.h> from <linux/delayacct.h> 2017-03-03 01:45:28 +01:00
delayed_call.h
dell-led.h
devcoredump.h
devfreq-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h
device.h This is a tree wide change and has been kept separate for that reason. 2017-02-25 13:45:43 -08: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 mm: wire up GFP flag passing in dma_alloc_from_contiguous 2017-02-24 17:46:55 -08:00
dma-debug.h
dma-direction.h
dma-fence-array.h
dma-fence.h
dma-iommu.h
dma-mapping.h This is a tree wide change and has been kept separate for that reason. 2017-02-25 13:45:43 -08:00
dma_remapping.h
dmaengine.h
dmapool.h
dmar.h sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
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
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf-randomize.h
elf.h
elfcore-compat.h
elfcore.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon.h
f2fs_fs.h f2fs: introduce free nid bitmap 2017-02-27 10:07:47 -08:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h sched/headers: Remove <linux/sched.h> and <linux/slab.h> from <linux/delayacct.h> 2017-03-03 01:45:28 +01:00
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h This renames the (now inaccurate) CONFIG_DEBUG_RODATA and related config 2017-02-21 17:56:45 -08: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 objtool, modules: Discard objtool annotation sections for modules 2017-03-01 20:32:25 +01:00
freezer.h
frontswap.h
fs.h include/linux/fs.h: fix unsigned enum warning with gcc-4.2 2017-03-09 17:01:09 -08:00
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache.h
fscrypt_common.h
fscrypt_notsupp.h
fscrypt_supp.h
fsi.h
fsl-diu-fb.h video: fbdev: fsl-diu-fb: fix spelling mistake "palette" 2017-02-20 13:51:07 +01:00
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h
fsnotify_backend.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-02-23 20:33:51 -08:00
ftrace.h
ftrace_irq.h
futex.h
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h Revert "scsi, block: fix duplicate bdi name registration crashes" 2017-03-08 10:55:17 -07:00
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm: alloc_contig_range: allow to specify GFP mask 2017-02-24 17:46:55 -08:00
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
hiddev.h
hidraw.h
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
host1x.h
hp_sdc.h
hpet.h
hrtimer.h sched/headers, hrtimer: Remove the <linux/wait.h> include from <linux/hrtimer.h> 2017-03-03 01:45:40 +01:00
htcpld.h
htirq.h
huge_mm.h mm, x86: add support for PUD-sized transparent hugepages 2017-02-24 17:46:54 -08:00
hugetlb.h mm: convert generic code to 5-level paging 2017-03-09 11:48:47 -08:00
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h vmbus: expose debug info for drivers 2017-03-17 15:10:49 +09:00
hypervisor.h
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 sched/headers: Prepare for the removal of <linux/rtmutex.h> from <linux/sched.h> 2017-03-02 08:42:32 +01: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
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
in.h
in6.h
inet.h
inet_diag.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h sched/headers: Move the 'root_task_group' declaration to <linux/sched/autogroup.h> 2017-03-03 01:43:47 +01:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-svm.h
interrupt.h
interval_tree.h
interval_tree_generic.h
io-64-nonatomic-hi-lo.h
io-64-nonatomic-lo-hi.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iomap.h mm, fs: reduce fault, page_mkwrite, and pfn_mkwrite to take only vmf 2017-02-24 17:46:54 -08:00
iommu-common.h
iommu-helper.h
iommu.h
iopoll.h include/linux/iopoll.h: include <linux/ktime.h> instead of <linux/hrtimer.h> 2017-02-24 17:46:56 -08:00
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 10:52:23 -08:00
irq_cpustat.h
irq_poll.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h irqdomain: Add empty irq_domain_check_msi_remap 2017-03-06 14:40:04 +00:00
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
journal-head.h
joystick.h
jump_label.h There was some breakage with the changes for jump labels in the 4.11 merge 2017-03-07 09:37:28 -08:00
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h mm: convert generic code to 5-level paging 2017-03-09 11:48:47 -08:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h scripts/spelling.txt: add "followings" pattern and fix typo instances 2017-02-27 18:43:47 -08:00
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h linux/kernel.h: fix DIV_ROUND_CLOSEST to support negative divisors 2017-02-24 17:46:57 -08:00
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h KEYS: Differentiate uses of rcu_dereference_key() and user_key_payload() 2017-03-02 10:09:00 +11:00
keyboard.h
kfifo.h
kgdb.h
khugepaged.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/coredump.h> 2017-03-02 08:42:28 +01:00
klist.h
kmemcheck.h
kmemleak.h
kmod.h
kmsg_dump.h
kobj_map.h
kobject.h
kobject_ns.h
kprobes.h kprobes: move kprobe declarations to asm-generic/kprobes.h 2017-02-27 18:43:45 -08:00
kref.h
ks0108.h
ks8842.h
ks8851_mll.h
ksm.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/coredump.h> 2017-03-02 08:42:28 +01:00
kthread.h
ktime.h
kvm_host.h kvm: convert kvm.users_count from atomic_t to refcount_t 2017-03-01 17:03:21 +01: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_pwm.h
lguest.h
lguest_launcher.h
libata.h Merge branch 'for-4.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata 2017-02-21 17:21:32 -08:00
libfdt.h
libfdt_env.h
libnvdimm.h nfit, libnvdimm: fix interleave set cookie calculation 2017-03-01 00:49:42 -08:00
libps2.h
license.h
lightnvm.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
livepatch.h
llc.h
llist.h
lockdep.h
lockref.h
log2.h give up on gcc ilog2() constant optimizations 2017-03-02 12:17:22 -08:00
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h
lz4.h lib/lz4: remove back-compat wrappers 2017-02-24 17:46:57 -08:00
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
mc6821.h
mc146818rtc.h
mcb.h
mdev.h
mdio-bitbang.h
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h memblock: embed memblock type name within struct memblock_type 2017-02-24 17:46:54 -08:00
memcontrol.h slab: use memcg_kmem_cache_wq for slab destruction operations 2017-02-22 16:41:27 -08:00
memory.h memory-hotplug: use dev_online for memhp_auto_online 2017-02-24 17:46:56 -08:00
memory_hotplug.h
mempolicy.h
mempool.h
memremap.h
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h
microchipphy.h
migrate.h mm/migration: make isolate_movable_page always defined 2017-02-24 17:46:55 -08:00
migrate_mode.h
mii.h
miscdevice.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-02-23 09:54:19 -08:00
mm-arch-hooks.h
mm.h mm: convert generic code to 5-level paging 2017-03-09 11:48:47 -08:00
mm_inline.h mm: vmscan: move dirty pages out of the way until they're flushed 2017-02-24 17:46:54 -08:00
mm_types.h mm/headers, sched/headers: Move task related MM types from <linux/mm_types.> to <linux/mm_types_task.h> 2017-03-03 01:43:48 +01:00
mm_types_task.h sched/headers, mm: Move 'struct tlbflush_unmap_batch' from <linux/sched.h> to <linux/mm_types_task.h> 2017-03-03 01:45:25 +01:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h mm, x86: add support for PUD-sized transparent hugepages 2017-02-24 17:46:54 -08:00
mmzone.h mm: vmscan: scan dirty pages even in laptop mode 2017-02-24 17:46:54 -08:00
mnt_namespace.h
mod_devicetable.h
module.h Modules updates for v4.11 2017-02-22 17:08:33 -08:00
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h pci-v4.11-changes 2017-02-23 11:53:22 -08:00
mutex.h Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-02-20 13:23:30 -08:00
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
net.h
netdev_features.h
netdevice.h net: solve a NAPI race 2017-03-01 09:50:58 -08:00
netfilter.h
netfilter_bridge.h
netfilter_defs.h
netfilter_ingress.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h
netpoll.h
nfs.h
nfs3.h
nfs4.h
nfs_fs.h statx: Add a system call to make enhanced file info available 2017-03-02 20:51:15 -05:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nl802154.h
nls.h
nmi.h sched/headers: Move softlockup detector watchdog methods to <linux/nmi.h> 2017-03-03 01:43:38 +01: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-fc-driver.h
nvme-fc.h
nvme-rdma.h nvme-rdma: move nvme cm status helper to .h file 2017-02-22 13:34:00 -07:00
nvme.h nvme: Enable autonomous power state transitions 2017-02-22 13:34:00 -07:00
nvmem-consumer.h
nvmem-provider.h
nvram.h
of.h
of_address.h
of_device.h DeviceTree updates for 4.11: 2017-02-22 19:23:14 -08:00
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h of: introduce of_graph_get_remote_node 2017-02-15 08:53:32 -06:00
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
oid_registry.h
olpc-ec.h
omap-dma.h
omap-dmaengine.h
omap-gpmc.h
omap-iommu.h
omap-mailbox.h
omapfb.h
once.h
oom.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page-flags-layout.h
page-flags.h
page-isolation.h
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
pageblock-flags.h
pagemap.h mm: fix <linux/pagemap.h> stray kernel-doc notation 2017-02-22 16:41:30 -08:00
pagevec.h
parman.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: add an API to get node from vector 2017-03-02 08:56:04 -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
percpu.h
percpu_counter.h
percpu_ida.h
perf_event.h
perf_regs.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/task_stack.h> 2017-03-02 08:42:36 +01:00
personality.h
pfn.h
pfn_t.h mm, x86: add support for PUD-sized transparent hugepages 2017-02-24 17:46:54 -08:00
phonet.h
phy.h net: phy: Check phydev->drv 2017-02-20 10:15:11 -05:00
phy_fixed.h
phy_led_triggers.h
pid.h sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
pid_namespace.h procfs: use an enum for possible hidepid values 2017-02-24 17:46:56 -08:00
pim.h
pipe_fs_i.h
pkeys.h
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_opp.h
pm_qos.h Merge branches 'pm-cpuidle', 'pm-cpufreq' and 'pm-sleep' 2017-03-03 00:43:11 +01:00
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
posix_acl_xattr.h
power_supply.h
powercap.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
pps-gpio.h
pps_kernel.h
pr.h
preempt.h sched/headers: Move the PREEMPT_COUNT defines from <linux/sched.h> to <linux/preempt.h> 2017-03-03 01:43:47 +01:00
prefetch.h
prime_numbers.h
printk.h
proc_fs.h
proc_ns.h
profile.h
projid.h
property.h
psci.h
pstore.h
pstore_ram.h
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h ptr_ring: fix race conditions when resizing 2017-02-20 10:27:56 -05:00
ptrace.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
purgatory.h kexec, x86/purgatory: Unbreak it and clean it up 2017-03-10 20:55:09 +01:00
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quotaops.h
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h rbtree: use designated initializers 2017-02-24 17:46:57 -08:00
rbtree_latch.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h rcu: Separate the RCU synchronization types and APIs into <linux/rcupdate_wait.h> 2017-03-02 08:42:24 +01:00
rcupdate_wait.h rcu: Separate the RCU synchronization types and APIs into <linux/rcupdate_wait.h> 2017-03-02 08:42:24 +01:00
rcutiny.h rcu: Separate the RCU synchronization types and APIs into <linux/rcupdate_wait.h> 2017-03-02 08:42:24 +01:00
rcutree.h
rcuwait.h
reboot.h
reciprocal_div.h
refcount.h locking/refcounts: Add missing kernel.h header to have UINT_MAX defined 2017-02-24 09:02:10 +01:00
regmap.h
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource.h
resource_ext.h
restart_block.h
rfkill.h
rhashtable.h sched/headers: Prepare to use <linux/rcuupdate.h> instead of <linux/rculist.h> in <linux/sched.h> 2017-03-02 08:42:38 +01:00
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h mm: drop page_check_address{,_transhuge} 2017-02-24 17:46:55 -08:00
rmi.h
rndis.h
rodata_test.h mm: add arch-independent testcases for RODATA 2017-02-27 18:43:48 -08:00
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtmutex.h
rtnetlink.h
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
scatterlist.h
scc.h
sched.h sched/headers: Clean up <linux/sched.h> 2017-03-03 01:45:41 +01:00
sched_clock.h
scif.h
scpi_protocol.h
screen_info.h
sctp.h sctp: add support for generating stream reconf resp chunk 2017-02-19 18:17:59 -05:00
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2017-02-23 20:33:51 -08:00
sed-opal.h block/sed-opal: Introduce free_opal_dev to free the structure and clean up state 2017-02-23 11:55:41 -07:00
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
selection.h
selinux.h
sem.h ipc/sem: add hysteresis 2017-02-27 18:43:46 -08:00
semaphore.h
seq_buf.h
seq_file.h
seq_file_net.h
seqlock.h
seqno-fence.h
serdev.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
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 mm: remove shmem_mapping() shmem_zero_setup() duplicates 2017-02-24 17:46:56 -08:00
shrinker.h
signal.h signals: Move signal data types from <linux/signal.h> to <linux/signal_types.h> 2017-03-03 01:43:48 +01:00
signal_types.h signals: Move signal data types from <linux/signal.h> to <linux/signal_types.h> 2017-03-03 01:43:48 +01:00
signalfd.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
siphash.h
sirfsoc_dma.h
sizes.h
skb_array.h
skbuff.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/clock.h> 2017-03-02 08:42:27 +01:00
slab.h slab: remove synchronous synchronize_sched() from memcg cache deactivation path 2017-02-22 16:41:27 -08:00
slab_def.h
slub_def.h slub: separate out sysfs_slab_release() from sysfs_slab_remove() 2017-02-22 16:41:27 -08:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
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
spmi.h
sram.h
srcu.h
ssbi.h
stackdepot.h
stackprotector.h
stacktrace.h
start_kernel.h
stat.h statx: Add a system call to make enhanced file info available 2017-03-02 20:51:15 -05:00
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
svga.h
sw842.h
swab.h
swait.h
swap.h mm/swap: add cache for swap slots allocation 2017-02-22 16:41:30 -08:00
swap_cgroup.h
swap_slots.h mm/swap: skip readahead only when swap slot cache is enabled 2017-02-22 16:41:30 -08:00
swapfile.h
swapops.h
swiotlb.h
sxgbe_platform.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h statx: Add a system call to make enhanced file info available 2017-03-02 20:51:15 -05:00
syscore_ops.h
sysctl.h
sysfs.h
syslog.h
sysrq.h
sysv_fs.h
t10-pi.h
task_io_accounting.h
task_io_accounting_ops.h
task_work.h
taskstats_kern.h sched/headers: Prepare for new header dependencies before moving code to <linux/sched/signal.h> 2017-03-02 08:42:29 +01:00
tboot.h
tc.h
tca6416_keypad.h
tcp.h
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h
thinkpad_acpi.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time.h sched/headers, timekeeping: Move the timer tick function prototypes to <linux/timekeeping.h> 2017-03-03 01:45:25 +01:00
time64.h
timecounter.h
timekeeper_internal.h
timekeeping.h sched/headers, timekeeping: Move the timer tick function prototypes to <linux/timekeeping.h> 2017-03-03 01:45:25 +01:00
timer.h sched/headers, timers: Remove the <linux/sysctl.h> include from <linux/timer.h> 2017-03-03 01:45:39 +01:00
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
topology.h
torture.h
toshiba.h
tpm.h
tpm_command.h
trace.h
trace_clock.h
trace_events.h tracing: add __print_flags_u64() 2017-02-22 16:41:26 -08:00
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
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uinput.h
uio.h
uio_driver.h
uprobes.h
usb.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h ucount: Remove the atomicity from ucount->count 2017-03-06 15:26:37 -06:00
userfaultfd_k.h userfaultfd: non-cooperative: userfaultfd_remove revalidate vma in MADV_DONTNEED 2017-03-09 17:01:10 -08:00
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: provide a method to get the IRQ affinity mask for a virtqueue 2017-02-27 20:54:05 +02:00
virtio_console.h
virtio_net.h
virtio_ring.h
virtio_vsock.h
vlynq.h
vm_event_item.h mm/vmstats: add thp_split_pud event for clarity 2017-03-09 17:01:10 -08:00
vm_sockets.h
vmacache.h mm/vmacache, sched/headers: Introduce 'struct vmacache' and move it from <linux/sched.h> to <linux/mm_types> 2017-03-02 08:42:25 +01:00
vmalloc.h
vme.h docs: Add kernel-doc comments to VME driver API 2017-03-17 15:10:49 +09: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/headers: fix up header file dependency on <linux/sched/signal.h> 2017-03-08 10:36:03 -08:00
wanrouter.h
watchdog.h watchdog: Introduce watchdog_stop_on_unregister helper 2017-02-24 14:00:23 -08:00
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
workqueue.h
writeback.h mm: vmscan: kick flushers when we encounter dirty pages on the LRU 2017-02-24 17:46:54 -08:00
ww_mutex.h
xattr.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zutil.h