aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-02-10 19:03:16 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-02-10 19:03:16 -0500
commit6792dfe383dd20ed270da198aa0676bac47245b4 (patch)
tree380a490de696b7f1f08323b56b149275cc43f2e1
parentcbf2822a7d44352c5c4c15baf0da3a3dc8495e90 (diff)
parent0e048316ff577e12c748e2d0a2e4f0f7b006654d (diff)
Merge branch 'akpm' (patches from Andrew Morton)
Merge misc fixes from Andrew Morton: "A bunch of fixes" * emailed patches fron Andrew Morton <akpm@linux-foundation.org>: ocfs2: check existence of old dentry in ocfs2_link() ocfs2: update inode size after zeroing the hole ocfs2: fix issue that ocfs2_setattr() does not deal with new_i_size==i_size mm/memory-failure.c: move refcount only in !MF_COUNT_INCREASED smp.h: fix x86+cpu.c sparse warnings about arch nonboot CPU calls mm: fix page leak at nfs_symlink() slub: do not assert not having lock in removing freed partial gitignore: add all.config ocfs2: fix ocfs2_sync_file() if filesystem is readonly drivers/edac/edac_mc_sysfs.c: poll timeout cannot be zero fs/file.c:fdtable: avoid triggering OOMs from alloc_fdmem xen: properly account for _PAGE_NUMA during xen pte translations mm/slub.c: list_lock may not be held in some circumstances drivers/md/bcache/extents.c: use %zi to format size_t vmcore: prevent PT_NOTE p_memsz overflow during header update drivers/message/i2o/i2o_config.c: fix deadlock in compat_ioctl(I2OGETIOPS) Documentation/: update 00-INDEX files checkpatch: fix detection of git repository get_maintainer: fix detection of git repository drivers/misc/sgi-gru/grukdump.c: unlocking should be conditional in gru_dump_context()
-rw-r--r--.gitignore3
-rw-r--r--Documentation/00-INDEX24
-rw-r--r--Documentation/RCU/00-INDEX2
-rw-r--r--Documentation/arm/00-INDEX14
-rw-r--r--Documentation/blackfin/00-INDEX6
-rw-r--r--Documentation/block/00-INDEX2
-rw-r--r--Documentation/devicetree/00-INDEX2
-rw-r--r--Documentation/fb/00-INDEX6
-rw-r--r--Documentation/filesystems/00-INDEX2
-rw-r--r--Documentation/filesystems/nfs/00-INDEX4
-rw-r--r--Documentation/ide/00-INDEX2
-rw-r--r--Documentation/laptops/00-INDEX6
-rw-r--r--Documentation/leds/00-INDEX8
-rw-r--r--Documentation/m68k/00-INDEX2
-rw-r--r--Documentation/networking/00-INDEX30
-rw-r--r--Documentation/power/00-INDEX6
-rw-r--r--Documentation/s390/00-INDEX8
-rw-r--r--Documentation/scheduler/00-INDEX2
-rw-r--r--Documentation/scsi/00-INDEX16
-rw-r--r--Documentation/serial/00-INDEX6
-rw-r--r--Documentation/spi/00-INDEX22
-rw-r--r--Documentation/timers/00-INDEX2
-rw-r--r--Documentation/virtual/kvm/00-INDEX2
-rw-r--r--Documentation/vm/00-INDEX4
-rw-r--r--Documentation/w1/masters/00-INDEX4
-rw-r--r--Documentation/w1/slaves/00-INDEX2
-rw-r--r--Documentation/x86/00-INDEX18
-rw-r--r--arch/x86/include/asm/pgtable.h14
-rw-r--r--arch/x86/xen/mmu.c4
-rw-r--r--drivers/edac/edac_mc_sysfs.c2
-rw-r--r--drivers/md/bcache/extents.c2
-rw-r--r--drivers/message/i2o/i2o_config.c4
-rw-r--r--drivers/misc/sgi-gru/grukdump.c11
-rw-r--r--fs/file.c2
-rw-r--r--fs/nfs/dir.c5
-rw-r--r--fs/ocfs2/alloc.c2
-rw-r--r--fs/ocfs2/file.c52
-rw-r--r--fs/ocfs2/namei.c17
-rw-r--r--fs/proc/vmcore.c26
-rw-r--r--include/linux/smp.h3
-rw-r--r--mm/memory-failure.c6
-rw-r--r--mm/slub.c38
-rwxr-xr-xscripts/checkpatch.pl4
-rwxr-xr-xscripts/get_maintainer.pl2
44 files changed, 315 insertions, 84 deletions
diff --git a/.gitignore b/.gitignore
index 7e9932e55475..42fa0d5626a9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -92,3 +92,6 @@ extra_certificates
92signing_key.priv 92signing_key.priv
93signing_key.x509 93signing_key.x509
94x509.genkey 94x509.genkey
95
96# Kconfig presets
97all.config
diff --git a/Documentation/00-INDEX b/Documentation/00-INDEX
index 38f8444bdd0e..07de7e19b4ce 100644
--- a/Documentation/00-INDEX
+++ b/Documentation/00-INDEX
@@ -29,6 +29,8 @@ DMA-ISA-LPC.txt
29 - How to do DMA with ISA (and LPC) devices. 29 - How to do DMA with ISA (and LPC) devices.
30DMA-attributes.txt 30DMA-attributes.txt
31 - listing of the various possible attributes a DMA region can have 31 - listing of the various possible attributes a DMA region can have
32dmatest.txt
33 - how to compile, configure and use the dmatest system.
32DocBook/ 34DocBook/
33 - directory with DocBook templates etc. for kernel documentation. 35 - directory with DocBook templates etc. for kernel documentation.
34EDID/ 36EDID/
@@ -77,6 +79,8 @@ arm/
77 - directory with info about Linux on the ARM architecture. 79 - directory with info about Linux on the ARM architecture.
78arm64/ 80arm64/
79 - directory with info about Linux on the 64 bit ARM architecture. 81 - directory with info about Linux on the 64 bit ARM architecture.
82assoc_array.txt
83 - generic associative array intro.
80atomic_ops.txt 84atomic_ops.txt
81 - semantics and behavior of atomic and bitmask operations. 85 - semantics and behavior of atomic and bitmask operations.
82auxdisplay/ 86auxdisplay/
@@ -87,6 +91,8 @@ bad_memory.txt
87 - how to use kernel parameters to exclude bad RAM regions. 91 - how to use kernel parameters to exclude bad RAM regions.
88basic_profiling.txt 92basic_profiling.txt
89 - basic instructions for those who wants to profile Linux kernel. 93 - basic instructions for those who wants to profile Linux kernel.
94bcache.txt
95 - Block-layer cache on fast SSDs to improve slow (raid) I/O performance.
90binfmt_misc.txt 96binfmt_misc.txt
91 - info on the kernel support for extra binary formats. 97 - info on the kernel support for extra binary formats.
92blackfin/ 98blackfin/
@@ -171,6 +177,8 @@ early-userspace/
171 - info about initramfs, klibc, and userspace early during boot. 177 - info about initramfs, klibc, and userspace early during boot.
172edac.txt 178edac.txt
173 - information on EDAC - Error Detection And Correction 179 - information on EDAC - Error Detection And Correction
180efi-stub.txt
181 - How to use the EFI boot stub to bypass GRUB or elilo on EFI systems.
174eisa.txt 182eisa.txt
175 - info on EISA bus support. 183 - info on EISA bus support.
176email-clients.txt 184email-clients.txt
@@ -195,8 +203,8 @@ futex-requeue-pi.txt
195 - info on requeueing of tasks from a non-PI futex to a PI futex 203 - info on requeueing of tasks from a non-PI futex to a PI futex
196gcov.txt 204gcov.txt
197 - use of GCC's coverage testing tool "gcov" with the Linux kernel 205 - use of GCC's coverage testing tool "gcov" with the Linux kernel
198gpio.txt 206gpio/
199 - overview of GPIO (General Purpose Input/Output) access conventions. 207 - gpio related documentation
200hid/ 208hid/
201 - directory with information on human interface devices 209 - directory with information on human interface devices
202highuid.txt 210highuid.txt
@@ -255,6 +263,8 @@ kernel-docs.txt
255 - listing of various WWW + books that document kernel internals. 263 - listing of various WWW + books that document kernel internals.
256kernel-parameters.txt 264kernel-parameters.txt
257 - summary listing of command line / boot prompt args for the kernel. 265 - summary listing of command line / boot prompt args for the kernel.
266kernel-per-CPU-kthreads.txt
267 - List of all per-CPU kthreads and how they introduce jitter.
258kmemcheck.txt 268kmemcheck.txt
259 - info on dynamic checker that detects uses of uninitialized memory. 269 - info on dynamic checker that detects uses of uninitialized memory.
260kmemleak.txt 270kmemleak.txt
@@ -299,8 +309,6 @@ memory-devices/
299 - directory with info on parts like the Texas Instruments EMIF driver 309 - directory with info on parts like the Texas Instruments EMIF driver
300memory-hotplug.txt 310memory-hotplug.txt
301 - Hotpluggable memory support, how to use and current status. 311 - Hotpluggable memory support, how to use and current status.
302memory.txt
303 - info on typical Linux memory problems.
304metag/ 312metag/
305 - directory with info about Linux on Meta architecture. 313 - directory with info about Linux on Meta architecture.
306mips/ 314mips/
@@ -311,6 +319,8 @@ mmc/
311 - directory with info about the MMC subsystem 319 - directory with info about the MMC subsystem
312mn10300/ 320mn10300/
313 - directory with info about the mn10300 architecture port 321 - directory with info about the mn10300 architecture port
322module-signing.txt
323 - Kernel module signing for increased security when loading modules.
314mtd/ 324mtd/
315 - directory with info about memory technology devices (flash) 325 - directory with info about memory technology devices (flash)
316mono.txt 326mono.txt
@@ -343,6 +353,8 @@ pcmcia/
343 - info on the Linux PCMCIA driver. 353 - info on the Linux PCMCIA driver.
344percpu-rw-semaphore.txt 354percpu-rw-semaphore.txt
345 - RCU based read-write semaphore optimized for locking for reading 355 - RCU based read-write semaphore optimized for locking for reading
356phy.txt
357 - Description of the generic PHY framework.
346pi-futex.txt 358pi-futex.txt
347 - documentation on lightweight priority inheritance futexes. 359 - documentation on lightweight priority inheritance futexes.
348pinctrl.txt 360pinctrl.txt
@@ -431,6 +443,8 @@ sysrq.txt
431 - info on the magic SysRq key. 443 - info on the magic SysRq key.
432target/ 444target/
433 - directory with info on generating TCM v4 fabric .ko modules 445 - directory with info on generating TCM v4 fabric .ko modules
446this_cpu_ops.txt
447 - List rationale behind and the way to use this_cpu operations.
434thermal/ 448thermal/
435 - directory with information on managing thermal issues (CPU/temp) 449 - directory with information on managing thermal issues (CPU/temp)
436trace/ 450trace/
@@ -469,6 +483,8 @@ wimax/
469 - directory with info about Intel Wireless Wimax Connections 483 - directory with info about Intel Wireless Wimax Connections
470workqueue.txt 484workqueue.txt
471 - information on the Concurrency Managed Workqueue implementation 485 - information on the Concurrency Managed Workqueue implementation
486ww-mutex-design.txt
487 - Intro to Mutex wait/would deadlock handling.s
472x86/x86_64/ 488x86/x86_64/
473 - directory with info on Linux support for AMD x86-64 (Hammer) machines. 489 - directory with info on Linux support for AMD x86-64 (Hammer) machines.
474xtensa/ 490xtensa/
diff --git a/Documentation/RCU/00-INDEX b/Documentation/RCU/00-INDEX
index 1d7a885761f5..fa57139f50bf 100644
--- a/Documentation/RCU/00-INDEX
+++ b/Documentation/RCU/00-INDEX
@@ -8,6 +8,8 @@ listRCU.txt
8 - Using RCU to Protect Read-Mostly Linked Lists 8 - Using RCU to Protect Read-Mostly Linked Lists
9lockdep.txt 9lockdep.txt
10 - RCU and lockdep checking 10 - RCU and lockdep checking
11lockdep-splat.txt
12 - RCU Lockdep splats explained.
11NMI-RCU.txt 13NMI-RCU.txt
12 - Using RCU to Protect Dynamic NMI Handlers 14 - Using RCU to Protect Dynamic NMI Handlers
13rcubarrier.txt 15rcubarrier.txt
diff --git a/Documentation/arm/00-INDEX b/Documentation/arm/00-INDEX
index 36420e116c90..a94090cc785d 100644
--- a/Documentation/arm/00-INDEX
+++ b/Documentation/arm/00-INDEX
@@ -4,6 +4,8 @@ Booting
4 - requirements for booting 4 - requirements for booting
5Interrupts 5Interrupts
6 - ARM Interrupt subsystem documentation 6 - ARM Interrupt subsystem documentation
7IXP4xx
8 - Intel IXP4xx Network processor.
7msm 9msm
8 - MSM specific documentation 10 - MSM specific documentation
9Netwinder 11Netwinder
@@ -24,8 +26,16 @@ SPEAr
24 - ST SPEAr platform Linux Overview 26 - ST SPEAr platform Linux Overview
25VFP/ 27VFP/
26 - Release notes for Linux Kernel Vector Floating Point support code 28 - Release notes for Linux Kernel Vector Floating Point support code
29cluster-pm-race-avoidance.txt
30 - Algorithm for CPU and Cluster setup/teardown
27empeg/ 31empeg/
28 - Ltd's Empeg MP3 Car Audio Player 32 - Ltd's Empeg MP3 Car Audio Player
33firmware.txt
34 - Secure firmware registration and calling.
35kernel_mode_neon.txt
36 - How to use NEON instructions in kernel mode
37kernel_user_helpers.txt
38 - Helper functions in kernel space made available for userspace.
29mem_alignment 39mem_alignment
30 - alignment abort handler documentation 40 - alignment abort handler documentation
31memory.txt 41memory.txt
@@ -34,3 +44,7 @@ nwfpe/
34 - NWFPE floating point emulator documentation 44 - NWFPE floating point emulator documentation
35swp_emulation 45swp_emulation
36 - SWP/SWPB emulation handler/logging description 46 - SWP/SWPB emulation handler/logging description
47tcm.txt
48 - ARM Tightly Coupled Memory
49vlocks.txt
50 - Voting locks, low-level mechanism relying on memory system atomic writes.
diff --git a/Documentation/blackfin/00-INDEX b/Documentation/blackfin/00-INDEX
index 2df0365f2dff..c54fcdd4ae9f 100644
--- a/Documentation/blackfin/00-INDEX
+++ b/Documentation/blackfin/00-INDEX
@@ -1,8 +1,10 @@
100-INDEX 100-INDEX
2 - This file 2 - This file
3 3Makefile
4 - Makefile for gptimers example file.
4bfin-gpio-notes.txt 5bfin-gpio-notes.txt
5 - Notes in developing/using bfin-gpio driver. 6 - Notes in developing/using bfin-gpio driver.
6
7bfin-spi-notes.txt 7bfin-spi-notes.txt
8 - Notes for using bfin spi bus driver. 8 - Notes for using bfin spi bus driver.
9gptimers-example.c
10 - gptimers example
diff --git a/Documentation/block/00-INDEX b/Documentation/block/00-INDEX
index 929d9904f74b..e840b47613f7 100644
--- a/Documentation/block/00-INDEX
+++ b/Documentation/block/00-INDEX
@@ -14,6 +14,8 @@ deadline-iosched.txt
14 - Deadline IO scheduler tunables 14 - Deadline IO scheduler tunables
15ioprio.txt 15ioprio.txt
16 - Block io priorities (in CFQ scheduler) 16 - Block io priorities (in CFQ scheduler)
17null_blk.txt
18 - Null block for block-layer benchmarking.
17queue-sysfs.txt 19queue-sysfs.txt
18 - Queue's sysfs entries 20 - Queue's sysfs entries
19request.txt 21request.txt
diff --git a/Documentation/devicetree/00-INDEX b/Documentation/devicetree/00-INDEX
index b78f691fd847..8c4102c6a5e7 100644
--- a/Documentation/devicetree/00-INDEX
+++ b/Documentation/devicetree/00-INDEX
@@ -8,3 +8,5 @@ https://lists.ozlabs.org/listinfo/devicetree-discuss
8 - this file 8 - this file
9booting-without-of.txt 9booting-without-of.txt
10 - Booting Linux without Open Firmware, describes history and format of device trees. 10 - Booting Linux without Open Firmware, describes history and format of device trees.
11usage-model.txt
12 - How Linux uses DT and what DT aims to solve. \ No newline at end of file
diff --git a/Documentation/fb/00-INDEX b/Documentation/fb/00-INDEX
index 30a70542e823..fe85e7c5907a 100644
--- a/Documentation/fb/00-INDEX
+++ b/Documentation/fb/00-INDEX
@@ -5,6 +5,8 @@ please mail me.
5 5
600-INDEX 600-INDEX
7 - this file. 7 - this file.
8api.txt
9 - The frame buffer API between applications and buffer devices.
8arkfb.txt 10arkfb.txt
9 - info on the fbdev driver for ARK Logic chips. 11 - info on the fbdev driver for ARK Logic chips.
10aty128fb.txt 12aty128fb.txt
@@ -51,12 +53,16 @@ sh7760fb.txt
51 - info on the SH7760/SH7763 integrated LCDC Framebuffer driver. 53 - info on the SH7760/SH7763 integrated LCDC Framebuffer driver.
52sisfb.txt 54sisfb.txt
53 - info on the framebuffer device driver for various SiS chips. 55 - info on the framebuffer device driver for various SiS chips.
56sm501.txt
57 - info on the framebuffer device driver for sm501 videoframebuffer.
54sstfb.txt 58sstfb.txt
55 - info on the frame buffer driver for 3dfx' Voodoo Graphics boards. 59 - info on the frame buffer driver for 3dfx' Voodoo Graphics boards.
56tgafb.txt 60tgafb.txt
57 - info on the TGA (DECChip 21030) frame buffer driver. 61 - info on the TGA (DECChip 21030) frame buffer driver.
58tridentfb.txt 62tridentfb.txt
59 info on the framebuffer driver for some Trident chip based cards. 63 info on the framebuffer driver for some Trident chip based cards.
64udlfb.txt
65 - Driver for DisplayLink USB 2.0 chips.
60uvesafb.txt 66uvesafb.txt
61 - info on the userspace VESA (VBE2+ compliant) frame buffer device. 67 - info on the userspace VESA (VBE2+ compliant) frame buffer device.
62vesafb.txt 68vesafb.txt
diff --git a/Documentation/filesystems/00-INDEX b/Documentation/filesystems/00-INDEX
index 632211cbdd56..ac28149aede4 100644
--- a/Documentation/filesystems/00-INDEX
+++ b/Documentation/filesystems/00-INDEX
@@ -2,6 +2,8 @@
2 - this file (info on some of the filesystems supported by linux). 2 - this file (info on some of the filesystems supported by linux).
3Locking 3Locking
4 - info on locking rules as they pertain to Linux VFS. 4 - info on locking rules as they pertain to Linux VFS.
5Makefile
6 - Makefile for building the filsystems-part of DocBook.
59p.txt 79p.txt
6 - 9p (v9fs) is an implementation of the Plan 9 remote fs protocol. 8 - 9p (v9fs) is an implementation of the Plan 9 remote fs protocol.
7adfs.txt 9adfs.txt
diff --git a/Documentation/filesystems/nfs/00-INDEX b/Documentation/filesystems/nfs/00-INDEX
index 66eb6c8c5334..53f3b596ac0d 100644
--- a/Documentation/filesystems/nfs/00-INDEX
+++ b/Documentation/filesystems/nfs/00-INDEX
@@ -12,6 +12,8 @@ nfs41-server.txt
12 - info on the Linux server implementation of NFSv4 minor version 1. 12 - info on the Linux server implementation of NFSv4 minor version 1.
13nfs-rdma.txt 13nfs-rdma.txt
14 - how to install and setup the Linux NFS/RDMA client and server software 14 - how to install and setup the Linux NFS/RDMA client and server software
15nfsd-admin-interfaces.txt
16 - Administrative interfaces for nfsd.
15nfsroot.txt 17nfsroot.txt
16 - short guide on setting up a diskless box with NFS root filesystem. 18 - short guide on setting up a diskless box with NFS root filesystem.
17pnfs.txt 19pnfs.txt
@@ -20,5 +22,5 @@ rpc-cache.txt
20 - introduction to the caching mechanisms in the sunrpc layer. 22 - introduction to the caching mechanisms in the sunrpc layer.
21idmapper.txt 23idmapper.txt
22 - information for configuring request-keys to be used by idmapper 24 - information for configuring request-keys to be used by idmapper
23knfsd-rpcgss.txt 25rpc-server-gss.txt
24 - Information on GSS authentication support in the NFS Server 26 - Information on GSS authentication support in the NFS Server
diff --git a/Documentation/ide/00-INDEX b/Documentation/ide/00-INDEX
index d6b778842b75..22f98ca79539 100644
--- a/Documentation/ide/00-INDEX
+++ b/Documentation/ide/00-INDEX
@@ -10,3 +10,5 @@ ide-tape.txt
10 - info on the IDE ATAPI streaming tape driver 10 - info on the IDE ATAPI streaming tape driver
11ide.txt 11ide.txt
12 - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS). 12 - important info for users of ATA devices (IDE/EIDE disks and CD-ROMS).
13warm-plug-howto.txt
14 - using sysfs to remove and add IDE devices. \ No newline at end of file
diff --git a/Documentation/laptops/00-INDEX b/Documentation/laptops/00-INDEX
index fa688538e757..d13b9a9a9e00 100644
--- a/Documentation/laptops/00-INDEX
+++ b/Documentation/laptops/00-INDEX
@@ -1,13 +1,15 @@
100-INDEX 100-INDEX
2 - This file 2 - This file
3acer-wmi.txt 3Makefile
4 - information on the Acer Laptop WMI Extras driver. 4 - Makefile for building dslm example program.
5asus-laptop.txt 5asus-laptop.txt
6 - information on the Asus Laptop Extras driver. 6 - information on the Asus Laptop Extras driver.
7disk-shock-protection.txt 7disk-shock-protection.txt
8 - information on hard disk shock protection. 8 - information on hard disk shock protection.
9dslm.c 9dslm.c
10 - Simple Disk Sleep Monitor program 10 - Simple Disk Sleep Monitor program
11hpfall.c
12 - (HP) laptop accelerometer program for disk protection.
11laptop-mode.txt 13laptop-mode.txt
12 - how to conserve battery power using laptop-mode. 14 - how to conserve battery power using laptop-mode.
13sony-laptop.txt 15sony-laptop.txt
diff --git a/Documentation/leds/00-INDEX b/Documentation/leds/00-INDEX
index 1ecd1596633e..b4ef1f34e25f 100644
--- a/Documentation/leds/00-INDEX
+++ b/Documentation/leds/00-INDEX
@@ -1,3 +1,7 @@
100-INDEX
2 - This file
3leds-blinkm.txt
4 - Driver for BlinkM LED-devices.
1leds-class.txt 5leds-class.txt
2 - documents LED handling under Linux. 6 - documents LED handling under Linux.
3leds-lp3944.txt 7leds-lp3944.txt
@@ -12,3 +16,7 @@ leds-lp55xx.txt
12 - description about lp55xx common driver. 16 - description about lp55xx common driver.
13leds-lm3556.txt 17leds-lm3556.txt
14 - notes on how to use the leds-lm3556 driver. 18 - notes on how to use the leds-lm3556 driver.
19ledtrig-oneshot.txt
20 - One-shot LED trigger for both sporadic and dense events.
21ledtrig-transient.txt
22 - LED Transient Trigger, one shot timer activation.
diff --git a/Documentation/m68k/00-INDEX b/Documentation/m68k/00-INDEX
index a014e9f00765..2be8c6b00e74 100644
--- a/Documentation/m68k/00-INDEX
+++ b/Documentation/m68k/00-INDEX
@@ -1,5 +1,7 @@
100-INDEX 100-INDEX
2 - this file 2 - this file
3README.buddha
4 - Amiga Buddha and Catweasel IDE Driver
3kernel-options.txt 5kernel-options.txt
4 - command line options for Linux/m68k 6 - command line options for Linux/m68k
5 7
diff --git a/Documentation/networking/00-INDEX b/Documentation/networking/00-INDEX
index f11580f8719a..557b6ef70c26 100644
--- a/Documentation/networking/00-INDEX
+++ b/Documentation/networking/00-INDEX
@@ -6,8 +6,14 @@
6 - information on the 3Com Etherlink III Series Ethernet cards. 6 - information on the 3Com Etherlink III Series Ethernet cards.
76pack.txt 76pack.txt
8 - info on the 6pack protocol, an alternative to KISS for AX.25 8 - info on the 6pack protocol, an alternative to KISS for AX.25
9DLINK.txt 9LICENSE.qla3xxx
10 - info on the D-Link DE-600/DE-620 parallel port pocket adapters 10 - GPLv2 for QLogic Linux Networking HBA Driver
11LICENSE.qlge
12 - GPLv2 for QLogic Linux qlge NIC Driver
13LICENSE.qlcnic
14 - GPLv2 for QLogic Linux qlcnic NIC Driver
15Makefile
16 - Makefile for docsrc.
11PLIP.txt 17PLIP.txt
12 - PLIP: The Parallel Line Internet Protocol device driver 18 - PLIP: The Parallel Line Internet Protocol device driver
13README.ipw2100 19README.ipw2100
@@ -17,7 +23,7 @@ README.ipw2200
17README.sb1000 23README.sb1000
18 - info on General Instrument/NextLevel SURFboard1000 cable modem. 24 - info on General Instrument/NextLevel SURFboard1000 cable modem.
19alias.txt 25alias.txt
20 - info on using alias network devices 26 - info on using alias network devices.
21arcnet-hardware.txt 27arcnet-hardware.txt
22 - tons of info on ARCnet, hubs, jumper settings for ARCnet cards, etc. 28 - tons of info on ARCnet, hubs, jumper settings for ARCnet cards, etc.
23arcnet.txt 29arcnet.txt
@@ -80,7 +86,7 @@ framerelay.txt
80 - info on using Frame Relay/Data Link Connection Identifier (DLCI). 86 - info on using Frame Relay/Data Link Connection Identifier (DLCI).
81gen_stats.txt 87gen_stats.txt
82 - Generic networking statistics for netlink users. 88 - Generic networking statistics for netlink users.
83generic_hdlc.txt 89generic-hdlc.txt
84 - The generic High Level Data Link Control (HDLC) layer. 90 - The generic High Level Data Link Control (HDLC) layer.
85generic_netlink.txt 91generic_netlink.txt
86 - info on Generic Netlink 92 - info on Generic Netlink
@@ -88,6 +94,8 @@ gianfar.txt
88 - Gianfar Ethernet Driver. 94 - Gianfar Ethernet Driver.
89i40e.txt 95i40e.txt
90 - README for the Intel Ethernet Controller XL710 Driver (i40e). 96 - README for the Intel Ethernet Controller XL710 Driver (i40e).
97i40evf.txt
98 - Short note on the Driver for the Intel(R) XL710 X710 Virtual Function
91ieee802154.txt 99ieee802154.txt
92 - Linux IEEE 802.15.4 implementation, API and drivers 100 - Linux IEEE 802.15.4 implementation, API and drivers
93igb.txt 101igb.txt
@@ -102,6 +110,8 @@ ipddp.txt
102 - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation 110 - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation
103iphase.txt 111iphase.txt
104 - Interphase PCI ATM (i)Chip IA Linux driver info. 112 - Interphase PCI ATM (i)Chip IA Linux driver info.
113ipsec.txt
114 - Note on not compressing IPSec payload and resulting failed policy check.
105ipv6.txt 115ipv6.txt
106 - Options to the ipv6 kernel module. 116 - Options to the ipv6 kernel module.
107ipvs-sysctl.txt 117ipvs-sysctl.txt
@@ -120,6 +130,8 @@ lapb-module.txt
120 - programming information of the LAPB module. 130 - programming information of the LAPB module.
121ltpc.txt 131ltpc.txt
122 - the Apple or Farallon LocalTalk PC card driver 132 - the Apple or Farallon LocalTalk PC card driver
133mac80211-auth-assoc-deauth.txt
134 - authentication and association / deauth-disassoc with max80211
123mac80211-injection.txt 135mac80211-injection.txt
124 - HOWTO use packet injection with mac80211 136 - HOWTO use packet injection with mac80211
125multiqueue.txt 137multiqueue.txt
@@ -134,6 +146,10 @@ netdevices.txt
134 - info on network device driver functions exported to the kernel. 146 - info on network device driver functions exported to the kernel.
135netif-msg.txt 147netif-msg.txt
136 - Design of the network interface message level setting (NETIF_MSG_*). 148 - Design of the network interface message level setting (NETIF_MSG_*).
149netlink_mmap.txt
150 - memory mapped I/O with netlink
151nf_conntrack-sysctl.txt
152 - list of netfilter-sysctl knobs.
137nfc.txt 153nfc.txt
138 - The Linux Near Field Communication (NFS) subsystem. 154 - The Linux Near Field Communication (NFS) subsystem.
139openvswitch.txt 155openvswitch.txt
@@ -176,7 +192,7 @@ skfp.txt
176 - SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info. 192 - SysKonnect FDDI (SK-5xxx, Compaq Netelligent) driver info.
177smc9.txt 193smc9.txt
178 - the driver for SMC's 9000 series of Ethernet cards 194 - the driver for SMC's 9000 series of Ethernet cards
179spider-net.txt 195spider_net.txt
180 - README for the Spidernet Driver (as found in PS3 / Cell BE). 196 - README for the Spidernet Driver (as found in PS3 / Cell BE).
181stmmac.txt 197stmmac.txt
182 - README for the STMicro Synopsys Ethernet driver. 198 - README for the STMicro Synopsys Ethernet driver.
@@ -188,6 +204,8 @@ tcp.txt
188 - short blurb on how TCP output takes place. 204 - short blurb on how TCP output takes place.
189tcp-thin.txt 205tcp-thin.txt
190 - kernel tuning options for low rate 'thin' TCP streams. 206 - kernel tuning options for low rate 'thin' TCP streams.
207team.txt
208 - pointer to information for ethernet teaming devices.
191tlan.txt 209tlan.txt
192 - ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info. 210 - ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info.
193tproxy.txt 211tproxy.txt
@@ -200,6 +218,8 @@ vortex.txt
200 - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards. 218 - info on using 3Com Vortex (3c590, 3c592, 3c595, 3c597) Ethernet cards.
201vxge.txt 219vxge.txt
202 - README for the Neterion X3100 PCIe Server Adapter. 220 - README for the Neterion X3100 PCIe Server Adapter.
221vxlan.txt
222 - Virtual extensible LAN overview
203x25.txt 223x25.txt
204 - general info on X.25 development. 224 - general info on X.25 development.
205x25-iface.txt 225x25-iface.txt
diff --git a/Documentation/power/00-INDEX b/Documentation/power/00-INDEX
index a4d682f54231..ad04cc8097ed 100644
--- a/Documentation/power/00-INDEX
+++ b/Documentation/power/00-INDEX
@@ -4,6 +4,8 @@ apm-acpi.txt
4 - basic info about the APM and ACPI support. 4 - basic info about the APM and ACPI support.
5basic-pm-debugging.txt 5basic-pm-debugging.txt
6 - Debugging suspend and resume 6 - Debugging suspend and resume
7charger-manager.txt
8 - Battery charger management.
7devices.txt 9devices.txt
8 - How drivers interact with system-wide power management 10 - How drivers interact with system-wide power management
9drivers-testing.txt 11drivers-testing.txt
@@ -22,6 +24,8 @@ pm_qos_interface.txt
22 - info on Linux PM Quality of Service interface 24 - info on Linux PM Quality of Service interface
23power_supply_class.txt 25power_supply_class.txt
24 - Tells userspace about battery, UPS, AC or DC power supply properties 26 - Tells userspace about battery, UPS, AC or DC power supply properties
27runtime_pm.txt
28 - Power management framework for I/O devices.
25s2ram.txt 29s2ram.txt
26 - How to get suspend to ram working (and debug it when it isn't) 30 - How to get suspend to ram working (and debug it when it isn't)
27states.txt 31states.txt
@@ -38,7 +42,5 @@ tricks.txt
38 - How to trick software suspend (to disk) into working when it isn't 42 - How to trick software suspend (to disk) into working when it isn't
39userland-swsusp.txt 43userland-swsusp.txt
40 - Experimental implementation of software suspend in userspace 44 - Experimental implementation of software suspend in userspace
41video_extension.txt
42 - ACPI video extensions
43video.txt 45video.txt
44 - Video issues during resume from suspend 46 - Video issues during resume from suspend
diff --git a/Documentation/s390/00-INDEX b/Documentation/s390/00-INDEX
index 3a2b96302ecc..10c874ebdfe5 100644
--- a/Documentation/s390/00-INDEX
+++ b/Documentation/s390/00-INDEX
@@ -16,11 +16,13 @@ Debugging390.txt
16 - hints for debugging on s390 systems. 16 - hints for debugging on s390 systems.
17driver-model.txt 17driver-model.txt
18 - information on s390 devices and the driver model. 18 - information on s390 devices and the driver model.
19kvm.txt
20 - ioctl calls to /dev/kvm on s390.
19monreader.txt 21monreader.txt
20 - information on accessing the z/VM monitor stream from Linux. 22 - information on accessing the z/VM monitor stream from Linux.
23qeth.txt
24 - HiperSockets Bridge Port Support.
21s390dbf.txt 25s390dbf.txt
22 - information on using the s390 debug feature. 26 - information on using the s390 debug feature.
23TAPE 27zfcpdump.txt
24 - information on the driver for channel-attached tapes.
25zfcpdump
26 - information on the s390 SCSI dump tool. 28 - information on the s390 SCSI dump tool.
diff --git a/Documentation/scheduler/00-INDEX b/Documentation/scheduler/00-INDEX
index 46702e4f89c9..eccf7ad2e7f9 100644
--- a/Documentation/scheduler/00-INDEX
+++ b/Documentation/scheduler/00-INDEX
@@ -2,6 +2,8 @@
2 - this file. 2 - this file.
3sched-arch.txt 3sched-arch.txt
4 - CPU Scheduler implementation hints for architecture specific code. 4 - CPU Scheduler implementation hints for architecture specific code.
5sched-bwc.txt
6 - CFS bandwidth control overview.
5sched-design-CFS.txt 7sched-design-CFS.txt
6 - goals, design and implementation of the Completely Fair Scheduler. 8 - goals, design and implementation of the Completely Fair Scheduler.
7sched-domains.txt 9sched-domains.txt
diff --git a/Documentation/scsi/00-INDEX b/Documentation/scsi/00-INDEX
index 2044be565d93..c4b978a72f78 100644
--- a/Documentation/scsi/00-INDEX
+++ b/Documentation/scsi/00-INDEX
@@ -36,6 +36,8 @@ NinjaSCSI.txt
36 - info on WorkBiT NinjaSCSI-32/32Bi driver 36 - info on WorkBiT NinjaSCSI-32/32Bi driver
37aacraid.txt 37aacraid.txt
38 - Driver supporting Adaptec RAID controllers 38 - Driver supporting Adaptec RAID controllers
39advansys.txt
40 - List of Advansys Host Adapters
39aha152x.txt 41aha152x.txt
40 - info on driver for Adaptec AHA152x based adapters 42 - info on driver for Adaptec AHA152x based adapters
41aic79xx.txt 43aic79xx.txt
@@ -44,6 +46,12 @@ aic7xxx.txt
44 - info on driver for Adaptec controllers 46 - info on driver for Adaptec controllers
45arcmsr_spec.txt 47arcmsr_spec.txt
46 - ARECA FIRMWARE SPEC (for IOP331 adapter) 48 - ARECA FIRMWARE SPEC (for IOP331 adapter)
49bfa.txt
50 - Brocade FC/FCOE adapter driver.
51bnx2fc.txt
52 - FCoE hardware offload for Broadcom network interfaces.
53cxgb3i.txt
54 - Chelsio iSCSI Linux Driver
47dc395x.txt 55dc395x.txt
48 - README file for the dc395x SCSI driver 56 - README file for the dc395x SCSI driver
49dpti.txt 57dpti.txt
@@ -52,18 +60,24 @@ dtc3x80.txt
52 - info on driver for DTC 2x80 based adapters 60 - info on driver for DTC 2x80 based adapters
53g_NCR5380.txt 61g_NCR5380.txt
54 - info on driver for NCR5380 and NCR53c400 based adapters 62 - info on driver for NCR5380 and NCR53c400 based adapters
63hpsa.txt
64 - HP Smart Array Controller SCSI driver.
55hptiop.txt 65hptiop.txt
56 - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER 66 - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER
57in2000.txt 67in2000.txt
58 - info on in2000 driver 68 - info on in2000 driver
59libsas.txt 69libsas.txt
60 - Serial Attached SCSI management layer. 70 - Serial Attached SCSI management layer.
71link_power_management_policy.txt
72 - Link power management options.
61lpfc.txt 73lpfc.txt
62 - LPFC driver release notes 74 - LPFC driver release notes
63megaraid.txt 75megaraid.txt
64 - Common Management Module, shared code handling ioctls for LSI drivers 76 - Common Management Module, shared code handling ioctls for LSI drivers
65ncr53c8xx.txt 77ncr53c8xx.txt
66 - info on driver for NCR53c8xx based adapters 78 - info on driver for NCR53c8xx based adapters
79osd.txt
80 Object-Based Storage Device, command set introduction.
67osst.txt 81osst.txt
68 - info on driver for OnStream SC-x0 SCSI tape 82 - info on driver for OnStream SC-x0 SCSI tape
69ppa.txt 83ppa.txt
@@ -74,6 +88,8 @@ scsi-changer.txt
74 - README for the SCSI media changer driver 88 - README for the SCSI media changer driver
75scsi-generic.txt 89scsi-generic.txt
76 - info on the sg driver for generic (non-disk/CD/tape) SCSI devices. 90 - info on the sg driver for generic (non-disk/CD/tape) SCSI devices.
91scsi-parameters.txt
92 - List of SCSI-parameters to pass to the kernel at module load-time.
77scsi.txt 93scsi.txt
78 - short blurb on using SCSI support as a module. 94 - short blurb on using SCSI support as a module.
79scsi_mid_low_api.txt 95scsi_mid_low_api.txt
diff --git a/Documentation/serial/00-INDEX b/Documentation/serial/00-INDEX
index 1f1b22fbd739..f9c6b5ed03e7 100644
--- a/Documentation/serial/00-INDEX
+++ b/Documentation/serial/00-INDEX
@@ -4,10 +4,12 @@ README.cycladesZ
4 - info on Cyclades-Z firmware loading. 4 - info on Cyclades-Z firmware loading.
5digiepca.txt 5digiepca.txt
6 - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards. 6 - info on Digi Intl. {PC,PCI,EISA}Xx and Xem series cards.
7hayes-esp.txt 7driver
8 - info on using the Hayes ESP serial driver. 8 - intro to the low level serial driver.
9moxa-smartio 9moxa-smartio
10 - file with info on installing/using Moxa multiport serial driver. 10 - file with info on installing/using Moxa multiport serial driver.
11n_gsm.txt
12 - GSM 0710 tty multiplexer howto.
11riscom8.txt 13riscom8.txt
12 - notes on using the RISCom/8 multi-port serial driver. 14 - notes on using the RISCom/8 multi-port serial driver.
13rocket.txt 15rocket.txt
diff --git a/Documentation/spi/00-INDEX b/Documentation/spi/00-INDEX
new file mode 100644
index 000000000000..a128fa835512
--- /dev/null
+++ b/Documentation/spi/00-INDEX
@@ -0,0 +1,22 @@
100-INDEX
2 - this file.
3Makefile
4 - Makefile for the example sourcefiles.
5butterfly
6 - AVR Butterfly SPI driver overview and pin configuration.
7ep93xx_spi
8 - Basic EP93xx SPI driver configuration.
9pxa2xx
10 - PXA2xx SPI master controller build by spi_message fifo wq
11spidev
12 - Intro to the userspace API for spi devices
13spidev_fdx.c
14 - spidev example file
15spi-lm70llp
16 - Connecting an LM70-LLP sensor to the kernel via the SPI subsys.
17spi-sc18is602
18 - NXP SC18IS602/603 I2C-bus to SPI bridge
19spi-summary
20 - (Linux) SPI overview. If unsure about SPI or SPI in Linux, start here.
21spidev_test.c
22 - SPI testing utility.
diff --git a/Documentation/timers/00-INDEX b/Documentation/timers/00-INDEX
index ef2ccbf77fa2..6d042dc1cce0 100644
--- a/Documentation/timers/00-INDEX
+++ b/Documentation/timers/00-INDEX
@@ -8,6 +8,8 @@ hpet_example.c
8 - sample hpet timer test program 8 - sample hpet timer test program
9hrtimers.txt 9hrtimers.txt
10 - subsystem for high-resolution kernel timers 10 - subsystem for high-resolution kernel timers
11Makefile
12 - Build and link hpet_example
11NO_HZ.txt 13NO_HZ.txt
12 - Summary of the different methods for the scheduler clock-interrupts management. 14 - Summary of the different methods for the scheduler clock-interrupts management.
13timers-howto.txt 15timers-howto.txt
diff --git a/Documentation/virtual/kvm/00-INDEX b/Documentation/virtual/kvm/00-INDEX
index 641ec9220179..fee9f2bf9c64 100644
--- a/Documentation/virtual/kvm/00-INDEX
+++ b/Documentation/virtual/kvm/00-INDEX
@@ -20,5 +20,7 @@ ppc-pv.txt
20 - the paravirtualization interface on PowerPC. 20 - the paravirtualization interface on PowerPC.
21review-checklist.txt 21review-checklist.txt
22 - review checklist for KVM patches. 22 - review checklist for KVM patches.
23s390-diag.txt
24 - Diagnose hypercall description (for IBM S/390)
23timekeeping.txt 25timekeeping.txt
24 - timekeeping virtualization for x86-based architectures. 26 - timekeeping virtualization for x86-based architectures.
diff --git a/Documentation/vm/00-INDEX b/Documentation/vm/00-INDEX
index a39d06680e1c..081c49777abb 100644
--- a/Documentation/vm/00-INDEX
+++ b/Documentation/vm/00-INDEX
@@ -16,8 +16,6 @@ hwpoison.txt
16 - explains what hwpoison is 16 - explains what hwpoison is
17ksm.txt 17ksm.txt
18 - how to use the Kernel Samepage Merging feature. 18 - how to use the Kernel Samepage Merging feature.
19locking
20 - info on how locking and synchronization is done in the Linux vm code.
21numa 19numa
22 - information about NUMA specific code in the Linux vm. 20 - information about NUMA specific code in the Linux vm.
23numa_memory_policy.txt 21numa_memory_policy.txt
@@ -32,6 +30,8 @@ slub.txt
32 - a short users guide for SLUB. 30 - a short users guide for SLUB.
33soft-dirty.txt 31soft-dirty.txt
34 - short explanation for soft-dirty PTEs 32 - short explanation for soft-dirty PTEs
33split_page_table_lock
34 - Separate per-table lock to improve scalability of the old page_table_lock.
35transhuge.txt 35transhuge.txt
36 - Transparent Hugepage Support, alternative way of using hugepages. 36 - Transparent Hugepage Support, alternative way of using hugepages.
37unevictable-lru.txt 37unevictable-lru.txt
diff --git a/Documentation/w1/masters/00-INDEX b/Documentation/w1/masters/00-INDEX
index d63fa024ac05..8330cf9325f0 100644
--- a/Documentation/w1/masters/00-INDEX
+++ b/Documentation/w1/masters/00-INDEX
@@ -4,7 +4,9 @@ ds2482
4 - The Maxim/Dallas Semiconductor DS2482 provides 1-wire busses. 4 - The Maxim/Dallas Semiconductor DS2482 provides 1-wire busses.
5ds2490 5ds2490
6 - The Maxim/Dallas Semiconductor DS2490 builds USB <-> W1 bridges. 6 - The Maxim/Dallas Semiconductor DS2490 builds USB <-> W1 bridges.
7mxc_w1 7mxc-w1
8 - W1 master controller driver found on Freescale MX2/MX3 SoCs 8 - W1 master controller driver found on Freescale MX2/MX3 SoCs
9omap-hdq
10 - HDQ/1-wire module of TI OMAP 2430/3430.
9w1-gpio 11w1-gpio
10 - GPIO 1-wire bus master driver. 12 - GPIO 1-wire bus master driver.
diff --git a/Documentation/w1/slaves/00-INDEX b/Documentation/w1/slaves/00-INDEX
index 75613c9ac4db..6e18c70c3474 100644
--- a/Documentation/w1/slaves/00-INDEX
+++ b/Documentation/w1/slaves/00-INDEX
@@ -4,3 +4,5 @@ w1_therm
4 - The Maxim/Dallas Semiconductor ds18*20 temperature sensor. 4 - The Maxim/Dallas Semiconductor ds18*20 temperature sensor.
5w1_ds2423 5w1_ds2423
6 - The Maxim/Dallas Semiconductor ds2423 counter device. 6 - The Maxim/Dallas Semiconductor ds2423 counter device.
7w1_ds28e04
8 - The Maxim/Dallas Semiconductor ds28e04 eeprom.
diff --git a/Documentation/x86/00-INDEX b/Documentation/x86/00-INDEX
index f37b46d34861..692264456f0f 100644
--- a/Documentation/x86/00-INDEX
+++ b/Documentation/x86/00-INDEX
@@ -1,6 +1,20 @@
100-INDEX 100-INDEX
2 - this file 2 - this file
3mtrr.txt 3boot.txt
4 - how to use x86 Memory Type Range Registers to increase performance 4 - List of boot protocol versions
5early-microcode.txt
6 - How to load microcode from an initrd-CPIO archive early to fix CPU issues.
7earlyprintk.txt
8 - Using earlyprintk with a USB2 debug port key.
9entry_64.txt
10 - Describe (some of the) kernel entry points for x86.
5exception-tables.txt 11exception-tables.txt
6 - why and how Linux kernel uses exception tables on x86 12 - why and how Linux kernel uses exception tables on x86
13mtrr.txt
14 - how to use x86 Memory Type Range Registers to increase performance
15pat.txt
16 - Page Attribute Table intro and API
17usb-legacy-support.txt
18 - how to fix/avoid quirks when using emulated PS/2 mouse/keyboard.
19zero-page.txt
20 - layout of the first page of memory.
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index bbc8b12fa443..5ad38ad07890 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -445,10 +445,20 @@ static inline int pte_same(pte_t a, pte_t b)
445 return a.pte == b.pte; 445 return a.pte == b.pte;
446} 446}
447 447
448static inline int pteval_present(pteval_t pteval)
449{
450 /*
451 * Yes Linus, _PAGE_PROTNONE == _PAGE_NUMA. Expressing it this
452 * way clearly states that the intent is that protnone and numa
453 * hinting ptes are considered present for the purposes of
454 * pagetable operations like zapping, protection changes, gup etc.
455 */
456 return pteval & (_PAGE_PRESENT | _PAGE_PROTNONE | _PAGE_NUMA);
457}
458
448static inline int pte_present(pte_t a) 459static inline int pte_present(pte_t a)
449{ 460{
450 return pte_flags(a) & (_PAGE_PRESENT | _PAGE_PROTNONE | 461 return pteval_present(pte_flags(a));
451 _PAGE_NUMA);
452} 462}
453 463
454#define pte_accessible pte_accessible 464#define pte_accessible pte_accessible
diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
index 2423ef04ffea..256282e7888b 100644
--- a/arch/x86/xen/mmu.c
+++ b/arch/x86/xen/mmu.c
@@ -365,7 +365,7 @@ void xen_ptep_modify_prot_commit(struct mm_struct *mm, unsigned long addr,
365/* Assume pteval_t is equivalent to all the other *val_t types. */ 365/* Assume pteval_t is equivalent to all the other *val_t types. */
366static pteval_t pte_mfn_to_pfn(pteval_t val) 366static pteval_t pte_mfn_to_pfn(pteval_t val)
367{ 367{
368 if (val & _PAGE_PRESENT) { 368 if (pteval_present(val)) {
369 unsigned long mfn = (val & PTE_PFN_MASK) >> PAGE_SHIFT; 369 unsigned long mfn = (val & PTE_PFN_MASK) >> PAGE_SHIFT;
370 unsigned long pfn = mfn_to_pfn(mfn); 370 unsigned long pfn = mfn_to_pfn(mfn);
371 371
@@ -381,7 +381,7 @@ static pteval_t pte_mfn_to_pfn(pteval_t val)
381 381
382static pteval_t pte_pfn_to_mfn(pteval_t val) 382static pteval_t pte_pfn_to_mfn(pteval_t val)
383{ 383{
384 if (val & _PAGE_PRESENT) { 384 if (pteval_present(val)) {
385 unsigned long pfn = (val & PTE_PFN_MASK) >> PAGE_SHIFT; 385 unsigned long pfn = (val & PTE_PFN_MASK) >> PAGE_SHIFT;
386 pteval_t flags = val & PTE_FLAGS_MASK; 386 pteval_t flags = val & PTE_FLAGS_MASK;
387 unsigned long mfn; 387 unsigned long mfn;
diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
index 51c0362acf5c..8ec1747b1c39 100644
--- a/drivers/edac/edac_mc_sysfs.c
+++ b/drivers/edac/edac_mc_sysfs.c
@@ -61,7 +61,7 @@ static int edac_set_poll_msec(const char *val, struct kernel_param *kp)
61 ret = kstrtol(val, 0, &l); 61 ret = kstrtol(val, 0, &l);
62 if (ret) 62 if (ret)
63 return ret; 63 return ret;
64 if ((int)l != l) 64 if (!l || ((int)l != l))
65 return -EINVAL; 65 return -EINVAL;
66 *((int *)kp->arg) = l; 66 *((int *)kp->arg) = l;
67 67
diff --git a/drivers/md/bcache/extents.c b/drivers/md/bcache/extents.c
index c3ead586dc27..416d1a3e028e 100644
--- a/drivers/md/bcache/extents.c
+++ b/drivers/md/bcache/extents.c
@@ -194,7 +194,7 @@ err:
194 mutex_unlock(&b->c->bucket_lock); 194 mutex_unlock(&b->c->bucket_lock);
195 bch_extent_to_text(buf, sizeof(buf), k); 195 bch_extent_to_text(buf, sizeof(buf), k);
196 btree_bug(b, 196 btree_bug(b,
197"inconsistent btree pointer %s: bucket %li pin %i prio %i gen %i last_gc %i mark %llu gc_gen %i", 197"inconsistent btree pointer %s: bucket %zi pin %i prio %i gen %i last_gc %i mark %llu gc_gen %i",
198 buf, PTR_BUCKET_NR(b->c, k, i), atomic_read(&g->pin), 198 buf, PTR_BUCKET_NR(b->c, k, i), atomic_read(&g->pin),
199 g->prio, g->gen, g->last_gc, GC_MARK(g), g->gc_gen); 199 g->prio, g->gen, g->last_gc, GC_MARK(g), g->gc_gen);
200 return true; 200 return true;
diff --git a/drivers/message/i2o/i2o_config.c b/drivers/message/i2o/i2o_config.c
index a60c188c2bd9..04bd3b6de401 100644
--- a/drivers/message/i2o/i2o_config.c
+++ b/drivers/message/i2o/i2o_config.c
@@ -754,19 +754,19 @@ static long i2o_cfg_compat_ioctl(struct file *file, unsigned cmd,
754 unsigned long arg) 754 unsigned long arg)
755{ 755{
756 int ret; 756 int ret;
757 mutex_lock(&i2o_cfg_mutex);
758 switch (cmd) { 757 switch (cmd) {
759 case I2OGETIOPS: 758 case I2OGETIOPS:
760 ret = i2o_cfg_ioctl(file, cmd, arg); 759 ret = i2o_cfg_ioctl(file, cmd, arg);
761 break; 760 break;
762 case I2OPASSTHRU32: 761 case I2OPASSTHRU32:
762 mutex_lock(&i2o_cfg_mutex);
763 ret = i2o_cfg_passthru32(file, cmd, arg); 763 ret = i2o_cfg_passthru32(file, cmd, arg);
764 mutex_unlock(&i2o_cfg_mutex);
764 break; 765 break;
765 default: 766 default:
766 ret = -ENOIOCTLCMD; 767 ret = -ENOIOCTLCMD;
767 break; 768 break;
768 } 769 }
769 mutex_unlock(&i2o_cfg_mutex);
770 return ret; 770 return ret;
771} 771}
772 772
diff --git a/drivers/misc/sgi-gru/grukdump.c b/drivers/misc/sgi-gru/grukdump.c
index 9b2062d17327..2bef3f76032a 100644
--- a/drivers/misc/sgi-gru/grukdump.c
+++ b/drivers/misc/sgi-gru/grukdump.c
@@ -139,8 +139,11 @@ static int gru_dump_context(struct gru_state *gru, int ctxnum,
139 139
140 ubuf += sizeof(hdr); 140 ubuf += sizeof(hdr);
141 ubufcch = ubuf; 141 ubufcch = ubuf;
142 if (gru_user_copy_handle(&ubuf, cch)) 142 if (gru_user_copy_handle(&ubuf, cch)) {
143 goto fail; 143 if (cch_locked)
144 unlock_cch_handle(cch);
145 return -EFAULT;
146 }
144 if (cch_locked) 147 if (cch_locked)
145 ubufcch->delresp = 0; 148 ubufcch->delresp = 0;
146 bytes = sizeof(hdr) + GRU_CACHE_LINE_BYTES; 149 bytes = sizeof(hdr) + GRU_CACHE_LINE_BYTES;
@@ -179,10 +182,6 @@ static int gru_dump_context(struct gru_state *gru, int ctxnum,
179 ret = -EFAULT; 182 ret = -EFAULT;
180 183
181 return ret ? ret : bytes; 184 return ret ? ret : bytes;
182
183fail:
184 unlock_cch_handle(cch);
185 return -EFAULT;
186} 185}
187 186
188int gru_dump_chiplet_request(unsigned long arg) 187int gru_dump_chiplet_request(unsigned long arg)
diff --git a/fs/file.c b/fs/file.c
index 771578b33fb6..db25c2bdfe46 100644
--- a/fs/file.c
+++ b/fs/file.c
@@ -34,7 +34,7 @@ static void *alloc_fdmem(size_t size)
34 * vmalloc() if the allocation size will be considered "large" by the VM. 34 * vmalloc() if the allocation size will be considered "large" by the VM.
35 */ 35 */
36 if (size <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER)) { 36 if (size <= (PAGE_SIZE << PAGE_ALLOC_COSTLY_ORDER)) {
37 void *data = kmalloc(size, GFP_KERNEL|__GFP_NOWARN); 37 void *data = kmalloc(size, GFP_KERNEL|__GFP_NOWARN|__GFP_NORETRY);
38 if (data != NULL) 38 if (data != NULL)
39 return data; 39 return data;
40 } 40 }
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index be38b573495a..4a48fe4b84b6 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -1846,6 +1846,11 @@ int nfs_symlink(struct inode *dir, struct dentry *dentry, const char *symname)
1846 GFP_KERNEL)) { 1846 GFP_KERNEL)) {
1847 SetPageUptodate(page); 1847 SetPageUptodate(page);
1848 unlock_page(page); 1848 unlock_page(page);
1849 /*
1850 * add_to_page_cache_lru() grabs an extra page refcount.
1851 * Drop it here to avoid leaking this page later.
1852 */
1853 page_cache_release(page);
1849 } else 1854 } else
1850 __free_page(page); 1855 __free_page(page);
1851 1856
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index aada5801567a..e2edff38be52 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -7158,7 +7158,7 @@ int ocfs2_truncate_inline(struct inode *inode, struct buffer_head *di_bh,
7158 if (end > i_size_read(inode)) 7158 if (end > i_size_read(inode))
7159 end = i_size_read(inode); 7159 end = i_size_read(inode);
7160 7160
7161 BUG_ON(start >= end); 7161 BUG_ON(start > end);
7162 7162
7163 if (!(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) || 7163 if (!(OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) ||
7164 !(le16_to_cpu(di->i_dyn_features) & OCFS2_INLINE_DATA_FL) || 7164 !(le16_to_cpu(di->i_dyn_features) & OCFS2_INLINE_DATA_FL) ||
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
index d77d71ead8d1..8450262bcf2a 100644
--- a/fs/ocfs2/file.c
+++ b/fs/ocfs2/file.c
@@ -185,6 +185,9 @@ static int ocfs2_sync_file(struct file *file, loff_t start, loff_t end,
185 file->f_path.dentry->d_name.name, 185 file->f_path.dentry->d_name.name,
186 (unsigned long long)datasync); 186 (unsigned long long)datasync);
187 187
188 if (ocfs2_is_hard_readonly(osb) || ocfs2_is_soft_readonly(osb))
189 return -EROFS;
190
188 err = filemap_write_and_wait_range(inode->i_mapping, start, end); 191 err = filemap_write_and_wait_range(inode->i_mapping, start, end);
189 if (err) 192 if (err)
190 return err; 193 return err;
@@ -474,11 +477,6 @@ static int ocfs2_truncate_file(struct inode *inode,
474 goto bail; 477 goto bail;
475 } 478 }
476 479
477 /* lets handle the simple truncate cases before doing any more
478 * cluster locking. */
479 if (new_i_size == le64_to_cpu(fe->i_size))
480 goto bail;
481
482 down_write(&OCFS2_I(inode)->ip_alloc_sem); 480 down_write(&OCFS2_I(inode)->ip_alloc_sem);
483 481
484 ocfs2_resv_discard(&osb->osb_la_resmap, 482 ocfs2_resv_discard(&osb->osb_la_resmap,
@@ -718,7 +716,8 @@ leave:
718 * While a write will already be ordering the data, a truncate will not. 716 * While a write will already be ordering the data, a truncate will not.
719 * Thus, we need to explicitly order the zeroed pages. 717 * Thus, we need to explicitly order the zeroed pages.
720 */ 718 */
721static handle_t *ocfs2_zero_start_ordered_transaction(struct inode *inode) 719static handle_t *ocfs2_zero_start_ordered_transaction(struct inode *inode,
720 struct buffer_head *di_bh)
722{ 721{
723 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb); 722 struct ocfs2_super *osb = OCFS2_SB(inode->i_sb);
724 handle_t *handle = NULL; 723 handle_t *handle = NULL;
@@ -735,7 +734,14 @@ static handle_t *ocfs2_zero_start_ordered_transaction(struct inode *inode)
735 } 734 }
736 735
737 ret = ocfs2_jbd2_file_inode(handle, inode); 736 ret = ocfs2_jbd2_file_inode(handle, inode);
738 if (ret < 0) 737 if (ret < 0) {
738 mlog_errno(ret);
739 goto out;
740 }
741
742 ret = ocfs2_journal_access_di(handle, INODE_CACHE(inode), di_bh,
743 OCFS2_JOURNAL_ACCESS_WRITE);
744 if (ret)
739 mlog_errno(ret); 745 mlog_errno(ret);
740 746
741out: 747out:
@@ -751,7 +757,7 @@ out:
751 * to be too fragile to do exactly what we need without us having to 757 * to be too fragile to do exactly what we need without us having to
752 * worry about recursive locking in ->write_begin() and ->write_end(). */ 758 * worry about recursive locking in ->write_begin() and ->write_end(). */
753static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from, 759static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from,
754 u64 abs_to) 760 u64 abs_to, struct buffer_head *di_bh)
755{ 761{
756 struct address_space *mapping = inode->i_mapping; 762 struct address_space *mapping = inode->i_mapping;
757 struct page *page; 763 struct page *page;
@@ -759,6 +765,7 @@ static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from,
759 handle_t *handle = NULL; 765 handle_t *handle = NULL;
760 int ret = 0; 766 int ret = 0;
761 unsigned zero_from, zero_to, block_start, block_end; 767 unsigned zero_from, zero_to, block_start, block_end;
768 struct ocfs2_dinode *di = (struct ocfs2_dinode *)di_bh->b_data;
762 769
763 BUG_ON(abs_from >= abs_to); 770 BUG_ON(abs_from >= abs_to);
764 BUG_ON(abs_to > (((u64)index + 1) << PAGE_CACHE_SHIFT)); 771 BUG_ON(abs_to > (((u64)index + 1) << PAGE_CACHE_SHIFT));
@@ -801,7 +808,8 @@ static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from,
801 } 808 }
802 809
803 if (!handle) { 810 if (!handle) {
804 handle = ocfs2_zero_start_ordered_transaction(inode); 811 handle = ocfs2_zero_start_ordered_transaction(inode,
812 di_bh);
805 if (IS_ERR(handle)) { 813 if (IS_ERR(handle)) {
806 ret = PTR_ERR(handle); 814 ret = PTR_ERR(handle);
807 handle = NULL; 815 handle = NULL;
@@ -818,8 +826,22 @@ static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from,
818 ret = 0; 826 ret = 0;
819 } 827 }
820 828
821 if (handle) 829 if (handle) {
830 /*
831 * fs-writeback will release the dirty pages without page lock
832 * whose offset are over inode size, the release happens at
833 * block_write_full_page_endio().
834 */
835 i_size_write(inode, abs_to);
836 inode->i_blocks = ocfs2_inode_sector_count(inode);
837 di->i_size = cpu_to_le64((u64)i_size_read(inode));
838 inode->i_mtime = inode->i_ctime = CURRENT_TIME;
839 di->i_mtime = di->i_ctime = cpu_to_le64(inode->i_mtime.tv_sec);
840 di->i_ctime_nsec = cpu_to_le32(inode->i_mtime.tv_nsec);
841 di->i_mtime_nsec = di->i_ctime_nsec;
842 ocfs2_journal_dirty(handle, di_bh);
822 ocfs2_commit_trans(OCFS2_SB(inode->i_sb), handle); 843 ocfs2_commit_trans(OCFS2_SB(inode->i_sb), handle);
844 }
823 845
824out_unlock: 846out_unlock:
825 unlock_page(page); 847 unlock_page(page);
@@ -915,7 +937,7 @@ out:
915 * has made sure that the entire range needs zeroing. 937 * has made sure that the entire range needs zeroing.
916 */ 938 */
917static int ocfs2_zero_extend_range(struct inode *inode, u64 range_start, 939static int ocfs2_zero_extend_range(struct inode *inode, u64 range_start,
918 u64 range_end) 940 u64 range_end, struct buffer_head *di_bh)
919{ 941{
920 int rc = 0; 942 int rc = 0;
921 u64 next_pos; 943 u64 next_pos;
@@ -931,7 +953,7 @@ static int ocfs2_zero_extend_range(struct inode *inode, u64 range_start,
931 next_pos = (zero_pos & PAGE_CACHE_MASK) + PAGE_CACHE_SIZE; 953 next_pos = (zero_pos & PAGE_CACHE_MASK) + PAGE_CACHE_SIZE;
932 if (next_pos > range_end) 954 if (next_pos > range_end)
933 next_pos = range_end; 955 next_pos = range_end;
934 rc = ocfs2_write_zero_page(inode, zero_pos, next_pos); 956 rc = ocfs2_write_zero_page(inode, zero_pos, next_pos, di_bh);
935 if (rc < 0) { 957 if (rc < 0) {
936 mlog_errno(rc); 958 mlog_errno(rc);
937 break; 959 break;
@@ -977,7 +999,7 @@ int ocfs2_zero_extend(struct inode *inode, struct buffer_head *di_bh,
977 range_end = zero_to_size; 999 range_end = zero_to_size;
978 1000
979 ret = ocfs2_zero_extend_range(inode, range_start, 1001 ret = ocfs2_zero_extend_range(inode, range_start,
980 range_end); 1002 range_end, di_bh);
981 if (ret) { 1003 if (ret) {
982 mlog_errno(ret); 1004 mlog_errno(ret);
983 break; 1005 break;
@@ -1145,14 +1167,14 @@ int ocfs2_setattr(struct dentry *dentry, struct iattr *attr)
1145 goto bail_unlock_rw; 1167 goto bail_unlock_rw;
1146 } 1168 }
1147 1169
1148 if (size_change && attr->ia_size != i_size_read(inode)) { 1170 if (size_change) {
1149 status = inode_newsize_ok(inode, attr->ia_size); 1171 status = inode_newsize_ok(inode, attr->ia_size);
1150 if (status) 1172 if (status)
1151 goto bail_unlock; 1173 goto bail_unlock;
1152 1174
1153 inode_dio_wait(inode); 1175 inode_dio_wait(inode);
1154 1176
1155 if (i_size_read(inode) > attr->ia_size) { 1177 if (i_size_read(inode) >= attr->ia_size) {
1156 if (ocfs2_should_order_data(inode)) { 1178 if (ocfs2_should_order_data(inode)) {
1157 status = ocfs2_begin_ordered_truncate(inode, 1179 status = ocfs2_begin_ordered_truncate(inode,
1158 attr->ia_size); 1180 attr->ia_size);
diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c
index f4d609be9400..3683643f3f0e 100644
--- a/fs/ocfs2/namei.c
+++ b/fs/ocfs2/namei.c
@@ -664,6 +664,7 @@ static int ocfs2_link(struct dentry *old_dentry,
664 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb); 664 struct ocfs2_super *osb = OCFS2_SB(dir->i_sb);
665 struct ocfs2_dir_lookup_result lookup = { NULL, }; 665 struct ocfs2_dir_lookup_result lookup = { NULL, };
666 sigset_t oldset; 666 sigset_t oldset;
667 u64 old_de_ino;
667 668
668 trace_ocfs2_link((unsigned long long)OCFS2_I(inode)->ip_blkno, 669 trace_ocfs2_link((unsigned long long)OCFS2_I(inode)->ip_blkno,
669 old_dentry->d_name.len, old_dentry->d_name.name, 670 old_dentry->d_name.len, old_dentry->d_name.name,
@@ -686,6 +687,22 @@ static int ocfs2_link(struct dentry *old_dentry,
686 goto out; 687 goto out;
687 } 688 }
688 689
690 err = ocfs2_lookup_ino_from_name(dir, old_dentry->d_name.name,
691 old_dentry->d_name.len, &old_de_ino);
692 if (err) {
693 err = -ENOENT;
694 goto out;
695 }
696
697 /*
698 * Check whether another node removed the source inode while we
699 * were in the vfs.
700 */
701 if (old_de_ino != OCFS2_I(inode)->ip_blkno) {
702 err = -ENOENT;
703 goto out;
704 }
705
689 err = ocfs2_check_dir_for_entry(dir, dentry->d_name.name, 706 err = ocfs2_check_dir_for_entry(dir, dentry->d_name.name,
690 dentry->d_name.len); 707 dentry->d_name.len);
691 if (err) 708 if (err)
diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
index 2ca7ba047f04..88d4585b30f1 100644
--- a/fs/proc/vmcore.c
+++ b/fs/proc/vmcore.c
@@ -468,17 +468,24 @@ static int __init update_note_header_size_elf64(const Elf64_Ehdr *ehdr_ptr)
468 return rc; 468 return rc;
469 } 469 }
470 nhdr_ptr = notes_section; 470 nhdr_ptr = notes_section;
471 while (real_sz < max_sz) { 471 while (nhdr_ptr->n_namesz != 0) {
472 if (nhdr_ptr->n_namesz == 0)
473 break;
474 sz = sizeof(Elf64_Nhdr) + 472 sz = sizeof(Elf64_Nhdr) +
475 ((nhdr_ptr->n_namesz + 3) & ~3) + 473 ((nhdr_ptr->n_namesz + 3) & ~3) +
476 ((nhdr_ptr->n_descsz + 3) & ~3); 474 ((nhdr_ptr->n_descsz + 3) & ~3);
475 if ((real_sz + sz) > max_sz) {
476 pr_warn("Warning: Exceeded p_memsz, dropping PT_NOTE entry n_namesz=0x%x, n_descsz=0x%x\n",
477 nhdr_ptr->n_namesz, nhdr_ptr->n_descsz);
478 break;
479 }
477 real_sz += sz; 480 real_sz += sz;
478 nhdr_ptr = (Elf64_Nhdr*)((char*)nhdr_ptr + sz); 481 nhdr_ptr = (Elf64_Nhdr*)((char*)nhdr_ptr + sz);
479 } 482 }
480 kfree(notes_section); 483 kfree(notes_section);
481 phdr_ptr->p_memsz = real_sz; 484 phdr_ptr->p_memsz = real_sz;
485 if (real_sz == 0) {
486 pr_warn("Warning: Zero PT_NOTE entries found\n");
487 return -EINVAL;
488 }
482 } 489 }
483 490
484 return 0; 491 return 0;
@@ -648,17 +655,24 @@ static int __init update_note_header_size_elf32(const Elf32_Ehdr *ehdr_ptr)
648 return rc; 655 return rc;
649 } 656 }
650 nhdr_ptr = notes_section; 657 nhdr_ptr = notes_section;
651 while (real_sz < max_sz) { 658 while (nhdr_ptr->n_namesz != 0) {
652 if (nhdr_ptr->n_namesz == 0)
653 break;
654 sz = sizeof(Elf32_Nhdr) + 659 sz = sizeof(Elf32_Nhdr) +
655 ((nhdr_ptr->n_namesz + 3) & ~3) + 660 ((nhdr_ptr->n_namesz + 3) & ~3) +
656 ((nhdr_ptr->n_descsz + 3) & ~3); 661 ((nhdr_ptr->n_descsz + 3) & ~3);
662 if ((real_sz + sz) > max_sz) {
663 pr_warn("Warning: Exceeded p_memsz, dropping PT_NOTE entry n_namesz=0x%x, n_descsz=0x%x\n",
664 nhdr_ptr->n_namesz, nhdr_ptr->n_descsz);
665 break;
666 }
657 real_sz += sz; 667 real_sz += sz;
658 nhdr_ptr = (Elf32_Nhdr*)((char*)nhdr_ptr + sz); 668 nhdr_ptr = (Elf32_Nhdr*)((char*)nhdr_ptr + sz);
659 } 669 }
660 kfree(notes_section); 670 kfree(notes_section);
661 phdr_ptr->p_memsz = real_sz; 671 phdr_ptr->p_memsz = real_sz;
672 if (real_sz == 0) {
673 pr_warn("Warning: Zero PT_NOTE entries found\n");
674 return -EINVAL;
675 }
662 } 676 }
663 677
664 return 0; 678 return 0;
diff --git a/include/linux/smp.h b/include/linux/smp.h
index 3834f43f9993..6ae004e437ea 100644
--- a/include/linux/smp.h
+++ b/include/linux/smp.h
@@ -188,6 +188,9 @@ static inline void kick_all_cpus_sync(void) { }
188 */ 188 */
189extern void arch_disable_smp_support(void); 189extern void arch_disable_smp_support(void);
190 190
191extern void arch_enable_nonboot_cpus_begin(void);
192extern void arch_enable_nonboot_cpus_end(void);
193
191void smp_setup_processor_id(void); 194void smp_setup_processor_id(void);
192 195
193#endif /* __LINUX_SMP_H */ 196#endif /* __LINUX_SMP_H */
diff --git a/mm/memory-failure.c b/mm/memory-failure.c
index 4f08a2d61487..2f2f34a4e77d 100644
--- a/mm/memory-failure.c
+++ b/mm/memory-failure.c
@@ -945,8 +945,10 @@ static int hwpoison_user_mappings(struct page *p, unsigned long pfn,
945 * to it. Similarly, page lock is shifted. 945 * to it. Similarly, page lock is shifted.
946 */ 946 */
947 if (hpage != p) { 947 if (hpage != p) {
948 put_page(hpage); 948 if (!(flags & MF_COUNT_INCREASED)) {
949 get_page(p); 949 put_page(hpage);
950 get_page(p);
951 }
950 lock_page(p); 952 lock_page(p);
951 unlock_page(hpage); 953 unlock_page(hpage);
952 *hpagep = p; 954 *hpagep = p;
diff --git a/mm/slub.c b/mm/slub.c
index 7e3e0458bce4..25f14ad8f817 100644
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1004,21 +1004,19 @@ static inline void slab_free_hook(struct kmem_cache *s, void *x)
1004static void add_full(struct kmem_cache *s, 1004static void add_full(struct kmem_cache *s,
1005 struct kmem_cache_node *n, struct page *page) 1005 struct kmem_cache_node *n, struct page *page)
1006{ 1006{
1007 lockdep_assert_held(&n->list_lock);
1008
1009 if (!(s->flags & SLAB_STORE_USER)) 1007 if (!(s->flags & SLAB_STORE_USER))
1010 return; 1008 return;
1011 1009
1010 lockdep_assert_held(&n->list_lock);
1012 list_add(&page->lru, &n->full); 1011 list_add(&page->lru, &n->full);
1013} 1012}
1014 1013
1015static void remove_full(struct kmem_cache *s, struct kmem_cache_node *n, struct page *page) 1014static void remove_full(struct kmem_cache *s, struct kmem_cache_node *n, struct page *page)
1016{ 1015{
1017 lockdep_assert_held(&n->list_lock);
1018
1019 if (!(s->flags & SLAB_STORE_USER)) 1016 if (!(s->flags & SLAB_STORE_USER))
1020 return; 1017 return;
1021 1018
1019 lockdep_assert_held(&n->list_lock);
1022 list_del(&page->lru); 1020 list_del(&page->lru);
1023} 1021}
1024 1022
@@ -1520,11 +1518,9 @@ static void discard_slab(struct kmem_cache *s, struct page *page)
1520/* 1518/*
1521 * Management of partially allocated slabs. 1519 * Management of partially allocated slabs.
1522 */ 1520 */
1523static inline void add_partial(struct kmem_cache_node *n, 1521static inline void
1524 struct page *page, int tail) 1522__add_partial(struct kmem_cache_node *n, struct page *page, int tail)
1525{ 1523{
1526 lockdep_assert_held(&n->list_lock);
1527
1528 n->nr_partial++; 1524 n->nr_partial++;
1529 if (tail == DEACTIVATE_TO_TAIL) 1525 if (tail == DEACTIVATE_TO_TAIL)
1530 list_add_tail(&page->lru, &n->partial); 1526 list_add_tail(&page->lru, &n->partial);
@@ -1532,15 +1528,27 @@ static inline void add_partial(struct kmem_cache_node *n,
1532 list_add(&page->lru, &n->partial); 1528 list_add(&page->lru, &n->partial);
1533} 1529}
1534 1530
1535static inline void remove_partial(struct kmem_cache_node *n, 1531static inline void add_partial(struct kmem_cache_node *n,
1536 struct page *page) 1532 struct page *page, int tail)
1537{ 1533{
1538 lockdep_assert_held(&n->list_lock); 1534 lockdep_assert_held(&n->list_lock);
1535 __add_partial(n, page, tail);
1536}
1539 1537
1538static inline void
1539__remove_partial(struct kmem_cache_node *n, struct page *page)
1540{
1540 list_del(&page->lru); 1541 list_del(&page->lru);
1541 n->nr_partial--; 1542 n->nr_partial--;
1542} 1543}
1543 1544
1545static inline void remove_partial(struct kmem_cache_node *n,
1546 struct page *page)
1547{
1548 lockdep_assert_held(&n->list_lock);
1549 __remove_partial(n, page);
1550}
1551
1544/* 1552/*
1545 * Remove slab from the partial list, freeze it and 1553 * Remove slab from the partial list, freeze it and
1546 * return the pointer to the freelist. 1554 * return the pointer to the freelist.
@@ -2906,12 +2914,10 @@ static void early_kmem_cache_node_alloc(int node)
2906 inc_slabs_node(kmem_cache_node, node, page->objects); 2914 inc_slabs_node(kmem_cache_node, node, page->objects);
2907 2915
2908 /* 2916 /*
2909 * the lock is for lockdep's sake, not for any actual 2917 * No locks need to be taken here as it has just been
2910 * race protection 2918 * initialized and there is no concurrent access.
2911 */ 2919 */
2912 spin_lock(&n->list_lock); 2920 __add_partial(n, page, DEACTIVATE_TO_HEAD);
2913 add_partial(n, page, DEACTIVATE_TO_HEAD);
2914 spin_unlock(&n->list_lock);
2915} 2921}
2916 2922
2917static void free_kmem_cache_nodes(struct kmem_cache *s) 2923static void free_kmem_cache_nodes(struct kmem_cache *s)
@@ -3197,7 +3203,7 @@ static void free_partial(struct kmem_cache *s, struct kmem_cache_node *n)
3197 3203
3198 list_for_each_entry_safe(page, h, &n->partial, lru) { 3204 list_for_each_entry_safe(page, h, &n->partial, lru) {
3199 if (!page->inuse) { 3205 if (!page->inuse) {
3200 remove_partial(n, page); 3206 __remove_partial(n, page);
3201 discard_slab(s, page); 3207 discard_slab(s, page);
3202 } else { 3208 } else {
3203 list_slab_objects(s, page, 3209 list_slab_objects(s, page,
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 0ea2a1e24ade..464dcef79b35 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -471,7 +471,7 @@ sub seed_camelcase_includes {
471 471
472 $camelcase_seeded = 1; 472 $camelcase_seeded = 1;
473 473
474 if (-d ".git") { 474 if (-e ".git") {
475 my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`; 475 my $git_last_include_commit = `git log --no-merges --pretty=format:"%h%n" -1 -- include`;
476 chomp $git_last_include_commit; 476 chomp $git_last_include_commit;
477 $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit"; 477 $camelcase_cache = ".checkpatch-camelcase.git.$git_last_include_commit";
@@ -499,7 +499,7 @@ sub seed_camelcase_includes {
499 return; 499 return;
500 } 500 }
501 501
502 if (-d ".git") { 502 if (-e ".git") {
503 $files = `git ls-files "include/*.h"`; 503 $files = `git ls-files "include/*.h"`;
504 @include_files = split('\n', $files); 504 @include_files = split('\n', $files);
505 } 505 }
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 9c3986f4140c..41987885bd31 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -95,7 +95,7 @@ my %VCS_cmds;
95 95
96my %VCS_cmds_git = ( 96my %VCS_cmds_git = (
97 "execute_cmd" => \&git_execute_cmd, 97 "execute_cmd" => \&git_execute_cmd,
98 "available" => '(which("git") ne "") && (-d ".git")', 98 "available" => '(which("git") ne "") && (-e ".git")',
99 "find_signers_cmd" => 99 "find_signers_cmd" =>
100 "git log --no-color --follow --since=\$email_git_since " . 100 "git log --no-color --follow --since=\$email_git_since " .
101 '--numstat --no-merges ' . 101 '--numstat --no-merges ' .