24 Dec, 2008

1 commit

  • Use ls_allocation for memory allocations, which a cluster fs sets to
    GFP_NOFS. Use GFP_NOFS for allocations when no lockspace struct is
    available. Taking dlm locks needs to avoid calling back into the
    cluster fs because write-out can require taking dlm locks.

    Cc: Christine Caulfield
    Signed-off-by: Steven Whitehouse
    Signed-off-by: David Teigland

    Steven Whitehouse
     

14 Nov, 2008

8 commits


13 Nov, 2008

31 commits

  • Signed-off-by: Russell King

    Russell King
     
  • Signed-off-by: Russell King

    Russell King
     
  • FLASH_* and EPROM_* constants are unused, and clash with drivers:

    drivers/atm/ambassador.h:257:1: warning: "FLASH_BASE" redefined
    drivers/atm/ambassador.h:258:1: warning: "FLASH_SIZE" redefined
    drivers/atm/iphase.h:332:1: warning: "EPROM_SIZE" redefined

    so remove them.

    Signed-off-by: Russell King

    Russell King
     
  • arch/arm/mm/dma-mapping.c: In function `dma_sync_sg_for_cpu':
    arch/arm/mm/dma-mapping.c:588: warning: statement with no effect

    Signed-off-by: Russell King

    Russell King
     
  • …l/git/tip/linux-2.6-tip

    * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched: fix init_idle()'s use of sched_clock()
    sched: fix stale value in average load per task

    Linus Torvalds
     
  • Signed-off-by: Rodolfo Giometti
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rodolfo Giometti
     
  • C2port implements a two wire serial communication protocol (bit
    banging) designed to enable in-system programming, debugging, and
    boundary-scan testing on low pin-count Silicon Labs devices.

    Currently this code supports only flash programming through sysfs
    interface but extensions shoud be easy to add.

    Signed-off-by: Rodolfo Giometti
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rodolfo Giometti
     
  • Add a brief document about omap2430/3430 HDQ/1-wire driver.

    Signed-off-by: Madhusudhan Chikkature
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Madhusudhan Chikkature
     
  • Provide the BQ27000 slave interface driver.

    Signed-off-by: Madhusudhan Chikkature
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Madhusudhan Chikkature
     
  • The HDQ/1-Wire module of TI OMAP2430/3430 platforms implement the hardware
    protocol of the master functions of the Benchmark HDQ and the Dallas
    Semiconductor 1-Wire protocols. These protocols use a single wire for
    communication between the master (HDQ/1-Wire controller) and the slave
    (HDQ/1-Wire external compliant device).

    This patch provides the HDQ driver to suppport TI OMAP2430/3430 platforms.

    Signed-off-by: Madhusudhan Chikkature
    Acked-by: Felipe Balbi
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Madhusudhan Chikkature
     
  • Export the w1_read_8 function for use of drivers. The OMAP HDQ
    driver(drivers/w1/masters/omap_hdq.c) uses this function.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Madhusudhan Chikkature
    Acked-by: Evgeniy Polyakov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Madhusudhan Chikkature
     
  • Add support for the Dallas DS1390/93/94 SPI RTC chip.

    Signed-off-by: Mark Jackson
    Acked-by: Alessandro Zummo
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Jackson
     
  • Provide the basic "get" and "set" functionality for the Epson RX-8581 I2C
    RTC. It currently does not support the RTC's Alarm or Fixed-cycle timer.

    [akpm@linux-foundation.org: need log2.h for ilog2(), remove unneeded initialisation]
    Signed-off-by: Martyn Welch
    Signed-off-by: Alessandro Zummo
    Cc: David Brownell
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martyn Welch
     
  • This adds support for the RTC provided by the Wolfson Microelectronics
    WM8350.

    This driver was originally written by Graeme Gregory and Liam Girdwood,
    though it has been modified since then to update it to current mainline
    coding standards and for API completeness.

    [akpm@linux-foundation.org: s/schedule_timeout_interruptible/schedule_timeout_uninterruptible/ to prevent bogus timeout when signal_pending()]
    Signed-off-by: Mark Brown
    Cc: Alessandro Zummo
    Cc: David Brownell
    Cc: Liam Girdwood
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Brown
     
  • The ics932s401 is a clock generator chip. This driver allows users to
    read the current clock outputs.

    Signed-off-by: Darrick J. Wong
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Darrick J. Wong
     
  • New driver to play with. As Jean mentioned a couple of years ago, this
    chip is a beast with odd combinations of 8 fans, 4 temperatures, and 13
    voltage sensors. This driver has been tested on an IntelliStation Z30.

    Signed-off-by: Darrick J. Wong
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Darrick J. Wong
     
  • This adds a driver to the accelerometer sensor found in several HP
    laptops (under the commercial names of "HP Mobile Data Protection System
    3D" and "HP 3D driveguard"). It tries to have more or less the same
    interfaces as the hdaps and other accelerometer drivers: in sysfs and as
    a joystick.

    This driver was first written by Yan Burman. Eric Piel has updated it
    and slimed it up (including the removal of an interface to access to the
    free-fall feature of the sensor because it is not reliable enough for
    now). Pavel Machek removed few more features and switched locking from
    semaphore to mutex.

    Several people have contributed to the database of the axes.

    [eric.piel@tremplin-utc.net: LIS3LV02D: Conform to the new ACPI API]
    Signed-off-by: Eric Piel
    Signed-off-by: Yan Burman
    Signed-off-by: Pavel Machek
    Cc: "Mark M. Hoffman"
    Signed-off-by: Eric Piel
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pavel Machek
     
  • The start pfn calculation in page_cgroup's memory hotplug notifier chain
    is wrong.

    Tested-by: Badari Pulavarty
    Signed-off-by: KAMEZAWA Hiroyuki
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Signed-off-by: "Theodore Ts'o"
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Theodore Tso
     
  • We're working with an AT91SAM9263 Rev B in our design and I experienced
    some inconsistency in spi-based touchscreen usage between our board and
    the Atmel evaluation kit we have that runs on a Rev A chip.

    The data was apparently delayed by 1 byte and got ridiculous data out of
    the touchscreen driver, very strange. As everything looked normal in
    the spi, touchscreen and dma logs, I contacted the Atmel support and
    they triggered me on a new HW bug that appeared in the Rev B SPI
    controller.

    The problem is that the SPI controller on the Rev B needs that the
    software reset is performed two times so that it's performed correctly.

    Applying the patch below solves the issue on my Rev B board. I've tested
    it as well on my Rev A evaluation kit and it has apparently no unwanted
    side effect, things continue to work as expected.

    Signed-off-by: Haavard Skinnemoen
    Cc: David Brownell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jean-Christophe Lallemand
     
  • The adt7468 is a follow-on to the adt7463, so plumb in adt7468 support
    along the same code paths.

    Signed-off-by: Darrick J. Wong
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Darrick J. Wong
     
  • Implement correct range checking for adt7470 to prevent userland from
    writing impossible values into the chip, and cap out-of-range values per
    standard hwmon conventions.

    Implement correct rounding of input values per standard hwmon conventions.

    Signed-off-by: Darrick J. Wong
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Darrick J. Wong
     
  • Implement correct range checking for adt7470 to prevent userland from
    writing impossible values into the chip, and cap out-of-range values per
    standard hwmon conventions.

    Implement correct rounding of input values per standard hwmon conventions.

    Signed-off-by: Darrick J. Wong
    Cc: Jean Delvare
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Darrick J. Wong
     
  • We only need the cacheline padding on SMP kernels. Saves 6k:

    text data bss dec hex filename
    5713 388 8840 14941 3a5d kernel/kprobes.o
    5713 388 2632 8733 221d kernel/kprobes.o

    Acked-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • xip documentation updated:
    - change "get_xip_page" to "get_xip_mem";
    - explain changed function parameters

    Signed-off-by: Marco Stornelli
    Signed-off-by: Randy Dunlap
    Cc: Carsten Otte
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Marco Stornelli
     
  • Add printk-formats.txt so that we don't have to keep fixing the
    same things over and over again.

    Signed-off-by: Randy Dunlap
    Cc: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • It mistakenly assumes that a static local in an inlined function is a
    kernel-wide singleton. It also has no callers, so let's remove it.

    Cc: Dave Young
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • In the last refactoring of shrink_submounts a variable was not completely
    renamed. So finish the renaming of mnt to m now.

    Without this if you attempt to mount an nfs mount that has both automatic
    nfs sub mounts on it, and has normal mounts on it. The unmount will
    succeed when it should not.

    Signed-off-by: Eric W. Biederman
    Cc: Alexey Dobriyan
    Cc: Al Viro
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • lockdep warns about following message at boot time on one of my test
    machine. Then, schedule_on_each_cpu() sholdn't be called when the task
    have mmap_sem.

    Actually, lru_add_drain_all() exist to prevent the unevictalble pages
    stay on reclaimable lru list. but currenct unevictable code can rescue
    unevictable pages although it stay on reclaimable list.

    So removing is better.

    In addition, this patch add lru_add_drain_all() to sys_mlock() and
    sys_mlockall(). it isn't must. but it reduce the failure of moving to
    unevictable list. its failure can rescue in vmscan later. but reducing
    is better.

    Note, if above rescuing happend, the Mlocked and the Unevictable field
    mismatching happend in /proc/meminfo. but it doesn't cause any real
    trouble.

    =======================================================
    [ INFO: possible circular locking dependency detected ]
    2.6.28-rc2-mm1 #2
    -------------------------------------------------------
    lvm/1103 is trying to acquire lock:
    (&cpu_hotplug.lock){--..}, at: [] get_online_cpus+0x29/0x50

    but task is already holding lock:
    (&mm->mmap_sem){----}, at: [] sys_mlockall+0x4e/0xb0

    which lock already depends on the new lock.

    the existing dependency chain (in reverse order) is:

    -> #3 (&mm->mmap_sem){----}:
    [] check_noncircular+0x82/0x110
    [] might_fault+0x4a/0xa0
    [] validate_chain+0xb11/0x1070
    [] might_fault+0x4a/0xa0
    [] __lock_acquire+0x263/0xa10
    [] lock_acquire+0x7c/0xb0 (*) grab mmap_sem
    [] might_fault+0x4a/0xa0
    [] might_fault+0x7b/0xa0
    [] might_fault+0x4a/0xa0
    [] copy_to_user+0x30/0x60
    [] filldir+0x7c/0xd0
    [] sysfs_readdir+0x11a/0x1f0 (*) grab sysfs_mutex
    [] filldir+0x0/0xd0
    [] filldir+0x0/0xd0
    [] vfs_readdir+0x86/0xa0 (*) grab i_mutex
    [] sys_getdents+0x6b/0xc0
    [] syscall_call+0x7/0xb
    [] 0xffffffff

    -> #2 (sysfs_mutex){--..}:
    [] check_noncircular+0x82/0x110
    [] sysfs_addrm_start+0x2c/0xc0
    [] validate_chain+0xb11/0x1070
    [] sysfs_addrm_start+0x2c/0xc0
    [] __lock_acquire+0x263/0xa10
    [] lock_acquire+0x7c/0xb0 (*) grab sysfs_mutex
    [] sysfs_addrm_start+0x2c/0xc0
    [] mutex_lock_nested+0xa5/0x2f0
    [] sysfs_addrm_start+0x2c/0xc0
    [] sysfs_addrm_start+0x2c/0xc0
    [] sysfs_addrm_start+0x2c/0xc0
    [] create_dir+0x3f/0x90
    [] sysfs_create_dir+0x29/0x50
    [] _spin_unlock+0x25/0x40
    [] kobject_add_internal+0xcd/0x1a0
    [] kobject_set_name_vargs+0x3a/0x50
    [] kobject_init_and_add+0x2d/0x40
    [] sysfs_slab_add+0xd2/0x180
    [] sysfs_add_func+0x0/0x70
    [] sysfs_add_func+0x5c/0x70 (*) grab slub_lock
    [] run_workqueue+0x172/0x200
    [] run_workqueue+0x10f/0x200
    [] worker_thread+0x0/0xf0
    [] worker_thread+0x9c/0xf0
    [] autoremove_wake_function+0x0/0x50
    [] worker_thread+0x0/0xf0
    [] kthread+0x42/0x70
    [] kthread+0x0/0x70
    [] kernel_thread_helper+0x7/0x1c
    [] 0xffffffff

    -> #1 (slub_lock){----}:
    [] check_noncircular+0xd/0x110
    [] slab_cpuup_callback+0x11f/0x1d0
    [] validate_chain+0xb11/0x1070
    [] slab_cpuup_callback+0x11f/0x1d0
    [] mark_lock+0x35d/0xd00
    [] __lock_acquire+0x263/0xa10
    [] lock_acquire+0x7c/0xb0
    [] slab_cpuup_callback+0x11f/0x1d0
    [] down_read+0x43/0x80
    [] slab_cpuup_callback+0x11f/0x1d0 (*) grab slub_lock
    [] slab_cpuup_callback+0x11f/0x1d0
    [] notifier_call_chain+0x3c/0x70
    [] _cpu_up+0x84/0x110
    [] cpu_up+0x4b/0x70 (*) grab cpu_hotplug.lock
    [] kernel_init+0x0/0x170
    [] kernel_init+0xb5/0x170
    [] kernel_init+0x0/0x170
    [] kernel_thread_helper+0x7/0x1c
    [] 0xffffffff

    -> #0 (&cpu_hotplug.lock){--..}:
    [] validate_chain+0x5af/0x1070
    [] dev_status+0x0/0x50
    [] __lock_acquire+0x263/0xa10
    [] lock_acquire+0x7c/0xb0
    [] get_online_cpus+0x29/0x50
    [] mutex_lock_nested+0xa5/0x2f0
    [] get_online_cpus+0x29/0x50
    [] get_online_cpus+0x29/0x50
    [] lru_add_drain_per_cpu+0x0/0x10
    [] get_online_cpus+0x29/0x50 (*) grab cpu_hotplug.lock
    [] schedule_on_each_cpu+0x32/0xe0
    [] __mlock_vma_pages_range+0x85/0x2c0
    [] __lock_acquire+0x285/0xa10
    [] vma_merge+0xa9/0x1d0
    [] mlock_fixup+0x180/0x200
    [] do_mlockall+0x78/0x90 (*) grab mmap_sem
    [] sys_mlockall+0x81/0xb0
    [] syscall_call+0x7/0xb
    [] 0xffffffff

    other info that might help us debug this:

    1 lock held by lvm/1103:
    #0: (&mm->mmap_sem){----}, at: [] sys_mlockall+0x4e/0xb0

    stack backtrace:
    Pid: 1103, comm: lvm Not tainted 2.6.28-rc2-mm1 #2
    Call Trace:
    [] print_circular_bug_tail+0x7c/0xd0
    [] validate_chain+0x5af/0x1070
    [] dev_status+0x0/0x50
    [] __lock_acquire+0x263/0xa10
    [] lock_acquire+0x7c/0xb0
    [] get_online_cpus+0x29/0x50
    [] mutex_lock_nested+0xa5/0x2f0
    [] get_online_cpus+0x29/0x50
    [] get_online_cpus+0x29/0x50
    [] lru_add_drain_per_cpu+0x0/0x10
    [] get_online_cpus+0x29/0x50
    [] schedule_on_each_cpu+0x32/0xe0
    [] __mlock_vma_pages_range+0x85/0x2c0
    [] __lock_acquire+0x285/0xa10
    [] vma_merge+0xa9/0x1d0
    [] mlock_fixup+0x180/0x200
    [] do_mlockall+0x78/0x90
    [] sys_mlockall+0x81/0xb0
    [] syscall_call+0x7/0xb

    Signed-off-by: KOSAKI Motohiro
    Tested-by: Kamalesh Babulal
    Cc: Lee Schermerhorn
    Cc: Christoph Lameter
    Cc: Heiko Carstens
    Cc: Nick Piggin
    Cc: Hugh Dickins
    Cc: Rik van Riel
    Cc: Peter Zijlstra
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • __register_kprobe() can be preempted after checking probing address but
    before module_text_address() or try_module_get(), and in this interval
    the module can be unloaded. In that case, try_module_get(probed_mod)
    will access to invalid address, or kprobe will probe invalid address.

    This patch uses preempt_disable() to protect it and uses
    __module_text_address() and __kernel_text_address().

    Signed-off-by: Lai Jiangshan
    Signed-off-by: Masami Hiramatsu
    Cc: Ananth N Mavinakayanahalli
    Cc: Hiroshi Shimamoto
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masami Hiramatsu
     
  • With this change, control file 'freezer.state' doesn't exist in root
    cgroup, making root cgroup unfreezable.

    I think it's reasonable to disallow freeze tasks in the root cgroup. And
    then we can avoid fork overhead when freezer subsystem is compiled but not
    used.

    Also make writing invalid value to freezer.state returns EINVAL rather
    than EIO. This is more consistent with other cgroup subsystem.

    Signed-off-by: Li Zefan
    Acked-by: Paul Menage
    Cc: Cedric Le Goater
    Cc: Paul Menage
    Cc: Matt Helsley
    Cc: "Serge E. Hallyn"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Li Zefan