]> nv-tegra.nvidia Code Review - linux-2.6.git/log
linux-2.6.git
13 years agoARM: 5728/1: Proper prefetch abort handling on ARMv6 and ARMv7
Kirill A. Shutemov [Fri, 25 Sep 2009 12:40:49 +0000 (13:40 +0100)]
ARM: 5728/1: Proper prefetch abort handling on ARMv6 and ARMv7

Currently, on ARMv6 and ARMv7, if an application tries to execute
code (or garbage) on non-executable page it hangs. It caused by
incorrect prefetch abort handling. Now every prefetch abort
processes as a translation fault.

To fix this we have to analyze instruction fault status register
to figure out reason why we've got the abort and process it
accordingly.

To make IFSR different from DFSR we set bit 31 which is reserved in
both IFSR and DFSR.

This patch also tries to protect from future hangs on unexpected
exceptions. An application will be killed if unexpected exception
type was received.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5727/1: Pass IFSR register to do_PrefetchAbort()
Kirill A. Shutemov [Fri, 25 Sep 2009 12:39:47 +0000 (13:39 +0100)]
ARM: 5727/1: Pass IFSR register to do_PrefetchAbort()

Instruction fault status register, IFSR, was introduced on ARMv6 to
provide status information about the last insturction fault. It
needed for proper prefetch abort handling.

Now we have three prefetch abort model:

  * legacy - for CPUs before ARMv6. They doesn't provide neither
    IFSR nor IFAR. We simulate IFSR with section translation fault
    status for them to generalize code;
  * ARMv6 - provides IFSR, but not IFAR;
  * ARMv7 - provides both IFSR and IFAR.

Signed-off-by: Kirill A. Shutemov <kirill@shutemov.name>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5740/1: fix valid_phys_addr_range() range check
Greg Ungerer [Thu, 1 Oct 2009 23:45:28 +0000 (00:45 +0100)]
ARM: 5740/1: fix valid_phys_addr_range() range check

Commit 1522ac3ec95ff0230e7aa516f86b674fdf72866c
("Fix virtual to physical translation macro corner cases")
breaks the end of memory check in valid_phys_addr_range().
The modified expression results in the apparent /dev/mem size
being 2 bytes smaller than what it actually is.

This patch reworks the expression to correctly check the address,
while maintaining use of a valid address to __pa().

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5739/1: ARM: allow empty ATAG_CORE
David Brown [Thu, 1 Oct 2009 16:43:29 +0000 (17:43 +0100)]
ARM: 5739/1: ARM: allow empty ATAG_CORE

From: David Brown <davidb@quicinc.com>

The ATAG_CORE is allowed to be empty.  Although this is handled
by parse_tag_core(), __vet_atags during startup rejects this tag
unless it contains data.  Allow the initial tag to be either the
full size, or empty.

Signed-off-by: David Brown <davidb@quicinc.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5735/1: sa1111: CodingStyle cleanups
Hartley Sweeten [Tue, 29 Sep 2009 22:49:02 +0000 (23:49 +0100)]
ARM: 5735/1: sa1111: CodingStyle cleanups

EXPORT_* macros should follow immediately after the closing function
brace line.

Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
Acked-by: Kristoffer Ericson <kristoffer.ericson@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoMerge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/xscaleiop
Russell King [Fri, 2 Oct 2009 21:31:04 +0000 (22:31 +0100)]
Merge branch 'fixes' of git://git./linux/kernel/git/djbw/xscaleiop

Conflicts:
MAINTAINERS

13 years agoARM: 5738/1: Correct TCM documentation
Linus Walleij [Thu, 1 Oct 2009 13:31:22 +0000 (14:31 +0100)]
ARM: 5738/1: Correct TCM documentation

It turns out that the TCM memory can be remap:ed by the MMU just
like any other memory.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5734/1: arm: fix compilation of entry-common.S for older CPUs
Dmitry Artamonow [Tue, 29 Sep 2009 05:12:37 +0000 (06:12 +0100)]
ARM: 5734/1: arm: fix compilation of entry-common.S for older CPUs

Commit 181f817eaaca4c1f introduced some new code to entry-common.S
Sadly, this new code uses 'bx' instruction which is available only on
ARMv5 and higher CPUs. This causes following compilation errors when
building kernel for StrongARM (ARMv4):

arch/arm/kernel/entry-common.S: Assembler messages:
arch/arm/kernel/entry-common.S:129: Error: selected processor does not
 support `bx ip'
arch/arm/kernel/entry-common.S:138: Error: selected processor does not
 support `bx ip'

Fix these errors by using 'mov pc' instead of 'bx'.

Signed-off-by: Dmitry Artamonow <mad_soft@inbox.ru>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5733/1: fix bcmring compile error
Leo Chen [Mon, 28 Sep 2009 20:56:19 +0000 (21:56 +0100)]
ARM: 5733/1: fix bcmring compile error

The movement of the MMCI header file made bcmring break. It turns
out it was including asm/mmc.h without using it so fixing the
problem boils down to removing the offending include.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Acked-by: Scott Branden <sbranden@broadcom.com>
Signed-off-by: Leo Hao Chen <leochen@broadcom.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5732/1: remove redundant include file
Leo Chen [Mon, 28 Sep 2009 20:41:46 +0000 (21:41 +0100)]
ARM: 5732/1: remove redundant include file

Remove duplicated #include('s) in arch/arm/mach-bcmring/core.c

Signed-off-by: Huang Weiyi <weiyi.huang@gmail.com>
Signed-off-by: Leo Chen <leochen@broadcom.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: 5731/2: Fix U300 generic GPIO, remove ifdefs from MMCI v3
Linus Walleij [Mon, 28 Sep 2009 11:36:18 +0000 (12:36 +0100)]
ARM: 5731/2: Fix U300 generic GPIO, remove ifdefs from MMCI v3

The #ifdefs in the MMCI driver were erroneous and just masking
a bug in the U300 generic GPIO implementation. This removes the
ifdefs and fixes the U300 generic GPIO instead.

Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: Ensure do_cache_op takes mmap_sem
Russell King [Mon, 28 Sep 2009 10:41:51 +0000 (11:41 +0100)]
ARM: Ensure do_cache_op takes mmap_sem

do_cache_op() uses find_vma() to validate its arguments without holding
any locking.  This means that the VMA could vanish beneath us.  Fix
this by taking a read lock on mmap_sem.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: Fix __cpuexit section mismatch warnings
Russell King [Sun, 27 Sep 2009 20:04:48 +0000 (21:04 +0100)]
ARM: Fix __cpuexit section mismatch warnings

Fix:

WARNING: vmlinux.o(.text+0x247c): Section mismatch in reference from the function cpu_idle() to the function .cpuexit.text:cpu_die()
The function cpu_idle() references a function in an exit section.
Often the function cpu_die() has valid usage outside the exit section
and the fix is to remove the __cpuexit annotation of cpu_die.

WARNING: vmlinux.o(.cpuexit.text+0x3c): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
The function __cpuexit cpu_die() references
a function __cpuinit secondary_start_kernel().
This is often seen when error handling in the exit function
uses functionality in the init path.
The fix is often to remove the __cpuinit annotation of
secondary_start_kernel() so it may be used outside an init section.

Sam says:
> The annotation of cpu_die() is wrong.
> To be annotated __cpuexit the function shall:
> - be used in exit context and only in exit context with HOTPLUG_CPU=n
> - be used outside exit context with HOTPLUG_CPU=y

So, this also means __cpu_disable(), __cpu_die() and twd_timer_stop() are
also wrong.  However, removing __cpuexit from cpu_die() creates:

WARNING: vmlinux.o(.text+0x6834): Section mismatch in reference from the function cpu_die() to the function .cpuinit.text:secondary_start_kernel()
The function cpu_die() references
the function __cpuinit secondary_start_kernel().
This is often because cpu_die lacks a __cpuinit
annotation or the annotation of secondary_start_kernel is wrong.

so fix this using __ref.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
13 years agoARM: Don't allow highmem on SMP platforms without h/w TLB ops broadcast
Russell King [Sun, 27 Sep 2009 19:55:43 +0000 (20:55 +0100)]
ARM: Don't allow highmem on SMP platforms without h/w TLB ops broadcast

We suffer an unfortunate combination of "features" which makes highmem
support on platforms without hardware TLB maintainence broadcast difficult:

- we need kmap_high_get() support for DMA cache coherence
- this requires kmap_high() to take a spinlock with IRQs disabled
- kmap_high() occasionally calls flush_all_zero_pkmaps() to clear
  out old mappings
- flush_all_zero_pkmaps() calls flush_tlb_kernel_range(), which
  on s/w IPI'd systems eventually calls smp_call_function_many()
- smp_call_function_many() must not be called with IRQs disabled:

WARNING: at kernel/smp.c:380 smp_call_function_many+0xc4/0x240()
Modules linked in:
Backtrace:
[<c00306f0>] (dump_backtrace+0x0/0x108) from [<c0286e6c>] (dump_stack+0x18/0x1c)
 r6:c007cd18 r5:c02ff228 r4:0000017c
[<c0286e54>] (dump_stack+0x0/0x1c) from [<c0053e08>] (warn_slowpath_common+0x50/0x80)
[<c0053db8>] (warn_slowpath_common+0x0/0x80) from [<c0053e50>] (warn_slowpath_null+0x18/0x1c)
 r7:00000003 r6:00000001 r5:c1ff4000 r4:c035fa34
[<c0053e38>] (warn_slowpath_null+0x0/0x1c) from [<c007cd18>] (smp_call_function_many+0xc4/0x240)
[<c007cc54>] (smp_call_function_many+0x0/0x240) from [<c007cec0>] (smp_call_function+0x2c/0x38)
[<c007ce94>] (smp_call_function+0x0/0x38) from [<c005980c>] (on_each_cpu+0x1c/0x38)
[<c00597f0>] (on_each_cpu+0x0/0x38) from [<c0031788>] (flush_tlb_kernel_range+0x50/0x58)
 r6:00000001 r5:00000800 r4:c05f3590
[<c0031738>] (flush_tlb_kernel_range+0x0/0x58) from [<c009c600>] (flush_all_zero_pkmaps+0xc0/0xe8)
[<c009c540>] (flush_all_zero_pkmaps+0x0/0xe8) from [<c009c6b4>] (kmap_high+0x8c/0x1e0)
[<c009c628>] (kmap_high+0x0/0x1e0) from [<c00364a8>] (kmap+0x44/0x5c)
[<c0036464>] (kmap+0x0/0x5c) from [<c0109dfc>] (cramfs_readpage+0x3c/0x194)
[<c0109dc0>] (cramfs_readpage+0x0/0x194) from [<c0090c14>] (__do_page_cache_readahead+0x1f0/0x290)
[<c0090a24>] (__do_page_cache_readahead+0x0/0x290) from [<c0090ce4>] (ra_submit+0x30/0x38)
[<c0090cb4>] (ra_submit+0x0/0x38) from [<c0089384>] (filemap_fault+0x3dc/0x438)
 r4:c1819988
[<c0088fa8>] (filemap_fault+0x0/0x438) from [<c009d21c>] (__do_fault+0x58/0x43c)
[<c009d1c4>] (__do_fault+0x0/0x43c) from [<c009e8cc>] (handle_mm_fault+0x104/0x318)
[<c009e7c8>] (handle_mm_fault+0x0/0x318) from [<c0033c98>] (do_page_fault+0x188/0x1e4)
[<c0033b10>] (do_page_fault+0x0/0x1e4) from [<c0033ddc>] (do_translation_fault+0x7c/0x84)
[<c0033d60>] (do_translation_fault+0x0/0x84) from [<c002b474>] (do_DataAbort+0x40/0xa4)
 r8:c1ff5e20 r7:c0340120 r6:00000805 r5:c1ff5e54 r4:c03400d0
[<c002b434>] (do_DataAbort+0x0/0xa4) from [<c002bcac>] (__dabt_svc+0x4c/0x60)
...

So we disable highmem support on these systems.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: includecheck fix: mach-davinci, board-dm365-evm.c
Jaswinder Singh Rajput [Tue, 22 Sep 2009 13:07:01 +0000 (18:37 +0530)]
ARM: includecheck fix: mach-davinci, board-dm365-evm.c

fix the following 'make includecheck' warning:

  arch/arm/mach-davinci/board-dm365-evm.c: mach/common.h is included more than once.

Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: Remove unused CONFIG SA1100_H3XXX
Jaswinder Singh Rajput [Sat, 26 Sep 2009 14:50:06 +0000 (20:20 +0530)]
ARM: Remove unused CONFIG SA1100_H3XXX

Removed unused CONFIG SA1100_H3XXX from Kconfig and defconfig

Reported-by: Robert P. J. Day <rpjday@crashcourse.ca>
Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com>
Acked-by: Dmitry Artamonow <mad_soft@inbox.ru>
Cc: Philipp Zabel <philipp.zabel@gmail.com>
Cc: Kristoffer Ericson <kristoffer.ericson@gmail.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: Fix warning: unused variable 'highmem'
Russell King [Sun, 27 Sep 2009 16:40:42 +0000 (17:40 +0100)]
ARM: Fix warning: unused variable 'highmem'

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: Fix warning: #warning syscall migrate_pages not implemented
Russell King [Sun, 27 Sep 2009 16:40:03 +0000 (17:40 +0100)]
ARM: Fix warning: #warning syscall migrate_pages not implemented

We're not implementing this syscall (we're not NUMA) so we might as
well silence this warning.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: Fix SA11x0 clocksource warning
Russell King [Sun, 27 Sep 2009 16:32:47 +0000 (17:32 +0100)]
ARM: Fix SA11x0 clocksource warning

8e19608 missed updating SA11x0, and thus:

arch/arm/mach-sa1100/time.c:88: warning: initialization from incompatible pointer type

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
13 years agoARM: Fix SA1100 Neponset serial section mismatch
Russell King [Sun, 27 Sep 2009 16:31:27 +0000 (17:31 +0100)]
ARM: Fix SA1100 Neponset serial section mismatch

WARNING: vmlinux.o(.devinit.text+0x524): Section mismatch in reference from the function neponset_probe() to the function .init.text:sa1100_register_uart_fns()
The function __devinit neponset_probe() references
a function __init sa1100_register_uart_fns().
If sa1100_register_uart_fns is only used by neponset_probe then
annotate sa1100_register_uart_fns with a matching annotation.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
13 years agoARM: Fix SA1100 Assabet/Neponset PCMCIA section mismatch warnings
Russell King [Sun, 27 Sep 2009 16:30:21 +0000 (17:30 +0100)]
ARM: Fix SA1100 Assabet/Neponset PCMCIA section mismatch warnings

WARNING: drivers/pcmcia/sa1100_cs.o(.data+0x48): Section mismatch in reference from the variable sa11x0_pcmcia_hw_init to the function .init.text:pcmcia_assabet_init()
The variable sa11x0_pcmcia_hw_init references
the function __init pcmcia_assabet_init()
If the reference is valid then annotate the
variable with __init* or __refdata (see linux/init.h) or name the variable:
*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console,

WARNING: drivers/pcmcia/sa1111_cs.o(.text+0x298): Section mismatch in reference from the function pcmcia_probe() to the function .init.text:pcmcia_neponset_init()
The function pcmcia_probe() references
the function __init pcmcia_neponset_init().
This is often because pcmcia_probe lacks a __init
annotation or the annotation of pcmcia_neponset_init is wrong.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
13 years agoARM: Fix section mismatch warning in Integrator pci_v3
Russell King [Sun, 27 Sep 2009 15:50:05 +0000 (16:50 +0100)]
ARM: Fix section mismatch warning in Integrator pci_v3

WARNING: vmlinux.o(.text+0xc9d4): Section mismatch in reference from the function pci_v3_scan_bus() to the function .devinit.text:pci_scan_bus_parented()
The function pci_v3_scan_bus() references
the function __devinit pci_scan_bus_parented().
This is often because pci_v3_scan_bus lacks a __devinit
annotation or the annotation of pci_scan_bus_parented is wrong.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Acked-by: Sam Ravnborg <sam@ravnborg.org>
13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes
Linus Torvalds [Sat, 26 Sep 2009 17:51:54 +0000 (10:51 -0700)]
Merge git://git./linux/kernel/git/sam/kbuild-fixes

* git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
  alpha: fix build after vmlinux.lds.S cleanup
  mips: fix build of vmlinux.lds

13 years agoMerge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds
Linus Torvalds [Sat, 26 Sep 2009 17:50:47 +0000 (10:50 -0700)]
Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds

* 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds:
  leds: move leds-clevo-mail's probe function to .devinit.text
  leds: Fix indentation in LEDS_LP3944 Kconfig entry
  leds: Fix LED names
  leds: Fix leds-pca9532 whitespace issues
  leds: fix coding style in worker thread code for ledtrig-gpio.
  leds: gpio-leds: fix typographics fault
  leds: Add WM831x status LED driver

13 years agoMerge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight
Linus Torvalds [Sat, 26 Sep 2009 17:49:42 +0000 (10:49 -0700)]
Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight

* 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight:
  backlight: new driver for ADP5520/ADP5501 MFD PMICs
  backlight: extend event support to also support poll()
  backlight/eeepc-laptop: Update the backlight state when we change brightness
  backlight/acpi: Update the backlight state when we change brightness
  backlight: Allow drivers to update the core, and generate events on changes
  backlight: switch to da903x driver to dev_pm_ops
  backlight: Add support for the Avionic Design Xanthos backlight device.
  backlight: spi driver for LMS283GF05 LCD
  backlight: move hp680-bl's probe function to .devinit.text
  backlight: Add support for new Apple machines.
  backlight: mbp_nvidia_bl: add support for MacBookAir 1,1
  backlight: Add WM831x backlight driver

Trivial conflicts due to '#ifdef CONFIG_PM' differences in
drivers/video/backlight/da903x_bl.c

13 years agoheaders: kref.h redux
Alexey Dobriyan [Sat, 26 Sep 2009 15:37:22 +0000 (19:37 +0400)]
headers: kref.h redux

* remove asm/atomic.h inclusion from kref.h -- not needed, linux/types.h
  is enough for atomic_t
* remove linux/kref.h inclusion from files which do not need it.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agoMerge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 26 Sep 2009 17:15:53 +0000 (10:15 -0700)]
Merge branch 'core-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  futex: Add memory barrier commentary to futex_wait_queue_me()
  futex: Fix wakeup race by setting TASK_INTERRUPTIBLE before queue_me()
  futex: Correct futex_q woken state commentary
  futex: Make function kernel-doc commentary consistent
  futex: Correct queue_me and unqueue_me commentary
  futex: Correct futex_wait_requeue_pi() commentary

13 years agoMerge branch 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 26 Sep 2009 17:15:33 +0000 (10:15 -0700)]
Merge branch 'perf-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  perf tools: Dont use openat()
  perf tools: Fix buffer allocation
  perf tools: .gitignore += perf*.html
  perf tools: Handle relative paths while loading module symbols
  perf tools: Fix module symbol loading bug
  perf_event, x86: Fix 'perf sched record' crashing the machine
  perf_event: Update PERF_EVENT_FORK header definition
  perf stat: Fix zero total printouts

13 years agoMerge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 26 Sep 2009 17:14:41 +0000 (10:14 -0700)]
Merge branch 'timers-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  clocksource: Resume clocksource without taking the clocksource mutex

13 years agoMerge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
Linus Torvalds [Sat, 26 Sep 2009 17:13:54 +0000 (10:13 -0700)]
Merge branch 'tracing-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  modules, tracing: Remove stale struct marker signature from module_layout()
  tracing/workqueue: Use %pf in workqueue trace events
  tracing: Fix a comment and a trivial format issue in tracepoint.h
  tracing: Fix failure path in ftrace_regex_open()
  tracing: Fix failure path in ftrace_graph_write()
  tracing: Check the return value of trace_get_user()
  tracing: Fix off-by-one in trace_get_user()

13 years agoMerge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git...
Linus Torvalds [Sat, 26 Sep 2009 17:13:35 +0000 (10:13 -0700)]
Merge branch 'x86-fixes-for-linus' of git://git./linux/kernel/git/tip/linux-2.6-tip

* 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
  x86: Remove redundant non-NUMA topology functions
  x86: early_printk: Protect against using the same device twice
  x86: Reduce verbosity of "PAT enabled" kernel message
  x86: Reduce verbosity of "TSC is reliable" message
  x86: mce: Use safer ways to access MCE registers
  x86: mce, inject: Use real inject-msg in raise_local
  x86: mce: Fix thermal throttling message storm
  x86: mce: Clean up thermal throttling state tracking code
  x86: split NX setup into separate file to limit unstack-protected code
  xen: check EFER for NX before setting up GDT mapping
  x86: Cleanup linker script using new linker script macros.
  x86: Use section .data.page_aligned for the idt_table.
  x86: convert to use __HEAD and HEAD_TEXT macros.
  x86: convert compressed loader to use __HEAD and HEAD_TEXT macros.
  x86: fix fragile computation of vsyscall address

13 years agoMerge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux...
Linus Torvalds [Sat, 26 Sep 2009 17:12:03 +0000 (10:12 -0700)]
Merge branch 'release' of git://git./linux/kernel/git/lenb/linux-acpi-2.6

* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6: (32 commits)
  ACPI: i2c-scmi: don't use acpi_device_uid()
  ACPI: simplify building device HID/CID list
  ACPI: remove acpi_device_uid() and related stuff
  ACPI: remove acpi_device.flags.hardware_id
  ACPI: remove acpi_device.flags.compatible_ids
  ACPI: maintain a single list of _HID and _CID IDs
  ACPI: make sure every acpi_device has an ID
  ACPI: use acpi_device_hid() when possible
  ACPI: fix synthetic HID for \_SB_
  ACPI: handle re-enumeration, when acpi_devices might already exist
  ACPI: factor out device type and status checking
  ACPI: add acpi_bus_get_status_handle()
  ACPI: use acpi_walk_namespace() to enumerate devices
  ACPI: identify device tree root by null parent pointer, not ACPI_BUS_TYPE
  ACPI: enumerate namespace before adding functional fixed hardware devices
  ACPI: convert acpi_bus_scan() to operate on an acpi_handle
  ACPI: add acpi_bus_get_parent() and remove "parent" arguments
  ACPI: remove unnecessary argument checking
  ACPI: remove redundant "type" arguments
  ACPI: remove acpi_device_set_context() "type" argument
  ...

13 years agoMerge branch 'writeback' of git://git.kernel.dk/linux-2.6-block
Linus Torvalds [Sat, 26 Sep 2009 17:11:13 +0000 (10:11 -0700)]
Merge branch 'writeback' of git://git.kernel.dk/linux-2.6-block

* 'writeback' of git://git.kernel.dk/linux-2.6-block:
  writeback: pass in super_block to bdi_start_writeback()

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6
Linus Torvalds [Sat, 26 Sep 2009 17:10:35 +0000 (10:10 -0700)]
Merge git://git./linux/kernel/git/sfrench/cifs-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
  cifs: fix locking and list handling code in cifs_open and its helper
  [CIFS] Remove build warning
  cifs: fix problems with last two commits
  [CIFS] Fix build break when keys support turned off
  cifs: eliminate cifs_init_private
  cifs: convert oplock breaks to use slow_work facility (try #4)
  cifs: have cifsFileInfo hold an extra inode reference
  cifs: take read lock on GlobalSMBSes_lock in is_valid_oplock_break
  cifs: remove cifsInodeInfo.oplockPending flag
  cifs: fix oplock request handling in posix codepath
  [CIFS] Re-enable Lanman security

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Sat, 26 Sep 2009 17:09:39 +0000 (10:09 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6:
  at91_can: Forgotten git 'add' of at91_can.c
  TI Davinci EMAC: Fix in vector definition for EMAC_VERSION_2
  ax25: Fix ax25_cb refcounting in ax25_ctl_ioctl
  virtio_net: Check for room in the vq before adding buffer
  virtio_net: avoid (most) NETDEV_TX_BUSY by stopping queue early.
  virtio_net: formalize skb_vnet_hdr
  virtio_net: don't free buffers in xmit ring
  virtio_net: return NETDEV_TX_BUSY instead of queueing an extra skb.
  virtio_net: skb_orphan() and nf_reset() in xmit path.

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6
Linus Torvalds [Sat, 26 Sep 2009 17:08:23 +0000 (10:08 -0700)]
Merge git://git./linux/kernel/git/davem/sparc-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc64: vio: Kill BUILD_BUG_ON() in vio_dring_avail().

Trivial conflict in arch/sparc/include/asm/vio.h due to David removing
the whole messy BUG_ON that was confused.

13 years agomake Linux bootable on ARM again
Nicolas Pitre [Fri, 25 Sep 2009 20:28:02 +0000 (16:28 -0400)]
make Linux bootable on ARM again

Commit 200b812d00 "Clear the exclusive monitor when returning from an
exception" broke the vast majority of ARM systems in the wild which are
still pre ARMv6.  The kernel is crashing on the first occurrence of an
exception due to the removal of the actual return instruction for them.
Let's add it back.

Signed-off-by: Nicolas Pitre <nico@marvell.com>
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
13 years agobacklight: new driver for ADP5520/ADP5501 MFD PMICs
Michael Hennerich [Thu, 17 Sep 2009 18:29:52 +0000 (14:29 -0400)]
backlight: new driver for ADP5520/ADP5501 MFD PMICs

Signed-off-by: Michael Hennerich <michael.hennerich@analog.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
13 years agobacklight: extend event support to also support poll()
Henrique de Moraes Holschuh [Sun, 20 Sep 2009 17:44:47 +0000 (14:44 -0300)]
backlight: extend event support to also support poll()

Extend the backlight event support to also allow the use of
poll()/select() on actual_brightness.

We already have the entire event hookup anyway, adding a single
function call in one line to get functionality like that is a really
good deal.

Signed-off-by: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Signed-off-by: Richard Purdie <rpurdie@linux.intel.com>
13 years agoACPI: i2c-scmi: don't use acpi_device_uid()
Bjorn Helgaas [Sat, 26 Sep 2009 03:11:43 +0000 (21:11 -0600)]
ACPI: i2c-scmi: don't use acpi_device_uid()

We recently removed the acpi_device_uid() interface because nobody
used it.  I don't think it's essential here either.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoMerge branch 'thinkpad-2.6.32-part2' into release
Len Brown [Sat, 26 Sep 2009 05:08:55 +0000 (01:08 -0400)]
Merge branch 'thinkpad-2.6.32-part2' into release

13 years agoMerge branch 'bjorn-HID' into release
Len Brown [Sat, 26 Sep 2009 05:08:43 +0000 (01:08 -0400)]
Merge branch 'bjorn-HID' into release

13 years agowriteback: pass in super_block to bdi_start_writeback()
Jens Axboe [Fri, 25 Sep 2009 22:07:46 +0000 (00:07 +0200)]
writeback: pass in super_block to bdi_start_writeback()

Sometimes we only want to write pages from a specific super_block,
so allow that to be passed in.

This fixes a problem with commit 56a131dcf7ed36c3c6e36bea448b674ea85ed5bb
causing writeback on all super_blocks on a bdi, where we only really
want to sync a specific sb from writeback_inodes_sb().

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agoat91_can: Forgotten git 'add' of at91_can.c
David S. Miller [Fri, 25 Sep 2009 19:14:43 +0000 (12:14 -0700)]
at91_can: Forgotten git 'add' of at91_can.c

Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoTI Davinci EMAC: Fix in vector definition for EMAC_VERSION_2
Sriram [Thu, 24 Sep 2009 19:15:18 +0000 (19:15 +0000)]
TI Davinci EMAC: Fix in vector definition for EMAC_VERSION_2

In the emac_poll function when looking for interrupt status masks
correct definition must be chosen based on EMAC_VERSION(the bit
mask has changed from version 1 to version 2).

Signed-off-by: Sriram <srk@ti.com>
Acked-by: Chaithrika U S <chaithrika@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoax25: Fix ax25_cb refcounting in ax25_ctl_ioctl
Jarek Poplawski [Fri, 25 Sep 2009 03:10:38 +0000 (03:10 +0000)]
ax25: Fix ax25_cb refcounting in ax25_ctl_ioctl

Use ax25_cb_put after ax25_find_cb in ax25_ctl_ioctl.

Reported-by: Bernard Pidoux F6BVP <f6bvp@free.fr>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Reviewed-by: Ralf Baechle <ralf@linux-mips.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
13 years agoACPI: simplify building device HID/CID list
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:40 +0000 (13:35 -0600)]
ACPI: simplify building device HID/CID list

Minor code cleanup, no functional change.  Instead of remembering
what HIDs & CIDs to add later, just add them immediately.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove acpi_device_uid() and related stuff
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:35 +0000 (13:35 -0600)]
ACPI: remove acpi_device_uid() and related stuff

Nobody uses acpi_device_uid(), so this patch removes it.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove acpi_device.flags.hardware_id
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:29 +0000 (13:35 -0600)]
ACPI: remove acpi_device.flags.hardware_id

Every acpi_device has at least one ID (if there's no _HID or _CID, we
give it a synthetic or default ID).  So there's no longer a need to
check whether an ID exists; we can just use it.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove acpi_device.flags.compatible_ids
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:24 +0000 (13:35 -0600)]
ACPI: remove acpi_device.flags.compatible_ids

We now keep a single list of IDs that includes both the _HID and any
_CIDs.  We no longer need to keep track of whether the device has a _CID.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: maintain a single list of _HID and _CID IDs
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:19 +0000 (13:35 -0600)]
ACPI: maintain a single list of _HID and _CID IDs

There's no need to treat _HID and _CID differently.  Keeping them in
a single list makes code that uses the IDs a little simpler because it
can just traverse the list rather than checking "do we have a HID?",
"do we have any CIDs?"

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Reviewed-by: Alex Chiang <achiang@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: make sure every acpi_device has an ID
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:14 +0000 (13:35 -0600)]
ACPI: make sure every acpi_device has an ID

This makes sure every acpi_device has at least one ID.  If we build an
acpi_device for a namespace node with no _HID or _CID, we sometimes
synthesize an ID like "LNXCPU" or "LNXVIDEO".  If we don't even have
that, give it a default "device" ID.

Note that this means things like:
    /sys/devices/LNXSYSTM:00/LNXSYBUS:00/HWP0001:00/HWP0002:04/device:00
(a PCI slot SxFy device) will have "hid" and "modprobe" entries, where
they didn't before.  These aren't very useful (a HID of "device" doesn't
tell you what *kind* of device it is, so it doesn't help find a driver),
but I don't think they're harmful.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: use acpi_device_hid() when possible
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:09 +0000 (13:35 -0600)]
ACPI: use acpi_device_hid() when possible

Use acpi_device_hid() rather than accessing acpi_device.pnp.hardware_id
directly.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: fix synthetic HID for \_SB_
Bjorn Helgaas [Mon, 21 Sep 2009 19:35:04 +0000 (13:35 -0600)]
ACPI: fix synthetic HID for \_SB_

This makes \_SB_ show up as /sys/devices/LNXSYSTM:00/LNXSYBUS:00
rather than "device:00".  This has been broken for a loooong time
(at least since 2.6.13) because device->parent is an acpi_device
pointer, not a handle.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: handle re-enumeration, when acpi_devices might already exist
Bjorn Helgaas [Mon, 21 Sep 2009 19:30:11 +0000 (19:30 +0000)]
ACPI: handle re-enumeration, when acpi_devices might already exist

acpi_bus_scan() traverses the namespace to enumerate devices and uses
acpi_add_single_object() to create acpi_devices.  When the platform
notifies us of a hot-plug event, we need to traverse part of the namespace
again to figure out what appeared or disappeared.  (We don't yet call
acpi_bus_scan() during hot-plug, but I plan to do that in the future.)

This patch makes acpi_add_single_object() notice when we already have
an acpi_device, so we don't need to make a new one.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: factor out device type and status checking
Bjorn Helgaas [Mon, 21 Sep 2009 19:30:06 +0000 (19:30 +0000)]
ACPI: factor out device type and status checking

This patch adds acpi_bus_type_and_status(), which determines the type
of the object and whether we want to build an acpi_device for it.  If
it is acpi_device-worthy, it returns the type and the device's current
status.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: add acpi_bus_get_status_handle()
Bjorn Helgaas [Mon, 21 Sep 2009 19:30:01 +0000 (19:30 +0000)]
ACPI: add acpi_bus_get_status_handle()

Add acpi_bus_get_status_handle() so we can get the status of a namespace
object before building a struct acpi_device.

This removes a use of "device->flags.dynamic_status", a cached indicator of
whether _STA exists.  It seems simpler and more reliable to just evaluate
_STA and catch AE_NOT_FOUND errors.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: use acpi_walk_namespace() to enumerate devices
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:56 +0000 (19:29 +0000)]
ACPI: use acpi_walk_namespace() to enumerate devices

acpi_bus_scan() currently walks the namespace manually.  This patch changes
it to use acpi_walk_namespace() instead.

Besides removing some complicated code, this means we take advantage of the
namespace locking done by acpi_walk_namespace().  The locking isn't so
important at boot-time, but I hope to eventually use this same path to
handle hot-addition of devices, when it will be important.

Note that acpi_walk_namespace() does not actually visit the starting node
first, so we need to do that by hand first.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: identify device tree root by null parent pointer, not ACPI_BUS_TYPE
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:50 +0000 (19:29 +0000)]
ACPI: identify device tree root by null parent pointer, not ACPI_BUS_TYPE

We can identify the root of the ACPI device tree by the fact that it
has no parent.  This is simpler than passing around ACPI_BUS_TYPE_SYSTEM
and will help remove special treatment of the device tree root.

Currently, we add the root by hand with ACPI_BUS_TYPE_SYSTEM.  If we
traverse the tree treating the root as just another device and use
acpi_get_type(), the root shows up as ACPI_TYPE_DEVICE.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: enumerate namespace before adding functional fixed hardware devices
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:45 +0000 (19:29 +0000)]
ACPI: enumerate namespace before adding functional fixed hardware devices

This patch changes the order so we enumerate in the "root, namespace,
functional fixed" order instead of the "root, functional fixed, namespace"
order.  When I change acpi_bus_scan() to use acpi_walk_namespace(), it
will use the former order, so this patch isolates the order change for
bisectability.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: convert acpi_bus_scan() to operate on an acpi_handle
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:40 +0000 (19:29 +0000)]
ACPI: convert acpi_bus_scan() to operate on an acpi_handle

This patch changes acpi_bus_scan() to take an acpi_handle rather than an
acpi_device pointer.  I plan to use acpi_bus_scan() in the hotplug path,
and I'd rather not assume that notifications only go to nodes that already
have acpi_devices.

This will also help remove the special case for adding the root node.  We
currently add the root by hand before acpi_bus_scan(), but using a handle
here means we can start the acpi_bus_scan() directly with the root even
though it doesn't have an acpi_device yet.

Note that acpi_bus_scan() currently adds and/or starts the *children* of
its device argument.  It doesn't do anything with the device itself.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: add acpi_bus_get_parent() and remove "parent" arguments
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:35 +0000 (19:29 +0000)]
ACPI: add acpi_bus_get_parent() and remove "parent" arguments

This patch adds acpi_bus_get_parent(), which ascends the namespace until
it finds a parent with an acpi_device.

Then we use acpi_bus_get_parent() in acpi_add_single_object(), so callers
don't have to figure out or keep track of the parent acpi_device.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove unnecessary argument checking
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:30 +0000 (19:29 +0000)]
ACPI: remove unnecessary argument checking

acpi_add_single_object() is static, and all callers supply a valid "child"
argument, so we don't need to check it.  This patch also remove some
unnecessary initializations.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove redundant "type" arguments
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:25 +0000 (19:29 +0000)]
ACPI: remove redundant "type" arguments

We now save the ACPI bus "device_type" in the acpi_device structure, so
we don't need to pass it around explicitly anymore.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove acpi_device_set_context() "type" argument
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:20 +0000 (19:29 +0000)]
ACPI: remove acpi_device_set_context() "type" argument

We only pass the "type" to acpi_device_set_context() so we know whether
the device has a handle to which we can attach the acpi_device pointer.
But it's safer to just check for the handle directly, since it's in the
acpi_device already.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: use device_type rather than comparing HID
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:15 +0000 (19:29 +0000)]
ACPI: use device_type rather than comparing HID

Check the acpi_device device_type rather than the HID.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: save device_type in acpi_device
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:10 +0000 (19:29 +0000)]
ACPI: save device_type in acpi_device

Most uses of the ACPI bus device_type (ACPI_BUS_TYPE_DEVICE,
ACPI_BUS_TYPE_POWER, etc) are during device initialization, but
we do need it later for notify handler installation, since that
is different for fixed hardware devices vs. namespace devices.

This patch saves the device_type in the acpi_device structure,
so we can check that rather than comparing against the _HID string.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove redundant "handle" and "parent" arguments
Bjorn Helgaas [Mon, 21 Sep 2009 19:29:05 +0000 (19:29 +0000)]
ACPI: remove redundant "handle" and "parent" arguments

In several cases, functions take handle and parent device pointers in
addition to acpi_device pointers.  But the acpi_device structure contains
both the handle and the parent pointer, so it's pointless and error-prone
to pass them all.  This patch removes the unnecessary "handle" and "parent"
arguments.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: remove unused acpi_bus_scan_fixed() argument
Bjorn Helgaas [Mon, 21 Sep 2009 19:28:59 +0000 (19:28 +0000)]
ACPI: remove unused acpi_bus_scan_fixed() argument

We never use the "root" argument, so just remove it.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPI: add debug for device addition
Bjorn Helgaas [Mon, 21 Sep 2009 19:28:54 +0000 (19:28 +0000)]
ACPI: add debug for device addition

Add debug output for adding an ACPI device.  Enable this with
"acpi.debug_layer=0x00010000" (ACPI_BUS_COMPONENT).

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoACPICA: fixup after acpi_get_object_info() change
Bjorn Helgaas [Mon, 21 Sep 2009 19:28:49 +0000 (19:28 +0000)]
ACPICA: fixup after acpi_get_object_info() change

Commit 15b8dd53f5ffa changed info->hardware_id from a static array to
a pointer.  If hardware_id is non-NULL, it points to a NULL-terminated
string, so we don't need to terminate it explicitly.  However, it may
be NULL; in that case, we *can't* add a NULL terminator.

This causes a NULL pointer dereference oops for devices without _HID.

Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
CC: Lin Ming <ming.m.lin@intel.com>
CC: Bob Moore <robert.moore@intel.com>
CC: Gary Hade <garyhade@us.ibm.com>
Signed-off-by: Len Brown <len.brown@intel.com>
13 years agoMerge branch 'master' of ssh://master.kernel.org/pub/scm/linux/kernel/git/rusty/linux...
David S. Miller [Fri, 25 Sep 2009 18:09:08 +0000 (11:09 -0700)]
Merge branch 'master' of ssh:///linux/kernel/git/rusty/linux-2.6-for-davem

13 years agocifs: fix locking and list handling code in cifs_open and its helper
Jeff Layton [Fri, 25 Sep 2009 13:53:37 +0000 (09:53 -0400)]
cifs: fix locking and list handling code in cifs_open and its helper

The patch to remove cifs_init_private introduced a locking imbalance. It
didn't remove the leftover list addition code and the unlocking in that
function. cifs_new_fileinfo does the list addition now, so there should
be no need to do it outside of that function.

pCifsInode will never be NULL, so we don't need to check for that. This
patch also gets rid of the ugly locking and unlocking across function
calls.

Signed-off-by: Jeff Layton <jlayton@redhat.com>
Acked-by: Steve French <sfrench@us.ibm.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>
13 years agoalpha: fix build after vmlinux.lds.S cleanup
Sam Ravnborg [Fri, 25 Sep 2009 17:53:43 +0000 (19:53 +0200)]
alpha: fix build after vmlinux.lds.S cleanup

Add include to get missing THREAD_SIZE definition

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Cc: Tim Abbott <tabbott@ksplice.com>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: Richard Henderson <rth@twiddle.net>
13 years agomips: fix build of vmlinux.lds
Manuel Lauss [Thu, 24 Sep 2009 19:44:24 +0000 (21:44 +0200)]
mips: fix build of vmlinux.lds

Commit 51b563fc93c8cb5bff1d67a0a71c374e4a4ea049 ("arm, cris, mips,
sparc, powerpc, um, xtensa: fix build with bash 4.0") removed a few
CPPFLAGS with vital include paths necessary to build vmlinux.lds
on MIPS, and moved the calculation of the 'jiffies' symbol
directly to vmlinux.lds.S but forgot to change make ifdef/... to
cpp macros.

Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
[sam: moved assignment of CPPFLAGS arch/mips/kernel/Makefile]
Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Acked-by: Dmitri Vorobiev <dmitri.vorobiev@movial.com>
13 years agoMerge branch 'writeback' of git://git.kernel.dk/linux-2.6-block
Linus Torvalds [Fri, 25 Sep 2009 16:27:30 +0000 (09:27 -0700)]
Merge branch 'writeback' of git://git.kernel.dk/linux-2.6-block

* 'writeback' of git://git.kernel.dk/linux-2.6-block:
  writeback: writeback_inodes_sb() should use bdi_start_writeback()
  writeback: don't delay inodes redirtied by a fast dirtier
  writeback: make the super_block pinning more efficient
  writeback: don't resort for a single super_block in move_expired_inodes()
  writeback: move inodes from one super_block together
  writeback: get rid to incorrect references to pdflush in comments
  writeback: improve readability of the wb_writeback() continue/break logic
  writeback: cleanup writeback_single_inode()
  writeback: kupdate writeback shall not stop when more io is possible
  writeback: stop background writeback when below background threshold
  writeback: balance_dirty_pages() shall write more than dirtied pages
  fs: Fix busyloop in wb_writeback()

13 years agowriteback: writeback_inodes_sb() should use bdi_start_writeback()
Jens Axboe [Fri, 25 Sep 2009 15:15:03 +0000 (17:15 +0200)]
writeback: writeback_inodes_sb() should use bdi_start_writeback()

Pointless to iterate other devices looking for a super, when
we have a bdi mapping.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: don't delay inodes redirtied by a fast dirtier
Wu Fengguang [Fri, 25 Sep 2009 04:04:10 +0000 (06:04 +0200)]
writeback: don't delay inodes redirtied by a fast dirtier

Debug traces show that in per-bdi writeback, the inode under writeback
almost always get redirtied by a busy dirtier.  We used to call
redirty_tail() in this case, which could delay inode for up to 30s.

This is unacceptable because it now happens so frequently for plain cp/dd,
that the accumulated delays could make writeback of big files very slow.

So let's distinguish between data redirty and metadata only redirty.
The first one is caused by a busy dirtier, while the latter one could
happen in XFS, NFS, etc. when they are doing delalloc or updating isize.

The inode being busy dirtied will now be requeued for next io, while
the inode being redirtied by fs will continue to be delayed to avoid
repeated IO.

CC: Jan Kara <jack@suse.cz>
CC: Theodore Ts'o <tytso@mit.edu>
CC: Dave Chinner <david@fromorbit.com>
CC: Chris Mason <chris.mason@oracle.com>
CC: Christoph Hellwig <hch@infradead.org>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: make the super_block pinning more efficient
Jens Axboe [Thu, 24 Sep 2009 13:25:11 +0000 (15:25 +0200)]
writeback: make the super_block pinning more efficient

Currently we pin the inode->i_sb for every single inode. This
increases cache traffic on sb->s_umount sem. Lets instead
cache the inode sb pin state and keep the super_block pinned
for as long as keep writing out inodes from the same
super_block.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: don't resort for a single super_block in move_expired_inodes()
Jens Axboe [Thu, 24 Sep 2009 13:12:57 +0000 (15:12 +0200)]
writeback: don't resort for a single super_block in move_expired_inodes()

If we only moved inodes from a single super_block to the temporary
list, there's no point in doing a resort for multiple super_blocks.

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: move inodes from one super_block together
Shaohua Li [Thu, 24 Sep 2009 12:42:33 +0000 (14:42 +0200)]
writeback: move inodes from one super_block together

__mark_inode_dirty adds inode to wb dirty list in random order. If a disk has
several partitions, writeback might keep spindle moving between partitions.
To reduce the move, better write big chunk of one partition and then move to
another. Inodes from one fs usually are in one partion, so idealy move indoes
from one fs together should reduce spindle move. This patch tries to address
this. Before per-bdi writeback is added, the behavior is write indoes
from one fs first and then another, so the patch restores previous behavior.
The loop in the patch is a bit ugly, should we add a dirty list for each
superblock in bdi_writeback?

Test in a two partition disk with attached fio script shows about 3% ~ 6%
improvement.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Reviewed-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: get rid to incorrect references to pdflush in comments
Jens Axboe [Wed, 23 Sep 2009 17:37:09 +0000 (19:37 +0200)]
writeback: get rid to incorrect references to pdflush in comments

Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: improve readability of the wb_writeback() continue/break logic
Jens Axboe [Wed, 23 Sep 2009 17:32:26 +0000 (19:32 +0200)]
writeback: improve readability of the wb_writeback() continue/break logic

And throw some comments in there, too.

Reviewed-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: cleanup writeback_single_inode()
Wu Fengguang [Wed, 23 Sep 2009 12:33:42 +0000 (20:33 +0800)]
writeback: cleanup writeback_single_inode()

Make the if-else straight in writeback_single_inode().
No behavior change.

Cc: Jan Kara <jack@suse.cz>
Cc: Michael Rubin <mrubin@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Signed-off-by: Fengguang Wu <wfg@mail.ustc.edu.cn>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: kupdate writeback shall not stop when more io is possible
Wu Fengguang [Wed, 23 Sep 2009 12:33:41 +0000 (20:33 +0800)]
writeback: kupdate writeback shall not stop when more io is possible

Fix the kupdate case, which disregards wbc.more_io and stop writeback
prematurely even when there are more inodes to be synced.

wbc.more_io should always be respected.

Also remove the pages_skipped check. It will set when some page(s) of some
inode(s) cannot be written for now. Such inodes will be delayed for a while.
This variable has nothing to do with whether there are other writeable inodes.

CC: Jan Kara <jack@suse.cz>
CC: Dave Chinner <david@fromorbit.com>
CC: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: stop background writeback when below background threshold
Wu Fengguang [Wed, 23 Sep 2009 12:33:40 +0000 (20:33 +0800)]
writeback: stop background writeback when below background threshold

Treat bdi_start_writeback(0) as a special request to do background write,
and stop such work when we are below the background dirty threshold.

Also simplify the (nr_pages <= 0) checks. Since we already pass in
nr_pages=LONG_MAX for WB_SYNC_ALL and background writes, we don't
need to worry about it being decreased to zero.

Reported-by: Richard Kennedy <richard@rsk.demon.co.uk>
CC: Jan Kara <jack@suse.cz>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agowriteback: balance_dirty_pages() shall write more than dirtied pages
Wu Fengguang [Wed, 23 Sep 2009 13:56:00 +0000 (21:56 +0800)]
writeback: balance_dirty_pages() shall write more than dirtied pages

Some filesystem may choose to write much more than ratelimit_pages
before calling balance_dirty_pages_ratelimited_nr(). So it is safer to
determine number to write based on real number of dirtied pages.

Otherwise it is possible that
  loop {
    btrfs_file_write():     dirty 1024 pages
    balance_dirty_pages():  write up to 48 pages (= ratelimit_pages * 1.5)
  }
in which the writeback rate cannot keep up with dirty rate, and the
dirty pages go all the way beyond dirty_thresh.

The increased write_chunk may make the dirtier more bumpy.
So filesystems shall be take care not to dirty too much at
a time (eg. > 4MB) without checking the ratelimit.

Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agofs: Fix busyloop in wb_writeback()
Jan Kara [Wed, 16 Sep 2009 17:22:48 +0000 (19:22 +0200)]
fs: Fix busyloop in wb_writeback()

If all inodes are under writeback (e.g. in case when there's only one inode
with dirty pages), wb_writeback() with WB_SYNC_NONE work basically degrades
to busylooping until I_SYNC flags of the inode is cleared. Fix the problem by
waiting on I_SYNC flags of an inode on b_more_io list in case we failed to
write anything.

Tested-by: Wu Fengguang <fengguang.wu@intel.com>
Signed-off-by: Jan Kara <jack@suse.cz>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
Linus Torvalds [Fri, 25 Sep 2009 14:44:14 +0000 (07:44 -0700)]
Merge git://git./linux/kernel/git/lethal/sh-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6:
  sh_mobile_ceu_camera: fix compile breakage, caused by a bad merge
  sh: Add support DMA Engine to SH7780
  sh: Add support DMA Engine to SH7722
  sh: enable onenand support in kfr2r09 defconfig.
  sh: update defconfigs.
  sh: add FSI driver support for ms7724se
  sh: Fix up uninitialized variable use caught by gcc 4.4.
  sh: Handle unaligned 16-bit instructions on SH-2A.
  sh: mach-ecovec24: Add active low setting for sh_eth
  sh: includecheck fix: dwarf.c

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
Linus Torvalds [Fri, 25 Sep 2009 14:24:42 +0000 (07:24 -0700)]
Merge git://git./linux/kernel/git/wim/linux-2.6-watchdog

* git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
  [WATCHDOG] Add support for the Avionic Design Xanthos watchdog timer.

13 years agoMerge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
Linus Torvalds [Fri, 25 Sep 2009 14:22:11 +0000 (07:22 -0700)]
Merge git://git./linux/kernel/git/davem/net-2.6

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (94 commits)
  genetlink: fix netns vs. netlink table locking (2)
  3c59x: Get rid of "Trying to free already-free IRQ"
  tunnel: eliminate recursion field
  ems_pci: fix size of CAN controllers BAR mapping for CPC-PCI v2
  net: fix htmldocs sunrpc, clnt.c
  Phonet: error on broadcast sending (unimplemented)
  Phonet: fix race for port number in concurrent bind()
  pktgen: better scheduler friendliness
  pktgen: T_TERMINATE flag is unused
  ipv4: check optlen for IP_MULTICAST_IF option
  ath9k: Initialize txgain and rxgain for newer AR9287 chipsets.
  iwlagn: fix panic in iwl{5000,4965}_rx_reply_tx
  ath9k: Fix RFKILL bugs
  drivers/net/wireless: Use usb_endpoint_dir_out
  cfg80211: don't overwrite privacy setting
  wl12xx: fix kconfig/link errors
  rt2x00: fix the definition of rt2x00crypto_rx_insert_iv
  iwlwifi: reduce noise when skb allocation fails
  iwlwifi: do not send sync command while holding spinlock
  mac80211: fix DTIM setting
  ...

13 years agoMerge branch 'x86/asm' into x86/urgent
Ingo Molnar [Fri, 25 Sep 2009 08:45:32 +0000 (10:45 +0200)]
Merge branch 'x86/asm' into x86/urgent

Merge reason: The linker script cleanups are ready for upstream.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
13 years ago[WATCHDOG] Add support for the Avionic Design Xanthos watchdog timer.
Thierry Reding [Wed, 23 Sep 2009 11:49:52 +0000 (13:49 +0200)]
[WATCHDOG] Add support for the Avionic Design Xanthos watchdog timer.

This patch adds support for the watchdog timer on Avionic Design Xanthos
boards.

Signed-off-by: Thierry Reding <thierry.reding@avionic-design.de>
Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Wim Van Sebroeck <wim@iguana.be>
13 years agosh_mobile_ceu_camera: fix compile breakage, caused by a bad merge
Guennadi Liakhovetski [Fri, 25 Sep 2009 04:36:51 +0000 (13:36 +0900)]
sh_mobile_ceu_camera: fix compile breakage, caused by a bad merge

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Acked-by: Mauro Carvalho Chehab <mchehab@redhat.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 years agosh: Add support DMA Engine to SH7780
Nobuhiro Iwamatsu [Thu, 12 Mar 2009 07:31:45 +0000 (07:31 +0000)]
sh: Add support DMA Engine to SH7780

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 years agosh: Add support DMA Engine to SH7722
Nobuhiro Iwamatsu [Thu, 12 Mar 2009 07:31:41 +0000 (07:31 +0000)]
sh: Add support DMA Engine to SH7722

Signed-off-by: Nobuhiro Iwamatsu <iwamatsu.nobuhiro@renesas.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 years agoMerge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Paul Mundt [Fri, 25 Sep 2009 03:15:15 +0000 (12:15 +0900)]
Merge branch 'master' of git://git./linux/kernel/git/torvalds/linux-2.6

13 years agosh: enable onenand support in kfr2r09 defconfig.
Paul Mundt [Fri, 25 Sep 2009 02:55:07 +0000 (11:55 +0900)]
sh: enable onenand support in kfr2r09 defconfig.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 years agosh: update defconfigs.
Paul Mundt [Fri, 25 Sep 2009 02:53:02 +0000 (11:53 +0900)]
sh: update defconfigs.

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
13 years ago[CIFS] Remove build warning
Steve French [Fri, 25 Sep 2009 02:24:45 +0000 (02:24 +0000)]
[CIFS] Remove build warning

Acked-by: Jeff Layton <jlayton@redhat.com>
Signed-off-by: Steve French <sfrench@us.ibm.com>