Loading Documentation/DocBook/kernel-locking.tmpl +78 −45 Original line number Original line Diff line number Diff line Loading @@ -551,10 +551,12 @@ <function>spin_lock_irqsave()</function>, which is a superset <function>spin_lock_irqsave()</function>, which is a superset of all other spinlock primitives. of all other spinlock primitives. </para> </para> <table> <table> <title>Table of Locking Requirements</title> <title>Table of Locking Requirements</title> <tgroup cols="11"> <tgroup cols="11"> <tbody> <tbody> <row> <row> <entry></entry> <entry></entry> <entry>IRQ Handler A</entry> <entry>IRQ Handler A</entry> Loading @@ -576,97 +578,128 @@ <row> <row> <entry>IRQ Handler B</entry> <entry>IRQ Handler B</entry> <entry>spin_lock_irqsave</entry> <entry>SLIS</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Softirq A</entry> <entry>Softirq A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> </row> </row> <row> <row> <entry>Softirq B</entry> <entry>Softirq B</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> </row> </row> <row> <row> <entry>Tasklet A</entry> <entry>Tasklet A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Tasklet B</entry> <entry>Tasklet B</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Timer A</entry> <entry>Timer A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Timer B</entry> <entry>Timer B</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>User Context A</entry> <entry>User Context A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>User Context B</entry> <entry>User Context B</entry> <entry>SLI</entry> <entry>SLI</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>DI</entry> <entry>None</entry> </row> </tbody> </tgroup> </table> <table> <title>Legend for Locking Requirements Table</title> <tgroup cols="2"> <tbody> <row> <entry>SLIS</entry> <entry>spin_lock_irqsave</entry> </row> <row> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>spin_lock_irq</entry> <entry>spin_lock_irq</entry> </row> <entry>spin_lock_bh</entry> <row> <entry>spin_lock_bh</entry> <entry>SL</entry> <entry>spin_lock_bh</entry> <entry>spin_lock</entry> <entry>spin_lock_bh</entry> </row> <entry>spin_lock_bh</entry> <row> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>spin_lock_bh</entry> </row> <row> <entry>DI</entry> <entry>down_interruptible</entry> <entry>down_interruptible</entry> <entry>None</entry> </row> </row> </tbody> </tbody> </tgroup> </tgroup> </table> </table> </sect1> </sect1> </chapter> </chapter> Loading Documentation/gpio.txt +6 −2 Original line number Original line Diff line number Diff line Loading @@ -111,7 +111,9 @@ setting up a platform_device using the GPIO, is mark its direction: The return value is zero for success, else a negative errno. It should The return value is zero for success, else a negative errno. It should be checked, since the get/set calls don't have error returns and since be checked, since the get/set calls don't have error returns and since misconfiguration is possible. (These calls could sleep.) misconfiguration is possible. You should normally issue these calls from a task context. However, for spinlock-safe GPIOs it's OK to use them before tasking is enabled, as part of early board setup. For output GPIOs, the value provided becomes the initial output value. For output GPIOs, the value provided becomes the initial output value. This helps avoid signal glitching during system startup. This helps avoid signal glitching during system startup. Loading Loading @@ -197,7 +199,9 @@ However, many platforms don't currently support this mechanism. Passing invalid GPIO numbers to gpio_request() will fail, as will requesting Passing invalid GPIO numbers to gpio_request() will fail, as will requesting GPIOs that have already been claimed with that call. The return value of GPIOs that have already been claimed with that call. The return value of gpio_request() must be checked. (These calls could sleep.) gpio_request() must be checked. You should normally issue these calls from a task context. However, for spinlock-safe GPIOs it's OK to request GPIOs before tasking is enabled, as part of early board setup. These calls serve two basic purposes. One is marking the signals which These calls serve two basic purposes. One is marking the signals which are actually in use as GPIOs, for better diagnostics; systems may have are actually in use as GPIOs, for better diagnostics; systems may have Loading Documentation/vm/slabinfo.c +12 −5 Original line number Original line Diff line number Diff line Loading @@ -242,6 +242,9 @@ void decode_numa_list(int *numa, char *t) memset(numa, 0, MAX_NODES * sizeof(int)); memset(numa, 0, MAX_NODES * sizeof(int)); if (!t) return; while (*t == 'N') { while (*t == 'N') { t++; t++; node = strtoul(t, &t, 10); node = strtoul(t, &t, 10); Loading Loading @@ -386,7 +389,9 @@ void report(struct slabinfo *s) { { if (strcmp(s->name, "*") == 0) if (strcmp(s->name, "*") == 0) return; return; printf("\nSlabcache: %-20s Aliases: %2d Order : %2d\n", s->name, s->aliases, s->order); printf("\nSlabcache: %-20s Aliases: %2d Order : %2d Objects: %d\n", s->name, s->aliases, s->order, s->objects); if (s->hwcache_align) if (s->hwcache_align) printf("** Hardware cacheline aligned\n"); printf("** Hardware cacheline aligned\n"); if (s->cache_dma) if (s->cache_dma) Loading Loading @@ -1100,6 +1105,8 @@ void output_slabs(void) ops(slab); ops(slab); else if (show_slab) else if (show_slab) slabcache(slab); slabcache(slab); else if (show_report) report(slab); } } } } Loading MAINTAINERS +2 −2 Original line number Original line Diff line number Diff line Loading @@ -2689,13 +2689,13 @@ L: i2c@lm-sensors.org S: Maintained S: Maintained PARALLEL PORT SUPPORT PARALLEL PORT SUPPORT L: linux-parport@lists.infradead.org L: linux-parport@lists.infradead.org (subscribers-only) S: Orphan S: Orphan PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES P: Tim Waugh P: Tim Waugh M: tim@cyberelk.net M: tim@cyberelk.net L: linux-parport@lists.infradead.org L: linux-parport@lists.infradead.org (subscribers-only) W: http://www.torque.net/linux-pp.html W: http://www.torque.net/linux-pp.html S: Maintained S: Maintained Loading arch/blackfin/Kconfig +0 −8 Original line number Original line Diff line number Diff line Loading @@ -560,14 +560,6 @@ endchoice source "mm/Kconfig" source "mm/Kconfig" config LARGE_ALLOCS bool "Allow allocating large blocks (> 1MB) of memory" help Allow the slab memory allocator to keep chains for very large memory sizes - upto 32MB. You may need this if your system has a lot of RAM, and you need to able to allocate very large contiguous chunks. If unsure, say N. config BFIN_DMA_5XX config BFIN_DMA_5XX bool "Enable DMA Support" bool "Enable DMA Support" depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) Loading Loading
Documentation/DocBook/kernel-locking.tmpl +78 −45 Original line number Original line Diff line number Diff line Loading @@ -551,10 +551,12 @@ <function>spin_lock_irqsave()</function>, which is a superset <function>spin_lock_irqsave()</function>, which is a superset of all other spinlock primitives. of all other spinlock primitives. </para> </para> <table> <table> <title>Table of Locking Requirements</title> <title>Table of Locking Requirements</title> <tgroup cols="11"> <tgroup cols="11"> <tbody> <tbody> <row> <row> <entry></entry> <entry></entry> <entry>IRQ Handler A</entry> <entry>IRQ Handler A</entry> Loading @@ -576,97 +578,128 @@ <row> <row> <entry>IRQ Handler B</entry> <entry>IRQ Handler B</entry> <entry>spin_lock_irqsave</entry> <entry>SLIS</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Softirq A</entry> <entry>Softirq A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> </row> </row> <row> <row> <entry>Softirq B</entry> <entry>Softirq B</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> </row> </row> <row> <row> <entry>Tasklet A</entry> <entry>Tasklet A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Tasklet B</entry> <entry>Tasklet B</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Timer A</entry> <entry>Timer A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>Timer B</entry> <entry>Timer B</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>spin_lock</entry> <entry>SL</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>User Context A</entry> <entry>User Context A</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>SLI</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>SLBH</entry> <entry>None</entry> <entry>None</entry> </row> </row> <row> <row> <entry>User Context B</entry> <entry>User Context B</entry> <entry>SLI</entry> <entry>SLI</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>SLBH</entry> <entry>DI</entry> <entry>None</entry> </row> </tbody> </tgroup> </table> <table> <title>Legend for Locking Requirements Table</title> <tgroup cols="2"> <tbody> <row> <entry>SLIS</entry> <entry>spin_lock_irqsave</entry> </row> <row> <entry>SLI</entry> <entry>spin_lock_irq</entry> <entry>spin_lock_irq</entry> <entry>spin_lock_irq</entry> </row> <entry>spin_lock_bh</entry> <row> <entry>spin_lock_bh</entry> <entry>SL</entry> <entry>spin_lock_bh</entry> <entry>spin_lock</entry> <entry>spin_lock_bh</entry> </row> <entry>spin_lock_bh</entry> <row> <entry>SLBH</entry> <entry>spin_lock_bh</entry> <entry>spin_lock_bh</entry> </row> <row> <entry>DI</entry> <entry>down_interruptible</entry> <entry>down_interruptible</entry> <entry>None</entry> </row> </row> </tbody> </tbody> </tgroup> </tgroup> </table> </table> </sect1> </sect1> </chapter> </chapter> Loading
Documentation/gpio.txt +6 −2 Original line number Original line Diff line number Diff line Loading @@ -111,7 +111,9 @@ setting up a platform_device using the GPIO, is mark its direction: The return value is zero for success, else a negative errno. It should The return value is zero for success, else a negative errno. It should be checked, since the get/set calls don't have error returns and since be checked, since the get/set calls don't have error returns and since misconfiguration is possible. (These calls could sleep.) misconfiguration is possible. You should normally issue these calls from a task context. However, for spinlock-safe GPIOs it's OK to use them before tasking is enabled, as part of early board setup. For output GPIOs, the value provided becomes the initial output value. For output GPIOs, the value provided becomes the initial output value. This helps avoid signal glitching during system startup. This helps avoid signal glitching during system startup. Loading Loading @@ -197,7 +199,9 @@ However, many platforms don't currently support this mechanism. Passing invalid GPIO numbers to gpio_request() will fail, as will requesting Passing invalid GPIO numbers to gpio_request() will fail, as will requesting GPIOs that have already been claimed with that call. The return value of GPIOs that have already been claimed with that call. The return value of gpio_request() must be checked. (These calls could sleep.) gpio_request() must be checked. You should normally issue these calls from a task context. However, for spinlock-safe GPIOs it's OK to request GPIOs before tasking is enabled, as part of early board setup. These calls serve two basic purposes. One is marking the signals which These calls serve two basic purposes. One is marking the signals which are actually in use as GPIOs, for better diagnostics; systems may have are actually in use as GPIOs, for better diagnostics; systems may have Loading
Documentation/vm/slabinfo.c +12 −5 Original line number Original line Diff line number Diff line Loading @@ -242,6 +242,9 @@ void decode_numa_list(int *numa, char *t) memset(numa, 0, MAX_NODES * sizeof(int)); memset(numa, 0, MAX_NODES * sizeof(int)); if (!t) return; while (*t == 'N') { while (*t == 'N') { t++; t++; node = strtoul(t, &t, 10); node = strtoul(t, &t, 10); Loading Loading @@ -386,7 +389,9 @@ void report(struct slabinfo *s) { { if (strcmp(s->name, "*") == 0) if (strcmp(s->name, "*") == 0) return; return; printf("\nSlabcache: %-20s Aliases: %2d Order : %2d\n", s->name, s->aliases, s->order); printf("\nSlabcache: %-20s Aliases: %2d Order : %2d Objects: %d\n", s->name, s->aliases, s->order, s->objects); if (s->hwcache_align) if (s->hwcache_align) printf("** Hardware cacheline aligned\n"); printf("** Hardware cacheline aligned\n"); if (s->cache_dma) if (s->cache_dma) Loading Loading @@ -1100,6 +1105,8 @@ void output_slabs(void) ops(slab); ops(slab); else if (show_slab) else if (show_slab) slabcache(slab); slabcache(slab); else if (show_report) report(slab); } } } } Loading
MAINTAINERS +2 −2 Original line number Original line Diff line number Diff line Loading @@ -2689,13 +2689,13 @@ L: i2c@lm-sensors.org S: Maintained S: Maintained PARALLEL PORT SUPPORT PARALLEL PORT SUPPORT L: linux-parport@lists.infradead.org L: linux-parport@lists.infradead.org (subscribers-only) S: Orphan S: Orphan PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES PARIDE DRIVERS FOR PARALLEL PORT IDE DEVICES P: Tim Waugh P: Tim Waugh M: tim@cyberelk.net M: tim@cyberelk.net L: linux-parport@lists.infradead.org L: linux-parport@lists.infradead.org (subscribers-only) W: http://www.torque.net/linux-pp.html W: http://www.torque.net/linux-pp.html S: Maintained S: Maintained Loading
arch/blackfin/Kconfig +0 −8 Original line number Original line Diff line number Diff line Loading @@ -560,14 +560,6 @@ endchoice source "mm/Kconfig" source "mm/Kconfig" config LARGE_ALLOCS bool "Allow allocating large blocks (> 1MB) of memory" help Allow the slab memory allocator to keep chains for very large memory sizes - upto 32MB. You may need this if your system has a lot of RAM, and you need to able to allocate very large contiguous chunks. If unsure, say N. config BFIN_DMA_5XX config BFIN_DMA_5XX bool "Enable DMA Support" bool "Enable DMA Support" depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) depends on (BF533 || BF532 || BF531 || BF537 || BF536 || BF534 || BF561) Loading