Greg Thelen
2e898e4c0a
writeback: safer lock nesting
...
lock_page_memcg()/unlock_page_memcg() use spin_lock_irqsave/restore() if
the page's memcg is undergoing move accounting, which occurs when a
process leaves its memcg for a new one that has
memory.move_charge_at_immigrate set.
unlocked_inode_to_wb_begin,end() use spin_lock_irq/spin_unlock_irq() if
the given inode is switching writeback domains. Switches occur when
enough writes are issued from a new domain.
This existing pattern is thus suspicious:
lock_page_memcg(page);
unlocked_inode_to_wb_begin(inode, &locked);
...
unlocked_inode_to_wb_end(inode, locked);
unlock_page_memcg(page);
If both inode switch and process memcg migration are both in-flight then
unlocked_inode_to_wb_end() will unconditionally enable interrupts while
still holding the lock_page_memcg() irq spinlock. This suggests the
possibility of deadlock if an interrupt occurs before unlock_page_memcg().
truncate
__cancel_dirty_page
lock_page_memcg
unlocked_inode_to_wb_begin
unlocked_inode_to_wb_end
<interrupts mistakenly enabled>
<interrupt>
end_page_writeback
test_clear_page_writeback
lock_page_memcg
<deadlock>
unlock_page_memcg
Due to configuration limitations this deadlock is not currently possible
because we don't mix cgroup writeback (a cgroupv2 feature) and
memory.move_charge_at_immigrate (a cgroupv1 feature).
If the kernel is hacked to always claim inode switching and memcg
moving_account, then this script triggers lockup in less than a minute:
cd /mnt/cgroup/memory
mkdir a b
echo 1 > a/memory.move_charge_at_immigrate
echo 1 > b/memory.move_charge_at_immigrate
(
echo $BASHPID > a/cgroup.procs
while true; do
dd if=/dev/zero of=/mnt/big bs=1M count=256
done
) &
while true; do
sync
done &
sleep 1h &
SLEEP=$!
while true; do
echo $SLEEP > a/cgroup.procs
echo $SLEEP > b/cgroup.procs
done
The deadlock does not seem possible, so it's debatable if there's any
reason to modify the kernel. I suggest we should to prevent future
surprises. And Wang Long said "this deadlock occurs three times in our
environment", so there's more reason to apply this, even to stable.
Stable 4.4 has minor conflicts applying this patch. For a clean 4.4 patch
see "[PATCH for-4.4] writeback: safer lock nesting"
https://lkml.org/lkml/2018/4/11/146
Wang Long said "this deadlock occurs three times in our environment"
[gthelen@google.com: v4]
Link: http://lkml.kernel.org/r/20180411084653.254724-1-gthelen@google.com
[akpm@linux-foundation.org: comment tweaks, struct initialization simplification]
Change-Id: Ibb773e8045852978f6207074491d262f1b3fb613
Link: http://lkml.kernel.org/r/20180410005908.167976-1-gthelen@google.com
Fixes: 682aa8e1a6 ("writeback: implement unlocked_inode_to_wb transaction and use it for stat updates")
Signed-off-by: Greg Thelen <gthelen@google.com>
Reported-by: Wang Long <wanglong19@meituan.com>
Acked-by: Wang Long <wanglong19@meituan.com>
Acked-by: Michal Hocko <mhocko@suse.com>
Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: <stable@vger.kernel.org> [v4.2+]
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2018-04-20 17:18:35 -07:00
..
amba
avf
bcma
byteorder
crypto: Deduplicate le32_to_cpu_array() and cpu_to_le32_array()
2018-03-31 01:33:09 +08:00
can
ceph
ceph: quota: add initial infrastructure to support cephfs quotas
2018-04-02 11:17:51 +02:00
clk
The large diff this time around is from the addition of a new clk driver
2018-04-13 15:51:06 -07:00
crush
decompress
dma
dsa
extcon
extcon: gpio: Localize platform data
2018-03-21 13:58:08 +09:00
firmware /meson
fpga
fsl
bus: fsl-mc: change mc_command in fsl_mc_command
2018-03-23 15:52:48 +01:00
gpio
gpiolib: Support 'gpio-reserved-ranges' property
2018-03-27 15:34:20 +02:00
hsi
iio
input
irqchip
Merge branch 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-04-04 15:19:26 -07:00
isdn
lockd
mailbox
mfd
Changes to chrome-platform for v4.17
2018-04-13 16:20:36 -07:00
mlx4
RDMA/mlx4: Move flag constants to uapi header
2018-03-15 15:58:03 -06:00
mlx5
Merge candidates for 4.17 merge window
2018-04-06 17:35:43 -07:00
mmc
mtd
Core changes:
2018-04-04 22:11:36 +02:00
mux
netfilter
Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next
2018-03-30 11:41:18 -04:00
netfilter_arp
netfilter_bridge
netfilter_ipv4
netfilter_ipv6
perf
phy
phy: fix structure documentation
2018-03-08 13:56:24 +05:30
pinctrl
platform_data
Changes to chrome-platform for v4.17
2018-04-13 16:20:36 -07:00
power
qed
qed: Adapter flash update support.
2018-03-29 14:29:55 -04:00
raid
powerpc updates for 4.17
2018-04-07 12:08:19 -07:00
regulator
remoteproc
reset
rpmsg
rtc
sched
exec: pass stack rlimit into mm layout functions
2018-04-11 10:28:37 -07:00
soc
remoteproc updates for v4.17
2018-04-10 12:09:27 -07:00
soundwire
spi
ssb
sunrpc
NFS client updates for Linux 4.17
2018-04-12 12:55:50 -07:00
ulpi
unaligned
usb
sound updates for 4.17-rc1
2018-04-05 10:42:07 -07:00
uwb
wimax
8250_pci.h
a.out.h
acct.h
acpi.h
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
anon_inodes.h
apm-emulation.h
apm_bios.h
apple-gmux.h
apple_bl.h
arch_topology.h
arm-cci.h
arm-smccc.h
arm_sdei.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_tc.h
atomic.h
attribute_container.h
audit.h
audit: remove path param from link denied function
2018-03-21 11:17:41 -04:00
auto_dev-ioctl.h
auto_fs.h
auxvec.h
average.h
b1pcmcia.h
backing-dev-defs.h
writeback: safer lock nesting
2018-04-20 17:18:35 -07:00
backing-dev.h
writeback: safer lock nesting
2018-04-20 17:18:35 -07:00
backlight.h
badblocks.h
balloon_compaction.h
bcd.h
bch.h
bcm47xx_nvram.h
bcm47xx_sprom.h
bcm47xx_wdt.h
bcm963xx_nvram.h
bcm963xx_tag.h
binfmts.h
exec: pin stack limit during exec
2018-04-11 10:28:37 -07:00
bio.h
bit_spinlock.h
bitfield.h
bitmap.h
bitmap: fix memset optimization on big-endian systems
2018-04-02 20:52:27 -07:00
bitops.h
bitrev.h
blk-cgroup.h
blk-throttle: fix race between blkcg_bio_issue_check() and cgroup_rmdir()
2018-03-16 10:35:12 -06:00
blk-mq-pci.h
blk-mq: Allow PCI vector offset for mapping queues
2018-03-27 21:25:36 -06:00
blk-mq-rdma.h
blk-mq-virtio.h
blk-mq.h
blk-mq: remove blk_mq_delay_queue()
2018-04-10 08:38:46 -06:00
blk_types.h
block: use 32-bit blk_status_t on Alpha
2018-03-21 19:23:33 -06:00
blkdev.h
block: Move SECTOR_SIZE and SECTOR_SHIFT definitions into <linux/blkdev.h>
2018-03-17 14:45:23 -06:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bma150.h
bootmem.h
mm: remove obsolete alloc_remap()
2018-03-16 10:56:13 +01:00
bottom_half.h
bpf-cgroup.h
bpf: Post-hooks for sys_bind
2018-03-31 02:16:26 +02:00
bpf.h
bpf: Check attach type at prog load time
2018-03-31 02:14:44 +02:00
bpf_trace.h
bpf_types.h
bpf: Hooks for sys_bind
2018-03-31 02:15:18 +02:00
bpf_verifier.h
bpf: Add bpf_verifier_vlog() and bpf_verifier_log_needed()
2018-03-26 09:58:17 +02:00
brcmphy.h
bsearch.h
bsg-lib.h
bsg: split handling of SCSI CDBs vs transport requeues
2018-03-13 11:40:24 -06:00
bsg.h
bsg: split handling of SCSI CDBs vs transport requeues
2018-03-13 11:40:24 -06:00
btree-128.h
btree-type.h
btree.h
btrfs.h
buffer_head.h
bug.h
build_bug.h
bvec.h
c2port.h
cache.h
cacheinfo.h
capability.h
cb710.h
cciss_ioctl.h
ccp.h
cdev.h
cdrom.h
cfag12864b.h
cgroup-defs.h
Merge branch 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
2018-04-03 18:00:13 -07:00
cgroup.h
cgroup_rdma.h
cgroup_subsys.h
circ_buf.h
cleancache.h
clk-provider.h
clk: divider: read-only divider can propagate rate change
2018-03-12 15:10:26 -07:00
clk.h
clk: add more __must_check for bulk APIs
2018-03-16 15:45:51 -07:00
clkdev.h
clock_cooling.h
clockchips.h
clocksource.h
cm4000_cs.h
cma.h
cmdline-parser.h
cn_proc.h
cnt32_to_63.h
coda.h
coda_psdev.h
compaction.h
compat.h
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
2018-04-15 16:12:35 -07:00
compiler-clang.h
task_struct: only use anon struct under randstruct plugin
2018-04-11 10:28:35 -07:00
compiler-gcc.h
task_struct: only use anon struct under randstruct plugin
2018-04-11 10:28:35 -07:00
compiler-intel.h
compiler.h
compiler_types.h
completion.h
component.h
concap.h
configfs.h
connector.h
console.h
console_struct.h
consolemap.h
const.h
linux/const.h: move UL() macro to include/linux/const.h
2018-04-11 10:28:38 -07:00
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
cpu_cooling.h
cpu_pm.h
cpu_rmap.h
cpufeature.h
cpufreq.h
cpufreq: Drop cpufreq_table_validate_and_show()
2018-04-10 08:40:45 +02:00
cpuhotplug.h
arch: remove blackfin port
2018-03-16 10:55:47 +01:00
cpuidle.h
cpuidle: Return nohz hint from cpuidle_select()
2018-04-06 09:29:34 +02:00
cpumask.h
cpuset.h
crash_core.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc-t10dif.h
crc4.h
crc7.h
crc8.h
crc16.h
crc32.h
crc32c.h
libcrc32c: Add crc32c_impl function
2018-03-26 15:09:38 +02:00
cred.h
crypto.h
crypto: doc - Document remaining members in struct crypto_alg
2018-03-23 23:48:43 +08:00
cryptohash.h
cs5535.h
ctype.h
cuda.h
cyclades.h
davinci_emac.h
dax.h
dax, dm: allow device-mapper to operate without dax support
2018-04-03 05:41:19 -07:00
dca.h
dcache.h
Merge branch 'old.dcache' into work.dcache
2018-04-04 00:40:19 -04:00
dccp.h
dcookies.h
debug_locks.h
debugfs.h
debugobjects.h
delay.h
delayacct.h
delayed_call.h
dell-led.h
devcoredump.h
devfreq-event.h
devfreq.h
devfreq_cooling.h
device-mapper.h
- DM core passthrough ioctl fix to retain reference to DM table, and
2018-04-06 11:50:19 -07:00
device.h
Driver core patches for 4.17-rc1
2018-04-04 19:41:45 -07:00
device_cgroup.h
devpts_fs.h
digsig.h
dio.h
dirent.h
dlm.h
dlm_plock.h
dm-bufio.h
dm bufio: move dm-bufio.h to include/linux/
2018-04-03 15:04:23 -04:00
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-direct.h
dma/direct: Handle the memory encryption bit in common code
2018-03-20 10:01:59 +01:00
dma-direction.h
dma-fence-array.h
dma-fence.h
dma-iommu.h
dma-mapping.h
dma-mapping updates for 4.17:
2018-04-05 10:23:24 -07:00
dma_remapping.h
dmaengine.h
dmapool.h
mm: Add NO_DMA dummies for DMA pool API
2018-03-16 19:58:27 +01:00
dmar.h
dmi.h
* Add NVDIMM support to EDAC (Tony Luck)
2018-04-05 14:21:13 -07:00
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
EDAC: Add new memory type for non-volatile DIMMs
2018-03-14 12:32:06 +01:00
edd.h
edma.h
eeprom_93cx6.h
eeprom_93xx46.h
efi-bgrt.h
efi.h
efi: Use efi_mm in x86 as well as ARM
2018-03-12 10:05:01 +01: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
error-injection.h
errqueue.h
errseq.h
etherdevice.h
ethtool.h
net: ethtool: extend RXNFC API to support RSS spreading of filter matches
2018-03-08 21:54:52 -05:00
eventfd.h
eventpoll.h
evm.h
export.h
exportfs.h
ext2_fs.h
extable.h
extcon-provider.h
extcon.h
extcon: add possibility to get extcon device by OF node
2018-03-08 10:34:44 +09:00
f2fs_fs.h
f2fs: align memory boundary for bitops
2018-03-17 13:57:39 +09:00
f75375s.h
falloc.h
fanotify.h
fault-inject.h
mm: make should_failslab always available for fault injection
2018-04-05 21:36:26 -07:00
fb.h
fbdev: remove blackfin drivers
2018-03-26 15:56:44 +02:00
fbcon.h
fcdevice.h
fcntl.h
fd.h
fddidevice.h
fdtable.h
fec.h
file.h
filter.h
bpf: Hooks for sys_bind
2018-03-31 02:15:18 +02:00
fips.h
firewire.h
firmware-map.h
firmware.h
firmware: add firmware_request_cache() to help with cache on reboot
2018-03-22 18:33:26 +01:00
fixp-arith.h
flat.h
flex_array.h
flex_proportions.h
fmc-sdb.h
fmc.h
font.h
frame.h
freezer.h
frontswap.h
fs.h
Merge branch 'work.thaw' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs
2018-04-12 12:28:32 -07:00
fs_enet_pd.h
fs_pin.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fscache-cache.h
fscache: Pass object size in rather than calling back for it
2018-04-06 14:05:14 +01:00
fscache.h
fscache: Maintain a catalogue of allocated cookies
2018-04-06 14:05:14 +01:00
fscrypt.h
fscrypt_notsupp.h
fscrypt_supp.h
fsi.h
fsl-diu-fb.h
fsl_devices.h
fsl_hypervisor.h
fsl_ifc.h
mtd: nand: fsl_ifc: Read ECCSTAT0 and ECCSTAT1 registers for IFC 2.0
2018-03-21 10:22:28 +01:00
fsldma.h
fsnotify.h
fsnotify_backend.h
fsnotify: fix typo in a comment about mark->g_list
2018-04-13 15:54:13 +02:00
ftrace.h
ftrace_irq.h
futex.h
mm: use do_futex() instead of sys_futex() in mm_release()
2018-04-02 20:15:02 +02:00
fwnode.h
gameport.h
gcd.h
genalloc.h
genetlink.h
genhd.h
genl_magic_func.h
genl_magic_struct.h
getcpu.h
gfp.h
glob.h
goldfish.h
gpio-pxa.h
gpio.h
gpio_keys.h
Input: gpio-keys - add support for wakeup event action
2018-03-14 10:13:22 -07:00
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: input: fix battery level reporting on BT mice
2018-04-09 09:26:12 +02:00
hiddev.h
hidraw.h
highmem.h
mm: Allow arch code to override copy_highpage()
2018-03-18 07:38:48 -07:00
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hmm.h
mm/hmm: fix header file if/else/endif maze, again
2018-04-11 10:28:31 -07:00
host1x.h
hp_sdc.h
hpet.h
hrtimer.h
Merge branches 'pm-cpuidle' and 'pm-qos'
2018-04-11 13:22:46 +02:00
htcpld.h
huge_mm.h
hugetlb.h
hugetlb_cgroup.h
hugetlb_inline.h
hw_breakpoint.h
perf/core: Implement fast breakpoint modification via _IOC_MODIFY_ATTRIBUTES
2018-03-13 15:24:02 +01:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hwspinlock.h
hyperv.h
ARM:
2018-04-09 11:42:31 -07:00
hypervisor.h
jailhouse: Provide detection for non-x86 systems
2018-03-08 12:30:37 +01: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.h
i2c-ocores.h
i2c-omap.h
i2c-pca-platform.h
i2c: pca-platform: drop gpio from platform data
2018-03-24 13:26:13 +01:00
i2c-pnx.h
i2c-pxa.h
i2c-smbus.h
i2c-xiic.h
i2c.h
i8042.h
i8253.h
icmp.h
icmpv6.h
ide.h
for-4.17/block-20180402
2018-04-05 14:27:02 -07:00
idr.h
xarray: add the xa_lock to the radix_tree_root
2018-04-11 10:28:39 -07:00
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
vhost_net: examine pointer types during un-producing
2018-03-09 12:02:59 -05:00
if_tunnel.h
if_vlan.h
vlan: Fix reading memory beyond skb->tail in skb_vlan_tagged_multi
2018-04-17 13:59:28 -04:00
igmp.h
ihex.h
ima.h
imx-media.h
in.h
in6.h
inet.h
net/utils: Introduce inet_addr_is_any
2018-03-26 08:53:43 -06:00
inet_diag.h
inetdevice.h
init.h
init_ohci1394_dma.h
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h
integrity.h
intel-iommu.h
intel-pti.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
iommu-common.h
iommu-helper.h
iommu.h
iopoll.h
ioport.h
ioprio.h
iova.h
ip.h
ipack.h
ipc.h
ipc: Move IPCMNI from include/ipc.h into ipc/util.h
2018-03-24 11:25:36 -05:00
ipc_namespace.h
ipmi-fru.h
ipmi.h
ipmi_smi.h
ipv6.h
ipv6_route.h
irq.h
genirq: Add CONFIG_GENERIC_IRQ_MULTI_HANDLER
2018-03-14 21:46:29 +01:00
irq_cpustat.h
irq_poll.h
irq_sim.h
irq_work.h
irqbypass.h
irqchip.h
irqdesc.h
irqdomain.h
irqflags.h
irqhandler.h
irqnr.h
irqreturn.h
isa.h
isapnp.h
iscsi_boot_sysfs.h
iscsi_ibft.h
isdn.h
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iversion.h
jbd2.h
jhash.h
jiffies.h
jiffies: Introduce USER_TICK_USEC and redefine TICK_USEC
2018-04-06 09:28:50 +02:00
journal-head.h
joystick.h
jump_label.h
jump_label: Disable jump labels in __exit code
2018-03-20 08:57:17 +01:00
jump_label_ratelimit.h
jz4740-adc.h
jz4780-nemc.h
kallsyms.h
kasan-checks.h
kasan.h
kasan: make kasan_cache_create() work with 32-bit slab cache sizes
2018-04-05 21:36:24 -07:00
kbd_diacr.h
kbd_kern.h
kbuild.h
kconfig.h
kbuild: get <linux/compiler_types.h> out of <linux/kconfig.h>
2018-03-31 12:22:38 +09:00
kcore.h
kcov.h
kd.h
kdb.h
kdebug.h
kdev_t.h
kern_levels.h
kernel-page-flags.h
kernel.h
taint: add taint for randstruct
2018-04-11 10:28:35 -07:00
kernel_stat.h
kernelcapi.h
kernfs.h
kexec.h
kernel/kexec_file.c: allow archs to set purgatory load address
2018-04-13 17:10:28 -07:00
key-type.h
key.h
keyboard.h
kfifo.h
include/linux/kfifo.h: fix comment
2018-04-11 10:28:38 -07:00
kgdb.h
khugepaged.h
klist.h
kmemleak.h
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
kvm_host.h
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: Extends disk trigger for reads and writes
2018-03-11 20:01:55 +01:00
leds_pwm.h
libata.h
libata: add refcounting to ata_host
2018-03-13 13:29:10 -07:00
libfdt.h
libfdt_env.h
libgcc.h
libnvdimm.h
libnvdimm: Add of_node to region and bus descriptors
2018-04-07 07:53:23 -07:00
libps2.h
license.h
lightnvm.h
lightnvm: pblk: implement get log report chunk
2018-03-29 17:29:09 -06:00
linkage.h
linux_logo.h
video/logo: remove obsolete logo files
2018-03-26 15:56:42 +02:00
lis3lv02d.h
list.h
list_bl.h
list_lru.h
mm: make counting of list_lru_one::nr_items lockless
2018-04-05 21:36:27 -07:00
list_nulls.h
list_sort.h
livepatch.h
livepatch: Allow to call a custom callback when freeing shadow variables
2018-04-17 13:42:48 +02:00
llc.h
llist.h
lockdep.h
lockref.h
lockref: Add lockref_put_not_zero
2018-04-12 09:41:19 -07:00
log2.h
logic_pio.h
lib: Add generic PIO mapping method
2018-03-21 17:18:34 -05:00
lp.h
lru_cache.h
lsm_audit.h
lsm_hooks.h
Merge branch 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2018-04-07 16:53:59 -07:00
lz4.h
lzo.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
mem_encrypt.h
memblock.h
powerpc updates for 4.17
2018-04-07 12:08:19 -07:00
memcontrol.h
mm: memcg: make sure memory.events is uptodate when waking pollers
2018-04-11 10:28:31 -07:00
memory.h
mm/memory_hotplug: optimize memory hotplug
2018-04-05 21:36:25 -07:00
memory_hotplug.h
mm/cma: manage the memory of the CMA area by using the ZONE_MOVABLE
2018-04-11 10:28:32 -07:00
mempolicy.h
mempool.h
memremap.h
memstick.h
mic_bus.h
micrel_phy.h
microchipphy.h
lan78xx: PHY DSP registers initialization to address EEE link drop issues with long cables
2018-04-12 21:46:10 -04:00
migrate.h
mm: unclutter THP migration
2018-04-11 10:28:32 -07:00
migrate_mode.h
mii.h
miscdevice.h
mISDNdsp.h
mISDNhw.h
mISDNif.h
mm-arch-hooks.h
mm.h
page cache: use xa_lock
2018-04-11 10:28:39 -07:00
mm_inline.h
mm_types.h
mm: change return type to vm_fault_t
2018-04-05 21:36:27 -07:00
mm_types_task.h
mman.h
mm: Add address parameter to arch_validate_prot()
2018-03-18 07:38:47 -07:00
mmdebug.h
include/linux/mmdebug.h: make VM_WARN* non-rvals
2018-04-05 21:36:27 -07:00
mmiotrace.h
mmu_context.h
mmu_notifier.h
mmzone.h
mm/page_alloc: don't reserve ZONE_HIGHMEM for ZONE_MOVABLE request
2018-04-11 10:28:32 -07:00
mnt_namespace.h
mod_devicetable.h
firmware: dmi_scan: Add DMI_OEM_STRING support to dmi_matches
2018-04-13 15:37:59 +02:00
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mpi.h
mpls.h
mpls_iptunnel.h
mroute.h
ip6mr: Add refcounting to mfc
2018-03-26 13:14:43 -04:00
mroute6.h
ip6mr: Add API for default_rule fib
2018-03-26 13:14:43 -04:00
mroute_base.h
ip6mr: Add refcounting to mfc
2018-03-26 13:14:43 -04:00
msdos_fs.h
msg.h
msg: Move struct msg_queue into ipc/msg.c
2018-03-24 11:25:35 -05:00
msi.h
mutex.h
Merge branch 'linus' into locking/core, to pick up fixes and dependencies
2018-03-10 10:19:28 +01:00
mv643xx.h
mv643xx_eth.h
mv643xx_i2c.h
mvebu-pmsu.h
mxm-wmi.h
n_r3964.h
namei.h
nd.h
libnvdimm: provide module_nd_driver wrapper
2018-03-15 07:17:21 -07:00
net.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-03-23 11:31:58 -04:00
net_dim.h
net/dim: Fix int overflow
2018-03-30 12:56:22 -04:00
netdev_features.h
ethtool: enable Inline TLS in HW
2018-03-31 23:37:32 -04:00
netdevice.h
sfp/phylink: move module EEPROM ethtool access into netdev core ethtool
2018-03-30 10:11:06 -04: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
NFS: More fine grained attribute tracking
2018-04-10 16:06:22 -04:00
nfs_fs_i.h
nfs_fs_sb.h
nfs_iostat.h
nfs_page.h
nfs_xdr.h
NFS: Remove the unused return_delegation() callback
2018-04-10 16:06:22 -04:00
nfsacl.h
nl802154.h
nls.h
nmi.h
node.h
mm/memory_hotplug: don't read nid from struct page during hotplug
2018-04-05 21:36:25 -07:00
nodemask.h
nospec.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.h
nvmem-consumer.h
nvmem-provider.h
nvmem: Introduce devm_nvmem_(un)register()
2018-03-14 19:28:13 +01:00
nvram.h
of.h
of_address.h
of_device.h
of_dma.h
of_fdt.h
of_gpio.h
of_graph.h
of_iommu.h
of_irq.h
of_mdio.h
of_net.h
of_net: Implement of_get_nvmem_mac_address helper
2018-03-30 10:40:18 -04:00
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
openvswitch.h
oprofile.h
osq_lock.h
oxu210hp.h
padata.h
page-flags-layout.h
page-flags.h
mm: uninitialized struct page poisoning sanity checking
2018-04-05 21:36:25 -07:00
page-isolation.h
mm, migrate: remove reason argument from new_page_t
2018-04-11 10:28:32 -07:00
page_counter.h
page_ext.h
page_idle.h
page_owner.h
page_ref.h
mm/page_ref: use atomic_set_release in page_ref_unfreeze
2018-04-05 21:36:25 -07:00
pageblock-flags.h
pagemap.h
page cache: use xa_lock
2018-04-11 10:28:39 -07: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-ep-cfs.h
pci-epc.h
PCI: endpoint: Make epc->ops->clear_bar()/pci_epc_clear_bar() take struct *epf_bar
2018-04-03 12:38:05 +01:00
pci-epf.h
PCI: endpoint: Simplify epc->ops->set_bar()/pci_epc_set_bar()
2018-04-03 12:23:38 +01:00
pci.h
pci-v4.17-changes
2018-04-06 18:31:06 -07:00
pci_hotplug.h
pci_ids.h
pci-v4.17-changes
2018-04-06 18:31:06 -07:00
pda_power.h
pe.h
percpu-defs.h
percpu-refcount.h
percpu_ref: Update doc to dissuade users from depending on internal RCU grace periods
2018-03-19 10:09:44 -07:00
percpu-rwsem.h
percpu.h
percpu_counter.h
percpu_ida.h
perf_event.h
perf/x86/pt, coresight: Clean up address filter structure
2018-03-29 16:07:22 +02:00
perf_regs.h
personality.h
pfn.h
pfn_t.h
phonet.h
phy.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
2018-03-23 11:31:58 -04:00
phy_fixed.h
phy_led_triggers.h
phylink.h
sfp/phylink: move module EEPROM ethtool access into netdev core ethtool
2018-03-30 10:11:06 -04:00
pid.h
pid_namespace.h
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
pm_runtime.h
pm_wakeirq.h
pm_wakeup.h
pmbus.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
prefetch.h
prime_numbers.h
printk.h
printk: move dump stack related code to lib/dump_stack.c
2018-03-15 13:25:36 +01:00
proc_fs.h
proc_ns.h
processor.h
profile.h
projid.h
property.h
psci.h
psp-sev.h
pstore.h
pstore_ram.h
pstore/ram: Do not use stack VLA for parity workspace
2018-03-07 12:47:06 -08:00
pti.h
ptp_classify.h
ptp_clock_kernel.h
ptr_ring.h
ptrace.h
purgatory.h
pvclock_gtod.h
pwm.h
pwm_backlight.h
pxa2xx_ssp.h
pxa168_eth.h
qcom_scm.h
qnx6_fs.h
quicklist.h
quota.h
quota: Kill an unused extern entry form quota.h
2018-03-26 13:11:35 +02:00
quotaops.h
fs/quota: add kernel_quotactl() helper; remove in-kernel call to syscall
2018-04-02 20:15:46 +02:00
radix-tree.h
xarray: add the xa_lock to the radix_tree_root
2018-04-11 10:28:39 -07:00
raid_class.h
ramfs.h
random.h
range.h
ras.h
ratelimit.h
rational.h
rbtree.h
rbtree_augmented.h
rbtree_latch.h
rcu_node_tree.h
rcu_segcblist.h
rcu_sync.h
rculist.h
rculist_bl.h
rculist_nulls.h
rcupdate.h
rcupdate_wait.h
rcutiny.h
rcutree.h
rcuwait.h
reboot-mode.h
reboot.h
reciprocal_div.h
refcount.h
regmap.h
regset.h
relay.h
remoteproc.h
reservation.h
reset-controller.h
reset: modify the way reset lookup works for board files
2018-03-27 10:39:47 +02:00
reset.h
resource.h
resource_ext.h
restart_block.h
rfkill.h
rhashtable.h
rhashtable: reorganize struct rhashtable layout
2018-03-31 23:25:39 -04:00
ring_buffer.h
ring-buffer: Add nesting for adding events within events
2018-03-10 16:06:04 -05:00
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
rmi.h
rndis.h
rodata_test.h
root_dev.h
rpmsg.h
rslib.h
rtc.h
rtc: Add useful timestamp definitions
2018-03-17 14:20:55 +01:00
rtmutex.h
rtnetlink.h
net: Introduce net_rwsem to protect net_namespace_list
2018-03-29 13:47:53 -04:00
rtsx_common.h
rtsx_pci.h
rtsx_usb.h
rwlock.h
rwlock_api_smp.h
rwlock_types.h
rwsem-spinlock.h
rwsem.h
s3c_adc_battery.h
sa11x0-dma.h
sbitmap.h
scatterlist.h
for-4.17/block-20180402
2018-04-05 14:27:02 -07:00
scc.h
sched.h
sched/core: Force proper alignment of 'struct util_est'
2018-04-05 10:56:16 +02:00
sched_clock.h
scif.h
scmi_protocol.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 'next-integrity' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
2018-04-07 16:53:59 -07:00
sed-opal.h
seg6.h
seg6_genl.h
seg6_hmac.h
seg6_iptunnel.h
seg6_local.h
selection.h
selinux.h
sem.h
sem: Move struct sem and struct sem_array into ipc/sem.c
2018-03-22 21:30:56 -05:00
semaphore.h
seq_buf.h
seq_file.h
seq_file: allocate seq_file from kmem_cache
2018-04-11 10:28:36 -07:00
seq_file_net.h
seqlock.h
seqno-fence.h
serdev.h
serial.h
serial_8250.h
serial_bcm63xx.h
serial_core.h
powerpc: Mark the variable earlycon_acpi_spcr_enable maybe_unused
2018-03-15 17:42:55 +01:00
serial_max3100.h
serial_pnx8xxx.h
serial_s3c.h
serial_sci.h
serio.h
set_memory.h
set_memory.h: Provide set_memory_{en,de}crypted() stubs
2018-03-20 10:01:58 +01:00
sfi.h
sfi_acpi.h
sfp.h
sh_clk.h
sh_dma.h
sh_eth.h
sh_intc.h
sh_timer.h
sha256.h
kernel/kexec_file.c: move purgatories sha256 to common code
2018-04-13 17:10:28 -07:00
shdma-base.h
shm.h
ipc/shm: fix up for struct file no longer being available in shm.h
2018-03-28 13:29:57 -05:00
shmem_fs.h
shrinker.h
mm,vmscan: Allow preallocating memory for register_shrinker().
2018-04-16 02:06:47 -04:00
signal.h
signal_types.h
signalfd.h
siox.h
siphash.h
sirfsoc_dma.h
sizes.h
arm64/kernel: kaslr: reduce module randomization range to 4 GB
2018-03-08 13:49:26 +00:00
skb_array.h
skbuff.h
inet: frags: get rid of ipfrag_skb_cb/FRAG_CB
2018-03-31 23:25:40 -04:00
slab.h
headers: untangle kmemleak.h from mm.h
2018-04-05 21:36:27 -07:00
slab_def.h
slab: make usercopy region 32-bit
2018-04-05 21:36:24 -07:00
slimbus.h
slub_def.h
slub: make struct kmem_cache_order_objects::x unsigned int
2018-04-05 21:36:24 -07:00
sm501-regs.h
sm501.h
smc91x.h
smc911x.h
smp.h
smpboot.h
smsc911x.h
smscphy.h
sock_diag.h
socket.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
2018-04-03 14:04:18 -07: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
sram.h
srcu.h
srcutiny.h
srcutree.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
stm class: Add SPDX GPL-2.0 header to replace GPLv2 boilerplate
2018-03-28 18:47:17 +03:00
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: unify cluster-based and vma-based swap readahead
2018-04-05 21:36:25 -07:00
swap_cgroup.h
swap_slots.h
swapfile.h
swapops.h
swiotlb.h
dma/swiotlb: Remove swiotlb_{alloc,free}_coherent()
2018-03-20 10:01:59 +01:00
switchtec.h
sxgbe_platform.h
sync_core.h
sync_file.h
synclink.h
sys.h
sys_soc.h
syscalls.h
syscalls/core, syscalls/x86: Clean up syscall stub naming convention
2018-04-09 16:47:27 +02: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
tee_drv.h
textsearch.h
textsearch: fix kernel-doc warnings and add kernel-api section
2018-04-16 18:53:13 -04:00
textsearch_fsm.h
tfrc.h
thermal.h
thermal: Add cooling device's statistics in sysfs
2018-04-02 21:49:01 +08:00
thinkpad_acpi.h
thread_info.h
fork: unconditionally clear stack on fork
2018-04-20 17:18:35 -07:00
threads.h
thunderbolt.h
thunderbolt: Introduce USB only (SL4) security level
2018-03-09 12:54:11 +03:00
ti-emif-sram.h
ti_wilink_st.h
tick.h
cpuidle: menu: Refine idle state selection for running tick
2018-04-09 11:54:56 +02:00
tifm.h
timb_dma.h
timb_gpio.h
time.h
time32.h
y2038: Introduce struct __kernel_old_timeval
2018-03-19 15:23:03 +01:00
time64.h
timecounter.h
timekeeper_internal.h
timekeeping: Add the new CLOCK_MONOTONIC_ACTIVE clock
2018-03-13 07:34:21 +01:00
timekeeping.h
* Fix 2032 time access issues and new compiler warnings
2018-04-12 10:21:19 -07:00
timekeeping32.h
timer.h
timerfd.h
timeriomem-rng.h
timerqueue.h
timex.h
tnum.h
topology.h
torture.h
toshiba.h
tpm.h
tpm: cmd_ready command can be issued only after granting locality
2018-03-23 10:18:05 +02:00
tpm_command.h
tpm_eventlog.h
trace.h
trace_clock.h
trace_events.h
New features:
2018-04-10 11:27:30 -07:00
trace_seq.h
tracefs.h
tracehook.h
tracepoint-defs.h
bpf: introduce BPF_RAW_TRACEPOINT
2018-03-28 22:55:19 +02:00
tracepoint.h
transport_class.h
ts-nbus.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
typecheck.h
types.h
u64_stats_sync.h
net: usbnet: fix potential deadlock on 32bit hosts
2018-03-07 11:46:39 -05:00
uaccess.h
ucb1400.h
ucs2_string.h
udp.h
uidgid.h
uio.h
uio_driver.h
umh.h
uprobes.h
usb.h
usb_usual.h
usbdevice_fs.h
user-return-notifier.h
user.h
user_namespace.h
userfaultfd_k.h
util_macros.h
uts.h
utsname.h
uts: create "struct uts_namespace" from kmem_cache
2018-04-11 10:28:35 -07:00
uuid.h
uwb.h
vbox_utils.h
verification.h
vermagic.h
vexpress.h
vfio.h
vfs.h
vga_switcheroo.h
vga_switcheroo: Use device link for HDA controller
2018-03-13 22:58:09 +01:00
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_net.h
virtio_ring.h
virtio_vsock.h
visorbus.h
vlynq.h
vm_event_item.h
vm_sockets.h
vmacache.h
vmalloc.h
vme.h
vmpressure.h
vmstat.h
mm, vmscan, tracing: use pointer to reclaim_stat struct in trace event
2018-04-11 10:28:30 -07:00
vmw_vmci_api.h
vmw_vmci_defs.h
vringh.h
vt.h
vt_buffer.h
vt_kern.h
vtime.h
w1-gpio.h
w1.h
wait.h
wait_bit.h
sched/wait: Remove the wait_on_atomic_t() API
2018-03-20 08:23:24 +01:00
wanrouter.h
watchdog.h
win_minmax.h
wireless.h
wkup_m3_ipc.h
wl12xx.h
wm97xx.h
wmi.h
workqueue.h
Merge branch 'for-4.17' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq
2018-04-03 18:00:13 -07:00
writeback.h
ww_mutex.h
xarray.h
xarray: add the xa_lock to the radix_tree_root
2018-04-11 10:28:39 -07:00
xattr.h
xxhash.h
xz.h
yam.h
z2_battery.h
zbud.h
zconf.h
zlib.h
zorro.h
zpool.h
zsmalloc.h
zsmalloc: introduce zs_huge_class_size()
2018-04-05 21:36:26 -07:00
zstd.h
zutil.h