Skip to content

Commit dab2310

Browse files
committed
Merge tag 'v3.14-rc5' into HEAD
Linux 3.14-rc5
2 parents a3dbeb5 + 0414855 commit dab2310

File tree

1,196 files changed

+14561
-7288
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,196 files changed

+14561
-7288
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,3 +92,6 @@ extra_certificates
9292
signing_key.priv
9393
signing_key.x509
9494
x509.genkey
95+
96+
# Kconfig presets
97+
all.config

Documentation/00-INDEX

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ DMA-ISA-LPC.txt
2929
- How to do DMA with ISA (and LPC) devices.
3030
DMA-attributes.txt
3131
- listing of the various possible attributes a DMA region can have
32+
dmatest.txt
33+
- how to compile, configure and use the dmatest system.
3234
DocBook/
3335
- directory with DocBook templates etc. for kernel documentation.
3436
EDID/
@@ -77,6 +79,8 @@ arm/
7779
- directory with info about Linux on the ARM architecture.
7880
arm64/
7981
- directory with info about Linux on the 64 bit ARM architecture.
82+
assoc_array.txt
83+
- generic associative array intro.
8084
atomic_ops.txt
8185
- semantics and behavior of atomic and bitmask operations.
8286
auxdisplay/
@@ -87,6 +91,8 @@ bad_memory.txt
8791
- how to use kernel parameters to exclude bad RAM regions.
8892
basic_profiling.txt
8993
- 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.
9096
binfmt_misc.txt
9197
- info on the kernel support for extra binary formats.
9298
blackfin/
@@ -171,6 +177,8 @@ early-userspace/
171177
- info about initramfs, klibc, and userspace early during boot.
172178
edac.txt
173179
- 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.
174182
eisa.txt
175183
- info on EISA bus support.
176184
email-clients.txt
@@ -195,8 +203,8 @@ futex-requeue-pi.txt
195203
- info on requeueing of tasks from a non-PI futex to a PI futex
196204
gcov.txt
197205
- use of GCC's coverage testing tool "gcov" with the Linux kernel
198-
gpio.txt
199-
- overview of GPIO (General Purpose Input/Output) access conventions.
206+
gpio/
207+
- gpio related documentation
200208
hid/
201209
- directory with information on human interface devices
202210
highuid.txt
@@ -255,6 +263,8 @@ kernel-docs.txt
255263
- listing of various WWW + books that document kernel internals.
256264
kernel-parameters.txt
257265
- 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.
258268
kmemcheck.txt
259269
- info on dynamic checker that detects uses of uninitialized memory.
260270
kmemleak.txt
@@ -299,8 +309,6 @@ memory-devices/
299309
- directory with info on parts like the Texas Instruments EMIF driver
300310
memory-hotplug.txt
301311
- Hotpluggable memory support, how to use and current status.
302-
memory.txt
303-
- info on typical Linux memory problems.
304312
metag/
305313
- directory with info about Linux on Meta architecture.
306314
mips/
@@ -311,6 +319,8 @@ mmc/
311319
- directory with info about the MMC subsystem
312320
mn10300/
313321
- directory with info about the mn10300 architecture port
322+
module-signing.txt
323+
- Kernel module signing for increased security when loading modules.
314324
mtd/
315325
- directory with info about memory technology devices (flash)
316326
mono.txt
@@ -343,6 +353,8 @@ pcmcia/
343353
- info on the Linux PCMCIA driver.
344354
percpu-rw-semaphore.txt
345355
- RCU based read-write semaphore optimized for locking for reading
356+
phy.txt
357+
- Description of the generic PHY framework.
346358
pi-futex.txt
347359
- documentation on lightweight priority inheritance futexes.
348360
pinctrl.txt
@@ -431,6 +443,8 @@ sysrq.txt
431443
- info on the magic SysRq key.
432444
target/
433445
- 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.
434448
thermal/
435449
- directory with information on managing thermal issues (CPU/temp)
436450
trace/
@@ -469,6 +483,8 @@ wimax/
469483
- directory with info about Intel Wireless Wimax Connections
470484
workqueue.txt
471485
- information on the Concurrency Managed Workqueue implementation
486+
ww-mutex-design.txt
487+
- Intro to Mutex wait/would deadlock handling.s
472488
x86/x86_64/
473489
- directory with info on Linux support for AMD x86-64 (Hammer) machines.
474490
xtensa/

Documentation/PCI/MSI-HOWTO.txt

Lines changed: 109 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,19 @@ Most of the hard work is done for the driver in the PCI layer. It simply
8282
has to request that the PCI layer set up the MSI capability for this
8383
device.
8484

85-
4.2.1 pci_enable_msi_range
85+
4.2.1 pci_enable_msi
86+
87+
int pci_enable_msi(struct pci_dev *dev)
88+
89+
A successful call allocates ONE interrupt to the device, regardless
90+
of how many MSIs the device supports. The device is switched from
91+
pin-based interrupt mode to MSI mode. The dev->irq number is changed
92+
to a new number which represents the message signaled interrupt;
93+
consequently, this function should be called before the driver calls
94+
request_irq(), because an MSI is delivered via a vector that is
95+
different from the vector of a pin-based interrupt.
96+
97+
4.2.2 pci_enable_msi_range
8698

8799
int pci_enable_msi_range(struct pci_dev *dev, int minvec, int maxvec)
88100

@@ -147,6 +159,11 @@ static int foo_driver_enable_msi(struct pci_dev *pdev, int nvec)
147159
return pci_enable_msi_range(pdev, nvec, nvec);
148160
}
149161

162+
Note, unlike pci_enable_msi_exact() function, which could be also used to
163+
enable a particular number of MSI-X interrupts, pci_enable_msi_range()
164+
returns either a negative errno or 'nvec' (not negative errno or 0 - as
165+
pci_enable_msi_exact() does).
166+
150167
4.2.1.3 Single MSI mode
151168

152169
The most notorious example of the request type described above is
@@ -158,7 +175,27 @@ static int foo_driver_enable_single_msi(struct pci_dev *pdev)
158175
return pci_enable_msi_range(pdev, 1, 1);
159176
}
160177

161-
4.2.2 pci_disable_msi
178+
Note, unlike pci_enable_msi() function, which could be also used to
179+
enable the single MSI mode, pci_enable_msi_range() returns either a
180+
negative errno or 1 (not negative errno or 0 - as pci_enable_msi()
181+
does).
182+
183+
4.2.3 pci_enable_msi_exact
184+
185+
int pci_enable_msi_exact(struct pci_dev *dev, int nvec)
186+
187+
This variation on pci_enable_msi_range() call allows a device driver to
188+
request exactly 'nvec' MSIs.
189+
190+
If this function returns a negative number, it indicates an error and
191+
the driver should not attempt to request any more MSI interrupts for
192+
this device.
193+
194+
By contrast with pci_enable_msi_range() function, pci_enable_msi_exact()
195+
returns zero in case of success, which indicates MSI interrupts have been
196+
successfully allocated.
197+
198+
4.2.4 pci_disable_msi
162199

163200
void pci_disable_msi(struct pci_dev *dev)
164201

@@ -172,7 +209,7 @@ on any interrupt for which it previously called request_irq().
172209
Failure to do so results in a BUG_ON(), leaving the device with
173210
MSI enabled and thus leaking its vector.
174211

175-
4.2.3 pci_msi_vec_count
212+
4.2.4 pci_msi_vec_count
176213

177214
int pci_msi_vec_count(struct pci_dev *dev)
178215

@@ -257,8 +294,8 @@ possible, likely up to the limit returned by pci_msix_vec_count() function:
257294

258295
static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec)
259296
{
260-
return pci_enable_msi_range(adapter->pdev, adapter->msix_entries,
261-
1, nvec);
297+
return pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
298+
1, nvec);
262299
}
263300

264301
Note the value of 'minvec' parameter is 1. As 'minvec' is inclusive,
@@ -269,8 +306,8 @@ In this case the function could look like this:
269306

270307
static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec)
271308
{
272-
return pci_enable_msi_range(adapter->pdev, adapter->msix_entries,
273-
FOO_DRIVER_MINIMUM_NVEC, nvec);
309+
return pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
310+
FOO_DRIVER_MINIMUM_NVEC, nvec);
274311
}
275312

276313
4.3.1.2 Exact number of MSI-X interrupts
@@ -282,10 +319,15 @@ parameters:
282319

283320
static int foo_driver_enable_msix(struct foo_adapter *adapter, int nvec)
284321
{
285-
return pci_enable_msi_range(adapter->pdev, adapter->msix_entries,
286-
nvec, nvec);
322+
return pci_enable_msix_range(adapter->pdev, adapter->msix_entries,
323+
nvec, nvec);
287324
}
288325

326+
Note, unlike pci_enable_msix_exact() function, which could be also used to
327+
enable a particular number of MSI-X interrupts, pci_enable_msix_range()
328+
returns either a negative errno or 'nvec' (not negative errno or 0 - as
329+
pci_enable_msix_exact() does).
330+
289331
4.3.1.3 Specific requirements to the number of MSI-X interrupts
290332

291333
As noted above, there could be devices that can not operate with just any
@@ -332,7 +374,64 @@ Note how pci_enable_msix_range() return value is analized for a fallback -
332374
any error code other than -ENOSPC indicates a fatal error and should not
333375
be retried.
334376

335-
4.3.2 pci_disable_msix
377+
4.3.2 pci_enable_msix_exact
378+
379+
int pci_enable_msix_exact(struct pci_dev *dev,
380+
struct msix_entry *entries, int nvec)
381+
382+
This variation on pci_enable_msix_range() call allows a device driver to
383+
request exactly 'nvec' MSI-Xs.
384+
385+
If this function returns a negative number, it indicates an error and
386+
the driver should not attempt to allocate any more MSI-X interrupts for
387+
this device.
388+
389+
By contrast with pci_enable_msix_range() function, pci_enable_msix_exact()
390+
returns zero in case of success, which indicates MSI-X interrupts have been
391+
successfully allocated.
392+
393+
Another version of a routine that enables MSI-X mode for a device with
394+
specific requirements described in chapter 4.3.1.3 might look like this:
395+
396+
/*
397+
* Assume 'minvec' and 'maxvec' are non-zero
398+
*/
399+
static int foo_driver_enable_msix(struct foo_adapter *adapter,
400+
int minvec, int maxvec)
401+
{
402+
int rc;
403+
404+
minvec = roundup_pow_of_two(minvec);
405+
maxvec = rounddown_pow_of_two(maxvec);
406+
407+
if (minvec > maxvec)
408+
return -ERANGE;
409+
410+
retry:
411+
rc = pci_enable_msix_exact(adapter->pdev,
412+
adapter->msix_entries, maxvec);
413+
414+
/*
415+
* -ENOSPC is the only error code allowed to be analyzed
416+
*/
417+
if (rc == -ENOSPC) {
418+
if (maxvec == 1)
419+
return -ENOSPC;
420+
421+
maxvec /= 2;
422+
423+
if (minvec > maxvec)
424+
return -ENOSPC;
425+
426+
goto retry;
427+
} else if (rc < 0) {
428+
return rc;
429+
}
430+
431+
return maxvec;
432+
}
433+
434+
4.3.3 pci_disable_msix
336435

337436
void pci_disable_msix(struct pci_dev *dev)
338437

Documentation/RCU/00-INDEX

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ listRCU.txt
88
- Using RCU to Protect Read-Mostly Linked Lists
99
lockdep.txt
1010
- RCU and lockdep checking
11+
lockdep-splat.txt
12+
- RCU Lockdep splats explained.
1113
NMI-RCU.txt
1214
- Using RCU to Protect Dynamic NMI Handlers
1315
rcubarrier.txt

Documentation/arm/00-INDEX

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ Booting
44
- requirements for booting
55
Interrupts
66
- ARM Interrupt subsystem documentation
7+
IXP4xx
8+
- Intel IXP4xx Network processor.
79
msm
810
- MSM specific documentation
911
Netwinder
@@ -24,8 +26,16 @@ SPEAr
2426
- ST SPEAr platform Linux Overview
2527
VFP/
2628
- Release notes for Linux Kernel Vector Floating Point support code
29+
cluster-pm-race-avoidance.txt
30+
- Algorithm for CPU and Cluster setup/teardown
2731
empeg/
2832
- 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.
2939
mem_alignment
3040
- alignment abort handler documentation
3141
memory.txt
@@ -34,3 +44,7 @@ nwfpe/
3444
- NWFPE floating point emulator documentation
3545
swp_emulation
3646
- 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.

Documentation/blackfin/00-INDEX

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
00-INDEX
22
- This file
3-
3+
Makefile
4+
- Makefile for gptimers example file.
45
bfin-gpio-notes.txt
56
- Notes in developing/using bfin-gpio driver.
6-
77
bfin-spi-notes.txt
88
- Notes for using bfin spi bus driver.
9+
gptimers-example.c
10+
- gptimers example

Documentation/block/00-INDEX

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ deadline-iosched.txt
1414
- Deadline IO scheduler tunables
1515
ioprio.txt
1616
- Block io priorities (in CFQ scheduler)
17+
null_blk.txt
18+
- Null block for block-layer benchmarking.
1719
queue-sysfs.txt
1820
- Queue's sysfs entries
1921
request.txt

Documentation/devicetree/00-INDEX

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,3 +8,5 @@ https://lists.ozlabs.org/listinfo/devicetree-discuss
88
- this file
99
booting-without-of.txt
1010
- 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.

Documentation/devicetree/bindings/arm/omap/omap.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ Boards:
9191
compatible = "ti,omap3-beagle", "ti,omap3"
9292

9393
- OMAP3 Tobi with Overo : Commercial expansion board with daughter board
94-
compatible = "ti,omap3-tobi", "ti,omap3-overo", "ti,omap3"
94+
compatible = "gumstix,omap3-overo-tobi", "gumstix,omap3-overo", "ti,omap3"
9595

9696
- OMAP4 SDP : Software Development Board
9797
compatible = "ti,omap4-sdp", "ti,omap4430"

Documentation/devicetree/bindings/dma/fsl-imx-sdma.txt

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
* Freescale Smart Direct Memory Access (SDMA) Controller for i.MX
22

33
Required properties:
4-
- compatible : Should be "fsl,imx31-sdma", "fsl,imx31-to1-sdma",
5-
"fsl,imx31-to2-sdma", "fsl,imx35-sdma", "fsl,imx35-to1-sdma",
6-
"fsl,imx35-to2-sdma", "fsl,imx51-sdma", "fsl,imx53-sdma" or
7-
"fsl,imx6q-sdma". The -to variants should be preferred since they
8-
allow to determnine the correct ROM script addresses needed for
9-
the driver to work without additional firmware.
4+
- compatible : Should be one of
5+
"fsl,imx25-sdma"
6+
"fsl,imx31-sdma", "fsl,imx31-to1-sdma", "fsl,imx31-to2-sdma"
7+
"fsl,imx35-sdma", "fsl,imx35-to1-sdma", "fsl,imx35-to2-sdma"
8+
"fsl,imx51-sdma"
9+
"fsl,imx53-sdma"
10+
"fsl,imx6q-sdma"
11+
The -to variants should be preferred since they allow to determnine the
12+
correct ROM script addresses needed for the driver to work without additional
13+
firmware.
1014
- reg : Should contain SDMA registers location and length
1115
- interrupts : Should contain SDMA interrupt
1216
- #dma-cells : Must be <3>.

0 commit comments

Comments
 (0)