android_kernel_motorola_sm6375/include/linux
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Petr Mladek 8cb2c2dc47 livepatch: Fix subtle race with coming and going modules
There is a notifier that handles live patches for coming and going modules.
It takes klp_mutex lock to avoid races with coming and going patches but
it does not keep the lock all the time. Therefore the following races are
possible:

  1. The notifier is called sometime in STATE_MODULE_COMING. The module
     is visible by find_module() in this state all the time. It means that
     new patch can be registered and enabled even before the notifier is
     called. It might create wrong order of stacked patches, see below
     for an example.

   2. New patch could still see the module in the GOING state even after
      the notifier has been called. It will try to initialize the related
      object structures but the module could disappear at any time. There
      will stay mess in the structures. It might even cause an invalid
      memory access.

This patch solves the problem by adding a boolean variable into struct module.
The value is true after the coming and before the going handler is called.
New patches need to be applied when the value is true and they need to ignore
the module when the value is false.

Note that we need to know state of all modules on the system. The races are
related to new patches. Therefore we do not know what modules will get
patched.

Also note that we could not simply ignore going modules. The code from the
module could be called even in the GOING state until mod->exit() finishes.
If we start supporting patches with semantic changes between function
calls, we need to apply new patches to any still usable code.
See below for an example.

Finally note that the patch solves only the situation when a new patch is
registered. There are no such problems when the patch is being removed.
It does not matter who disable the patch first, whether the normal
disable_patch() or the module notifier. There is nothing to do
once the patch is disabled.

Alternative solutions:
======================

+ reject new patches when a patched module is coming or going; this is ugly

+ wait with adding new patch until the module leaves the COMING and GOING
  states; this might be dangerous and complicated; we would need to release
  kgr_lock in the middle of the patch registration to avoid a deadlock
  with the coming and going handlers; also we might need a waitqueue for
  each module which seems to be even bigger overhead than the boolean

+ stop modules from entering COMING and GOING states; wait until modules
  leave these states when they are already there; looks complicated; we would
  need to ignore the module that asked to stop the others to avoid a deadlock;
  also it is unclear what to do when two modules asked to stop others and
  both are in COMING state (situation when two new patches are applied)

+ always register/enable new patches and fix up the potential mess (registered
  patches order) in klp_module_init(); this is nasty and prone to regressions
  in the future development

+ add another MODULE_STATE where the kallsyms are visible but the module is not
  used yet; this looks too complex; the module states are checked on "many"
  locations

Example of patch stacking breakage:
===================================

The notifier could _not_ _simply_ ignore already initialized module objects.
For example, let's have three patches (P1, P2, P3) for functions a() and b()
where a() is from vmcore and b() is from a module M. Something like:

	a()	b()
P1	a1()	b1()
P2	a2()	b2()
P3	a3()	b3(3)

If you load the module M after all patches are registered and enabled.
The ftrace ops for function a() and b() has listed the functions in this
order:

	ops_a->func_stack -> list(a3,a2,a1)
	ops_b->func_stack -> list(b3,b2,b1)

, so the pointer to b3() is the first and will be used.

Then you might have the following scenario. Let's start with state when patches
P1 and P2 are registered and enabled but the module M is not loaded. Then ftrace
ops for b() does not exist. Then we get into the following race:

CPU0					CPU1

load_module(M)

  complete_formation()

  mod->state = MODULE_STATE_COMING;
  mutex_unlock(&module_mutex);

					klp_register_patch(P3);
					klp_enable_patch(P3);

					# STATE 1

  klp_module_notify(M)
    klp_module_notify_coming(P1);
    klp_module_notify_coming(P2);
    klp_module_notify_coming(P3);

					# STATE 2

The ftrace ops for a() and b() then looks:

  STATE1:

	ops_a->func_stack -> list(a3,a2,a1);
	ops_b->func_stack -> list(b3);

  STATE2:
	ops_a->func_stack -> list(a3,a2,a1);
	ops_b->func_stack -> list(b2,b1,b3);

therefore, b2() is used for the module but a3() is used for vmcore
because they were the last added.

Example of the race with going modules:
=======================================

CPU0					CPU1

delete_module()  #SYSCALL

   try_stop_module()
     mod->state = MODULE_STATE_GOING;

   mutex_unlock(&module_mutex);

					klp_register_patch()
					klp_enable_patch()

					#save place to switch universe

					b()     # from module that is going
					  a()   # from core (patched)

   mod->exit();

Note that the function b() can be called until we call mod->exit().

If we do not apply patch against b() because it is in MODULE_STATE_GOING,
it will call patched a() with modified semantic and things might get wrong.

[jpoimboe@redhat.com: use one boolean instead of two]
Signed-off-by: Petr Mladek <pmladek@suse.cz>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
2015-03-17 10:31:54 +01:00
..
amba Char/Misc driver patches for 3.19-rc1 2014-12-14 16:43:47 -08:00
bcma
byteorder
can can: dev: Consolidate and unify state change handling 2014-12-07 21:22:09 +01:00
ceph libceph: fix sparse endianness warnings 2015-01-08 20:36:57 +03:00
clk ARM: OMAP2+: clock: fix DPLL code to use new determine rate APIs 2014-12-15 17:05:08 -08:00
crush
decompress
dma
extcon
fsl/bestcomm
gpio This is the bulk of GPIO changes for the v3.19 series: 2014-12-14 14:05:05 -08:00
hsi
i2c USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
iio Merge 3.18-rc7 into staging-work. 2014-12-02 16:20:59 -08:00
input
irqchip Merge branch 'irq-irqdomain-arm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-15 17:30:09 -08:00
isdn
lockd
mfd Merge remote-tracking branch 'regulator/fix/s2mps11' into regulator-linus 2015-01-16 12:05:35 +00:00
mlx4 net/mlx4_core: Fix kernel Oops (mem corruption) when working with more than 80 VFs 2015-02-02 19:38:04 -08:00
mlx5 IB/mlx5: Handle page faults 2014-12-15 18:19:03 -08:00
mmc mmc: sdhci: Disable re-tuning for HS400 2015-01-12 10:14:56 +01:00
mtd mtd: nand: add ATO manufacturer info 2014-11-25 20:11:12 -08:00
netfilter
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
phy phy: phy-ti-pipe3: fix inconsistent enumeration of PCIe gen2 cards 2014-12-23 15:44:32 +05:30
pinctrl
platform_data Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
power
raid
regulator Merge remote-tracking branches 'regulator/topic/max8649', 'regulator/topic/mode', 'regulator/topic/mt6397', 'regulator/topic/pfuze100' and 'regulator/topic/qcom-rpm' into regulator-next 2015-02-08 11:16:27 +08:00
rtc
sched
soc/ti
spi Merge remote-tracking branches 'spi/topic/orion', 'spi/topic/pxa2xx', 'spi/topic/qup', 'spi/topic/rockchip' and 'spi/topic/samsung' into spi-next 2015-02-08 11:16:55 +08:00
ssb
sunrpc sunrpc: convert to lockless lookup of queued server threads 2014-12-09 11:22:22 -05:00
unaligned
usb USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h ACPI: Add interfaces to parse IOAPIC ID for IOAPIC hotplug 2015-02-05 15:09:26 +01:00
acpi_dma.h
acpi_pmtmr.h
adb.h
adfs_fs.h
aer.h
agp_backend.h
agpgart.h
ahci_platform.h ata: ahci_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
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_bl.h
arcdevice.h
arm-cci.h
asn1.h
asn1_ber_bytecode.h
asn1_decoder.h
assoc_array.h
assoc_array_priv.h
async.h
async_tx.h
ata.h libata: s/ata_id_removeable()/ata_id_removable()/ 2014-12-25 15:27:16 -05:00
ata_platform.h ata: pata_platform: fix owner module reference mismatch for scsi host 2015-01-28 18:45:23 -05:00
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 'upstream' of git://git.infradead.org/users/pcmoore/audit 2014-12-23 18:13:16 -08:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev.h
backlight.h
balloon_compaction.h
basic_mmio_gpio.h
bcd.h
bch.h
bcm47xx_wdt.h
bfin_mac.h
binfmts.h syscalls: implement execveat() system call 2014-12-13 12:42:51 -08:00
bio.h
bit_spinlock.h
bitmap.h Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
bitops.h
bitrev.h
blk-iopoll.h
blk-mq.h blk-mq: Add helper to abort requeued requests 2015-01-08 08:55:53 -07:00
blk_types.h blk-mq: Allow requests to never expire 2015-01-08 08:59:01 -07:00
blkdev.h Merge branch 'for-3.19/core' of git://git.kernel.dk/linux-block 2014-12-13 14:14:23 -08:00
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
bottom_half.h
bpf.h net: sock: allow eBPF programs to be attached to sockets 2014-12-05 21:47:32 -08: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
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup.h cgroup: add dummy css_put() for !CONFIG_CGROUPS 2015-01-06 12:02:46 -05:00
cgroup_subsys.h cgroup: reorder SUBSYS(blkio) in cgroup_subsys.h 2015-01-06 12:02:46 -05:00
circ_buf.h
cleancache.h
clk-private.h
clk-provider.h clk: Change clk_ops->determine_rate to return a clk_hw as the best parent 2014-12-03 16:21:37 -08:00
clk.h
clkdev.h
clksrc-dbx500-prcmu.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h mm: cma: split cma-reserved in dmesg log 2014-12-18 19:08:10 -08:00
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
com20020.h
compaction.h mm, compaction: simplify deferred compaction 2014-12-10 17:41:06 -08:00
compat.h syscalls: implement execveat() system call 2014-12-13 12:42:51 -08:00
compiler-clang.h
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc5.h
compiler-intel.h
compiler.h Merge branch 'for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu into core/rcu 2015-01-21 06:12:21 +01: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.h coresight: fixed comments in coresight.h 2014-11-26 19:28:11 -08:00
cper.h
cpu.h
cpu_cooling.h thermal: cpu_cooling: return ERR_PTR() for !CPU_THERMAL or !THERMAL_OF 2014-12-17 09:00:04 -04:00
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq-dt.h
cpufreq.h cpufreq: remove CPUFREQ_UPDATE_POLICY_CPU notifications 2015-01-23 23:06:44 +01:00
cpuidle.h cpuidle / ACPI: remove unused CPUIDLE_FLAG_TIME_INVALID 2014-12-17 02:26:28 +01:00
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 groups: Consolidate the setgroups permission checks 2014-12-05 17:19:27 -06:00
crypto.h
cryptohash.h
cryptouser.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dca.h
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -08:00
debugobjects.h
delay.h
delayacct.h
dell-led.h
devcoredump.h
devfreq-event.h PM / devfreq: event: Add devfreq_event class 2015-01-30 17:56:40 +09:00
devfreq.h PM: Eliminate CONFIG_PM_RUNTIME 2014-12-19 22:55:06 +01:00
device-mapper.h
device.h Driver core patches for 3.19-rc1 2014-12-14 16:10:09 -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-attrs.h
dma-buf.h
dma-contiguous.h
dma-debug.h
dma-direction.h
dma-mapping.h dma-mapping: detect and configure IOMMU in of_dma_configure 2014-12-01 16:50:45 +00:00
dma_remapping.h
dmaengine.h dmaengine: clarify the issue_pending expectations 2014-12-05 20:55:27 +05:30
dmapool.h
dmar.h
dmi.h
dnotify.h
dns_resolver.h
dqblk_qtree.h
dqblk_v1.h quota: Cleanup flags definitions 2015-01-21 19:21:30 +01:00
dqblk_v2.h
drbd.h
drbd_genl.h
drbd_genl_api.h
drbd_limits.h
ds1286.h
ds2782_battery.h
ds17287rtc.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 * Move efivarfs from the misc filesystem section to pseudo filesystem, 2015-01-29 19:16:40 +01:00
efs_vh.h
eisa.h
elevator.h
elf-fdpic.h
elf.h
elfcore-compat.h
elfcore.h
elfnote.h
enclosure.h
err.h
errno.h
errqueue.h
etherdevice.h net: Add functions for handling padding frame and adding to length 2014-12-08 20:47:41 -05:00
ethtool.h ethtool: Support for configurable RSS hash function 2014-12-08 21:07:10 -05:00
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extcon.h
f2fs_fs.h
f75375s.h
falloc.h
fanotify.h
fault-inject.h fault-inject: add ratelimit option 2014-12-13 12:42:52 -08:00
fb.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
fence.h
file.h include/linux/file.h: remove get_unused_fd() macro 2014-12-10 17:41:10 -08:00
filter.h net: sock: allow eBPF programs to be attached to sockets 2014-12-05 21:47:32 -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
freezer.h
frontswap.h
fs.h Merge branch 'akpm' (patches from Andrew) 2015-02-10 16:45:56 -08:00
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
fsldma.h
fsnotify.h fsnotify: fix handling of renames in audit 2015-02-10 14:30:28 -08:00
fsnotify_backend.h fsnotify: remove destroy_list from fsnotify_mark 2014-12-13 12:42:53 -08:00
ftrace.h tracing: Add tp_printk cmdline to have tracepoints go to printk() 2014-12-15 10:17:38 -05:00
ftrace_event.h perf: Avoid horrible stack usage 2015-01-14 15:11:45 +01:00
ftrace_irq.h
futex.h
gameport.h
gcd.h
genalloc.h
genetlink.h genetlink: synchronize socket closing and family removal 2015-01-16 17:04:25 -05:00
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h mm, gfp: escalatedly define GFP_HIGHUSER and GFP_HIGHUSER_MOVABLE 2014-12-13 12:42:48 -08:00
glob.h
goldfish.h
gpio-fan.h
gpio-pxa.h
gpio.h
gpio_keys.h
gpio_mouse.h
gsmmux.h
hardirq.h
hash.h net, lib: kill arch_fast_hash library bits 2014-12-10 15:17:46 -05:00
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: rmi: Scan the report descriptor to determine if the device is suitable for the hid-rmi driver 2014-12-17 09:13:13 +01: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 hrtimer: Prevent stale expiry time in hrtimer_interrupt() 2015-01-23 12:13:20 +01:00
htcpld.h
htirq.h
huge_mm.h
hugetlb.h mm: hugetlb: fix type of hugetlb_treat_as_movable variable 2015-02-10 14:30:34 -08:00
hugetlb_cgroup.h mm: hugetlb_cgroup: convert to lockless page counters 2014-12-10 17:41:04 -08:00
hugetlb_inline.h
hw_breakpoint.h
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h hyperv: Add support for vNIC hot removal 2014-12-08 20:24:11 -05: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: Only include slave support if selected 2015-01-26 22:05:20 +01:00
i2o.h
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 bridge: add new brport flag LEARNING_SYNC 2014-12-02 20:01:23 -08: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_team.h
if_tun.h
if_tunnel.h
if_vlan.h net: Fix vlan_get_protocol for stacked vlan 2015-01-30 18:03:47 -08:00
igmp.h
ihex.h
ima.h
in.h
in6.h
inet.h
inet_diag.h
inet_lro.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-09 21:21:34 -08:00
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel_mid_dma.h
intel_pmic_gpio.h
interrupt.h linux/interrupt.h: remove the definition of unused tasklet_hi_enable 2014-12-12 15:15:41 -05:00
interval_tree.h
interval_tree_generic.h
io-mapping.h
io.h
ioc3.h
ioc4.h
iocontext.h
iommu-helper.h
iommu.h ARM: SoC/iommu configuration for 3.19 2014-12-16 14:53:01 -08:00
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc_namespace.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-12-16 15:53:03 -08:00
ipmi-fru.h
ipmi.h ipmi: Use the proper type for acpi_handle 2014-12-11 15:04:06 -06:00
ipmi_smi.h ipmi: Remove the now unused priority from SMI sender 2014-12-11 15:04:11 -06:00
ipv6.h
ipv6_route.h
irq.h Merge branch 'irq-irqdomain-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2014-12-10 09:01:01 -08:00
irq_cpustat.h
irq_work.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
jbd.h jbd: drop jbd_ENOSYS debug 2015-01-15 10:34:54 +01:00
jbd2.h jbd: drop jbd_ENOSYS debug 2015-01-15 10:34:54 +01:00
jbd_common.h
jhash.h
jiffies.h
journal-head.h
joystick.h
jump_label.h
jump_label_ratelimit.h
jz4740-adc.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kcore.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h printk: add and use LOGLEVEL_<level> defines for KERN_<LEVEL> equivalents 2014-12-10 17:41:11 -08:00
kernel-page-flags.h
kernel.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching 2015-02-10 18:35:40 -08:00
kernel_stat.h genirq: Prevent proc race against freeing of irq descriptors 2014-12-13 13:33:07 +01:00
kernelcapi.h
kernfs.h
kexec.h
key-type.h
key.h
keyboard.h
kfifo.h
kgdb.h
khugepaged.h
klist.h
kmemcheck.h
kmemleak.h include/linux/kmemleak.h: needs slab.h 2014-12-13 12:42:47 -08: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
ktime.h Couple of items for 3.20 2015-01-24 10:11:12 +01:00
kvm_host.h Second round of changes for KVM for arm/arm64 for v3.19; fixes reboot 2014-12-15 13:06:40 +01:00
kvm_para.h
kvm_types.h KVM: move APIC types to arch/x86/ 2014-12-18 09:39:51 +01:00
l2tp.h
lapb.h
latencytop.h
lcd.h
lcm.h
led-lm3530.h
leds-bd2802.h
leds-lp3944.h
leds-pca9532.h
leds-regulator.h
leds-tca6507.h
leds.h Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds 2014-12-15 18:28:25 -08:00
leds_pwm.h
lglock.h
lguest.h
lguest_launcher.h
libata.h Merge branch 'for-3.19-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata into for-3.20 2015-02-09 07:54:41 -05:00
libfdt.h
libfdt_env.h
libps2.h
license.h
linkage.h
linux_logo.h
lis3lv02d.h
list.h
list_bl.h
list_lru.h
list_nulls.h
list_sort.h
livepatch.h livepatch: rename config to CONFIG_LIVEPATCH 2015-02-04 11:25:51 +01:00
llc.h
llist.h
lockdep.h
lockref.h
log2.h
lp.h
lru_cache.h
lsm_audit.h
lz4.h
lzo.h
m48t86.h
mailbox_client.h mailbox: add tx_prepare client callback 2014-11-27 12:50:59 +05:30
mailbox_controller.h
maple.h
marvell_phy.h
math64.h
max17040_battery.h
mbcache.h
mbus.h bus: mvebu-mbus: provide a mechanism to save SDRAM window configuration 2014-11-30 16:40:11 +00:00
mc6821.h
mc146818rtc.h
mcb.h
mdio-bitbang.h
mdio-gpio.h
mdio-mux.h
mdio.h
mei_cl_bus.h
memblock.h
memcontrol.h memcg: zap memcg_slab_caches and memcg_slab_mutex 2015-02-10 14:30:34 -08:00
memory.h
memory_hotplug.h
mempolicy.h
mempool.h
memstick.h
mg_disk.h
mic_bus.h
micrel_phy.h
migrate.h vm_area_operations: kill ->migrate() 2014-12-17 08:26:51 -05:00
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm.h Merge branch 'akpm' (patches from Andrew) 2015-02-10 16:45:56 -08:00
mm_inline.h
mm_types.h mm: replace vma->sharead.linear with vma->shared 2015-02-10 14:30:31 -08:00
mman.h
mmdebug.h
mmiotrace.h
mmu_context.h
mmu_notifier.h Merge branch 'drm-next' of git://people.freedesktop.org/~airlied/linux 2014-12-15 15:52:01 -08:00
mmzone.h mm/page_ext: resurrect struct page extending code for debugging 2014-12-13 12:42:48 -08:00
mnt_namespace.h
mod_devicetable.h
module.h livepatch: Fix subtle race with coming and going modules 2015-03-17 10:31:54 +01:00
moduleloader.h module: remove mod arg from module_free, rename module_memfree(). 2015-01-20 11:38:33 +10:30
moduleparam.h
mount.h
mpage.h
mpi.h
mpls.h
mroute.h
mroute6.h
msdos_fs.h
msg.h
msi.h
msm_mdp.h
mutex-debug.h
mutex.h
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h make nameidata completely opaque outside of fs/namei.c 2014-12-10 21:32:13 -05:00
nbd.h
net.h
netdev_features.h
netdevice.h netdevice: Add missing parentheses in macro 2015-01-14 16:34:41 -05:00
netfilter.h
netfilter_bridge.h
netfilter_ipv4.h
netfilter_ipv6.h
netlink.h netlink/genetlink: pass network namespace to bind/unbind 2014-12-27 03:07:50 -05:00
netpoll.h
nfs.h
nfs3.h
nfs4.h nfs: Add DEALLOCATE support 2014-11-25 16:38:32 -05:00
nfs_fs.h
nfs_fs_i.h
nfs_fs_sb.h NFSv4: Cache the NFSv4/v4.1 client owner_id in the struct nfs_client 2015-01-05 19:40:53 -08:00
nfs_idmap.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h nfs: Add ALLOCATE support 2014-11-25 16:38:32 -05:00
nfsacl.h
nilfs2_fs.h
nl802154.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
ns_common.h take the targets of /proc/*/ns/* symlinks to separate fs 2014-12-10 21:30:20 -05:00
nsc_gpio.h
nsproxy.h
ntb.h
nubus.h
numa.h
nvme.h
nvram.h
nwpserial.h
nx842.h
of.h Devicetree changes for v3.19 2014-12-11 13:06:58 -08:00
of_address.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h iommu: store DT-probed IOMMU data privately 2014-12-05 14:35:52 +00:00
of_irq.h
of_mdio.h
of_mtd.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 mailbox/omap: adapt to the new mailbox framework 2014-11-27 12:51:04 +05:30
omapfb.h
oom.h mm: page_alloc: embed OOM killing naturally into allocation slowpath 2015-01-26 13:37:18 -08:00
openvswitch.h
oprofile.h
osq_lock.h locking/mcs: Better differentiate between MCS variants 2015-01-14 15:07:32 +01:00
oxu210hp.h
padata.h
page-flags-layout.h
page-flags.h mm: add 'foreign' alias for the 'pinned' page flag 2015-01-28 14:03:09 +00:00
page-isolation.h
page_counter.h mm: memcontrol: remove obsolete kmemcg pinning tricks 2014-12-10 17:41:05 -08:00
page_ext.h mm/page_owner: keep track of page owners 2014-12-13 12:42:48 -08:00
page_owner.h mm/page_owner: keep track of page owners 2014-12-13 12:42:48 -08:00
pageblock-flags.h
pagemap.h mm: get rid of radix tree gfp mask for pagecache_get_page 2014-12-29 12:45:45 -08: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.h
pci.h ACPI and power management updates for v3.20-rc1 2015-02-10 15:09:41 -08:00
pci_hotplug.h
pci_ids.h USB patches for 3.19-rc1 2014-12-14 14:57:16 -08:00
pcieport_if.h
pda_power.h
pe.h
percpu-defs.h percpu: remove __get_cpu_var and __raw_get_cpu_var macros 2014-12-13 12:42:53 -08:00
percpu-refcount.h percpu_ref: implement percpu_ref_is_dying() 2015-01-06 10:26:10 -05:00
percpu-rwsem.h
percpu.h
percpu_counter.h
percpu_ida.h
perf_event.h perf: Decouple unthrottling and rotating 2015-02-04 08:07:16 +01:00
perf_regs.h perf: Move task_pt_regs sampling into arch code 2015-01-09 11:12:28 +01:00
personality.h
pfn.h
phonet.h
phy.h
phy_fixed.h net: Allow FIXED_PHY to be modular. 2014-12-16 15:02:23 -05:00
pid.h
pid_namespace.h common object embedded into various struct ....ns 2014-12-04 14:31:00 -05:00
pim.h
pipe_fs_i.h
pktcdvd.h
pl320-ipc.h
platform_device.h
plist.h
pm.h PM: Convert dev_pm_put_subsys_data() into a void function 2015-02-03 22:59:25 +01:00
pm2301_charger.h
pm_clock.h
pm_domain.h PM / Domains: Eliminate the mutex for the generic_pm_domain_data 2015-02-03 22:56:53 +01:00
pm_opp.h PM / OPP Introduce APIs to remove OPPs 2014-11-29 23:53:20 +01:00
pm_qos.h PM: Drop CONFIG_PM_RUNTIME from the driver core 2014-12-04 00:46:58 +01:00
pm_runtime.h Merge branch 'for-linus' of git://ftp.arm.linux.org.uk/~rmk/linux-arm 2014-12-12 15:26:48 -08:00
pm_wakeup.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
preempt.h
preempt_mask.h
prefetch.h
printk.h printk: add dummy routine for when CONFIG_PRINTK=n 2015-01-26 13:37:18 -08:00
proc_fs.h
proc_ns.h take the targets of /proc/*/ns/* symlinks to separate fs 2014-12-10 21:30:20 -05:00
profile.h
projid.h
property.h
proportions.h
pstore.h
pstore_ram.h pstore-ram: Allow optional mapping with pgprot_noncached 2014-12-11 13:38:31 -08:00
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptrace.h exit: ptrace: shift "reap dead" code from exit_ptrace() to forget_original_parent() 2014-12-10 17:41:10 -08:00
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h spi: pxa2xx: Add definition for Intel Quark DDS_RATE register 2014-12-22 20:17:23 +00:00
pxa168_eth.h
qnx6_fs.h
quicklist.h
quota.h quota: Store maximum space limit in bytes 2015-01-30 12:51:21 +01:00
quotaops.h quota: Add ->quota_{enable,disable} callbacks for VFS quotas 2015-01-30 12:50:32 +01:00
radix-tree.h
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h ratelimit: add initialization macro 2014-12-13 12:42:52 -08:00
rational.h
rbtree.h
rbtree_augmented.h
rculist.h rculist: Fix sparse warning 2015-01-06 11:01:13 -08:00
rculist_bl.h
rculist_nulls.h
rcupdate.h Merge branches 'doc.2015.01.07a', 'fixes.2015.01.15a', 'preempt.2015.01.06a', 'srcu.2015.01.06a', 'stall.2015.01.16a' and 'torture.2015.01.11a' into HEAD 2015-01-15 23:34:34 -08:00
rcutiny.h Merge branches 'doc.2015.01.07a', 'fixes.2015.01.15a', 'preempt.2015.01.06a', 'srcu.2015.01.06a', 'stall.2015.01.16a' and 'torture.2015.01.11a' into HEAD 2015-01-15 23:34:34 -08:00
rcutree.h Merge branches 'doc.2015.01.07a', 'fixes.2015.01.15a', 'preempt.2015.01.06a', 'srcu.2015.01.06a', 'stall.2015.01.16a' and 'torture.2015.01.11a' into HEAD 2015-01-15 23:34:34 -08:00
reboot.h
reciprocal_div.h
regmap.h regmap: correct the description of structure element in reg_field 2015-01-27 13:13:04 +00:00
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset.h
resource.h
resource_ext.h resources: Move struct resource_list_entry from ACPI into resource core 2015-02-05 15:09:25 +01:00
resume-trace.h
rfkill-gpio.h
rfkill-regulator.h
rfkill.h
rhashtable.h
ring_buffer.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h rmap: drop support of non-linear mappings 2015-02-10 14:30:31 -08:00
rndis.h
root_dev.h
rotary_encoder.h
rpmsg.h
rslib.h
rtc-ds2404.h
rtc-v3020.h
rtc.h rtc: Convert rtc_set_ntp_time() to use timespec64 2015-01-23 17:21:57 -08:00
rtmutex.h
rtnetlink.h rtnetlink: delay RTM_DELLINK notification until after ndo_uninit() 2014-12-09 13:36:57 -05:00
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
s3c_adc_battery.h
sa11x0-dma.h
scatterlist.h
scc.h
sched.h syscalls: implement execveat() system call 2014-12-13 12:42:51 -08:00
sched_clock.h
screen_info.h
sctp.h
scx200.h
scx200_gpio.h
sdb.h
sdla.h
seccomp.h
securebits.h
security.h
selection.h
selinux.h
sem.h
semaphore.h
seq_buf.h
seq_file.h
seq_file_net.h
seqlock.h
seqno-fence.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h serial: core: Add big-endian iotype 2014-11-25 17:06:40 -08:00
serial_max3100.h
serial_mfd.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 mm: vmscan: invoke slab shrinkers from shrink_zone() 2014-12-13 12:42:48 -08:00
signal.h
signalfd.h
sirfsoc_dma.h
sizes.h
skbuff.h net: Pull out core bits of __netdev_alloc_skb and add __napi_alloc_skb 2014-12-10 13:31:57 -05:00
slab.h memcg: zap memcg_slab_caches and memcg_slab_mutex 2015-02-10 14:30:34 -08:00
slab_def.h
slub_def.h
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h init: Get rid of x86isms 2015-01-22 15:10:56 +01:00
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h net: introduce helper macro for_each_cmsghdr 2014-12-10 22:41:55 -05:00
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 spmi: Remove shutdown/suspend/resume kernel-doc 2014-11-26 19:33:57 -08:00
srcu.h rcu: Combine DEFINE_SRCU() and DEFINE_STATIC_SRCU() 2015-01-06 11:04:27 -08:00
ssbi.h
stackprotector.h
stacktrace.h stacktrace: introduce snprint_stack_trace for buffer output 2014-12-13 12:42:48 -08:00
start_kernel.h
stat.h
statfs.h
static_key.h
stddef.h
ste_modem_shm.h
stmmac.h
stmp3xxx_rtc_wdt.h
stmp_device.h
stop_machine.h
string.h
string_helpers.h
stringify.h
sudmac.h
sungem_phy.h
sunserialcore.h
superhyway.h
suspend.h
svga.h
swab.h
swap.h mm: move swp_entry_t definition to include/linux/mm_types.h 2014-12-13 12:42:47 -08:00
swap_cgroup.h mm: page_cgroup: rename file to mm/swap_cgroup.c 2014-12-10 17:41:09 -08:00
swapfile.h
swapops.h mm: remove rest usage of VM_NONLINEAR and pte_file() 2015-02-10 14:30:31 -08:00
swiotlb.h
sxgbe_platform.h
synclink.h
sys.h
sys_soc.h
syscalls.h syscalls: implement execveat() system call 2014-12-13 12:42:51 -08: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
tboot.h
tc.h
tca6416_keypad.h
tcp.h Merge branch 'for-davem-2' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs 2014-12-10 13:17:23 -05:00
textsearch.h
textsearch_fsm.h
tfrc.h
thermal.h Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal into thermal-soc 2014-12-21 22:49:12 +08:00
thinkpad_acpi.h
thread_info.h
threads.h
ti_wilink_st.h
tick.h
tifm.h
timb_dma.h
timb_gpio.h
time.h Merge branch 'fortglx/3.19-stable/time' of https://git.linaro.org/people/john.stultz/linux into timers/urgent 2015-01-22 12:28:02 +01:00
time64.h
timekeeper_internal.h
timekeeping.h time: Expose get_monotonic_boottime64 for in-kernel use 2015-01-23 17:21:55 -08: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_seq.h
tracehook.h
tracepoint.h tracing: Add condition check to RCU lockdep checks 2015-02-07 19:34:25 -05:00
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 new helper: iter_is_iovec() 2014-12-17 06:43:56 -05:00
uio_driver.h
uprobes.h
usb.h USB / PM: Drop CONFIG_PM_RUNTIME from the USB core 2014-12-04 00:51:54 +01:00
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace 2014-12-17 12:31:40 -08:00
uts.h
utsname.h common object embedded into various struct ....ns 2014-12-04 14:31:00 -05:00
uuid.h
uwb.h
verify_pefile.h
vermagic.h
vexpress.h ARM: vexpress: Remove non-DT code 2014-11-28 16:08:16 +01:00
vfio.h
vfs.h
vga_switcheroo.h
vgaarb.h
via-core.h
via-gpio.h
via.h
via_i2c.h
videodev2.h
virtio.h A balloon enhancement, and a minor race-on-module-unload theoretical 2014-12-17 10:37:56 -08:00
virtio_byteorder.h virtio: memory access APIs 2014-12-09 12:05:24 +02:00
virtio_caif.h
virtio_config.h virtio: core support for config generation 2014-12-14 18:21:31 +02:00
virtio_console.h
virtio_mmio.h
virtio_ring.h
vlynq.h
vm_event_item.h mm,vmacache: count number of system-wide flushes 2014-12-13 12:42:48 -08:00
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h
vmw_vmci_api.h vmci: propagate msghdr all way down to __qp_memcpy_from_queue() 2014-12-09 16:28:23 -05:00
vmw_vmci_defs.h
vringh.h vringh: update for virtio 1.0 APIs 2014-12-15 23:49:28 +02:00
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
wait.h sched/wait: Introduce wait_on_bit_timeout() 2015-02-04 07:52:32 +01:00
wanrouter.h
watchdog.h
wireless.h
wl12xx.h
wm97xx.h
workqueue.h workqueue.h: remove loops of single statement macros 2015-01-06 18:16:30 -05:00
writeback.h mm: protect set_page_dirty() from ongoing truncation 2015-01-08 15:10:51 -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