diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-10 19:03:16 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-02-10 19:03:16 -0500 |
commit | 6792dfe383dd20ed270da198aa0676bac47245b4 (patch) | |
tree | 380a490de696b7f1f08323b56b149275cc43f2e1 | |
parent | cbf2822a7d44352c5c4c15baf0da3a3dc8495e90 (diff) | |
parent | 0e048316ff577e12c748e2d0a2e4f0f7b006654d (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()
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 | |||
92 | signing_key.priv | 92 | signing_key.priv |
93 | signing_key.x509 | 93 | signing_key.x509 |
94 | x509.genkey | 94 | x509.genkey |
95 | |||
96 | # Kconfig presets | ||
97 | all.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. |
30 | DMA-attributes.txt | 30 | DMA-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 |
32 | dmatest.txt | ||
33 | - how to compile, configure and use the dmatest system. | ||
32 | DocBook/ | 34 | DocBook/ |
33 | - directory with DocBook templates etc. for kernel documentation. | 35 | - directory with DocBook templates etc. for kernel documentation. |
34 | EDID/ | 36 | EDID/ |
@@ -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. |
78 | arm64/ | 80 | arm64/ |
79 | - directory with info about Linux on the 64 bit ARM architecture. | 81 | - directory with info about Linux on the 64 bit ARM architecture. |
82 | assoc_array.txt | ||
83 | - generic associative array intro. | ||
80 | atomic_ops.txt | 84 | atomic_ops.txt |
81 | - semantics and behavior of atomic and bitmask operations. | 85 | - semantics and behavior of atomic and bitmask operations. |
82 | auxdisplay/ | 86 | auxdisplay/ |
@@ -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. |
88 | basic_profiling.txt | 92 | basic_profiling.txt |
89 | - basic instructions for those who wants to profile Linux kernel. | 93 | - basic instructions for those who wants to profile Linux kernel. |
94 | bcache.txt | ||
95 | - Block-layer cache on fast SSDs to improve slow (raid) I/O performance. | ||
90 | binfmt_misc.txt | 96 | binfmt_misc.txt |
91 | - info on the kernel support for extra binary formats. | 97 | - info on the kernel support for extra binary formats. |
92 | blackfin/ | 98 | blackfin/ |
@@ -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. |
172 | edac.txt | 178 | edac.txt |
173 | - information on EDAC - Error Detection And Correction | 179 | - information on EDAC - Error Detection And Correction |
180 | efi-stub.txt | ||
181 | - How to use the EFI boot stub to bypass GRUB or elilo on EFI systems. | ||
174 | eisa.txt | 182 | eisa.txt |
175 | - info on EISA bus support. | 183 | - info on EISA bus support. |
176 | email-clients.txt | 184 | email-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 |
196 | gcov.txt | 204 | gcov.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 |
198 | gpio.txt | 206 | gpio/ |
199 | - overview of GPIO (General Purpose Input/Output) access conventions. | 207 | - gpio related documentation |
200 | hid/ | 208 | hid/ |
201 | - directory with information on human interface devices | 209 | - directory with information on human interface devices |
202 | highuid.txt | 210 | highuid.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. |
256 | kernel-parameters.txt | 264 | kernel-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. |
266 | kernel-per-CPU-kthreads.txt | ||
267 | - List of all per-CPU kthreads and how they introduce jitter. | ||
258 | kmemcheck.txt | 268 | kmemcheck.txt |
259 | - info on dynamic checker that detects uses of uninitialized memory. | 269 | - info on dynamic checker that detects uses of uninitialized memory. |
260 | kmemleak.txt | 270 | kmemleak.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 |
300 | memory-hotplug.txt | 310 | memory-hotplug.txt |
301 | - Hotpluggable memory support, how to use and current status. | 311 | - Hotpluggable memory support, how to use and current status. |
302 | memory.txt | ||
303 | - info on typical Linux memory problems. | ||
304 | metag/ | 312 | metag/ |
305 | - directory with info about Linux on Meta architecture. | 313 | - directory with info about Linux on Meta architecture. |
306 | mips/ | 314 | mips/ |
@@ -311,6 +319,8 @@ mmc/ | |||
311 | - directory with info about the MMC subsystem | 319 | - directory with info about the MMC subsystem |
312 | mn10300/ | 320 | mn10300/ |
313 | - directory with info about the mn10300 architecture port | 321 | - directory with info about the mn10300 architecture port |
322 | module-signing.txt | ||
323 | - Kernel module signing for increased security when loading modules. | ||
314 | mtd/ | 324 | mtd/ |
315 | - directory with info about memory technology devices (flash) | 325 | - directory with info about memory technology devices (flash) |
316 | mono.txt | 326 | mono.txt |
@@ -343,6 +353,8 @@ pcmcia/ | |||
343 | - info on the Linux PCMCIA driver. | 353 | - info on the Linux PCMCIA driver. |
344 | percpu-rw-semaphore.txt | 354 | percpu-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 |
356 | phy.txt | ||
357 | - Description of the generic PHY framework. | ||
346 | pi-futex.txt | 358 | pi-futex.txt |
347 | - documentation on lightweight priority inheritance futexes. | 359 | - documentation on lightweight priority inheritance futexes. |
348 | pinctrl.txt | 360 | pinctrl.txt |
@@ -431,6 +443,8 @@ sysrq.txt | |||
431 | - info on the magic SysRq key. | 443 | - info on the magic SysRq key. |
432 | target/ | 444 | target/ |
433 | - directory with info on generating TCM v4 fabric .ko modules | 445 | - directory with info on generating TCM v4 fabric .ko modules |
446 | this_cpu_ops.txt | ||
447 | - List rationale behind and the way to use this_cpu operations. | ||
434 | thermal/ | 448 | thermal/ |
435 | - directory with information on managing thermal issues (CPU/temp) | 449 | - directory with information on managing thermal issues (CPU/temp) |
436 | trace/ | 450 | trace/ |
@@ -469,6 +483,8 @@ wimax/ | |||
469 | - directory with info about Intel Wireless Wimax Connections | 483 | - directory with info about Intel Wireless Wimax Connections |
470 | workqueue.txt | 484 | workqueue.txt |
471 | - information on the Concurrency Managed Workqueue implementation | 485 | - information on the Concurrency Managed Workqueue implementation |
486 | ww-mutex-design.txt | ||
487 | - Intro to Mutex wait/would deadlock handling.s | ||
472 | x86/x86_64/ | 488 | x86/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. |
474 | xtensa/ | 490 | xtensa/ |
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 |
9 | lockdep.txt | 9 | lockdep.txt |
10 | - RCU and lockdep checking | 10 | - RCU and lockdep checking |
11 | lockdep-splat.txt | ||
12 | - RCU Lockdep splats explained. | ||
11 | NMI-RCU.txt | 13 | NMI-RCU.txt |
12 | - Using RCU to Protect Dynamic NMI Handlers | 14 | - Using RCU to Protect Dynamic NMI Handlers |
13 | rcubarrier.txt | 15 | rcubarrier.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 |
5 | Interrupts | 5 | Interrupts |
6 | - ARM Interrupt subsystem documentation | 6 | - ARM Interrupt subsystem documentation |
7 | IXP4xx | ||
8 | - Intel IXP4xx Network processor. | ||
7 | msm | 9 | msm |
8 | - MSM specific documentation | 10 | - MSM specific documentation |
9 | Netwinder | 11 | Netwinder |
@@ -24,8 +26,16 @@ SPEAr | |||
24 | - ST SPEAr platform Linux Overview | 26 | - ST SPEAr platform Linux Overview |
25 | VFP/ | 27 | VFP/ |
26 | - Release notes for Linux Kernel Vector Floating Point support code | 28 | - Release notes for Linux Kernel Vector Floating Point support code |
29 | cluster-pm-race-avoidance.txt | ||
30 | - Algorithm for CPU and Cluster setup/teardown | ||
27 | empeg/ | 31 | empeg/ |
28 | - Ltd's Empeg MP3 Car Audio Player | 32 | - Ltd's Empeg MP3 Car Audio Player |
33 | firmware.txt | ||
34 | - Secure firmware registration and calling. | ||
35 | kernel_mode_neon.txt | ||
36 | - How to use NEON instructions in kernel mode | ||
37 | kernel_user_helpers.txt | ||
38 | - Helper functions in kernel space made available for userspace. | ||
29 | mem_alignment | 39 | mem_alignment |
30 | - alignment abort handler documentation | 40 | - alignment abort handler documentation |
31 | memory.txt | 41 | memory.txt |
@@ -34,3 +44,7 @@ nwfpe/ | |||
34 | - NWFPE floating point emulator documentation | 44 | - NWFPE floating point emulator documentation |
35 | swp_emulation | 45 | swp_emulation |
36 | - SWP/SWPB emulation handler/logging description | 46 | - SWP/SWPB emulation handler/logging description |
47 | tcm.txt | ||
48 | - ARM Tightly Coupled Memory | ||
49 | vlocks.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 @@ | |||
1 | 00-INDEX | 1 | 00-INDEX |
2 | - This file | 2 | - This file |
3 | 3 | Makefile | |
4 | - Makefile for gptimers example file. | ||
4 | bfin-gpio-notes.txt | 5 | bfin-gpio-notes.txt |
5 | - Notes in developing/using bfin-gpio driver. | 6 | - Notes in developing/using bfin-gpio driver. |
6 | |||
7 | bfin-spi-notes.txt | 7 | bfin-spi-notes.txt |
8 | - Notes for using bfin spi bus driver. | 8 | - Notes for using bfin spi bus driver. |
9 | gptimers-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 |
15 | ioprio.txt | 15 | ioprio.txt |
16 | - Block io priorities (in CFQ scheduler) | 16 | - Block io priorities (in CFQ scheduler) |
17 | null_blk.txt | ||
18 | - Null block for block-layer benchmarking. | ||
17 | queue-sysfs.txt | 19 | queue-sysfs.txt |
18 | - Queue's sysfs entries | 20 | - Queue's sysfs entries |
19 | request.txt | 21 | request.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 |
9 | booting-without-of.txt | 9 | booting-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. |
11 | usage-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 | ||
6 | 00-INDEX | 6 | 00-INDEX |
7 | - this file. | 7 | - this file. |
8 | api.txt | ||
9 | - The frame buffer API between applications and buffer devices. | ||
8 | arkfb.txt | 10 | arkfb.txt |
9 | - info on the fbdev driver for ARK Logic chips. | 11 | - info on the fbdev driver for ARK Logic chips. |
10 | aty128fb.txt | 12 | aty128fb.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. |
52 | sisfb.txt | 54 | sisfb.txt |
53 | - info on the framebuffer device driver for various SiS chips. | 55 | - info on the framebuffer device driver for various SiS chips. |
56 | sm501.txt | ||
57 | - info on the framebuffer device driver for sm501 videoframebuffer. | ||
54 | sstfb.txt | 58 | sstfb.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. |
56 | tgafb.txt | 60 | tgafb.txt |
57 | - info on the TGA (DECChip 21030) frame buffer driver. | 61 | - info on the TGA (DECChip 21030) frame buffer driver. |
58 | tridentfb.txt | 62 | tridentfb.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. |
64 | udlfb.txt | ||
65 | - Driver for DisplayLink USB 2.0 chips. | ||
60 | uvesafb.txt | 66 | uvesafb.txt |
61 | - info on the userspace VESA (VBE2+ compliant) frame buffer device. | 67 | - info on the userspace VESA (VBE2+ compliant) frame buffer device. |
62 | vesafb.txt | 68 | vesafb.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). |
3 | Locking | 3 | Locking |
4 | - info on locking rules as they pertain to Linux VFS. | 4 | - info on locking rules as they pertain to Linux VFS. |
5 | Makefile | ||
6 | - Makefile for building the filsystems-part of DocBook. | ||
5 | 9p.txt | 7 | 9p.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. |
7 | adfs.txt | 9 | adfs.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. |
13 | nfs-rdma.txt | 13 | nfs-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 |
15 | nfsd-admin-interfaces.txt | ||
16 | - Administrative interfaces for nfsd. | ||
15 | nfsroot.txt | 17 | nfsroot.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. |
17 | pnfs.txt | 19 | pnfs.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. |
21 | idmapper.txt | 23 | idmapper.txt |
22 | - information for configuring request-keys to be used by idmapper | 24 | - information for configuring request-keys to be used by idmapper |
23 | knfsd-rpcgss.txt | 25 | rpc-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 |
11 | ide.txt | 11 | ide.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). |
13 | warm-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 @@ | |||
1 | 00-INDEX | 1 | 00-INDEX |
2 | - This file | 2 | - This file |
3 | acer-wmi.txt | 3 | Makefile |
4 | - information on the Acer Laptop WMI Extras driver. | 4 | - Makefile for building dslm example program. |
5 | asus-laptop.txt | 5 | asus-laptop.txt |
6 | - information on the Asus Laptop Extras driver. | 6 | - information on the Asus Laptop Extras driver. |
7 | disk-shock-protection.txt | 7 | disk-shock-protection.txt |
8 | - information on hard disk shock protection. | 8 | - information on hard disk shock protection. |
9 | dslm.c | 9 | dslm.c |
10 | - Simple Disk Sleep Monitor program | 10 | - Simple Disk Sleep Monitor program |
11 | hpfall.c | ||
12 | - (HP) laptop accelerometer program for disk protection. | ||
11 | laptop-mode.txt | 13 | laptop-mode.txt |
12 | - how to conserve battery power using laptop-mode. | 14 | - how to conserve battery power using laptop-mode. |
13 | sony-laptop.txt | 15 | sony-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 @@ | |||
1 | 00-INDEX | ||
2 | - This file | ||
3 | leds-blinkm.txt | ||
4 | - Driver for BlinkM LED-devices. | ||
1 | leds-class.txt | 5 | leds-class.txt |
2 | - documents LED handling under Linux. | 6 | - documents LED handling under Linux. |
3 | leds-lp3944.txt | 7 | leds-lp3944.txt |
@@ -12,3 +16,7 @@ leds-lp55xx.txt | |||
12 | - description about lp55xx common driver. | 16 | - description about lp55xx common driver. |
13 | leds-lm3556.txt | 17 | leds-lm3556.txt |
14 | - notes on how to use the leds-lm3556 driver. | 18 | - notes on how to use the leds-lm3556 driver. |
19 | ledtrig-oneshot.txt | ||
20 | - One-shot LED trigger for both sporadic and dense events. | ||
21 | ledtrig-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 @@ | |||
1 | 00-INDEX | 1 | 00-INDEX |
2 | - this file | 2 | - this file |
3 | README.buddha | ||
4 | - Amiga Buddha and Catweasel IDE Driver | ||
3 | kernel-options.txt | 5 | kernel-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. |
7 | 6pack.txt | 7 | 6pack.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 |
9 | DLINK.txt | 9 | LICENSE.qla3xxx |
10 | - info on the D-Link DE-600/DE-620 parallel port pocket adapters | 10 | - GPLv2 for QLogic Linux Networking HBA Driver |
11 | LICENSE.qlge | ||
12 | - GPLv2 for QLogic Linux qlge NIC Driver | ||
13 | LICENSE.qlcnic | ||
14 | - GPLv2 for QLogic Linux qlcnic NIC Driver | ||
15 | Makefile | ||
16 | - Makefile for docsrc. | ||
11 | PLIP.txt | 17 | PLIP.txt |
12 | - PLIP: The Parallel Line Internet Protocol device driver | 18 | - PLIP: The Parallel Line Internet Protocol device driver |
13 | README.ipw2100 | 19 | README.ipw2100 |
@@ -17,7 +23,7 @@ README.ipw2200 | |||
17 | README.sb1000 | 23 | README.sb1000 |
18 | - info on General Instrument/NextLevel SURFboard1000 cable modem. | 24 | - info on General Instrument/NextLevel SURFboard1000 cable modem. |
19 | alias.txt | 25 | alias.txt |
20 | - info on using alias network devices | 26 | - info on using alias network devices. |
21 | arcnet-hardware.txt | 27 | arcnet-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. |
23 | arcnet.txt | 29 | arcnet.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). |
81 | gen_stats.txt | 87 | gen_stats.txt |
82 | - Generic networking statistics for netlink users. | 88 | - Generic networking statistics for netlink users. |
83 | generic_hdlc.txt | 89 | generic-hdlc.txt |
84 | - The generic High Level Data Link Control (HDLC) layer. | 90 | - The generic High Level Data Link Control (HDLC) layer. |
85 | generic_netlink.txt | 91 | generic_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. |
89 | i40e.txt | 95 | i40e.txt |
90 | - README for the Intel Ethernet Controller XL710 Driver (i40e). | 96 | - README for the Intel Ethernet Controller XL710 Driver (i40e). |
97 | i40evf.txt | ||
98 | - Short note on the Driver for the Intel(R) XL710 X710 Virtual Function | ||
91 | ieee802154.txt | 99 | ieee802154.txt |
92 | - Linux IEEE 802.15.4 implementation, API and drivers | 100 | - Linux IEEE 802.15.4 implementation, API and drivers |
93 | igb.txt | 101 | igb.txt |
@@ -102,6 +110,8 @@ ipddp.txt | |||
102 | - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation | 110 | - AppleTalk-IP Decapsulation and AppleTalk-IP Encapsulation |
103 | iphase.txt | 111 | iphase.txt |
104 | - Interphase PCI ATM (i)Chip IA Linux driver info. | 112 | - Interphase PCI ATM (i)Chip IA Linux driver info. |
113 | ipsec.txt | ||
114 | - Note on not compressing IPSec payload and resulting failed policy check. | ||
105 | ipv6.txt | 115 | ipv6.txt |
106 | - Options to the ipv6 kernel module. | 116 | - Options to the ipv6 kernel module. |
107 | ipvs-sysctl.txt | 117 | ipvs-sysctl.txt |
@@ -120,6 +130,8 @@ lapb-module.txt | |||
120 | - programming information of the LAPB module. | 130 | - programming information of the LAPB module. |
121 | ltpc.txt | 131 | ltpc.txt |
122 | - the Apple or Farallon LocalTalk PC card driver | 132 | - the Apple or Farallon LocalTalk PC card driver |
133 | mac80211-auth-assoc-deauth.txt | ||
134 | - authentication and association / deauth-disassoc with max80211 | ||
123 | mac80211-injection.txt | 135 | mac80211-injection.txt |
124 | - HOWTO use packet injection with mac80211 | 136 | - HOWTO use packet injection with mac80211 |
125 | multiqueue.txt | 137 | multiqueue.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. |
135 | netif-msg.txt | 147 | netif-msg.txt |
136 | - Design of the network interface message level setting (NETIF_MSG_*). | 148 | - Design of the network interface message level setting (NETIF_MSG_*). |
149 | netlink_mmap.txt | ||
150 | - memory mapped I/O with netlink | ||
151 | nf_conntrack-sysctl.txt | ||
152 | - list of netfilter-sysctl knobs. | ||
137 | nfc.txt | 153 | nfc.txt |
138 | - The Linux Near Field Communication (NFS) subsystem. | 154 | - The Linux Near Field Communication (NFS) subsystem. |
139 | openvswitch.txt | 155 | openvswitch.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. |
177 | smc9.txt | 193 | smc9.txt |
178 | - the driver for SMC's 9000 series of Ethernet cards | 194 | - the driver for SMC's 9000 series of Ethernet cards |
179 | spider-net.txt | 195 | spider_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). |
181 | stmmac.txt | 197 | stmmac.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. |
189 | tcp-thin.txt | 205 | tcp-thin.txt |
190 | - kernel tuning options for low rate 'thin' TCP streams. | 206 | - kernel tuning options for low rate 'thin' TCP streams. |
207 | team.txt | ||
208 | - pointer to information for ethernet teaming devices. | ||
191 | tlan.txt | 209 | tlan.txt |
192 | - ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info. | 210 | - ThunderLAN (Compaq Netelligent 10/100, Olicom OC-2xxx) driver info. |
193 | tproxy.txt | 211 | tproxy.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. |
201 | vxge.txt | 219 | vxge.txt |
202 | - README for the Neterion X3100 PCIe Server Adapter. | 220 | - README for the Neterion X3100 PCIe Server Adapter. |
221 | vxlan.txt | ||
222 | - Virtual extensible LAN overview | ||
203 | x25.txt | 223 | x25.txt |
204 | - general info on X.25 development. | 224 | - general info on X.25 development. |
205 | x25-iface.txt | 225 | x25-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. |
5 | basic-pm-debugging.txt | 5 | basic-pm-debugging.txt |
6 | - Debugging suspend and resume | 6 | - Debugging suspend and resume |
7 | charger-manager.txt | ||
8 | - Battery charger management. | ||
7 | devices.txt | 9 | devices.txt |
8 | - How drivers interact with system-wide power management | 10 | - How drivers interact with system-wide power management |
9 | drivers-testing.txt | 11 | drivers-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 |
23 | power_supply_class.txt | 25 | power_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 |
27 | runtime_pm.txt | ||
28 | - Power management framework for I/O devices. | ||
25 | s2ram.txt | 29 | s2ram.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) |
27 | states.txt | 31 | states.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 |
39 | userland-swsusp.txt | 43 | userland-swsusp.txt |
40 | - Experimental implementation of software suspend in userspace | 44 | - Experimental implementation of software suspend in userspace |
41 | video_extension.txt | ||
42 | - ACPI video extensions | ||
43 | video.txt | 45 | video.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. |
17 | driver-model.txt | 17 | driver-model.txt |
18 | - information on s390 devices and the driver model. | 18 | - information on s390 devices and the driver model. |
19 | kvm.txt | ||
20 | - ioctl calls to /dev/kvm on s390. | ||
19 | monreader.txt | 21 | monreader.txt |
20 | - information on accessing the z/VM monitor stream from Linux. | 22 | - information on accessing the z/VM monitor stream from Linux. |
23 | qeth.txt | ||
24 | - HiperSockets Bridge Port Support. | ||
21 | s390dbf.txt | 25 | s390dbf.txt |
22 | - information on using the s390 debug feature. | 26 | - information on using the s390 debug feature. |
23 | TAPE | 27 | zfcpdump.txt |
24 | - information on the driver for channel-attached tapes. | ||
25 | zfcpdump | ||
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. |
3 | sched-arch.txt | 3 | sched-arch.txt |
4 | - CPU Scheduler implementation hints for architecture specific code. | 4 | - CPU Scheduler implementation hints for architecture specific code. |
5 | sched-bwc.txt | ||
6 | - CFS bandwidth control overview. | ||
5 | sched-design-CFS.txt | 7 | sched-design-CFS.txt |
6 | - goals, design and implementation of the Completely Fair Scheduler. | 8 | - goals, design and implementation of the Completely Fair Scheduler. |
7 | sched-domains.txt | 9 | sched-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 |
37 | aacraid.txt | 37 | aacraid.txt |
38 | - Driver supporting Adaptec RAID controllers | 38 | - Driver supporting Adaptec RAID controllers |
39 | advansys.txt | ||
40 | - List of Advansys Host Adapters | ||
39 | aha152x.txt | 41 | aha152x.txt |
40 | - info on driver for Adaptec AHA152x based adapters | 42 | - info on driver for Adaptec AHA152x based adapters |
41 | aic79xx.txt | 43 | aic79xx.txt |
@@ -44,6 +46,12 @@ aic7xxx.txt | |||
44 | - info on driver for Adaptec controllers | 46 | - info on driver for Adaptec controllers |
45 | arcmsr_spec.txt | 47 | arcmsr_spec.txt |
46 | - ARECA FIRMWARE SPEC (for IOP331 adapter) | 48 | - ARECA FIRMWARE SPEC (for IOP331 adapter) |
49 | bfa.txt | ||
50 | - Brocade FC/FCOE adapter driver. | ||
51 | bnx2fc.txt | ||
52 | - FCoE hardware offload for Broadcom network interfaces. | ||
53 | cxgb3i.txt | ||
54 | - Chelsio iSCSI Linux Driver | ||
47 | dc395x.txt | 55 | dc395x.txt |
48 | - README file for the dc395x SCSI driver | 56 | - README file for the dc395x SCSI driver |
49 | dpti.txt | 57 | dpti.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 |
53 | g_NCR5380.txt | 61 | g_NCR5380.txt |
54 | - info on driver for NCR5380 and NCR53c400 based adapters | 62 | - info on driver for NCR5380 and NCR53c400 based adapters |
63 | hpsa.txt | ||
64 | - HP Smart Array Controller SCSI driver. | ||
55 | hptiop.txt | 65 | hptiop.txt |
56 | - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER | 66 | - HIGHPOINT ROCKETRAID 3xxx RAID DRIVER |
57 | in2000.txt | 67 | in2000.txt |
58 | - info on in2000 driver | 68 | - info on in2000 driver |
59 | libsas.txt | 69 | libsas.txt |
60 | - Serial Attached SCSI management layer. | 70 | - Serial Attached SCSI management layer. |
71 | link_power_management_policy.txt | ||
72 | - Link power management options. | ||
61 | lpfc.txt | 73 | lpfc.txt |
62 | - LPFC driver release notes | 74 | - LPFC driver release notes |
63 | megaraid.txt | 75 | megaraid.txt |
64 | - Common Management Module, shared code handling ioctls for LSI drivers | 76 | - Common Management Module, shared code handling ioctls for LSI drivers |
65 | ncr53c8xx.txt | 77 | ncr53c8xx.txt |
66 | - info on driver for NCR53c8xx based adapters | 78 | - info on driver for NCR53c8xx based adapters |
79 | osd.txt | ||
80 | Object-Based Storage Device, command set introduction. | ||
67 | osst.txt | 81 | osst.txt |
68 | - info on driver for OnStream SC-x0 SCSI tape | 82 | - info on driver for OnStream SC-x0 SCSI tape |
69 | ppa.txt | 83 | ppa.txt |
@@ -74,6 +88,8 @@ scsi-changer.txt | |||
74 | - README for the SCSI media changer driver | 88 | - README for the SCSI media changer driver |
75 | scsi-generic.txt | 89 | scsi-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. |
91 | scsi-parameters.txt | ||
92 | - List of SCSI-parameters to pass to the kernel at module load-time. | ||
77 | scsi.txt | 93 | scsi.txt |
78 | - short blurb on using SCSI support as a module. | 94 | - short blurb on using SCSI support as a module. |
79 | scsi_mid_low_api.txt | 95 | scsi_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. |
5 | digiepca.txt | 5 | digiepca.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. |
7 | hayes-esp.txt | 7 | driver |
8 | - info on using the Hayes ESP serial driver. | 8 | - intro to the low level serial driver. |
9 | moxa-smartio | 9 | moxa-smartio |
10 | - file with info on installing/using Moxa multiport serial driver. | 10 | - file with info on installing/using Moxa multiport serial driver. |
11 | n_gsm.txt | ||
12 | - GSM 0710 tty multiplexer howto. | ||
11 | riscom8.txt | 13 | riscom8.txt |
12 | - notes on using the RISCom/8 multi-port serial driver. | 14 | - notes on using the RISCom/8 multi-port serial driver. |
13 | rocket.txt | 15 | rocket.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 @@ | |||
1 | 00-INDEX | ||
2 | - this file. | ||
3 | Makefile | ||
4 | - Makefile for the example sourcefiles. | ||
5 | butterfly | ||
6 | - AVR Butterfly SPI driver overview and pin configuration. | ||
7 | ep93xx_spi | ||
8 | - Basic EP93xx SPI driver configuration. | ||
9 | pxa2xx | ||
10 | - PXA2xx SPI master controller build by spi_message fifo wq | ||
11 | spidev | ||
12 | - Intro to the userspace API for spi devices | ||
13 | spidev_fdx.c | ||
14 | - spidev example file | ||
15 | spi-lm70llp | ||
16 | - Connecting an LM70-LLP sensor to the kernel via the SPI subsys. | ||
17 | spi-sc18is602 | ||
18 | - NXP SC18IS602/603 I2C-bus to SPI bridge | ||
19 | spi-summary | ||
20 | - (Linux) SPI overview. If unsure about SPI or SPI in Linux, start here. | ||
21 | spidev_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 |
9 | hrtimers.txt | 9 | hrtimers.txt |
10 | - subsystem for high-resolution kernel timers | 10 | - subsystem for high-resolution kernel timers |
11 | Makefile | ||
12 | - Build and link hpet_example | ||
11 | NO_HZ.txt | 13 | NO_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. |
13 | timers-howto.txt | 15 | timers-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. |
21 | review-checklist.txt | 21 | review-checklist.txt |
22 | - review checklist for KVM patches. | 22 | - review checklist for KVM patches. |
23 | s390-diag.txt | ||
24 | - Diagnose hypercall description (for IBM S/390) | ||
23 | timekeeping.txt | 25 | timekeeping.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 |
17 | ksm.txt | 17 | ksm.txt |
18 | - how to use the Kernel Samepage Merging feature. | 18 | - how to use the Kernel Samepage Merging feature. |
19 | locking | ||
20 | - info on how locking and synchronization is done in the Linux vm code. | ||
21 | numa | 19 | numa |
22 | - information about NUMA specific code in the Linux vm. | 20 | - information about NUMA specific code in the Linux vm. |
23 | numa_memory_policy.txt | 21 | numa_memory_policy.txt |
@@ -32,6 +30,8 @@ slub.txt | |||
32 | - a short users guide for SLUB. | 30 | - a short users guide for SLUB. |
33 | soft-dirty.txt | 31 | soft-dirty.txt |
34 | - short explanation for soft-dirty PTEs | 32 | - short explanation for soft-dirty PTEs |
33 | split_page_table_lock | ||
34 | - Separate per-table lock to improve scalability of the old page_table_lock. | ||
35 | transhuge.txt | 35 | transhuge.txt |
36 | - Transparent Hugepage Support, alternative way of using hugepages. | 36 | - Transparent Hugepage Support, alternative way of using hugepages. |
37 | unevictable-lru.txt | 37 | unevictable-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. |
5 | ds2490 | 5 | ds2490 |
6 | - The Maxim/Dallas Semiconductor DS2490 builds USB <-> W1 bridges. | 6 | - The Maxim/Dallas Semiconductor DS2490 builds USB <-> W1 bridges. |
7 | mxc_w1 | 7 | mxc-w1 |
8 | - W1 master controller driver found on Freescale MX2/MX3 SoCs | 8 | - W1 master controller driver found on Freescale MX2/MX3 SoCs |
9 | omap-hdq | ||
10 | - HDQ/1-wire module of TI OMAP 2430/3430. | ||
9 | w1-gpio | 11 | w1-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. |
5 | w1_ds2423 | 5 | w1_ds2423 |
6 | - The Maxim/Dallas Semiconductor ds2423 counter device. | 6 | - The Maxim/Dallas Semiconductor ds2423 counter device. |
7 | w1_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 @@ | |||
1 | 00-INDEX | 1 | 00-INDEX |
2 | - this file | 2 | - this file |
3 | mtrr.txt | 3 | boot.txt |
4 | - how to use x86 Memory Type Range Registers to increase performance | 4 | - List of boot protocol versions |
5 | early-microcode.txt | ||
6 | - How to load microcode from an initrd-CPIO archive early to fix CPU issues. | ||
7 | earlyprintk.txt | ||
8 | - Using earlyprintk with a USB2 debug port key. | ||
9 | entry_64.txt | ||
10 | - Describe (some of the) kernel entry points for x86. | ||
5 | exception-tables.txt | 11 | exception-tables.txt |
6 | - why and how Linux kernel uses exception tables on x86 | 12 | - why and how Linux kernel uses exception tables on x86 |
13 | mtrr.txt | ||
14 | - how to use x86 Memory Type Range Registers to increase performance | ||
15 | pat.txt | ||
16 | - Page Attribute Table intro and API | ||
17 | usb-legacy-support.txt | ||
18 | - how to fix/avoid quirks when using emulated PS/2 mouse/keyboard. | ||
19 | zero-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 | ||
448 | static 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 | |||
448 | static inline int pte_present(pte_t a) | 459 | static 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. */ |
366 | static pteval_t pte_mfn_to_pfn(pteval_t val) | 366 | static 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 | ||
382 | static pteval_t pte_pfn_to_mfn(pteval_t val) | 382 | static 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 | |||
183 | fail: | ||
184 | unlock_cch_handle(cch); | ||
185 | return -EFAULT; | ||
186 | } | 185 | } |
187 | 186 | ||
188 | int gru_dump_chiplet_request(unsigned long arg) | 187 | int gru_dump_chiplet_request(unsigned long arg) |
@@ -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 | */ |
721 | static handle_t *ocfs2_zero_start_ordered_transaction(struct inode *inode) | 719 | static 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 | ||
741 | out: | 747 | out: |
@@ -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(). */ |
753 | static int ocfs2_write_zero_page(struct inode *inode, u64 abs_from, | 759 | static 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 | ||
824 | out_unlock: | 846 | out_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 | */ |
917 | static int ocfs2_zero_extend_range(struct inode *inode, u64 range_start, | 939 | static 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 | */ |
189 | extern void arch_disable_smp_support(void); | 189 | extern void arch_disable_smp_support(void); |
190 | 190 | ||
191 | extern void arch_enable_nonboot_cpus_begin(void); | ||
192 | extern void arch_enable_nonboot_cpus_end(void); | ||
193 | |||
191 | void smp_setup_processor_id(void); | 194 | void 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; |
@@ -1004,21 +1004,19 @@ static inline void slab_free_hook(struct kmem_cache *s, void *x) | |||
1004 | static void add_full(struct kmem_cache *s, | 1004 | static 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 | ||
1015 | static void remove_full(struct kmem_cache *s, struct kmem_cache_node *n, struct page *page) | 1014 | static 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 | */ |
1523 | static inline void add_partial(struct kmem_cache_node *n, | 1521 | static 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 | ||
1535 | static inline void remove_partial(struct kmem_cache_node *n, | 1531 | static 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 | ||
1538 | static 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 | ||
1545 | static 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 | ||
2917 | static void free_kmem_cache_nodes(struct kmem_cache *s) | 2923 | static 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 | ||
96 | my %VCS_cmds_git = ( | 96 | my %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 ' . |