commit 402a917aca5daca69fcc91f43e6f1e6939cf393b
Merge: bcf8951... 9dd446f...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Feb 19 09:52:12 2009 -0800

    Merge master.kernel.org:/home/rmk/linux-2.6-arm
    
    * master.kernel.org:/home/rmk/linux-2.6-arm:
      [ARM] 5405/1: ep93xx: remove unused gesbc9312.h header
      [ARM] 5404/1: Fix condition in arm_elf_read_implies_exec() to set READ_IMPLIES_EXEC
      [ARM] omap: fix clock reparenting in omap2_clk_set_parent()
      [ARM] 5403/1: pxa25x_ep_fifo_flush() *ep->reg_udccs always set to 0
      [ARM] 5402/1: fix a case of wrap-around in sanity_check_meminfo()
      [ARM] 5401/1: Orion: fix edge triggered GPIO interrupt support
      [ARM] 5400/1: Add support for inverted rdy_busy pin for Atmel nand device controller
      [ARM] 5391/1: AT91: Enable GPIO clocks earlier
      [ARM] 5390/1: AT91: Watchdog fixes
      [ARM] 5398/1: Add Wan ZongShun to MAINTAINERS for W90P910
      [ARM] omap: fix _omap2_clksel_get_src_field()
      [ARM] omap: fix omap2_divisor_to_clksel() error return value

commit bcf8951fc23476c9190a7df0bc501ff47d0c3a61
Merge: f54b2fe... 07db1c1...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Feb 19 09:14:35 2009 -0800

    Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/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, mce: fix ifdef for 64bit thermal apic vector clear on shutdown
      x86, mce: use force_sig_info to kill process in machine check
      x86, mce: reinitialize per cpu features on resume
      x86, rcu: fix strange load average and ksoftirqd behavior

commit f54b2fe4aef9aa74ddf2c856928c3e29f3371fe7
Merge: 83ff1af... ed4a2f3...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Feb 19 09:14:22 2009 -0800

    Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/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:
      tracing: limit the number of loops the ring buffer self test can make
      tracing: have function trace select kallsyms
      tracing: disable tracing while testing ring buffer
      tracing/function-graph-tracer: trace the idle tasks

commit 83ff1af9d330348d1a6685b0c06d33847cd72723
Merge: a1342d3... 23d75d9...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Feb 19 08:35:52 2009 -0800

    Merge branch 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6
    
    * 'for-linus' of git://git390.marist.edu/pub/scm/linux-2.6:
      [S390] fix "mem=" handling in case of standby memory
      [S390] Fix timeval regression on s390
      [S390] sclp: handle empty event buffers

commit a1342d3b8e5dbffae9d5520e2847d7d605c25266
Merge: ba95fd4... e432472...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Thu Feb 19 08:35:29 2009 -0800

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
      sound: virtuoso: revert "do not overwrite EEPROM on Xonar D2/D2X"
      ALSA: jack - Use card->shortname for input name
      ALSA: usb-audio - Workaround for misdetected sample rate with CM6207
      ALSA: usb-audio - Fix non-continuous rate detection
      sound: usb-audio: fix uninitialized variable with M-Audio MIDI interfaces
      Revert "Sound: hda - Restore PCI configuration space with interrupts off"

commit 9dd446f657ebebb209274878be5d01103fcfe988
Author: Hartley Sweeten <hartleys@visionengravers.com>
Date:   Thu Feb 19 17:09:04 2009 +0100

    [ARM] 5405/1: ep93xx: remove unused gesbc9312.h header
    
    Remove the gesbc9312.h header since it is unused.
    
    Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 9da616fb9946c8d65387052e5a538b8f54ddb292
Author: Makito SHIOKAWA <lkhmkt@gmail.com>
Date:   Thu Feb 19 15:34:59 2009 +0100

    [ARM] 5404/1: Fix condition in arm_elf_read_implies_exec() to set READ_IMPLIES_EXEC
    
    READ_IMPLIES_EXEC must be set when:
    o binary _is_ an executable stack (i.e. not EXSTACK_DISABLE_X)
    o processor architecture is _under_ ARMv6 (XN bit is supported from ARMv6)
    
    Signed-off-by: Makito SHIOKAWA <lkhmkt@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 23d75d9cadd79bc9fd6553857d57c679cf18d4cb
Author: Heiko Carstens <heiko.carstens@de.ibm.com>
Date:   Thu Feb 19 15:19:01 2009 +0100

    [S390] fix "mem=" handling in case of standby memory
    
    Standby memory detected with the sclp interface gets always registered
    with add_memory calls without considering the limitationt that the
    "mem=" kernel paramater implies.
    So fix this and only register standby memory that is below the specified
    limit.
    This fixes zfcpdump since it uses "mem=32M". In case there is appr.
    2GB standby memory present all of usable memory would be used for the
    struct pages needed for standby memory.
    
    Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

commit d5cd0343d2878b66e25e044f644563c6bf708833
Author: Christian Borntraeger <borntraeger@de.ibm.com>
Date:   Thu Feb 19 15:19:00 2009 +0100

    [S390] Fix timeval regression on s390
    
    commit aa5e97ce4bbc9d5daeec16b1d15bb3f6b7b4f4d4
    [PATCH] improve precision of process accounting.
    
    Introduced a timing regression:
    -bash-3.2# time ls
    real    0m0.006s
    user    0m1.754s
    sys     0m1.094s
    
    The problem was introduced by an error in cputime_to_timeval.
    Cputime is now 1/4096 microsecond, therefore, we have to divide
    the remainder with 4096 to get the microseconds.
    
    Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

commit e2e5a0f2b100a5204d27def8bbf73333d1710be2
Author: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
Date:   Thu Feb 19 15:18:59 2009 +0100

    [S390] sclp: handle empty event buffers
    
    Handle a malformed hardware response which some versions of the
    Support Element (SE) may present during SE restart and which otherwise
    would result in an endless loop in function sclp_dispatch_evbufs.
    
    Signed-off-by: Peter Oberparleiter <peter.oberparleiter@de.ibm.com>
    Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>

commit 41f3103fcfffff096c34f5267d7c9a26b44d89d3
Author: Russell King <rmk@dyn-67.arm.linux.org.uk>
Date:   Thu Feb 19 13:25:16 2009 +0000

    [ARM] omap: fix clock reparenting in omap2_clk_set_parent()
    
    When changing the parent of a clock, it is necessary to keep the
    clock use counts balanced otherwise things the parent state will
    get corrupted.  Since we already disable and re-enable the clock,
    we might as well use the recursive versions instead.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit e432472db2ca42366240c32c38dc36de424ac7cd
Merge: e6845d9... 3b03cc5...
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Feb 19 13:58:05 2009 +0100

    Merge branch 'fix/usb-audio' into for-linus

commit e6845d9101c5ad2b132473d515e77d74415f004b
Merge: 379752f... 6ce6c47...
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Feb 19 13:58:01 2009 +0100

    Merge branch 'fix/misc' into for-linus

commit 379752fdf8d2e2be2e7da84300bbf73e4f78c36f
Merge: d2f8d7e... d14a7e0...
Author: Takashi Iwai <tiwai@suse.de>
Date:   Thu Feb 19 13:57:52 2009 +0100

    Merge branch 'fix/hda' into for-linus

commit 22eb36f49e24e922ca6594a99157a3fcb92d3824
Author: Roel Kluin <roel.kluin@gmail.com>
Date:   Thu Feb 19 11:57:46 2009 +0100

    [ARM] 5403/1: pxa25x_ep_fifo_flush() *ep->reg_udccs always set to 0
    
    *ep->reg_udccs is always set to 0.
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Acked-by: Eric Miao <eric.miao@marvell.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 3fd9825c42c784a59b3b90bdf073f49d4bb42a8d
Author: Nicolas Pitre <nico@cam.org>
Date:   Wed Feb 18 22:29:22 2009 +0100

    [ARM] 5402/1: fix a case of wrap-around in sanity_check_meminfo()
    
    In the non highmem case, if two memory banks of 1GB each are provided,
    the second bank would evade suppression since its virtual base would
    be 0.  Fix this by disallowing any memory bank which virtual base
    address is found to be lower than PAGE_OFFSET.
    
    Reported-by: Lennert Buytenhek <buytenh@marvell.com>
    
    Signed-off-by: Nicolas Pitre <nico@marvell.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit ed4a2f374d71770796789ed559c35a36bab82f1a
Merge: 5b058bc... 4b3e3d2...
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Feb 19 10:16:45 2009 +0100

    Merge branch 'tip/tracing/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-2.6-trace into tracing/urgent

commit 6ce6c473a7fd742fdb0db95841e2c4c6b37337c5
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Tue Feb 17 09:50:30 2009 +0100

    sound: virtuoso: revert "do not overwrite EEPROM on Xonar D2/D2X"
    
    This reverts commit 7e86c0e6850504ec9516b953f316a47277825e33 ("do not
    overwrite EEPROM on Xonar D2/D2X") because it did not actually help with
    the problem.
    
    More user reports show that the overwriting of the EEPROM is not
    triggered by using this driver but by installing Linux, and that the
    installation of any other operating system (even one without any CMI8788
    driver) has the same effect.  In other words, the presence of this
    driver does not have any effect on the occurrence of the error.  (So
    far, the available evidence seems to point to a BIOS bug.)
    
    Furthermore, it turns out that the EEPROM chip is protected against
    stray write commands by the command format and by requiring a separate
    write-enable command, so the error scenario in the previous commit (that
    SPI writes can be misinterpreted as an EEPROM write command) is not even
    theoretically possible.
    
    The mixer control that was removed as a consequence of the previous
    commit can only be partially emulated in userspace, which also means it
    cannot be seen be the in-kernel OSS API emulation, so it is better to
    revert that change.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Cc: <stable@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

commit 4b3e3d228429c75d398f1aa24532e468d3220c49
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Wed Feb 18 22:50:01 2009 -0500

    tracing: limit the number of loops the ring buffer self test can make
    
    Impact: prevent deadlock if ring buffer gets corrupted
    
    This patch adds a paranoid check to make sure the ring buffer consumer
    does not go into an infinite loop. Since the ring buffer has been set
    to read only, the consumer should not loop for more than the ring buffer
    size. A check is added to make sure the consumer does not loop more than
    the ring buffer size.
    
    Signed-off-by: Steven Rostedt <srostedt@redhat.com>

commit 4d7a077c0c7bfdba04cf0aa0b79053cf4ebaacf8
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Wed Feb 18 22:06:18 2009 -0500

    tracing: have function trace select kallsyms
    
    Impact: fix output of function tracer to be useful
    
    The function tracer is pretty useless if KALLSYMS is not configured.
    Unless you are good at reading hex values, the function tracer should
    select the KALLSYMS configuration.
    
    Also, the dynamic function tracer will fail its self test if KALLSYMS
    is not selected.
    
    Signed-off-by: Steven Rostedt <srostedt@redhat.com>

commit 0c5119c1e655e0719a69601b1049acdd5ec1c125
Author: Steven Rostedt <srostedt@redhat.com>
Date:   Wed Feb 18 18:33:57 2009 -0500

    tracing: disable tracing while testing ring buffer
    
    Impact: fix to prevent hard lockup on self tests
    
    If one of the tracers are broken and is constantly filling the ring
    buffer while the test of the ring buffer is running, it will hang
    the box. The reason is that the test is a consumer that will not
    stop till the ring buffer is empty. But if the tracer is broken and
    is constantly producing input to the buffer, this test will never
    end. The result is a lockup of the box.
    
    This happened when KALLSYMS was not defined and the dynamic ftrace
    test constantly filled the ring buffer, because the filter failed
    and all functions were being traced. Something was being called
    that constantly filled the buffer.
    
    Signed-off-by: Steven Rostedt <srostedt@redhat.com>

commit ba95fd47d177d46743ad94055908d22840370e06
Merge: 59af0a0... be987fd...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Feb 18 18:33:04 2009 -0800

    Merge branch 'for-linus' of git://git.kernel.dk/linux-2.6-block
    
    * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
      block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list
      block: fix booting from partitioned md array
      block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb
      cciss: PCI power management reset for kexec
      paride/pg.c: xs(): &&/|| confusion
      fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free
      block: fix bad definition of BIO_RW_SYNC
      bsg: Fix sense buffer bug in SG_IO

commit 59af0a0b5848caf38f1bf7013905c3e9cdba4d1d
Merge: f04b30d... 3ebf74b...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Wed Feb 18 17:55:15 2009 -0800

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/drzeus/mmc:
      omap_hsmmc: Change while(); loops with finite version
      omap_hsmmc: recover from transfer failures
      omap_hsmmc: only MMC1 allows HCTL.SDVS != 1.8V
      omap_hsmmc: card detect irq bugfix
      sdhci: fix led naming
      mmc_test: fix basic read test
      s3cmci: Fix hangup in do_pio_write()
      Revert "sdhci: force high speed capability on some controllers"
      MMC: fix bug - SDHC card capacity not correct

commit f04b30de3c82528f1ab4c58b3dd4c975f5341901
Author: Ingo Molnar <mingo@elte.hu>
Date:   Wed Feb 18 14:48:43 2009 -0800

    inotify: fix GFP_KERNEL related deadlock
    
    Enhanced lockdep coverage of __GFP_NOFS turned up this new lockdep
    assert:
    
    [ 1093.677775]
    [ 1093.677781] =================================
    [ 1093.680031] [ INFO: inconsistent lock state ]
    [ 1093.680031] 2.6.29-rc5-tip-01504-gb49eca1-dirty #1
    [ 1093.680031] ---------------------------------
    [ 1093.680031] inconsistent {RECLAIM_FS-ON-W} -> {IN-RECLAIM_FS-W} usage.
    [ 1093.680031] kswapd0/308 [HC0[0]:SC0[0]:HE1:SE1] takes:
    [ 1093.680031]  (&inode->inotify_mutex){+.+.?.}, at: [<c0205942>] inotify_inode_is_dead+0x20/0x80
    [ 1093.680031] {RECLAIM_FS-ON-W} state was registered at:
    [ 1093.680031]   [<c01696b9>] mark_held_locks+0x43/0x5b
    [ 1093.680031]   [<c016baa4>] lockdep_trace_alloc+0x6c/0x6e
    [ 1093.680031]   [<c01cf8b0>] kmem_cache_alloc+0x20/0x150
    [ 1093.680031]   [<c040d0ec>] idr_pre_get+0x27/0x6c
    [ 1093.680031]   [<c02056e3>] inotify_handle_get_wd+0x25/0xad
    [ 1093.680031]   [<c0205f43>] inotify_add_watch+0x7a/0x129
    [ 1093.680031]   [<c020679e>] sys_inotify_add_watch+0x20f/0x250
    [ 1093.680031]   [<c010389e>] sysenter_do_call+0x12/0x35
    [ 1093.680031]   [<ffffffff>] 0xffffffff
    [ 1093.680031] irq event stamp: 60417
    [ 1093.680031] hardirqs last  enabled at (60417): [<c018d5f5>] call_rcu+0x53/0x59
    [ 1093.680031] hardirqs last disabled at (60416): [<c018d5b9>] call_rcu+0x17/0x59
    [ 1093.680031] softirqs last  enabled at (59656): [<c0146229>] __do_softirq+0x157/0x16b
    [ 1093.680031] softirqs last disabled at (59651): [<c0106293>] do_softirq+0x74/0x15d
    [ 1093.680031]
    [ 1093.680031] other info that might help us debug this:
    [ 1093.680031] 2 locks held by kswapd0/308:
    [ 1093.680031]  #0:  (shrinker_rwsem){++++..}, at: [<c01b0502>] shrink_slab+0x36/0x189
    [ 1093.680031]  #1:  (&type->s_umount_key#4){+++++.}, at: [<c01e6d77>] shrink_dcache_memory+0x110/0x1fb
    [ 1093.680031]
    [ 1093.680031] stack backtrace:
    [ 1093.680031] Pid: 308, comm: kswapd0 Not tainted 2.6.29-rc5-tip-01504-gb49eca1-dirty #1
    [ 1093.680031] Call Trace:
    [ 1093.680031]  [<c016947a>] valid_state+0x12a/0x13d
    [ 1093.680031]  [<c016954e>] mark_lock+0xc1/0x1e9
    [ 1093.680031]  [<c016a5b4>] ? check_usage_forwards+0x0/0x3f
    [ 1093.680031]  [<c016ab74>] __lock_acquire+0x2c6/0xac8
    [ 1093.680031]  [<c01688d9>] ? register_lock_class+0x17/0x228
    [ 1093.680031]  [<c016b3d3>] lock_acquire+0x5d/0x7a
    [ 1093.680031]  [<c0205942>] ? inotify_inode_is_dead+0x20/0x80
    [ 1093.680031]  [<c08824c4>] __mutex_lock_common+0x3a/0x4cb
    [ 1093.680031]  [<c0205942>] ? inotify_inode_is_dead+0x20/0x80
    [ 1093.680031]  [<c08829ed>] mutex_lock_nested+0x2e/0x36
    [ 1093.680031]  [<c0205942>] ? inotify_inode_is_dead+0x20/0x80
    [ 1093.680031]  [<c0205942>] inotify_inode_is_dead+0x20/0x80
    [ 1093.680031]  [<c01e6672>] dentry_iput+0x90/0xc2
    [ 1093.680031]  [<c01e67a3>] d_kill+0x21/0x45
    [ 1093.680031]  [<c01e6a46>] __shrink_dcache_sb+0x27f/0x355
    [ 1093.680031]  [<c01e6dc5>] shrink_dcache_memory+0x15e/0x1fb
    [ 1093.680031]  [<c01b05ed>] shrink_slab+0x121/0x189
    [ 1093.680031]  [<c01b0d12>] kswapd+0x39f/0x561
    [ 1093.680031]  [<c01ae499>] ? isolate_pages_global+0x0/0x233
    [ 1093.680031]  [<c0157eae>] ? autoremove_wake_function+0x0/0x43
    [ 1093.680031]  [<c01b0973>] ? kswapd+0x0/0x561
    [ 1093.680031]  [<c0157daf>] kthread+0x41/0x82
    [ 1093.680031]  [<c0157d6e>] ? kthread+0x0/0x82
    [ 1093.680031]  [<c01043ab>] kernel_thread_helper+0x7/0x10
    
    inotify_handle_get_wd() does idr_pre_get() which does a
    kmem_cache_alloc() without __GFP_FS - and is hence deadlockable under
    extreme MM pressure.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: MinChan Kim <minchan.kim@gmail.com>
    Cc: Nick Piggin <nickpiggin@yahoo.com.au>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit be50344e604f956891fc0013f1ba78823a758124
Author: Michael Buesch <mb@bu3sch.de>
Date:   Wed Feb 18 14:48:41 2009 -0800

    spi-gpio: sanitize MISO bitvalue
    
    gpio_get_value() returns 0 or nonzero, but getmiso() expects 0 or 1.
    Sanitize the value to a 0/1 boolean.
    
    Signed-off-by: Michael Buesch <mb@bu3sch.de>
    Acked-by: David Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 97bef7dd05563807539122c488a5dd93ed327722
Author: Bernhard Walle <bernhard.walle@gmx.de>
Date:   Wed Feb 18 14:48:40 2009 -0800

    Bernhard has moved
    
    Since I don't work for SUSE any more and the bwalle@suse.de address is
    invalid, correct it in the copyright headers and documentation.
    
    Signed-off-by: Bernhard Walle <bernhard.walle@gmx.de>
    Cc: Greg KH <greg@kroah.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 310d8c93f9f07499cd7ca82d7997774a89de00e7
Author: Randy Dunlap <randy.dunlap@oracle.com>
Date:   Wed Feb 18 14:48:39 2009 -0800

    x86: dell-laptop: depends on POWER_SUPPLY
    
    Build breaks when DELL_LAPTOP=y and POWER_SUPPLY=m.  DELL_LAPTOP needs to
    depend on POWER_SUPPLY.
    
    dell-laptop.c:(.text+0x1ef3c4): undefined reference to `power_supply_is_system_supplied'
    dell-laptop.c:(.text+0x1ef45e): undefined reference to `power_supply_is_system_supplied'
    
    Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
    Cc: Matthew Garrett <mjg59@srcf.ucam.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Cc: Len Brown <lenb@kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 2db69a9340da12a4db44edb7506dd68799aeff55
Author: Bill Nottingham <notting@redhat.com>
Date:   Wed Feb 18 14:48:39 2009 -0800

    vt: Declare PIO_CMAP/GIO_CMAP as compatbile ioctls.
    
    Otherwise, these don't work when called from 32-bit userspace on 64-bit
    kernels.
    
    Cc: Jiri Kosina <jkosina@suse.cz>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit a1a5c3b9237662f326cc730e167e7524b5d05a36
Author: Krzysztof Helt <krzysztof.h1@wp.pl>
Date:   Wed Feb 18 14:48:38 2009 -0800

    fbdev/drm: fix Kconfig submenu mess in "Graphics support"
    
    Submenus of the graphics support "Support for frame buffer devices" and
    "Direct Rendering Manager (XFree86 4.1.0 and higher DRI support)" are
    broken in half after latest changes for Intel 915 mode setting support.
    
    The DRM subsection is broken because one option is put outside the choice
    section it depends on.
    
    The frame buffers part is broken then due to circular dependency.  Fix
    this by make Intel frame buffers depend on CONFIG_INTEL_AGP.
    
    Kconfigs are broken by d2f59357700487a8b944f4f7777d1e97cf5ea2ed
    ("drm/i915: select framebuffer support automatically").
    
    This is probably not only way to fix this.
    
    Signed-off-by: Krzysztof Helt <krzysztof.h1@wp.pl>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Dave Airlie <airlied@linux.ie>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 5a74db06cc8d36a325913aa4968ae169f997a466
Author: Philippe De Muyter <phdm@macqel.be>
Date:   Wed Feb 18 14:48:36 2009 -0800

    floppy: request and release only the ports we actually use
    
    The floppy driver requests an I/O port it doesn't need, and sometimes this
    causes a conflict with a motherboard device reported by PNPBIOS.
    
    This patch makes the floppy driver request and release only the ports it
    actually uses.  It also factors out the request/release stuff and the
    io-ports list so they're all in one place now.
    
    The current floppy driver uses only these ports:
    
        0x3f2 (FD_DOR)
        0x3f4 (FD_STATUS)
        0x3f5 (FD_DATA)
        0x3f7 (FD_DCR/FD_DIR)
    
    but it requests 0x3f2-0x3f5 and 0x3f7, which includes the unused port
    0x3f3.
    
    Some BIOSes report 0x3f3 as a motherboard resource.  The PNP system driver
    reserves that, which causes a conflict when the floppy driver requests
    0x3f2-0x3f5 later.
    
    Philippe reported that this conflict broke the floppy driver between
    2.6.11 and 2.6.22.  His PNPBIOS reports these devices:
    
        $ cat 00:07/id 00:07/resources	# motherboard device
        PNP0c02
        state = active
        io 0x80-0x80
        io 0x10-0x1f
        io 0x22-0x3f
        io 0x44-0x5f
        io 0x90-0x9f
        io 0xa2-0xbf
        io 0x3f0-0x3f1
        io 0x3f3-0x3f3
    
        $ cat 00:03/id 00:03/resources	# floppy device
        PNP0700
        state = active
        io 0x3f4-0x3f5
        io 0x3f2-0x3f2
    
    Reference:
        http://lkml.org/lkml/2009/1/31/162
    
    Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com>
    Signed-off-by: Philippe De Muyter <phdm@macqel.be>
    Reported-by: Philippe De Muyter <phdm@macqel.be>
    Tested-by: Philippe De Muyter <phdm@macqel.be>
    Cc: Adam M Belay <abelay@mit.edu>
    Cc: Robert Hancock <hancockrwd@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit ffa7525c13eb3db0fd19a3e1cffe2ce6f561f5f3
Author: Adam Lackorzynski <adam@os.inf.tu-dresden.de>
Date:   Wed Feb 18 14:48:34 2009 -0800

    jsm: additional device support
    
    I have a Digi Neo 8 PCI card (114f:00b1) Serial controller: Digi
    International Digi Neo 8 (rev 05)
    
    that works with the jsm driver after using the following patch.
    
    Signed-off-by: Adam Lackorzynski <adam@os.inf.tu-dresden.de>
    Cc: Scott H Kilau <Scott_Kilau@digi.com>
    Cc: Wendy Xiong <wendyx@us.ibm.com>
    Acked-by: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit cc2559bccc72767cb446f79b071d96c30c26439b
Author: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Date:   Wed Feb 18 14:48:33 2009 -0800

    mm: fix memmap init for handling memory hole
    
    Now, early_pfn_in_nid(PFN, NID) may returns false if PFN is a hole.
    and memmap initialization was not done. This was a trouble for
    sparc boot.
    
    To fix this, the PFN should be initialized and marked as PG_reserved.
    This patch changes early_pfn_in_nid() return true if PFN is a hole.
    
    Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Reported-by: David Miller <davem@davemlloft.net>
    Tested-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit f2dbcfa738368c8a40d4a5f0b65dc9879577cb21
Author: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Date:   Wed Feb 18 14:48:32 2009 -0800

    mm: clean up for early_pfn_to_nid()
    
    What's happening is that the assertion in mm/page_alloc.c:move_freepages()
    is triggering:
    
    	BUG_ON(page_zone(start_page) != page_zone(end_page));
    
    Once I knew this is what was happening, I added some annotations:
    
    	if (unlikely(page_zone(start_page) != page_zone(end_page))) {
    		printk(KERN_ERR "move_freepages: Bogus zones: "
    		       "start_page[%p] end_page[%p] zone[%p]\n",
    		       start_page, end_page, zone);
    		printk(KERN_ERR "move_freepages: "
    		       "start_zone[%p] end_zone[%p]\n",
    		       page_zone(start_page), page_zone(end_page));
    		printk(KERN_ERR "move_freepages: "
    		       "start_pfn[0x%lx] end_pfn[0x%lx]\n",
    		       page_to_pfn(start_page), page_to_pfn(end_page));
    		printk(KERN_ERR "move_freepages: "
    		       "start_nid[%d] end_nid[%d]\n",
    		       page_to_nid(start_page), page_to_nid(end_page));
     ...
    
    And here's what I got:
    
    	move_freepages: Bogus zones: start_page[2207d0000] end_page[2207dffc0] zone[fffff8103effcb00]
    	move_freepages: start_zone[fffff8103effcb00] end_zone[fffff8003fffeb00]
    	move_freepages: start_pfn[0x81f600] end_pfn[0x81f7ff]
    	move_freepages: start_nid[1] end_nid[0]
    
    My memory layout on this box is:
    
    [    0.000000] Zone PFN ranges:
    [    0.000000]   Normal   0x00000000 -> 0x0081ff5d
    [    0.000000] Movable zone start PFN for each node
    [    0.000000] early_node_map[8] active PFN ranges
    [    0.000000]     0: 0x00000000 -> 0x00020000
    [    0.000000]     1: 0x00800000 -> 0x0081f7ff
    [    0.000000]     1: 0x0081f800 -> 0x0081fe50
    [    0.000000]     1: 0x0081fed1 -> 0x0081fed8
    [    0.000000]     1: 0x0081feda -> 0x0081fedb
    [    0.000000]     1: 0x0081fedd -> 0x0081fee5
    [    0.000000]     1: 0x0081fee7 -> 0x0081ff51
    [    0.000000]     1: 0x0081ff59 -> 0x0081ff5d
    
    So it's a block move in that 0x81f600-->0x81f7ff region which triggers
    the problem.
    
    This patch:
    
    Declaration of early_pfn_to_nid() is scattered over per-arch include
    files, and it seems it's complicated to know when the declaration is used.
     I think it makes fix-for-memmap-init not easy.
    
    This patch moves all declaration to include/linux/mm.h
    
    After this,
      if !CONFIG_NODES_POPULATES_NODE_MAP && !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
         -> Use static definition in include/linux/mm.h
      else if !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
         -> Use generic definition in mm/page_alloc.c
      else
         -> per-arch back end function will be called.
    
    Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
    Tested-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Reported-by: David Miller <davem@davemlloft.net>
    Cc: Mel Gorman <mel@csn.ul.ie>
    Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
    Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit ada723dcd681e2dffd7d73345cc8fda0eb0df9bd
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Feb 18 14:48:30 2009 -0800

    fs/super.c: add lockdep annotation to s_umount
    
    Li Zefan said:
    
    Thread 1:
      for ((; ;))
      {
          mount -t cpuset xxx /mnt > /dev/null 2>&1
          cat /mnt/cpus > /dev/null 2>&1
          umount /mnt > /dev/null 2>&1
      }
    
    Thread 2:
      for ((; ;))
      {
          mount -t cpuset xxx /mnt > /dev/null 2>&1
          umount /mnt > /dev/null 2>&1
      }
    
    (Note: It is irrelevant which cgroup subsys is used.)
    
    After a while a lockdep warning showed up:
    
    =============================================
    [ INFO: possible recursive locking detected ]
    2.6.28 #479
    ---------------------------------------------
    mount/13554 is trying to acquire lock:
     (&type->s_umount_key#19){--..}, at: [<c049d888>] sget+0x5e/0x321
    
    but task is already holding lock:
     (&type->s_umount_key#19){--..}, at: [<c049da0c>] sget+0x1e2/0x321
    
    other info that might help us debug this:
    1 lock held by mount/13554:
     #0:  (&type->s_umount_key#19){--..}, at: [<c049da0c>] sget+0x1e2/0x321
    
    stack backtrace:
    Pid: 13554, comm: mount Not tainted 2.6.28-mc #479
    Call Trace:
     [<c044ad2e>] validate_chain+0x4c6/0xbbd
     [<c044ba9b>] __lock_acquire+0x676/0x700
     [<c044bb82>] lock_acquire+0x5d/0x7a
     [<c049d888>] ? sget+0x5e/0x321
     [<c061b9b8>] down_write+0x34/0x50
     [<c049d888>] ? sget+0x5e/0x321
     [<c049d888>] sget+0x5e/0x321
     [<c045a2e7>] ? cgroup_set_super+0x0/0x3e
     [<c045959f>] ? cgroup_test_super+0x0/0x2f
     [<c045bcea>] cgroup_get_sb+0x98/0x2e7
     [<c045cfb6>] cpuset_get_sb+0x4a/0x5f
     [<c049dfa4>] vfs_kern_mount+0x40/0x7b
     [<c049e02d>] do_kern_mount+0x37/0xbf
     [<c04af4a0>] do_mount+0x5c3/0x61a
     [<c04addd2>] ? copy_mount_options+0x2c/0x111
     [<c04af560>] sys_mount+0x69/0xa0
     [<c0403251>] sysenter_do_call+0x12/0x31
    
    The cause is after alloc_super() and then retry, an old entry in list
    fs_supers is found, so grab_super(old) is called, but both functions hold
    s_umount lock:
    
    struct super_block *sget(...)
    {
    	...
    retry:
    	spin_lock(&sb_lock);
    	if (test) {
    		list_for_each_entry(old, &type->fs_supers, s_instances) {
    			if (!test(old, data))
    				continue;
    			if (!grab_super(old))  <--- 2nd: down_write(&old->s_umount);
    				goto retry;
    			if (s)
    				destroy_super(s);
    			return old;
    		}
    	}
    	if (!s) {
    		spin_unlock(&sb_lock);
    		s = alloc_super(type);   <--- 1th: down_write(&s->s_umount)
    		if (!s)
    			return ERR_PTR(-ENOMEM);
    		goto retry;
    	}
    	...
    }
    
    It seems like a false positive, and seems like VFS but not cgroup needs to
    be fixed.
    
    Peter said:
    
    We can simply put the new s_umount instance in a but lockdep doesn't
    particularly cares about subclass order.
    
    If there's any issue with the callers of sget() assuming the s_umount lock
    being of sublcass 0, then there is another annotation we can use to fix
    that, but lets not bother with that if this is sufficient.
    
    Addresses http://bugzilla.kernel.org/show_bug.cgi?id=12673
    
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Tested-by: Li Zefan <lizf@cn.fujitsu.com>
    Reported-by: Li Zefan <lizf@cn.fujitsu.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Paul Menage <menage@google.com>
    Cc: Arjan van de Ven <arjan@infradead.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 27c0c8e511fa9e2389503926840fac606d90a049
Author: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Date:   Wed Feb 18 14:48:28 2009 -0800

    atmel_serial might lose modem status change
    
    I found a problem of handling of modem status of atmel_serial driver.
    
    With the commit 1ecc26 ("atmel_serial: split the interrupt handler"),
    handling of modem status signal was splitted into two parts.  The
    atmel_tasklet_func() compares new status with irq_status_prev, but
    irq_status_prev is not correct if signal status was changed while the port
    is closed.
    
    Here is a sequence to cause problem:
    
    1. Remote side sets CTS (and DSR).
    2. Local side close the port.
    3. Local side clears RTS and DTR.
    4. Remote side clears CTS and DSR.
    5. Local side reopen the port.  hw_stopped becomes 1.
    6. Local side sets RTS and DTR.
    7. Remote side sets CTS and DSR.
    
    Then CTS change interrupt can be received, but since CTS bit in
    irq_status_prev and new status is same, uart_handle_cts_change() will not
    be called (so hw_stopped will not be cleared, i.e.  cannot send any data).
    
    I suppose irq_status_prev should be initialized at somewhere in open
    sequence.
    
    Itai Levi pointed out that we need to initialize atmel_port->irq_status
    as well here. His analysis is as follows:
    
    > Regarding the second part of the patch (which resets irq_status_prev),
    > it turns out that both versions of the patch (mine and Atsushi's)
    > still leave enough room for faulty behavior when opening the port.
    >
    > This is because we are not resetting both irq_status_prev and
    > irq_status in atmel_startup() to CSR, which leads faulty behavior in
    > the following sequences:
    >
    > First case:
    > 1. closing the port while CTS line = 1 (TX not allowed)
    > 2. setting CTS line = 0 (TX allowed)
    > 3. opening the port
    > 4. transmitting one char
    > 5. Cannot transmit more chars, although CTS line is 0
    >
    > Second case:
    > 1. closing the port while CTS line = 0 (TX allowed)
    > 2. setting CTS line = 1 (TX not allowed)
    > 3. opening the port
    > 4. receiving some chars
    > 5. Now we can transmit, although CTS line is 1
    >
    > This reason for this is that the tasklet is scheduled as a result of
    > TX or RX interrupts (not a status change!), in steps 4 above. Inside
    > the tasklet, the atmel_port->irq_status (which holds the value from
    > the previous session) is compared to atmel_port->irq_status_prev.
    > Hence, a status-change of the CTS line is faultily detected.
    >
    > Both cases were verified on 9260 hardware.
    
    [haavard.skinnemoen@atmel.com: folded with patch from Itai Levi]
    Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
    Signed-off-by: Haavard Skinnemoen <haavard.skinnemoen@atmel.com>
    Cc: Remy Bohmer <linux@bohmer.net>
    Cc: Marc Pignat <marc.pignat@hevs.ch>
    Cc: Itai Levi <itai.levi.devel@gmail.com>
    Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 287d859222e0adbc67666a6154aaf42d7d5bbb54
Author: Dan Williams <dan.j.williams@intel.com>
Date:   Wed Feb 18 14:48:26 2009 -0800

    atmel-mci: fix initialization of dma slave data
    
    The conversion of atmel-mci to dma_request_channel missed the
    initialization of the channel dma_slave information.  The filter_fn passed
    to dma_request_channel is responsible for initializing the channel's
    private data.  This implementation has the additional benefit of enabling
    a generic client-channel data passing mechanism.
    
    Reviewed-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
    Signed-off-by: Dan Williams <dan.j.williams@intel.com>
    Acked-by: Haavard Skinnemoen <hskinnemoen@atmel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 9ccf3b5e8409927835c4d38cb2f380c9e4349e76
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date:   Wed Feb 18 14:48:25 2009 -0800

    lis3lv02d: add axes knowledge of HP Pavilion dv5 models
    
    Add support for HP Pavilion dv5.
    
    Since Intel-based models have an inverted x axis, while AMD-based models
    have an inverted y axis, we introduce a new macro that special-cases axis
    orientation based on two DMI entries: HP dv5 axis configuration is then
    based on both the PRODUCT and BOARD name.
    
    Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
    Cc: Eric Piel <Eric.Piel@tremplin-utc.net>
    Cc: Pavel Machek <pavel@suse.cz>
    Tested-by: Palatis Tseng <palatis@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 137bad32342a613586347341d1307c2b9812ef44
Author: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Date:   Wed Feb 18 14:48:24 2009 -0800

    lis3lv02d: support both one- and two-byte sensors
    
    Sensors responding with 0x3B to WHO_AM_I only have one data register per
    direction, thus returning a signed byte from the position which is
    occupied by the MSB in sensors responding with 0x3A.
    
    Since multiple sensors share the reply to WHO_AM_I, we rename the defines
    to better indicate what they identify (family of single and double
    precision sensors).
    
    We support both kind of sensors by checking for the sensor type on init
    and defining appropriate data-access routines and sensor limits (for the
    joystick) depending on what we find.
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
    Acked-by: Eric Piel <Eric.Piel@tremplin-utc.net>
    Cc: Pavel Machek <pavel@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit ef2cfc790bf5f0ff189b01eabc0f4feb5e8524df
Author: Pavel Machek <pavel@suse.cz>
Date:   Wed Feb 18 14:48:23 2009 -0800

    hp accelerometer: add freefall detection
    
    This adds freefall handling to hp_accel driver.  According to HP, it
    should just work, without us having to set the chip up by hand.
    
    hpfall.c is example .c program that parks the disk when accelerometer
    detects free fall.  It should work; for now, it uses fixed 20seconds
    protection period.
    
    Signed-off-by: Pavel Machek <pavel@suse.cz>
    Cc: Thomas Renninger <trenn@suse.de>
    Cc: Éric Piel <eric.piel@tremplin-utc.net>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 3a5093ee6728c8cbe9c039e685fc1fca8f965048
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Wed Feb 18 14:48:22 2009 -0800

    eeepc: should depend on INPUT
    
    Otherwise with INPUT=m, EEEPC_LAPTOP=y one gets
    
    drivers/built-in.o: In function `input_sync':
    eeepc-laptop.c:(.text+0x18ce51): undefined reference to `input_event'
    drivers/built-in.o: In function `input_report_key':
    eeepc-laptop.c:(.text+0x18ce73): undefined reference to `input_event'
    drivers/built-in.o: In function `eeepc_hotk_check':
    eeepc-laptop.c:(.text+0x18d05f): undefined reference to `input_allocate_device'
    eeepc-laptop.c:(.text+0x18d10f): undefined reference to `input_register_device'
    eeepc-laptop.c:(.text+0x18d131): undefined reference to `input_free_device'
    drivers/built-in.o: In function `eeepc_backlight_exit':
    eeepc-laptop.c:(.text+0x18d546): undefined reference to `input_unregister_device'
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Len Brown <lenb@kernel.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 42f5e039c3f6512271636928ddc4e7f7a0371672
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Wed Feb 18 14:48:21 2009 -0800

    pm: fix build for CONFIG_PM unset
    
    Compilation of kprobes.c with CONFIG_PM unset is broken due to some broken
    config dependncies.  Fix that.
    
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Reported-by: Ingo Molnar <mingo@elte.hu>
    Tested-by: Masami Hiramatsu <mhiramat@redhat.com>
    Cc: Len Brown <lenb@kernel.org>
    Acked-by: Pavel Machek <pavel@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 67e055d144c5b2acdc1c63811fde031263bf92c5
Author: Li Zefan <lizf@cn.fujitsu.com>
Date:   Wed Feb 18 14:48:20 2009 -0800

    cgroups: fix possible use after free
    
    In cgroup_kill_sb(), root is freed before sb is detached from the list, so
    another sget() may find this sb and call cgroup_test_super(), which will
    access the root that has been freed.
    
    Reported-by: Al Viro <viro@ZenIV.linux.org.uk>
    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Acked-by: Paul Menage <menage@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 1cf6e7d83bf334cc5916137862c920a97aabc018
Author: Nick Piggin <npiggin@suse.de>
Date:   Wed Feb 18 14:48:18 2009 -0800

    mm: task dirty accounting fix
    
    YAMAMOTO-san noticed that task_dirty_inc doesn't seem to be called properly for
    cases where set_page_dirty is not used to dirty a page (eg. mark_buffer_dirty).
    
    Additionally, there is some inconsistency about when task_dirty_inc is
    called.  It is used for dirty balancing, however it even gets called for
    __set_page_dirty_no_writeback.
    
    So rather than increment it in a set_page_dirty wrapper, move it down to
    exactly where the dirty page accounting stats are incremented.
    
    Cc: YAMAMOTO Takashi <yamamoto@valinux.co.jp>
    Signed-off-by: Nick Piggin <npiggin@suse.de>
    Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 610d18f4128ebbd88845d0fc60cce67b49af881e
Author: Davide Libenzi <davidel@xmailserver.org>
Date:   Wed Feb 18 14:48:18 2009 -0800

    timerfd: add flags check
    
    As requested by Michael, add a missing check for valid flags in
    timerfd_settime(), and make it return EINVAL in case some extra bits are
    set.
    
    Michael said:
    If this is to be any use to userland apps that want to check flag
    support (perhaps it is too late already), then the sooner we get it
    into the kernel the better: 2.6.29 would be good; earlier stables as
    well would be even better.
    
    [akpm@linux-foundation.org: remove unused TFD_FLAGS_SET]
    Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
    Signed-off-by: Davide Libenzi <davidel@xmailserver.org>
    Cc: <stable@kernel.org>		[2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit ef35ce231b3cb2a4b1808e826da263bf37ccb38a
Author: Pavel Machek <pavel@suse.cz>
Date:   Wed Feb 18 14:48:16 2009 -0800

    Pavel has moved
    
    My @suse.cz address will stop working some day, so put working one into
    MAINTAINERS/CREDITS.  It would be cool to get this to 2.6.29...  it should
    not really break anything.
    
    Signed-off-by: Pavel Machek <pavel@ucw.cz>
    Cc: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 8f19d472935c83d823fa4cf02bcc0a7b9952db30
Author: Eric Biederman <ebiederm@xmission.com>
Date:   Wed Feb 18 14:48:16 2009 -0800

    seq_file: properly cope with pread
    
    Currently seq_read assumes that the offset passed to it is always the
    offset it passed to user space.  In the case pread this assumption is
    broken and we do the wrong thing when presented with pread.
    
    To solve this I introduce an offset cache inside of struct seq_file so we
    know where our logical file position is.  Then in seq_read if we try to
    read from another offset we reset our data structures and attempt to go to
    the offset user space wanted.
    
    [akpm@linux-foundation.org: restore FMODE_PWRITE]
    [pjt@google.com: seq_open needs its fmode opened up to take advantage of this]
    Signed-off-by: Eric Biederman <ebiederm@xmission.com>
    Cc: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: Paul Turner <pjt@google.com>
    Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 55ec82176eca52e4e0530a82a0eb59160a1a95a1
Author: Paul Turner <pjt@google.com>
Date:   Wed Feb 18 14:48:15 2009 -0800

    vfs: separate FMODE_PREAD/FMODE_PWRITE into separate flags
    
    Separate FMODE_PREAD and FMODE_PWRITE into separate flags to reflect the
    reality that the read and write paths may have independent restrictions.
    
    A git grep verifies that these flags are always cleared together so this
    new behavior will only apply to interfaces that change to clear flags
    individually.
    
    This is required for "seq_file: properly cope with pread", a post-2.6.25
    regression fix.
    
    [akpm@linux-foundation.org: add comment]
    Signed-off-by: Paul Turner <pjt@google.com>
    Cc: Eric Biederman <ebiederm@xmission.com>
    Cc:  Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Al Viro <viro@zeniv.linux.org.uk>
    Cc: <stable@kernel.org>		[2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit b851ee7921fabdd7dfc96ffc4e9609f5062bd12b
Author: Li Zefan <lizf@cn.fujitsu.com>
Date:   Wed Feb 18 14:48:14 2009 -0800

    cgroups: update documentation about css_set hash table
    
    The css_set hash table was introduced in 2.6.26, so update the
    documentation accordingly.
    
    Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
    Acked-by: Paul Menage <menage@google.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit b6d6c5175809934e04a606d9193ef04924a7a7d9
Author: Ed Cashin <ecashin@coraid.com>
Date:   Wed Feb 18 14:48:13 2009 -0800

    aoe: ignore vendor extension AoE responses
    
    The Welland ME-747K-SI AoE target generates unsolicited AoE responses that
    are marked as vendor extensions.  Instead of ignoring these packets, the
    aoe driver was generating kernel messages for each unrecognized response
    received.  This patch corrects the behavior.
    
    Signed-off-by: Ed Cashin <ecashin@coraid.com>
    Reported-by: <karaluh@karaluh.pl>
    Tested-by: <karaluh@karaluh.pl>
    Cc: <stable@kernel.org>
    Cc: Alex Buell <alex.buell@munted.org.uk>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit c296861291669f305deef19b78042330d7135017
Author: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Date:   Wed Feb 18 14:48:12 2009 -0800

    vmalloc: add __get_vm_area_caller()
    
    We have get_vm_area_caller() and __get_vm_area() but not
    __get_vm_area_caller()
    
    On powerpc, I use __get_vm_area() to separate the ranges of addresses
    given to vmalloc vs.  ioremap (various good reasons for that) so in order
    to be able to implement the new caller tracking in /proc/vmallocinfo, I
    need a "_caller" variant of it.
    
    (akpm: needed for ongoing powerpc development, so merge it early)
    
    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Reviewed-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 3ebf74b1de9f94da4291db3ea1ae11c5bedb5784
Author: Jean Pihet <jpihet@mvista.com>
Date:   Fri Feb 6 16:42:51 2009 +0100

    omap_hsmmc: Change while(); loops with finite version
    
    Replace the infinite 'while() ;' loops
    with a finite loop version.
    
    Signed-off-by: Jean Pihet <jpihet@mvista.com>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit c232f457e409b34417166596ea3daf298ace95c9
Author: Jean Pihet <jpihet@mvista.com>
Date:   Wed Feb 11 13:11:39 2009 -0800

    omap_hsmmc: recover from transfer failures
    
    Timeouts during a command that has a data phase can result in the next
    command issued after the command that failed not being processed, i.e.  no
    interrupt ever occurs to indicate the command has completed.  This failure
    can result in a deadlock.
    
    This patch resets the data state machine to clear the error in case of a
    command timeout.
    
    Tested on OMAP3430 chip and intensive MMC/SD device removal while
    transferring data.
    
    Signed-off-by: Andy Lowe <alowe@mvista.com>
    Signed-off-by: Jean Pihet <jpihet@mvista.com>
    Signed-off-by: Adrian Hunter <ext-adrian.hunter@nokia.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit eb25082657be3e7639e349fc926afdcbb0a4dc65
Author: David Brownell <dbrownell@users.sourceforge.net>
Date:   Tue Feb 17 14:49:01 2009 -0800

    omap_hsmmc: only MMC1 allows HCTL.SDVS != 1.8V
    
    Based on a patch from Tony Lindgren ... after initialization,
    never change HCTL.SDVS except for MMC1.  The other controller
    instances only support 1.8V in that field, although they can
    suport other card/SDIO/eMMC/... voltages with level shifting
    solutions such as external transceivers.
    
    MMC2 behavior sanity tested on Overo/WLAN, OMAP3430 SDP, and
    custom hardware.  MMC1 also sanity tested on those platforms
    plus Beagle.  This also fixes a bug preventing MMC2 (and also
    presumably MMC3) from powering down when requested.
    
    Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit 249d0fa9d59b6165ecc224720d9ce9b7267cf1b8
Author: David Brownell <dbrownell@users.sourceforge.net>
Date:   Wed Feb 4 14:42:03 2009 -0800

    omap_hsmmc: card detect irq bugfix
    
    Work around lockdep issue when card detect IRQ handlers run in
    thread context ... it forces IRQF_DISABLED, which prevents all
    access to twl4030 card detect signals.
    
    Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
    Acked-by: Tony Lindgren <tony@atomide.com>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit 5dbace0c9ba110c1a3810a89fa6bf12b7574b5a3
Author: Helmut Schaa <helmut.schaa@googlemail.com>
Date:   Sat Feb 14 16:22:39 2009 +0100

    sdhci: fix led naming
    
    Fix the led device naming for the sdhci driver.
    
    The led class documentation defines the led name to have the
    form "devicename:colour:function" while not applicable sections
    should be left blank.
    
    To comply with the documentation the led device name is changed
    from "mmc*" to "mmc*::".
    
    Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit 58a5dd3e0e77029d3db1f8fa75d0b54b38169d5d
Author: Rabin Vincent <rabin@rab.in>
Date:   Fri Feb 13 22:55:26 2009 +0530

    mmc_test: fix basic read test
    
    Due to a typo in the Basic Read test, it's currently identical to the
    Basic Write test.  Fix this.
    
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit 994244883739e4044bef76d4e5d7a9b66dc6c7b6
Author: Yauhen Kharuzhy <jekhor@gmail.com>
Date:   Wed Feb 11 13:25:52 2009 -0800

    s3cmci: Fix hangup in do_pio_write()
    
    This commit fixes the regression what was added by commit
    088a78af978d0c8e339071a9b2bca1f4cb368f30 "s3cmci: Support transfers
    which are not multiple of 32 bits."
    
    fifo_free() now returns amount of available space in FIFO buffer in
    bytes.  But do_pio_write() writes to FIFO 32-bit words.  Condition for
    return from cycle is (fifo_free() == 0), but when fifo has 1..3 bytes
    of free space then this condition will never be true and system hangs.
    
    This patch changes condition in the while() to (fifo_free() > 3).
    
    Signed-off-by: Yauhen Kharuzhy <jekhor@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit 2678f60d2bc05a12580b93eb36f089f0e55693e0
Author: Takashi Iwai <tiwai@suse.de>
Date:   Wed Feb 18 16:46:27 2009 +0100

    ALSA: jack - Use card->shortname for input name
    
    Currently the jack layer refers to card->longname as a part of
    its input device name string.  However, longname is often really long
    and way too ugly as an identifier, such as,
    "HDA Intel at 0xf8400000 irq 21".
    
    This patch changes the code to use card->shortname instead.
    The shortname string contains usually the h/w vendor and product
    names but without messy I/O port or IRQ numbers.
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

commit be987fdb55a4726e2fcbab7501f89276bdb57288
Author: Hannes Reinecke <hare@suse.de>
Date:   Wed Feb 18 10:30:15 2009 +0100

    block: fix deadlock in blk_abort_queue() for drivers that readd to timeout list
    
    blk_abort_queue() iterates the timeout list and aborts each request on the
    list, but if the driver error handling readds a request to the timeout list
    during this processing, we could be looping forever. Fix this by splicing
    current entries to a local list and run over that list instead.
    
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit 41b8c853a495438208faa5be03bbb0050859163b
Author: Neil Brown <neilb@suse.de>
Date:   Wed Feb 18 10:33:59 2009 +0100

    block: fix booting from partitioned md array
    
    Hi Tejun,
    
     it looks like your commit:
    
       block: don't depend on consecutive minor space
       f331c0296f2a9fee0d396a70598b954062603015
    
     broke a particular case for booting from partitioned md/raid devices.
     That is the second time this has been broken recently.  The previous
     time was fixed by
    
       block: do_mounts - accept root=<non-existant partition>
       30f2f0eb4bd2c43d10a8b0d872c6e5ad8f31c9a0
    
     Because the data isn't available when an md device is first created
     (we add disks and set it up after creation), the initial partition
     scan finds nothing.  It is not until the device is opened that
     another partition scan happens and finds something.
    
     So at the point where the kernel parameter "root=/dev/md_d0p1" is
     being parsed, md_d0 exists, but md_d0p1 does not.
     However if we let blk_lookup_devt return the correct device number
     even though the device doesn't exist, then the attempt to mount it
     will successfully find the partition.
    
     I have tried in the past to find a way to get the partition table to
     be read as soon as the array is assembled but that proved impossible
     (at the time).  I don't remember the details, and could possibly
     revisit it.  However it would be really nice if blk_lookup_devt
     could be adjusted to again accept non existant partitions.
    
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit 78f707bfc723552e8309b7c38a8d0cc51012e813
Author: Jens Axboe <jens.axboe@oracle.com>
Date:   Tue Feb 17 13:59:08 2009 +0100

    block: revert part of 18ce3751ccd488c78d3827e9f6bf54e6322676fb
    
    The above commit added WRITE_SYNC and switched various places to using
    that for committing writes that will be waited upon immediately after
    submission. However, this causes a performance regression with AS and CFQ
    for ext3 at least, since sync_dirty_buffer() will submit some writes with
    WRITE_SYNC while ext3 has sumitted others dependent writes without the sync
    flag set. This causes excessive anticipation/idling in the IO scheduler
    because sync and async writes get interleaved, causing a big performance
    regression for the below test case (which is meant to simulate sqlite
    like behaviour).
    
    ---- test case ----
    
    int main(int argc, char **argv)
    {
    
    	int fdes, i;
    	FILE *fp;
    	struct timeval start;
    	struct timeval end;
    	struct timeval res;
    
    	gettimeofday(&start, NULL);
    	for (i=0; i<ROWS; i++) {
    		fp = fopen("test_file", "a");
    		fprintf(fp, "Some Text Data\n");
    		fdes = fileno(fp);
    		fsync(fdes);
    		fclose(fp);
    	}
    	gettimeofday(&end, NULL);
    
    	timersub(&end, &start, &res);
    	fprintf(stdout, "time to write %d lines is %ld(msec)\n", ROWS,
    			(res.tv_sec*1000000 + res.tv_usec)/1000);
    
    	return 0;
    }
    
    -------------------
    
    Thanks to Sean.White@APCC.com for tracking down this performance
    regression and providing a test case.
    
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit 82eb03cfd862a65363fa2826de0dbd5474cfe5e2
Author: Chip Coldwell <coldwell@redhat.com>
Date:   Mon Feb 16 13:11:56 2009 +0100

    cciss: PCI power management reset for kexec
    
    The kexec kernel resets the CCISS hardware in three steps:
    
    1. Use PCI power management states to reset the controller in the
       kexec kernel.
    
    2. Clear the MSI/MSI-X bits in PCI configuration space so that MSI
       initialization in the kexec kernel doesn't fail.
    
    3. Use the CCISS "No-op" message to determine when the controller
       firmware has recovered from the PCI PM reset.
    
    [akpm@linux-foundation.org: cleanups]
    Signed-off-by: Mike Miller <mike.miller@hp.com>
    Cc: Randy Dunlap <randy.dunlap@oracle.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit c8cbec6bdf6329279fd14696020f6b59d1d3124d
Author: Roel Kluin <roel.kluin@gmail.com>
Date:   Mon Feb 16 13:11:55 2009 +0100

    paride/pg.c: xs(): &&/|| confusion
    
    &&/|| confusion
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit a60e78e57a17d55bbd5a96da16fe9649d364b987
Author: Subhash Peddamallu <subhash.peddamallu@gmail.com>
Date:   Mon Feb 16 10:27:07 2009 +0100

    fs/bio: bio_alloc_bioset: pass right object ptr to mempool_free
    
    When freeing from bio pool use right ptr to account for bs->front_pad,
    instead of bio ptr,
    
    Signed-off-by: Subhash Peddamallu <subhash.peddamallu@gmail.com>
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit 93dbb393503d53cd226e5e1f0088fe8f4dbaa2b8
Author: Jens Axboe <jens.axboe@oracle.com>
Date:   Mon Feb 16 10:25:40 2009 +0100

    block: fix bad definition of BIO_RW_SYNC
    
    We can't OR shift values, so get rid of BIO_RW_SYNC and use BIO_RW_SYNCIO
    and BIO_RW_UNPLUG explicitly. This brings back the behaviour from before
    213d9417fec62ef4c3675621b9364a667954d4dd.
    
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit c1c201200a359cf3b6e2e36a4236cdca77a3cd8e
Author: Boaz Harrosh <bharrosh@panasas.com>
Date:   Tue Feb 3 07:47:29 2009 +0100

    bsg: Fix sense buffer bug in SG_IO
    
    When submitting requests via SG_IO, which does a sync io, a
    bsg_command is not allocated. So an in-Kernel sense_buffer was not
    set. However when calling blk_execute_rq() with no sense buffer
    one is provided from the stack. Now bsg at blk_complete_sgv4_hdr_rq()
    would check if rq->sense_len and a sense was requested by sg_io_v4
    the rq->sense was copy_user() back, but by now it is already mangled
    stack memory.
    
    I have fixed that by forcing a sense_buffer when calling bsg_map_hdr().
    The bsg_command->sense is provided in the write/read path like before,
    and on-the-stack buffer is provided when doing SG_IO.
    
    I have also fixed a dprintk message to print rq->errors in hex because
    of the scsi bit-field use of this member. For other block devices it
    does not matter anyway.
    
    Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
    Acked-by: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    Signed-off-by: Jens Axboe <jens.axboe@oracle.com>

commit 86a6a8749d5b8fd5c2b544fe9fd11101e3d0550f
Author: Pierre Ossman <drzeus@drzeus.cx>
Date:   Mon Feb 2 21:13:49 2009 +0100

    Revert "sdhci: force high speed capability on some controllers"
    
    This reverts commit a4b76193774b463b922cab2f92450efb20d29ef0.
    
    It turned out that the controller had problem running at the
    higher speed, so go back to trusting the hardware capability
    bits.
    
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit 444122fd58fdc83c96877a92b3f6288cafddb08d
Author: Yi Li <yi.li@analog.com>
Date:   Thu Feb 5 15:31:57 2009 +0800

    MMC: fix bug - SDHC card capacity not correct
    
    Signed-off-by: Yi Li <yi.li@analog.com>
    Signed-off-by: Bryan Wu <cooloney@kernel.org>
    Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>

commit 5955c7a2cfb6a35429adea5dc480002b15ca8cfc
Author: Zlatko Calusic <zlatko.calusic@iskon.hr>
Date:   Wed Feb 18 01:33:34 2009 +0100

    Add support for VT6415 PCIE PATA IDE Host Controller
    
    Signed-off-by: Zlatko Calusic <zlatko.calusic@iskon.hr>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 3494252d5644993f407a45f01c3e8ad5ae38f93c
Author: Rafael J. Wysocki <rjw@sisk.pl>
Date:   Fri Feb 13 23:41:12 2009 +0100

    USB/PCI: Fix resume breakage of controllers behind cardbus bridges
    
    If a USB PCI controller is behind a cardbus bridge, we are trying to
    restore its configuration registers too early, before the cardbus
    bridge is operational.  To fix this, call pci_restore_state() from
    usb_hcd_pci_resume() and remove usb_hcd_pci_resume_early() which is
    no longer necessary (the configuration spaces of USB controllers that
    are not behind cardbus bridges will be restored by the PCI PM core
    with interrupts disabled anyway).
    
    This patch fixes the regression from 2.6.28 tracked as
    http://bugzilla.kernel.org/show_bug.cgi?id=12659
    
    [ Side note: the proper long-term fix is probably to just force the
      unplug event at suspend time instead of doing a plug/unplug at resume
      time, but this patch is fine regardless  - Linus ]
    
    Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
    Reported-by: Miles Lane <miles.lane@gmail.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 07db1c140eb233971341396e492cc73d4280e698
Author: Andi Kleen <andi@firstfloor.org>
Date:   Thu Feb 12 13:39:35 2009 +0100

    x86, mce: fix ifdef for 64bit thermal apic vector clear on shutdown
    
    Impact: Bugfix
    
    The ifdef for the apic clear on shutdown for the 64bit intel thermal
    vector was incorrect and never triggered. Fix that.
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>

commit 380851bc6b1b4107c61dfa2997f9095dcf779336
Author: Andi Kleen <andi@firstfloor.org>
Date:   Thu Feb 12 13:39:33 2009 +0100

    x86, mce: use force_sig_info to kill process in machine check
    
    Impact: bug fix (with tolerant == 3)
    
    do_exit cannot be called directly from the exception handler because
    it can sleep and the exception handler runs on the exception stack.
    Use force_sig() instead.
    
    Based on a earlier patch by Ying Huang who debugged the problem.
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>

commit 6ec68bff3c81e776a455f6aca95c8c5f1d630198
Author: Andi Kleen <andi@firstfloor.org>
Date:   Thu Feb 12 13:39:26 2009 +0100

    x86, mce: reinitialize per cpu features on resume
    
    Impact: Bug fix
    
    This fixes a long standing bug in the machine check code. On resume the
    boot CPU wouldn't get its vendor specific state like thermal handling
    reinitialized. This means the boot cpu wouldn't ever get any thermal
    events reported again.
    
    Call the respective initialization functions on resume
    
    v2: Remove ancient init because they don't have a resume device anyways.
        Pointed out by Thomas Gleixner.
    v3: Now fix the Subject too to reflect v2 change
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    Acked-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: H. Peter Anvin <hpa@zytor.com>

commit fd4b9b3650076ffadbdd6e360eb198f5d61747c0
Author: Nicolas Pitre <nico@cam.org>
Date:   Tue Feb 17 20:45:50 2009 +0100

    [ARM] 5401/1: Orion: fix edge triggered GPIO interrupt support
    
    The GPIO interrupts can be configured as either level triggered or edge
    triggered, with a default of level triggered.  When an edge triggered
    interrupt is requested, the gpio_irq_set_type method is called which
    currently switches the given IRQ descriptor between two struct irq_chip
    instances: orion_gpio_irq_level_chip and orion_gpio_irq_edge_chip. This
    happens via __setup_irq() which also calls irq_chip_set_defaults() to
    assign default methods to uninitialized ones.  The problem is that
    irq_chip_set_defaults() is called before the irq_chip reference is
    switched, leaving the new irq_chip (orion_gpio_irq_edge_chip in this
    case) with uninitialized methods such as chip->startup() causing a kernel
    oops.
    
    Many solutions are possible, such as making irq_chip_set_defaults() global
    and calling it from gpio_irq_set_type(), or calling __irq_set_trigger()
    before irq_chip_set_defaults() in __setup_irq().  But those require
    modifications to the generic IRQ code which might have adverse effect on
    other architectures, and that would still be a fragile arrangement.
    Manually copying the missing methods from within gpio_irq_set_type()
    would be really ugly and it would break again the day new methods with
    automatic defaults are added.
    
    A better solution is to have a single irq_chip instance which can deal
    with both edge and level triggered interrupts.  It is also a good idea
    to switch the IRQ handler instead, as the edge IRQ handler allows for
    one edge IRQ event to be queued as the IRQ is actually masked only when
    that second IRQ is received, at which point the hardware can queue an
    additional IRQ event, making edge triggered interrupts a bit more
    reliable.
    
    Tested-by: Martin Michlmayr <tbm@cyrius.com>
    
    Signed-off-by: Nicolas Pitre <nico@marvell.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit e78ac4b9deb8f36d8c828b6d91232960f109d951
Merge: 29a0c5c... a0490fa...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:30:06 2009 -0800

    Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/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: cpu hotplug fix

commit 29a0c5ce5d008f398346d644456d62ab300d5e10
Merge: f8effd1... 3997ad3...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:29:42 2009 -0800

    Merge branch 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/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:
      timers: more consistently use clock vs timer

commit f8effd1a4a1833eac90261d78abacfaefe3d99e4
Merge: 3501033... f9aa28a...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:29:15 2009 -0800

    Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/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:
      doc: mmiotrace.txt, buffer size control change
      trace: mmiotrace to the tracer menu in Kconfig
      mmiotrace: count events lost due to not recording

commit 35010334aa007480a833401b80922299cb1a15ef
Merge: 8ce9a75... be71661...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:27:39 2009 -0800

    Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/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, vm86: fix preemption bug
      x86, olpc: fix model detection without OFW
      x86, hpet: fix for LS21 + HPET = boot hang
      x86: CPA avoid repeated lazy mmu flush
      x86: warn if arch_flush_lazy_mmu_cpu is called in preemptible context
      x86/paravirt: make arch_flush_lazy_mmu/cpu disable preemption
      x86, pat: fix warn_on_once() while mapping 0-1MB range with /dev/mem
      x86/cpa: make sure cpa is safe to call in lazy mmu mode
      x86, ptrace, mm: fix double-free on race

commit 8ce9a75a307e142a8871c649627555e0e4a1eefb
Merge: b30b774... 9af8814...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:26:35 2009 -0800

    Merge branch 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/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:
      iommu: fix Intel IOMMU write-buffer flushing
      futex: fix reference leak
    
    Trivial conflicts fixed manually in drivers/pci/intel-iommu.c

commit b30b77493039b7b95b4d569a66af425b02651edd
Merge: c951aa6... 26456dc...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:23:49 2009 -0800

    Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc
    
    * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/benh/powerpc:
      powerpc/vsx: Fix VSX alignment handler for regs 32-63
      powerpc/ps3: Move ps3_mm_add_memory to device_initcall
      powerpc/mm: Fix numa reserve bootmem page selection
      powerpc/mm: Fix _PAGE_CHG_MASK to protect _PAGE_SPECIAL

commit c951aa62d59210636cc63a569bcf3331be7f5b15
Merge: 23beafb... a08f6e0...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:23:35 2009 -0800

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
      PCI: Documentation: fix minor PCIe HOWTO thinko
      PCI: fix missing kernel-doc and typos
      PCI: fix struct pci_platform_pm_ops kernel-doc
      PCI: fix rom.c kernel-doc warning
      PCI/MSI: fix msi_mask() shift fix

commit 23beafbe3abd3f622931e83ef4e6b17642cf408e
Merge: 48c0d9e... 8eb2dfa...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:22:59 2009 -0800

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
      crypto: lrw - Fix big endian support

commit 48c0d9ece360ff6001e2ae36aa9b34446d0388a8
Merge: 0637810... 2456242...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:19:14 2009 -0800

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
      Btrfs: hold trans_mutex when using btrfs_record_root_in_trans
      Btrfs: make a lockdep class for the extent buffer locks
      Btrfs: fs/btrfs/volumes.c: remove useless kzalloc
      Btrfs: remove unused code in split_state()
      Btrfs: remove btrfs_init_path
      Btrfs: balance_level checks !child after access
      Btrfs: Avoid using __GFP_HIGHMEM with slab allocator
      Btrfs: don't clean old snapshots on sync(1)
      Btrfs: use larger metadata clusters in ssd mode
      Btrfs: process mount options on mount -o remount,
      Btrfs: make sure all pending extent operations are complete

commit 0637810f24bad641d3d3f80fd3f63f3baffd9536
Merge: 51f2677... 7dac745...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:16:02 2009 -0800

    Merge branch 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev
    
    * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
      sata_nv: give up hardreset on nf2
      libata-sff: fix 32-bit PIO ATAPI regression

commit 51f267739a81db5eb511b95aeae338413690b8a2
Merge: 59dad0c... 9297999...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:15:23 2009 -0800

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-fixes:
      kbuild: create the source symlink earlier in the objdir
      scripts: add x86 64 bit support to the markup_oops.pl script
      scripts: add x86 register parser to markup_oops.pl
      kbuild: add sys_* entries for syscalls in tags
      kbuild: fix tags generation of config symbols
      bootgraph: fix for use with dot symbols
      kbuild: add vmlinux to kernel rpm
      kbuild,setlocalversion: shorten the make time when using svn

commit 59dad0cbe6fd52e68b1ee4b02cbf89d64a4655cc
Merge: 1024d1c... 211e3e0...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:14:15 2009 -0800

    Merge branch 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6
    
    * 'hwmon-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
      MAINTAINERS: Switch hdaps to Frank Seidel
      hwmon: Fix ACPI resource check error handling
      hwmon: (f71882fg) Hide misleading error message

commit 1024d1c24bb3f2c4dc568d96d3b5e22ea5865481
Merge: 5e51d16... 7bf432d...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:09:03 2009 -0800

    Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6
    
    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-2.6:
      V4L/DVB (10626): ivtv: fix regression in get sliced vbi format
      V4L/DVB (10625): ivtv: fix decoder crash regression
      V4L/DVB (10619): gspca - main: Destroy the URBs at disconnection time.
      V4L/DVB (10572): Revert commit dda06a8e4610757def753ee3a541a0b1a1feb36b
      V4L/DVB (10533): fix LED status output
      V4L/DVB (10532): Correction of Stereo detection/setting and signal strength indication
      V4L/DVB (10527): tuner: fix TUV1236D analog/digital setup
      V4L/DVB (10516a): zoran: Update MAINTAINERS entry

commit 5e51d16ddefa0874993f42a4b2beb13127feda76
Merge: 7f302fe... 2b63938...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:08:26 2009 -0800

    Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid:
      HID: fix bus endianity in file2alias
      HID: move tmff and zpff devices from ignore_list to blacklist
      HID: unlock properly on error paths in hidraw_ioctl()
      HID: blacklist Powercom USB UPS

commit 7f302fe3173c61e0e4fcf0a6a906ae297225e3be
Merge: 68cc830... dcd9651...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:08:03 2009 -0800

    Merge branch 'for-linus' of git://git.o-hand.com/linux-mfd
    
    * 'for-linus' of git://git.o-hand.com/linux-mfd:
      mfd: Fix sm501_register_gpio section mismatch
      mfd: fix sm501 section mismatches
      mfd: terminate pcf50633 i2c_device_id list
      mfd: Ensure all WM8350 IRQs are masked at startup
      mfd: fix htc-egpio iomem resource handling using resource_size
      mfd: Fix TWL4030 build on some ARM variants
      mfd: wm8350 tries reaches -1
      mfd: Mark WM835x USB_SLV_500MA bit as accessible
      mfd: Improve diagnostics for WM8350 ID register probe
      mfd: Initialise WM8350 interrupts earlier
      mfd: Fix egpio kzalloc return test

commit 68cc8301b45dee5de275a477a60f77f5560c8ca0
Merge: 11df586... 12d60e2...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:07:18 2009 -0800

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
      [WATCHDOG] iTCO_wdt: fix SMI_EN regression 2

commit 11df5864075f763ec0d1fdecd6a3f0af7d09a553
Merge: 2f60971... a3c1239...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:05:59 2009 -0800

    Merge branch 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb
    
    * 'for-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/dvrabel/uwb:
      wusb: whci-hcd: always lock whc->lock with interrupts disabled

commit 2f6097129af5625db2fb5e601f89e5bf55cd1dcd
Author: Roel Kluin <roel.kluin@gmail.com>
Date:   Mon Feb 16 12:49:16 2009 +0000

    FRV: __pte_to_swp_entry doesn't expand correctly
    
    The macro doesn't expand correctly when its parameter isn't 'pte'.
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 3512a79dbcc90e6edac98717607bd821bba50a14
Merge: 39a6576... 0905426...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:05:05 2009 -0800

    Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4
    
    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
      ext4: Fix NULL dereference in ext4_ext_migrate()'s error handling
      ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages
      ext4: Initialize preallocation list_head's properly
      ext4: Fix lockdep warning
      ext4: Fix to read empty directory blocks correctly in 64k
      jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()
      Revert "ext4: wait on all pending commits in ext4_sync_fs()"
      jbd2: Fix return value of jbd2_journal_start_commit()

commit 39a65762d4c48fd8a498f34b7fec74a6b0aebd55
Merge: 643aac1... 516a1a7...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:04:32 2009 -0800

    Merge branch 'kvm-updates/2.6.29' of git://git.kernel.org/pub/scm/virt/kvm/kvm
    
    * 'kvm-updates/2.6.29' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
      KVM: VMX: Flush volatile msrs before emulating rdmsr
      KVM: Fix assigned devices circular locking dependency
      KVM: x86: fix LAPIC pending count calculation
      KVM: Fix INTx for device assignment
      KVM: MMU: Map device MMIO as UC in EPT
      KVM: x86: disable kvmclock on non constant TSC hosts
      KVM: PIT: fix i8254 pending count read
      KVM: Fix racy in kvm_free_assigned_irq
      KVM: Add kvm_arch_sync_events to sync with asynchronize events
      KVM: mmu_notifiers release method
      KVM: Avoid using CONFIG_ in userspace visible headers
      KVM: ia64: fix fp fault/trap handler

commit 643aac1e2a34aa1d46a2d95c2a4087873f01e25e
Merge: ca77fde... 1371be0...
Author: Linus Torvalds <torvalds@linux-foundation.org>
Date:   Tue Feb 17 14:04:00 2009 -0800

    Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus
    
    * git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus:
      cpumask: Use cpu_*_mask accessors code: alpha
      cpumask: fix powernow-k8: partial revert of 2fdf66b491ac706657946442789ec644cc317e1a

commit ca77fde8e62cecb2c0769052228d15b901367af8
Author: David Woodhouse <dwmw2@infradead.org>
Date:   Fri Feb 13 23:18:03 2009 +0000

    Fix Intel IOMMU write-buffer flushing
    
    This is the cause of the DMA faults and disk corruption that people have
    been seeing. Some chipsets neglect to report the RWBF "capability" --
    the flag which says that we need to flush the chipset write-buffer when
    changing the DMA page tables, to ensure that the change is visible to
    the IOMMU.
    
    Override that bit on the affected chipsets, and everything is happy
    again.
    
    Thanks to Chris and Bhavesh and others for helping to debug.
    
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    Tested-by: Chris Wright <chrisw@sous-sol.org>
    Reviewed-by: Bhavesh Davda <bhavesh@vmware.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit 1a88b5364b535edaa321d70a566e358390ff0872
Author: Al Viro <viro@ZenIV.linux.org.uk>
Date:   Mon Feb 16 02:38:12 2009 +0000

    Fix incomplete __mntput locking
    
    Getting this wrong caused
    
    	WARNING: at fs/namespace.c:636 mntput_no_expire+0xac/0xf2()
    
    due to optimistically checking cpu_writer->mnt outside the spinlock.
    
    Here's what we really want:
     * we know that nobody will set cpu_writer->mnt to mnt from now on
     * all changes to that sucker are done under cpu_writer->lock
     * we want the laziest equivalent of
    	spin_lock(&cpu_writer->lock);
    	if (likely(cpu_writer->mnt != mnt)) {
    		spin_unlock(&cpu_writer->lock);
    		continue;
    	}
    	/* do stuff */
      that would make sure we won't miss earlier setting of ->mnt done by
      another CPU.
    
    Anyway, for now we just move the spin_lock() earlier and move the test
    into the properly locked region.
    
    Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
    Reported-and-tested-by: Li Zefan <lizf@cn.fujitsu.com>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

commit bf51935f3e988e0ed6f34b55593e5912f990750a
Author: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Date:   Tue Feb 17 06:01:30 2009 -0800

    x86, rcu: fix strange load average and ksoftirqd behavior
    
    Damien Wyart reported high ksoftirqd CPU usage (20%) on an
    otherwise idle system.
    
    The function-graph trace Damien provided:
    
    >   799.521187 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.521371 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.521555 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.521738 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.521934 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.522068 |   1)  ksoftir-2324  |               |                rcu_check_callbacks() {
    >   799.522208 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.522392 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.522575 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.522759 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.522956 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.523074 |   1)  ksoftir-2324  |               |                  rcu_check_callbacks() {
    >   799.523214 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.523397 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.523579 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.523762 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.523960 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.524079 |   1)  ksoftir-2324  |               |                  rcu_check_callbacks() {
    >   799.524220 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.524403 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.524587 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    >   799.524770 |   1)    <idle>-0    |               |  rcu_check_callbacks() {
    > [ . . . ]
    
    Shows rcu_check_callbacks() being invoked way too often. It should be called
    once per jiffy, and here it is called no less than 22 times in about
    3.5 milliseconds, meaning one call every 160 microseconds or so.
    
    Why do we need to call rcu_pending() and rcu_check_callbacks() from the
    idle loop of 32-bit x86, especially given that no other architecture does
    this?
    
    The following patch removes the call to rcu_pending() and
    rcu_check_callbacks() from the x86 32-bit idle loop in order to
    reduce the softirq load on idle systems.
    
    Reported-by: Damien Wyart <damien.wyart@free.fr>
    Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 211e3e0e1b116b10ba707db2fec972909fa647fd
Author: Frank Seidel <frank@f-seidel.de>
Date:   Tue Feb 17 19:59:54 2009 +0100

    MAINTAINERS: Switch hdaps to Frank Seidel
    
    As Rovert Love doesn't any more seem to be realy active on hdaps
    driver i'll happily take it over.
    
    Signed-off-by: Frank Seidel <frank@f-seidel.de>
    Cc: Robert Love <rlove@rlove.org>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>

commit 18632f84fac770125c0982dfadec6b551e82144e
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Feb 17 19:59:54 2009 +0100

    hwmon: Fix ACPI resource check error handling
    
    This patch fixes a number of cases where things were not properly
    cleaned up when acpi_check_resource_conflict() returned an error,
    causing oopses such as the one reported here:
    https://bugzilla.redhat.com/show_bug.cgi?id=483208
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Jean Delvare <khali@linux-fr.org>

commit 603eaa1bdd3e0402085e815cc531bb0a32827a9e
Author: Jean Delvare <khali@linux-fr.org>
Date:   Tue Feb 17 19:59:54 2009 +0100

    hwmon: (f71882fg) Hide misleading error message
    
    If the F71882FG chip is at address 0x4e, then the probe at 0x2e will
    fail with the following message in the logs:
    f71882fg: Not a Fintek device
    
    This is misleading because there is a Fintek device, just at a
    different address. So I propose to degrade this message to a debug
    message.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Acked-by: Hans de Goede <hdegoede@redhat.com>

commit 5b058bcde961bf28678a70e44c079107313543b6
Author: Frederic Weisbecker <fweisbec@gmail.com>
Date:   Tue Feb 17 18:35:34 2009 +0100

    tracing/function-graph-tracer: trace the idle tasks
    
    When the function graph tracer is activated, it iterates over the task_list
    to allocate a stack to store the return addresses.
    
    But the per cpu idle tasks are not iterated by using
    do_each_thread / while_each_thread.
    
    So we have to iterate on them manually.
    
    This fixes somes weirdness in the traces and many losses of traces.
    Examples on two cpus:
    
     0)   Xorg-4287    |   2.906 us    |              }
     0)   Xorg-4287    |   3.965 us    |            }
     0)   Xorg-4287    |   5.302 us    |          }
     ------------------------------------------
     0)   Xorg-4287    =>    <idle>-0
     ------------------------------------------
    
     0)    <idle>-0    |   2.861 us    |                        }
     0)    <idle>-0    |   0.526 us    |                        set_normalized_timespec();
     0)    <idle>-0    |   7.201 us    |                      }
     0)    <idle>-0    |   8.214 us    |                    }
     0)    <idle>-0    |               |                    clockevents_program_event() {
     0)    <idle>-0    |               |                      lapic_next_event() {
     0)    <idle>-0    |   0.510 us    |                        native_apic_mem_write();
     0)    <idle>-0    |   1.546 us    |                      }
     0)    <idle>-0    |   2.583 us    |                    }
     0)    <idle>-0    | + 12.435 us   |                  }
     0)    <idle>-0    | + 13.470 us   |                }
     0)    <idle>-0    |   0.608 us    |                _spin_unlock_irqrestore();
     0)    <idle>-0    | + 23.270 us   |              }
     0)    <idle>-0    | + 24.336 us   |            }
     0)    <idle>-0    | + 25.417 us   |          }
     0)    <idle>-0    |   0.593 us    |          _spin_unlock();
     0)    <idle>-0    | + 41.869 us   |        }
     0)    <idle>-0    | + 42.906 us   |      }
     0)    <idle>-0    | + 95.035 us   |    }
     0)    <idle>-0    |   0.540 us    |    menu_reflect();
     0)    <idle>-0    | ! 100.404 us  |  }
     0)    <idle>-0    |   0.564 us    |  mce_idle_callback();
     0)    <idle>-0    |               |  enter_idle() {
     0)    <idle>-0    |   0.526 us    |    mce_idle_callback();
     0)    <idle>-0    |   1.757 us    |  }
     0)    <idle>-0    |               |  cpuidle_idle_call() {
     0)    <idle>-0    |               |    menu_select() {
     0)    <idle>-0    |   0.525 us    |      pm_qos_requirement();
     0)    <idle>-0    |   0.518 us    |      tick_nohz_get_sleep_length();
     0)    <idle>-0    |   2.621 us    |    }
    [...]
     1)    <idle>-0    |   0.518 us    |              touch_softlockup_watchdog();
     1)    <idle>-0    | + 14.355 us   |            }
     1)    <idle>-0    | + 22.840 us   |          }
     1)    <idle>-0    | + 25.949 us   |        }
     1)    <idle>-0    |               |        handle_irq() {
     1)    <idle>-0    |   0.511 us    |          irq_to_desc();
     1)    <idle>-0    |               |          handle_edge_irq() {
     1)    <idle>-0    |   0.638 us    |            _spin_lock();
     1)    <idle>-0    |               |            ack_apic_edge() {
     1)    <idle>-0    |   0.510 us    |              irq_to_desc();
     1)    <idle>-0    |               |              move_native_irq() {
     1)    <idle>-0    |   0.510 us    |                irq_to_desc();
     1)    <idle>-0    |   1.532 us    |              }
     1)    <idle>-0    |   0.511 us    |              native_apic_mem_write();
     ------------------------------------------
     1)    <idle>-0    =>    cat-5073
     ------------------------------------------
    
     1)    cat-5073    |   3.731 us    |                    }
     1)    cat-5073    |               |                    run_local_timers() {
     1)    cat-5073    |   0.533 us    |                      hrtimer_run_queues();
     1)    cat-5073    |               |                      raise_softirq() {
     1)    cat-5073    |               |                        __raise_softirq_irqoff() {
     1)    cat-5073    |               |                          /* nr: 1 */
     1)    cat-5073    |   2.718 us    |                        }
     1)    cat-5073    |   3.814 us    |                      }
    
    Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 7bf432d64c47f77111fbce5d48d7774df8b48948
Author: Hans Verkuil <hverkuil@xs4all.nl>
Date:   Mon Feb 16 04:25:32 2009 -0300

    V4L/DVB (10626): ivtv: fix regression in get sliced vbi format
    
    The new v4l2_subdev_call used s_fmt instead of g_fmt.
    
    Thanks-to: Andy Walls <awalls@radix.net>
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit ac9575f75c52bcb455120f8c43376b556acba048
Author: Hans Verkuil <hverkuil@xs4all.nl>
Date:   Sat Feb 14 19:58:33 2009 -0300

    V4L/DVB (10625): ivtv: fix decoder crash regression
    
    The video_ioctl2 conversion of ivtv in kernel 2.6.27 introduced a bug
    causing decoder commands to crash. The decoder commands should have been
    handled from the video_ioctl2 default handler, ensuring correct mapping
    of the argument between user and kernel space. Unfortunately they ended
    up before the video_ioctl2 call, causing random crashes.
    
    Thanks to hannes@linus.priv.at for testing and helping me track down the
    cause!
    
    Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit ad28127d7c7c617bca1d426f95b6ffa1fb8f700f
Author: Adam Baker <linux@baker-net.org.uk>
Date:   Wed Feb 4 15:33:21 2009 -0300

    V4L/DVB (10619): gspca - main: Destroy the URBs at disconnection time.
    
    If a device using the gspca framework is unplugged while it is still streaming
    then the call that is used to free the URBs that have been allocated occurs
    after the pointer it uses becomes invalid at the end of gspca_disconnect.
    Make another cleanup call in gspca_disconnect while the pointer is still
    valid (multiple calls are OK as destroy_urbs checks for pointers already
    being NULL.
    
    Signed-off-by: Adam Baker <linux@baker-net.org.uk>
    Signed-off-by: Jean-Francois Moine <moinejf@free.fr>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit 28100165c3f27f681fee8b60e4e44f64a739c454
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Mon Feb 16 15:27:44 2009 -0300

    V4L/DVB (10572): Revert commit dda06a8e4610757def753ee3a541a0b1a1feb36b
    
    On Mon, 02 Feb 2009, Hartmut wrote:
    
    This change set is wrong. The affected functions cannot be called from
    an interrupt context, because they may process large buffers. In this
    case, interrupts are disabled for a long time. Functions, like
    dvb_dmx_swfilter_packets(), could be called only from a tasklet.
    
    This change set does hide some strong design bugs in dm1105.c and
    au0828-dvb.c.
    
    Please revert this change set and do fix the bugs in dm1105.c and
    au0828-dvb.c (and other files).
    
    On Sun, 15 Feb 2009, Oliver Endriss wrote:
    
    This changeset _must_ be reverted! It breaks all kernels since 2.6.27
    for applications which use DVB and require a low interrupt latency.
    
    It is a very bad idea to call the demuxer to process data buffers with
    interrupts disabled!
    
    On Mon, 16 Feb 2009, Trent Piepho wrote:
    
    I agree, this is bad.  The demuxer is far too much work to be done with
    IRQs off.  IMHO, even doing it under a spin-lock is excessive.  It should
    be a mutex.  Drivers should use a work-queue to feed the demuxer.
    
    Thank you for testing this changeset and discovering the issues on it.
    
    Cc: Trent Piepho <xyzzy@speakeasy.org>
    Cc: Hartmut <e9hack@googlemail.com>
    Cc: Oliver Endriss <o.endriss@gmx.de>
    Cc: Andreas Oberritter <obi@linuxtv.org>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit 2f94fc465a6504443bb986ba9d36e28e2b422c6e
Author: Tobias Lorenz <tobias.lorenz@gmx.net>
Date:   Thu Feb 12 14:56:19 2009 -0300

    V4L/DVB (10533): fix LED status output
    
    This patch closes one of my todos that was since long on my list.
    Some people reported clicks and glitches in the audio stream,
    correlated to the LED color changing cycle.
    Thanks to Rick Bronson <rick@efn.org>.
    
    Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit d807dec59d3c850b332b5bf95fe33f18def00068
Author: Tobias Lorenz <tobias.lorenz@gmx.net>
Date:   Thu Feb 12 14:56:10 2009 -0300

    V4L/DVB (10532): Correction of Stereo detection/setting and signal strength indication
    
    Thanks to Bob Ross <pigiron@gmx.com>
    - correction of stereo detection/setting
    - correction of signal strength indicator scaling
    
    Signed-off-by: Tobias Lorenz <tobias.lorenz@gmx.net>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit ef88f2b563275d156beebc9f76ed134f3f90f210
Author: Mauro Carvalho Chehab <mchehab@redhat.com>
Date:   Fri Feb 13 08:24:34 2009 -0300

    V4L/DVB (10527): tuner: fix TUV1236D analog/digital setup
    
    As reported by David Engel <david@istwok.net>, ATSC115 doesn't work
    fine with mythtv. This software opens both analog and dvb interfaces of
    saa7134.
    
    What happens is that some tuner commands are going to the wrong place,
    as shown at the logs:
    
    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: using tuner params #0 (ntsc)
    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: freq = 67.25 (1076), range = 0, config = 0xce, cb = 0x01
    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: Freq= 67.25 MHz, V_IF=45.75 MHz, Offset=0.00 MHz, div=1808
    Feb 12 20:37:48 opus kernel: tuner 1-0061: tv freq set to 67.25
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: using tuner params #0 (ntsc)
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: freq = 67.25 (1076), range = 0, config = 0xce, cb = 0x01
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: Freq= 67.25 MHz, V_IF=45.75 MHz, Offset=0.00 MHz, div=1808
    Feb 12 20:37:48 opus kernel: tuner-simple 1-000a: tv 0x07 0x10 0xce 0x01
    Feb 12 20:37:48 opus kernel: tuner-simple 1-0061: tv 0x07 0x10 0xce 0x01
    
    This happens due to a hack at TUV1236D analog setup, where it replaces
    tuner address, at 0x61 for 0x0a, in order to save a few memory bytes.
    
    The code assumes that nobody else would try to access the tuner during
    that setup, but the point is that there's no lock to protect such
    access. So, this opens the possibility of race conditions to happen.
    
    Instead of hacking tuner address, this patch uses a temporary var with
    the proper tuner value to be used during the setup. This should save
    the issue, although we should consider to write some analog/digital
    lock at saa7134 driver.
    
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit f63145e28934a0b3ad8baf31adc195ec81423351
Author: Trent Piepho <xyzzy@speakeasy.org>
Date:   Sat Jan 24 20:52:41 2009 -0300

    V4L/DVB (10516a): zoran: Update MAINTAINERS entry
    
    Ronald Bultje hasn't been maintaining the zoran driver for some time.
    Re-direct people to the mailing lists and web pages.
    
     MAINTAINERS |    6 +++---
    
    Signed-off-by: Trent Piepho <xyzzy@speakeasy.org>
    Acked-by: Jean Delvare <khali@linux-fr.org>
    Acked-by: Ronald S. Bultje <rbultje@ronald.bitfreak.net>
    Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>

commit 2b639386a2a26c84c8d26c649cf657ebd43a7bc8
Author: Jiri Slaby <jirislaby@gmail.com>
Date:   Tue Feb 17 12:38:36 2009 +0100

    HID: fix bus endianity in file2alias
    
    Fix endianness of bus member of hid_device_id in modpost.
    
    Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
    Reported-by: Nye Liu <nyet@mrv.com>
    Cc: Jiri Kosina <jkosina@suse.cz>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>

commit daedb3d6a91f9626ab4c921378ac52e44de833d5
Author: Anssi Hannula <anssi.hannula@gmail.com>
Date:   Sat Feb 14 11:45:05 2009 +0200

    HID: move tmff and zpff devices from ignore_list to blacklist
    
    The devices handled by hid-tmff and hid-zpff were added in the
    hid_ignore_list[] instead of hid_blacklist[] in hid-core.c, thus
    disabling them completely.
    
    hid_ignore_list[] causes hid layer to skip the device, while
    hid_blacklist[] indicates there is a specific driver in hid bus.
    
    Re-enable the devices by moving them to the correct list.
    
    Signed-off-by: Anssi Hannula <anssi.hannula@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>

commit dfd395aff4cb16d2480b280064bea1b19ededef1
Author: Dan Carpenter <error27@gmail.com>
Date:   Tue Feb 3 16:35:17 2009 +0300

    HID: unlock properly on error paths in hidraw_ioctl()
    
    We can't return immediately because lock_kernel() is held.
    
    Signed-off-by: Dan Carpenter <error27@gmail.com>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>

commit 35cfd1d964f3c2420862f2167a0eb85ff1208999
Author: Michael Tokarev <mjt@tls.msk.ru>
Date:   Sun Feb 1 16:11:04 2009 +0100

    HID: blacklist Powercom USB UPS
    
    For quite some time users with various UPSes from Powercom were forced to play
    magic with bind/unbind in /sys in order to be able to see the UPSes.  The
    beasts does not work as HID devices, even if claims to do so.  cypress_m8
    driver works with the devices instead, creating a normal serial port with which
    normal UPS controlling software works.
    
    The manufacturer confirmed the upcoming models with proper HID support will
    have different device IDs.  In any way, it's wrong to have two completely
    different modules for one device in kernel.
    
    Blacklist the device in HID (add it to hid_ignore_list) to stop this mess,
    finally.
    
    Signed-off-By: Michael Tokarev <mjt@tls.msk.ru>
    Signed-off-by: Jiri Kosina <jkosina@suse.cz>

commit 8eb2dfac41c71701bb741f496f0cb7b7e4a3c3f6
Author: Herbert Xu <herbert@gondor.apana.org.au>
Date:   Tue Feb 17 20:00:11 2009 +0800

    crypto: lrw - Fix big endian support
    
    It turns out that LRW has never worked properly on big endian.
    This was never discussed because nobody actually used it that
    way.  In fact, it was only discovered when Geert Uytterhoeven
    loaded it through tcrypt which failed the test on it.
    
    The fix is straightforward, on big endian the to find the nth
    bit we should be grouping them by words instead of bytes.  So
    setbit128_bbe should xor with 128 - BITS_PER_LONG instead of
    128 - BITS_PER_BYTE == 0x78.
    
    Tested-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>

commit dcd9651ecd652a186dd9ad0dde76d43320b9c0a2
Author: Rakib Mullick <rakib.mullick@gmail.com>
Date:   Tue Feb 17 09:21:52 2009 +0100

    mfd: Fix sm501_register_gpio section mismatch
    
    WARNING: drivers/mfd/built-in.o(.text+0x1706): Section mismatch in
    reference from the function sm501_register_gpio() to the function
    .devinit.text:sm501_gpio_register_chip()
    The function sm501_register_gpio() references
    the function __devinit sm501_gpio_register_chip().
    This is often because sm501_register_gpio lacks a __devinit
    annotation or the annotation of sm501_gpio_register_chip is wrong.
    
    Signed-off-by: Rakib Mullick <rakib.mullick@gmail.com>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 158abca5f699a047ff7b67a64ab19e8ec824e37d
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Tue Feb 17 09:10:19 2009 +0100

    mfd: fix sm501 section mismatches
    
    drv => driver renaming is needed otherwise modpost will spit false positives
    re pointing to __devinit function from regular data.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Cc: Ben Dooks <ben-linux@fluff.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 8915e5402809ae6228e15c76417351dad752826e
Author: Jean Delvare <khali@linux-fr.org>
Date:   Tue Feb 17 09:07:02 2009 +0100

    mfd: terminate pcf50633 i2c_device_id list
    
    The i2c_device_id list is supposed to be zero-terminated.
    
    Signed-off-by: Jean Delvare <khali@linux-fr.org>
    Cc: Balaji Rao <balajirrao@openmoko.org>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>

commit 2f161f4485535df85451a8cfdf2487c315f665f5
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Fri Feb 6 15:28:15 2009 +0100

    mfd: Ensure all WM8350 IRQs are masked at startup
    
    The IRQs might have been left enabled in hardware, generating spurious
    IRQs before the drivers have registered.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 9427c34bc72f05b519e8466f27c38a3327bae157
Author: Philipp Zabel <philipp.zabel@gmail.com>
Date:   Wed Feb 4 21:27:48 2009 +0100

    mfd: fix htc-egpio iomem resource handling using resource_size
    
    Fixes an off-by-one error in the iomem resource mapping.
    
    Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit a313d758cc7956d7f1e7a727c8fa571b6468fabf
Author: Mark Brown <broonie@sirena.org.uk>
Date:   Wed Feb 4 21:26:07 2009 +0100

    mfd: Fix TWL4030 build on some ARM variants
    
    Many ARM platforms do not provide a mach/cpu.h so rather than guarding
    the use of that header with CONFIG_ARM guard it with the guards used
    when testing for the OMAP variants in the body of the code.
    
    Signed-off-by: Mark Brown <broonie@sirena.org.uk>
    Acked-by: David Brownell <dbrownell@users.sourceforge.net>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 29c6a2e6f88225ae2673aabd2de0fa2126653231
Author: Roel Kluin <roel.kluin@gmail.com>
Date:   Wed Feb 4 21:23:22 2009 +0100

    mfd: wm8350 tries reaches -1
    
    With a postfix decrement tries will reach -1 rather than 0,
    so the warning will not be issued even upon timeout.
    
    Signed-off-by: Roel Kluin <roel.kluin@gmail.com>
    Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit a39a021fd73ce06aad8d1081ac711a36930e6cb8
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Wed Feb 4 21:10:58 2009 +0100

    mfd: Mark WM835x USB_SLV_500MA bit as accessible
    
    The code is out of sync with the silicon.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 85c93ea7dca475a6ee3bf414befe94b2c42f1001
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Wed Feb 4 21:09:38 2009 +0100

    mfd: Improve diagnostics for WM8350 ID register probe
    
    Check the return value of the device I/O functions when reading the
    ID registers so we can provide a more useful diagnostic when we're
    having trouble talking to the device.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 62571c29a8343839e85e741db6a489f30686697c
Author: Mark Brown <broonie@opensource.wolfsonmicro.com>
Date:   Wed Feb 4 20:49:52 2009 +0100

    mfd: Initialise WM8350 interrupts earlier
    
    Ensure that the interrupt handling is configured before we do platform
    specific init. This allows the platform specific initialisation to
    configure things which use interrupts safely.
    
    Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 720fd66dfad1b0286721dbb2ed4d6076c0aa953b
Author: Julia Lawall <julia@diku.dk>
Date:   Wed Feb 4 20:44:01 2009 +0100

    mfd: Fix egpio kzalloc return test
    
    Since ei is already known to be non-NULL, I assume that what was intended
    was to test the result of kzalloc.
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Signed-off-by: Samuel Ortiz <sameo@openedhand.com>

commit 7dac745b8e367c99175b8f0d014d996f0e5ed9e5
Author: Tejun Heo <tj@kernel.org>
Date:   Thu Feb 12 10:34:32 2009 +0900

    sata_nv: give up hardreset on nf2
    
    Kernel bz#12176 reports that nf2 hardreset simply doesn't work.  Give
    up.  Argh...
    
    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: Robert Hancock <hancockr@shaw.ca>
    Reported-by: Saro <saro_v@hotmail.it>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

commit d1b3525b4126d7acad0493b62642b80b71442661
Author: Sergei Shtylyov <sshtylyov@ru.mvista.com>
Date:   Sun Feb 15 23:24:24 2009 +0400

    libata-sff: fix 32-bit PIO ATAPI regression
    
    Commit 871af1210f13966ab911ed2166e4ab2ce775b99d (libata: Add 32bit
    PIO support) has caused all kinds of errors on the ATAPI devices, so
    it has been empirically proven that one shouldn't try to read/write
    an extra data word when a device is not expecting it already. "Don't
    do it then"; however, still use a chance to do 32-bit read/write one
    last time when there are exactly 3 trailing bytes.
    
    Oh, and stop pointlessly swapping the bytes to and fro on big-endian
    machines by using io*_rep() accessors which shouldn't byte-swap.
    
    This patch should fix the kernel.org bug #12609.
    
    Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com>
    Signed-off-by: Jeff Garzik <jgarzik@redhat.com>

commit 3b03cc5b86e2052295b9b484f37226ee15c87924
Author: Joris van Rantwijk <jorispubl@xs4all.nl>
Date:   Mon Feb 16 22:58:23 2009 +0100

    ALSA: usb-audio - Workaround for misdetected sample rate with CM6207
    
    The CM6207 incorrectly advertises its 96 kHz playback setting as 48 kHz
    in its USB device descriptor. This patch extends an existing workaround
    in usbaudio.c to also cover the CM6207.
    
    This resolves issue 0004249 in the ALSA bug tracker.
    
    Signed-off-by: Joris van Rantwijk <jorispubl@xs4all.nl>
    Cc: <stable@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

commit 0412558c873f716efe902b397af0653a550f7341
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 16 22:48:12 2009 +0100

    ALSA: usb-audio - Fix non-continuous rate detection
    
    The detection of non-continuous rates (given via rate tables) isn't
    processed properly (e.g. for type II).
    
    This patch fixes and simplifies the detection code.
    
    Tested-by: Joris van Rantwijk <jorispubl@xs4all.nl>
    Cc: <stable@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

commit 744f6592727a7ab9e3ca4266bedaa786825a31bb
Author: Gregory CLEMENT <gclement00@gmail.com>
Date:   Mon Feb 16 21:21:47 2009 +0100

    [ARM] 5400/1: Add support for inverted rdy_busy pin for Atmel nand device controller
    
    Add support for inverted rdy_busy pin for Atmel nand device controller
    It will fix building error on NeoCore926 board.
    
    Acked-by: Andrew Victor <linux@maxim.org.za>
    Acked-by: David Woodhouse <David.Woodhouse@intel.com>
    Signed-off-by: Gregory CLEMENT <gclement@adeneo.adetelgroup.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit a3c1239eb59c0a907f8be5587d42e950f44543f8
Author: David Vrabel <david.vrabel@csr.com>
Date:   Mon Feb 16 14:37:12 2009 +0000

    wusb: whci-hcd: always lock whc->lock with interrupts disabled
    
    Always lock whc->lock with spin_lock_irq() or spin_lock_irqsave().
    
    Signed-off-by: David Vrabel <david.vrabel@csr.com>

commit e156ac4c571e3be741bc411e58820b74a9295c72
Author: Clemens Ladisch <clemens@ladisch.de>
Date:   Mon Feb 16 15:22:39 2009 +0100

    sound: usb-audio: fix uninitialized variable with M-Audio MIDI interfaces
    
    Fix the snd_usbmidi_create_endpoints_midiman() function, which forgot to
    set the out_interval member of the endpoint info structure for Midiman/
    M-Audio devices.  Since kernel 2.6.24, any non-zero value makes the
    driver use interrupt transfers instead of bulk transfers.  With EHCI
    controllers, these random interval values result in unbearably large
    latencies for output MIDI transfers.
    
    Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
    Reported-by: David <devurandom@foobox.com>
    Tested-by: David <devurandom@foobox.com>
    Cc: <stable@kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

commit d14a7e0bfc4aed6452a436c9836903fbd1a5d6ad
Author: Takashi Iwai <tiwai@suse.de>
Date:   Mon Feb 16 10:13:03 2009 +0100

    Revert "Sound: hda - Restore PCI configuration space with interrupts off"
    
    This reverts commit 32e176c14d7a425b681ef003c9061001ddb7fc7b.
    
    That commit caused a regression with suspend on Thinkpad SL300.
    
    Reference: kernel bug#12711
    	http://bugzilla.kernel.org/show_bug.cgi?id=12711
    
    Tested-by:  Alexandre Rostovtsev <tetromino@gmail.com>
    Acked-by: Rafael J. Wysocki <rjw@sisk.pl>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>

commit 1371be0f7c8f6141b2dbfde6a7ae7885bedb9834
Author: Rusty Russell <rusty@rustcorp.com.au>
Date:   Mon Feb 16 17:31:59 2009 -0600

    cpumask: Use cpu_*_mask accessors code: alpha
    
    Impact: use new API, fix SMP bug.
    
    Use the new accessors rather than frobbing bits directly.
    
    This also removes the bug introduced in ee0c468b (alpha: compile
    fixes) which had Alpha setting bits on an on-stack cpumask, not the
    cpu_online_map.
    
    Cc: Richard Henderson <rth@twiddle.net>
    Cc: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Signed-off-by: Mike Travis <travis@sgi.com>
    Acked-by: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
    Acked-by: Ingo Molnar <mingo@elte.hu>

commit a0abd520fd69295f4a3735e29a9448a32e101d47
Author: Rusty Russell <rusty@rustcorp.com.au>
Date:   Mon Feb 16 17:31:58 2009 -0600

    cpumask: fix powernow-k8: partial revert of 2fdf66b491ac706657946442789ec644cc317e1a
    
    Impact: fix powernow-k8 when acpi=off (or other error).
    
    There was a spurious change introduced into powernow-k8 in this patch:
    so that we try to "restore" the cpus_allowed we never saved.  We revert
    that file.
    
    See lkml "[PATCH] x86/powernow: fix cpus_allowed brokage when
    acpi=off" from Yinghai for the bug report.
    
    Cc: Mike Travis <travis@sgi.com>
    Cc: Yinghai Lu <yinghai@kernel.org>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Acked-by: Ingo Molnar <mingo@elte.hu>

commit 090542641de833c6f756895fc2f139f046e298f9
Author: Dan Carpenter <error27@gmail.com>
Date:   Sun Feb 15 20:02:19 2009 -0500

    ext4: Fix NULL dereference in ext4_ext_migrate()'s error handling
    
    This was found through a code checker (http://repo.or.cz/w/smatch.git/).
    It looks like you might be able to trigger the error by trying to migrate
    a readonly file system.
    
    Signed-off-by: Dan Carpenter <error27@gmail.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

commit f9aa28adfc6a4b01268ebb6d88566cca8627905f
Author: Pekka Paalanen <pq@iki.fi>
Date:   Sat Jan 3 21:09:27 2009 +0200

    doc: mmiotrace.txt, buffer size control change
    
    Impact: prevents confusing the user when buffer size is inadequate
    
    The tracing framework offers a resizeable buffer, which mmiotrace uses
    to record events. If the buffer is full, the following events will be
    lost. Events should not be lost, so the documentation instructs the user
    to increase the buffer size. The buffer size is set via a debugfs file.
    
    Mmiotrace documentation was not updated the same time the debugfs file
    was changed. The old file was tracing/trace_entries and first contained
    the number of entries the buffer had space for, per cpu. Nowadays this
    file is replaced with the file tracing/buffer_size_kb, which tells the
    amount of memory reserved for the buffer, per cpu, in kilobytes.
    
    Previously, a flag had to be toggled via the debugfs file
    tracing/tracing_enabled when the buffer size was changed. This is no
    longer necessary.
    
    The mmiotrace documentation is updated to reflect the current state of
    the tracing framework.
    
    Signed-off-by: Pekka Paalanen <pq@iki.fi>
    Signed-off-by: Steven Rostedt <srostedt@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 6bc5c366b1a45ca18fba6851f62db5743b3f6db5
Author: Pekka Paalanen <pq@iki.fi>
Date:   Sat Jan 3 21:23:51 2009 +0200

    trace: mmiotrace to the tracer menu in Kconfig
    
    Impact: cosmetic change in Kconfig menu layout
    
    This patch was originally suggested by Peter Zijlstra, but seems it
    was forgotten.
    
    CONFIG_MMIOTRACE and CONFIG_MMIOTRACE_TEST were selectable
    directly under the Kernel hacking / debugging menu in the kernel
    configuration system. They were present only for x86 and x86_64.
    
    Other tracers that use the ftrace tracing framework are in their own
    sub-menu. This patch moves the mmiotrace configuration options there.
    Since the Kconfig file, where the tracer menu is, is not architecture
    specific, HAVE_MMIOTRACE_SUPPORT is introduced and provided only by
    x86/x86_64. CONFIG_MMIOTRACE now depends on it.
    
    Signed-off-by: Pekka Paalanen <pq@iki.fi>
    Signed-off-by: Steven Rostedt <srostedt@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 391b170f10e669dd429aa47bce998c2fa839404c
Author: Pekka Paalanen <pq@iki.fi>
Date:   Tue Jan 6 13:57:11 2009 +0200

    mmiotrace: count events lost due to not recording
    
    Impact: enhances lost events counting in mmiotrace
    
    The tracing framework, or the ring buffer facility it uses, has a switch
    to stop recording data. When recording is off, the trace events will be
    lost. The framework does not count these, so mmiotrace has to count them
    itself.
    
    Signed-off-by: Pekka Paalanen <pq@iki.fi>
    Signed-off-by: Steven Rostedt <srostedt@redhat.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 929799973ba4a40f7b8001e9cc461c13d04c4124
Author: Andi Kleen <andi@firstfloor.org>
Date:   Sat Jan 10 04:56:13 2009 +0100

    kbuild: create the source symlink earlier in the objdir
    
    It's useful to already have the source symlink in a
    objdir when one just runs make *config. Then one
    can do
    
    mkdir obj-allyes
    cd obj-allyes
    make -C ../sourcedir O=$(pwd) allyesconfig
    ./source/scripts/config --disable debug_info
    make CC=icecc -j18
    
    without having to interrupt the make first just to
    get the source symlink.
    
    Signed-off-by: Andi Kleen <ak@linux.intel.com>
    [sam: deleted the other source symlink statement]
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit 11df65c3c6f7fdc837a5be8787d31011e8bb93c1
Author: Arjan van de Ven <arjan@linux.intel.com>
Date:   Sun Feb 15 11:30:55 2009 +0100

    scripts: add x86 64 bit support to the markup_oops.pl script
    
    Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit c19ef7fd8e534c870166213e9e30de9c44b34a76
Author: Arjan van de Ven <arjan@linux.intel.com>
Date:   Sun Feb 15 11:30:52 2009 +0100

    scripts: add x86 register parser to markup_oops.pl
    
    An oops dump also contains the register values.
    
    This patch parses these for (32 bit) x86, and then annotates the
    disassembly with these values; this helps in analysis of the oops by the
    developer, for example, NULL pointer or other pointer bugs show up clearly
    this way.
    
    Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit 5123b327c107db9e560fd62d50c27a3816e5a078
Author: Rabin Vincent <rabin@rab.in>
Date:   Sun Jan 25 18:39:12 2009 +0530

    kbuild: add sys_* entries for syscalls in tags
    
    Currently, it is no longer possible to use the tags file to jump to
    system call function definitions with sys_foo, because the definitions
    are obscured by use of the SYSCALL_DEFINE* macros.
    
    This patch adds the appropriate option to ctags to make it see through
    the macro.  Also, it adds the ENTRY() work already done for Exuberant
    to Emacs too.
    
    Signed-off-by: Rabin Vincent <rabin@rab.in>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit 953fae66d124486c9e284806429c52c5402f59ac
Author: Alexey Dobriyan <adobriyan@gmail.com>
Date:   Wed Feb 11 13:24:09 2009 -0800

    kbuild: fix tags generation of config symbols
    
    commit 4f628248a578585472e19e4cba2c604643af8c6c aka "kbuild: reintroduce
    ALLSOURCE_ARCHS support for tags/cscope" breaks tags generation for
    Kconfig symbols.
    
    Steps to reproduce:
    
    	make tags
    	vi -t PROC_FS
    
    It should jump to 'config PROC_FS' line.
    
    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    Tested-by: Pete Wyckoff <pw@padd.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit 0bb98e231803860e978c302b9faccaf776881137
Author: Michael Neuling <mikey@neuling.org>
Date:   Sun Feb 15 10:20:30 2009 +0100

    bootgraph: fix for use with dot symbols
    
    powerpc has dot symbols, so the dmesg output looks like:
    
    <4>[    0.327310] calling  .migration_init+0x0/0x9c @ 1
    <4>[    0.327595] initcall .migration_init+0x0/0x9c returned 1 after 0 usecs
    
    The below fixes bootgraph.pl so it handles this correctly.
    
    Signed-off-by: Michael Neuling <mikey@neuling.org>
    Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit fc370ecfdb37b853bd8e2118c7ad9f99fa9ac5cd
Author: Josh Hunt <josh@scalex86.org>
Date:   Wed Feb 11 21:10:57 2009 -0800

    kbuild: add vmlinux to kernel rpm
    
    We are building an automated system to test kernels weekly and need to
    provide an rpm to our QA dept.  We would like to use the ability to create
    kernel rpms already in the kernel's Makefile, but need the vmlinux file
    included in the rpm for later debugging.
    
    This patch adds a compressed vmlinux to the kernel rpm when doing a
    make rpm-pkg or binrpm-pkg and upon install places the vmlinux file in /boot.
    
    Signed-off-by: Josh Hunt <josh@scalex86.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit d21d52d4a155e36d4dc93d642cd52cb63f7ef91b
Author: Mike Frysinger <vapier.adi@gmail.com>
Date:   Thu Feb 5 16:13:32 2009 +0800

    kbuild,setlocalversion: shorten the make time when using svn
    
    Don't bother doing `svn st` as it takes a retarded amount of time when
    the source is cold
    
    Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
    Signed-off-by: Bryan Wu <cooloney@kernel.org>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>

commit be716615fe596ee117292dc615e95f707fb67fd1
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Tue Jan 13 23:36:34 2009 +0100

    x86, vm86: fix preemption bug
    
    Commit 3d2a71a596bd9c761c8487a2178e95f8a61da083 ("x86, traps: converge
    do_debug handlers") changed the preemption disable logic of do_debug()
    so vm86_handle_trap() is called with preemption disabled resulting in:
    
     BUG: sleeping function called from invalid context at include/linux/kernel.h:155
     in_atomic(): 1, irqs_disabled(): 0, pid: 3005, name: dosemu.bin
     Pid: 3005, comm: dosemu.bin Tainted: G        W  2.6.29-rc1 #51
     Call Trace:
      [<c050d669>] copy_to_user+0x33/0x108
      [<c04181f4>] save_v86_state+0x65/0x149
      [<c0418531>] handle_vm86_trap+0x20/0x8f
      [<c064e345>] do_debug+0x15b/0x1a4
      [<c064df1f>] debug_stack_correct+0x27/0x2c
      [<c040365b>] sysenter_do_call+0x12/0x2f
     BUG: scheduling while atomic: dosemu.bin/3005/0x10000001
    
    Restore the original calling convention and reenable preemption before
    calling handle_vm86_trap().
    
    Reported-by: Michal Suchanek <hramrach@centrum.cz>
    Cc: stable@kernel.org
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 516a1a7e9dc80358030fe01aabb3bedf882db9e2
Author: Avi Kivity <avi@redhat.com>
Date:   Sun Feb 15 02:32:07 2009 +0200

    KVM: VMX: Flush volatile msrs before emulating rdmsr
    
    Some msrs (notable MSR_KERNEL_GS_BASE) are held in the processor registers
    and need to be flushed to the vcpu struture before they can be read.
    
    This fixes cygwin longjmp() failure on Windows x64.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit 682edb4c01e690c7c7cd772dbd6f4e0fd74dc572
Author: Mark McLoughlin <markmc@redhat.com>
Date:   Thu Feb 5 18:23:46 2009 +0000

    KVM: Fix assigned devices circular locking dependency
    
    kvm->slots_lock is outer to kvm->lock, so take slots_lock
    in kvm_vm_ioctl_assign_device() before taking kvm->lock,
    rather than taking it in kvm_iommu_map_memslots().
    
    Cc: stable@kernel.org
    Signed-off-by: Mark McLoughlin <markmc@redhat.com>
    Acked-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit b682b814e3cc340f905c14dff87ce8bdba7c5eba
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Tue Feb 10 20:41:41 2009 -0200

    KVM: x86: fix LAPIC pending count calculation
    
    Simplify LAPIC TMCCT calculation by using hrtimer provided
    function to query remaining time until expiration.
    
    Fixes host hang with nested ESX.
    
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Alexander Graf <agraf@suse.de>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit d7cff1c37664971aae32bb0de82231ed34933d8e
Author: Sheng Yang <sheng@linux.intel.com>
Date:   Tue Jan 6 16:25:10 2009 +0800

    KVM: Fix INTx for device assignment
    
    Missing buckets and wrong parameter for free_irq()
    
    Signed-off-by: Sheng Yang <sheng@linux.intel.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit 2aaf69dcee864f4fb6402638dd2f263324ac839f
Author: Sheng Yang <sheng@linux.intel.com>
Date:   Wed Jan 21 16:52:16 2009 +0800

    KVM: MMU: Map device MMIO as UC in EPT
    
    Software are not allow to access device MMIO using cacheable memory type, the
    patch limit MMIO region with UC and WC(guest can select WC using PAT and
    PCD/PWT).
    
    Signed-off-by: Sheng Yang <sheng@linux.intel.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit abe6655dd699069b53bcccbc65b2717f60203b12
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Tue Feb 10 20:59:45 2009 -0200

    KVM: x86: disable kvmclock on non constant TSC hosts
    
    This is better.
    
    Currently, this code path is posing us big troubles,
    and we won't have a decent patch in time. So, temporarily
    disable it.
    
    Signed-off-by: Glauber Costa <glommer@redhat.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit d2a8284e8fca9e2a938bee6cd074064d23864886
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Tue Dec 30 15:55:05 2008 -0200

    KVM: PIT: fix i8254 pending count read
    
    count_load_time assignment is bogus: its supposed to contain what it
    means, not the expiration time.
    
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit ba4cef31d5a397b64ba6d3ff713ce06c62f0c597
Author: Sheng Yang <sheng@linux.intel.com>
Date:   Tue Jan 6 10:03:03 2009 +0800

    KVM: Fix racy in kvm_free_assigned_irq
    
    In the past, kvm_get_kvm() and kvm_put_kvm() was called in assigned device irq
    handler and interrupt_work, in order to prevent cancel_work_sync() in
    kvm_free_assigned_irq got a illegal state when waiting for interrupt_work done.
    But it's tricky and still got two problems:
    
    1. A bug ignored two conditions that cancel_work_sync() would return true result
    in a additional kvm_put_kvm().
    
    2. If interrupt type is MSI, we would got a window between cancel_work_sync()
    and free_irq(), which interrupt would be injected again...
    
    This patch discard the reference count used for irq handler and interrupt_work,
    and ensure the legal state by moving the free function at the very beginning of
    kvm_destroy_vm(). And the patch fix the second bug by disable irq before
    cancel_work_sync(), which may result in nested disable of irq but OK for we are
    going to free it.
    
    Signed-off-by: Sheng Yang <sheng@linux.intel.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit ad8ba2cd44d4d39fb3fe55d5dcc565b19fc3a7fb
Author: Sheng Yang <sheng@linux.intel.com>
Date:   Tue Jan 6 10:03:02 2009 +0800

    KVM: Add kvm_arch_sync_events to sync with asynchronize events
    
    kvm_arch_sync_events is introduced to quiet down all other events may happen
    contemporary with VM destroy process, like IRQ handler and work struct for
    assigned device.
    
    For kvm_arch_sync_events is called at the very beginning of kvm_destroy_vm(), so
    the state of KVM here is legal and can provide a environment to quiet down other
    events.
    
    Signed-off-by: Sheng Yang <sheng@linux.intel.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit 85db06e514422ae429b5f85742d8111b70bd56f3
Author: Marcelo Tosatti <mtosatti@redhat.com>
Date:   Wed Dec 10 21:23:26 2008 +0100

    KVM: mmu_notifiers release method
    
    The destructor for huge pages uses the backing inode for adjusting
    hugetlbfs accounting.
    
    Hugepage mappings are destroyed by exit_mmap, after
    mmu_notifier_release, so there are no notifications through
    unmap_hugepage_range at this point.
    
    The hugetlbfs inode can be freed with pages backed by it referenced
    by the shadow. When the shadow releases its reference, the huge page
    destructor will access a now freed inode.
    
    Implement the release operation for kvm mmu notifiers to release page
    refs before the hugetlbfs inode is gone.
    
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit 7a0eb1960e8ddcb68ea631caf16815485af0e228
Author: Avi Kivity <avi@redhat.com>
Date:   Mon Jan 19 14:57:52 2009 +0200

    KVM: Avoid using CONFIG_ in userspace visible headers
    
    Kconfig symbols are not available in userspace, and are not stripped by
    headers-install.  Avoid their use by adding #defines in <asm/kvm.h> to
    suit each architecture.
    
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit d39123a486524fed9b4e43e08a8757fd90a5859a
Author: Yang Zhang <yang.zhang@intel.com>
Date:   Thu Jan 8 15:13:31 2009 +0800

    KVM: ia64: fix fp fault/trap handler
    
    The floating-point registers f6-f11 is used by vmm and
    saved in kvm-pt-regs, so should set the correct bit mask
    and the pointer in fp_state, otherwise, fpswa may touch
    vmm's fp registers instead of guests'.
    
    In addition, for fp trap handling,  since the instruction
    which leads to fp trap is completely executed, so can't
    use retry machanism to re-execute it, because it may
    pollute some registers.
    
    Signed-off-by: Yang Zhang <yang.zhang@intel.com>
    Signed-off-by: Avi Kivity <avi@redhat.com>

commit e49590b6dd356f8ef10ba3531a29e5086f6f2e3a
Author: Chris Ball <cjb@laptop.org>
Date:   Fri Feb 13 20:56:18 2009 -0500

    x86, olpc: fix model detection without OFW
    
    Impact: fix "garbled display, laptop is unusable" bug
    
    Commit e51a1ac2dfca9ad869471e88f828281db7e810c0 ("x86, olpc: fix endian
    bug in openfirmware workaround") breaks model comparison on OLPC; the value
    0xc2 needs to be scaled up by olpc_board().
    
    The pre-patch version was wrong, but accidentally worked anyway
    (big-endian 0xc2 is big enough to satisfy all other board revisions,
    but little endian 0xc2 is not).
    
    Signed-off-by: Chris Ball <cjb@laptop.org>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Acked-by: Andres Salomon <dilinger@queued.net>
    Cc: Harvey Harrison <harvey.harrison@gmail.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 9af88143b277f52fc6ce0d69137f435c73c39c1a
Author: David Woodhouse <dwmw2@infradead.org>
Date:   Fri Feb 13 23:18:03 2009 +0000

    iommu: fix Intel IOMMU write-buffer flushing
    
    This is the cause of the DMA faults and disk corruption that people have
    been seeing. Some chipsets neglect to report the RWBF "capability" --
    the flag which says that we need to flush the chipset write-buffer when
    changing the DMA page tables, to ensure that the change is visible to
    the IOMMU.
    
    Override that bit on the affected chipsets, and everything is happy
    again.
    
    Thanks to Chris and Bhavesh and others for helping to debug.
    
    Should resolve:
    
      https://bugzilla.redhat.com/show_bug.cgi?id=479996
      http://bugzilla.kernel.org/show_bug.cgi?id=12578
    
    Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Tested-and-acked-by: Chris Wright <chrisw@sous-sol.org>
    Reviewed-by: Bhavesh Davda <bhavesh@vmware.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 2b768b6cdbcf7fa0761e6c35c6ea288297582c43
Author: Andrew Victor <linux@maxim.org.za>
Date:   Wed Feb 11 21:39:05 2009 +0100

    [ARM] 5391/1: AT91: Enable GPIO clocks earlier
    
    Enable the GPIO clocks earlier in the initialization sequence.  This
    allow the board-setup code to read and set GPIO pins.
    
    Signed-off-by: Marc Pignat <marc.pignat@hevs.ch>
    Signed-off-by: Andrew Victor <linux@maxim.org.za>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 2af29b78618ac8b3a8746337002f108f8fdf56ad
Author: Andrew Victor <linux@maxim.org.za>
Date:   Wed Feb 11 21:23:10 2009 +0100

    [ARM] 5390/1: AT91: Watchdog fixes
    
    The recently merged AT91SAM9 watchdog driver uses the
    AT91SAM9X_WATCHDOG config variable, whereas the original version of
    the driver (and the platform support code) used AT91SAM9_WATCHDOG.
    This causes the watchdog platform_device to never be registered, and
    therefore the driver not to be initialized.
    
    This patch:
    - updates the platform support code to use AT91SAM9X_WATCHDOG.
    - includes <linux/io.h> to fix compile error (same fix as was applied
    to at91rm9200_wdt.c)
    - fixes comment regarding watchdog clock-rates in at91rm9200.
    
    Signed-off-by: Andrew Victor <linux@maxim.org.za>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 98ad6e3b1f5f2303815c063ece91291a597f6044
Author: wanzongshun <mcuos.com@gmail.com>
Date:   Fri Feb 13 06:04:32 2009 +0100

    [ARM] 5398/1: Add Wan ZongShun to MAINTAINERS for W90P910
    
    Add Wan ZongShun to MAINTAINERS for W90P910.
    
    Signed-off-by: Wan ZongShun <mcuos.com@gmail.com>
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 2acf2c261b823d9d9ed954f348b97620297a36b5
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Sat Feb 14 10:42:58 2009 -0500

    ext4: Implement range_cyclic in ext4_da_writepages instead of write_cache_pages
    
    With delayed allocation we lock the page in write_cache_pages() and
    try to build an in memory extent of contiguous blocks.  This is needed
    so that we can get large contiguous blocks request.  If range_cyclic
    mode is enabled, write_cache_pages() will loop back to the 0 index if
    no I/O has been done yet, and try to start writing from the beginning
    of the range.  That causes an attempt to take the page lock of lower
    index page while holding the page lock of higher index page, which can
    cause a dead lock with another writeback thread.
    
    The solution is to implement the range_cyclic behavior in
    ext4_da_writepages() instead.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=12579
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

commit d794bf8e0936dce45104565cd48c571061f4c1e3
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Sat Feb 14 10:31:16 2009 -0500

    ext4: Initialize preallocation list_head's properly
    
    When creating a new ext4_prealloc_space structure, we have to
    initialize its list_head pointers before we add them to any prealloc
    lists.  Otherwise, with list debug enabled, we will get list
    corruption warnings.
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

commit abf239657b88fa7e75d5b44a65a4177e7bb8acce
Author: Russell King <rmk@dyn-67.arm.linux.org.uk>
Date:   Sat Feb 14 13:25:38 2009 +0000

    [ARM] omap: fix _omap2_clksel_get_src_field()
    
    _omap2_clksel_get_src_field() was returning the first entry which was
    either the default _or_ applicable to the SoC.  This is wrong - we
    should be returning the first default which is applicable to the SoC.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 9132f1b453924e7595ce2dc1853704b2a31f42de
Author: Russell King <rmk@dyn-67.arm.linux.org.uk>
Date:   Sat Feb 14 13:24:10 2009 +0000

    [ARM] omap: fix omap2_divisor_to_clksel() error return value
    
    The error checks for omap2_divisor_to_clksel() and comment disagree with
    the actual value returned on error.  Fix this to return the correct error
    value.
    
    Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

commit 12d60e28bed3f593aac5385acbdbb089eb8ae21e
Author: Wim Van Sebroeck <wim@iguana.be>
Date:   Wed Jan 28 20:51:04 2009 +0000

    [WATCHDOG] iTCO_wdt: fix SMI_EN regression 2
    
    bugzilla: #12363
    commit 7cd5b08be3c489df11b559fef210b81133764ad4 added a second regression:
    some Dell's and Compaq's lockup on boot. So we revert most of the code.
    The ICH9 reboot issue remains in place and will need some more fixing... :-(
    
    Signed-off-by: Wim Van Sebroeck <wim@iguana.be>

commit a08f6e04d74478d91f34a0484e69e89870adb33d
Author: Alex Chiang <achiang@hp.com>
Date:   Fri Feb 13 12:03:17 2009 -0700

    PCI: Documentation: fix minor PCIe HOWTO thinko
    
    Update doc to correctly refer to replacing the pci_register_driver API,
    and not the non-existent "pci_module_init" API.
    
    Signed-off-by: Alex Chiang <achiang@hp.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

commit f5ddcac435b6c6133a9c137c345abef53b93cf55
Author: Randy Dunlap <randy.dunlap@oracle.com>
Date:   Fri Jan 9 17:03:20 2009 -0800

    PCI: fix missing kernel-doc and typos
    
    Fix pci kernel-doc parameter missing notation, correct
    function name, and fix typo:
    
    Warning(linux-2.6.28-git10//drivers/pci/pci.c:1511): No description found for parameter 'exclusive'
    
    Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

commit b33bfdef24565fe54da91adf3cd4eea13488d7fc
Author: Randy Dunlap <randy.dunlap@oracle.com>
Date:   Fri Jan 9 17:04:26 2009 -0800

    PCI: fix struct pci_platform_pm_ops kernel-doc
    
    Fix struct pci_platform_pm_ops kernel-doc notation.
    
    Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

commit 4cc59c721cba27a4644e29103afac0f91af8da3c
Author: Randy Dunlap <randy.dunlap@oracle.com>
Date:   Mon Feb 9 09:31:20 2009 -0800

    PCI: fix rom.c kernel-doc warning
    
    Fix PCI kernel-doc warning:
    
    Warning(linux-2.6.29-rc4-git1/drivers/pci/rom.c:67): No description found for parameter 'pdev'
    
    Signed-off-by: Randy Dunlap <randy.dunlap@oracle.com>
    cc: Jesse Barnes <jbarnes@virtuousgeek.org>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

commit 0b49ec37a20bc7eb7178105aadaa8d1ecba825f8
Author: Matthew Wilcox <matthew@wil.cx>
Date:   Sun Feb 8 20:27:47 2009 -0700

    PCI/MSI: fix msi_mask() shift fix
    
    Hidetoshi Seto points out that commit
    bffac3c593eba1f9da3efd0199e49ea6558a40ce has wrong values in the array.
    Rather than correct the array, we can just use a bounds check and
    perform the calculation specified in the comment.  As a bonus, this will
    not run off the end of the array if the device specifies an illegal
    value in the MSI capability.
    
    Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
    Signed-off-by: Hidetoshi Seto <seto.hidetoshi@jp.fujitsu.com>
    Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>

commit 3997ad317fdf9ecdb5702e2b4fd1f8229814ff8c
Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date:   Thu Feb 12 15:00:52 2009 +0100

    timers: more consistently use clock vs timer
    
    While reviewing the manpages, I noticed I'd missed some clock vs timer sites.
    
    Make sure that all timer functions call cpu_timer_sample_group() and not
    cpu_clock_sample_group(). This ensures that we enable the process wide timer
    in time, and therefore pay the O(n) thread group cost from the syscall.
    
    Not doing it here, will result in the first jiffy tick after setting the timer
    doing this, resulting in a very expensive tick (but only once) and a delay in
    actually starting the timer.
    
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit b13e24644c138d0ddbc451403c30a96b09bfd556
Author: john stultz <johnstul@us.ibm.com>
Date:   Thu Feb 12 18:48:53 2009 -0800

    x86, hpet: fix for LS21 + HPET = boot hang
    
    Between 2.6.23 and 2.6.24-rc1 a change was made that broke IBM LS21
    systems that had the HPET enabled in the BIOS, resulting in boot hangs
    for x86_64.
    
    Specifically commit b8ce33590687888ebb900d09557b8807c4539022, which
    merges the i386 and x86_64 HPET code.
    
    Prior to this commit, when we setup the HPET timers in x86_64, we did
    the following:
    
    	hpet_writel(HPET_TN_ENABLE | HPET_TN_PERIODIC | HPET_TN_SETVAL |
                        HPET_TN_32BIT, HPET_T0_CFG);
    
    However after the i386/x86_64 HPET merge, we do the following:
    
    	cfg = hpet_readl(HPET_Tn_CFG(timer));
    	cfg |= HPET_TN_ENABLE | HPET_TN_PERIODIC |
    			HPET_TN_SETVAL | HPET_TN_32BIT;
    	hpet_writel(cfg, HPET_Tn_CFG(timer));
    
    However on LS21s with HPET enabled in the BIOS, the HPET_T0_CFG register
    boots with Level triggered interrupts (HPET_TN_LEVEL) enabled. This
    causes the periodic interrupt to be not so periodic, and that results in
    the boot time hang I reported earlier in the delay calibration.
    
    My fix: Always disable HPET_TN_LEVEL when setting up periodic mode.
    
    Signed-off-by: John Stultz <johnstul@us.ibm.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 26456dcfb8d8e43b1b64b2a14710694cf7a72f05
Author: Michael Neuling <mikey@neuling.org>
Date:   Thu Feb 12 19:08:58 2009 +0000

    powerpc/vsx: Fix VSX alignment handler for regs 32-63
    
    Fix the VSX alignment handler for VSX registers > 32.  32-63 are stored
    in the VMX part of the thread_struct not the FPR part.
    
    Signed-off-by: Michael Neuling <mikey@neuling.org>
    CC: stable@kernel.org (2.6.27 & .28 please)
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

commit 0047656e2a97d4452dd7df9e52591a7afe21a263
Author: Geoff Levand <geoffrey.levand@am.sony.com>
Date:   Thu Feb 12 12:36:16 2009 +0000

    powerpc/ps3: Move ps3_mm_add_memory to device_initcall
    
    Change the PS3 hotplug memory routine ps3_mm_add_memory() from
    a core_initcall to a device_initcall.
    
    core_initcall routines run before the powerpc topology_init()
    startup routine, which is a subsys_initcall, resulting in
    failure of ps3_mm_add_memory() when CONFIG_NUMA=y.  When
    ps3_mm_add_memory() fails the system will boot with just the
    128 MiB of boot memory
    
    Signed-off-by: Geoff Levand <geoffrey.levand@am.sony.com>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

commit 06eccea6c34e00c8fedce49229ed35fa84619fb7
Author: Dave Hansen <dave@linux.vnet.ibm.com>
Date:   Thu Feb 12 12:36:04 2009 +0000

    powerpc/mm: Fix numa reserve bootmem page selection
    
    Fix the powerpc NUMA reserve bootmem page selection logic.
    
    commit 8f64e1f2d1e09267ac926e15090fd505c1c0cbcb (powerpc: Reserve
    in bootmem lmb reserved regions that cross NUMA nodes) changed
    the logic for how the powerpc LMB reserved regions were converted
    to bootmen reserved regions.  As the folowing discussion reports,
    the new logic was not correct.
    
    mark_reserved_regions_for_nid() goes through each LMB on the
    system that specifies a reserved area.  It searches for
    active regions that intersect with that LMB and are on the
    specified node.  It attempts to bootmem-reserve only the area
    where the active region and the reserved LMB intersect.  We
    can not reserve things on other nodes as they may not have
    bootmem structures allocated, yet.
    
    We base the size of the bootmem reservation on two possible
    things.  Normally, we just make the reservation start and
    stop exactly at the start and end of the LMB.
    
    However, the LMB reservations are not aware of NUMA nodes and
    on occasion a single LMB may cross into several adjacent
    active regions.  Those may even be on different NUMA nodes
    and will require separate calls to the bootmem reserve
    functions.  So, the bootmem reservation must be trimmed to
    fit inside the current active region.
    
    That's all fine and dandy, but we trim the reservation
    in a page-aligned fashion.  That's bad because we start the
    reservation at a non-page-aligned address: physbase.
    
    The reservation may only span 2 bytes, but that those bytes
    may span two pfns and cause a reserve_size of 2*PAGE_SIZE.
    
    Take the case where you reserve 0x2 bytes at 0x0fff and
    where the active region ends at 0x1000.  You'll jump into
    that if() statment, but node_ar.end_pfn=0x1 and
    start_pfn=0x0.  You'll end up with a reserve_size=0x1000,
    and then call
    
      reserve_bootmem_node(node, physbase=0xfff, size=0x1000);
    
    0x1000 may not be on the same node as 0xfff.  Oops.
    
    In almost all the vm code, end_<anything> is not inclusive.
    If you have an end_pfn of 0x1234, page 0x1234 is not
    included in the range.  Using PFN_UP instead of the
    (>> >> PAGE_SHIFT) will make this consistent with the other VM
    code.
    
    We also need to do math for the reserved size with physbase
    instead of start_pfn.  node_ar.end_pfn << PAGE_SHIFT is
    *precisely* the end of the node.  However,
    (start_pfn << PAGE_SHIFT) is *NOT* precisely the beginning
    of the reserved area.  That is, of course, physbase.
    If we don't use physbase here, the reserve_size can be
    made too large.
    
    From: Dave Hansen <dave@linux.vnet.ibm.com>
    Tested-by: Geoff Levand <geoffrey.levand@am.sony.com>  Tested on PS3.
    
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

commit fbc78b07ba53ace155f27491c81a009e541a93ad
Author: Philippe Gerum <rpm@xenomai.org>
Date:   Thu Feb 12 12:18:46 2009 +0000

    powerpc/mm: Fix _PAGE_CHG_MASK to protect _PAGE_SPECIAL
    
    Fix _PAGE_CHG_MASK so that pte_modify() does not affect the _PAGE_SPECIAL bit.
    
    Signed-off-by: Philippe Gerum <rpm@xenomai.org>
    Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>

commit 7ad9de6ac83bd825996d2de98c92e0f425c31050
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Feb 12 21:16:09 2009 +0100

    x86: CPA avoid repeated lazy mmu flush
    
    Impact: Flush the lazy MMU only once
    
    Pending mmu updates only need to be flushed once to bring the
    in-memory pagetable state up to date.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

commit 34b0900d323122113683685b200aae9f9b75e63b
Author: Thomas Gleixner <tglx@linutronix.de>
Date:   Thu Feb 12 21:30:48 2009 +0100

    x86: warn if arch_flush_lazy_mmu_cpu is called in preemptible context
    
    Impact: Catch cases where lazy MMU state is active in a preemtible context
    
    arch_flush_lazy_mmu_cpu() has been changed to disable preemption so
    the checks in enter/leave will never trigger. Put the preemtible()
    check into arch_flush_lazy_mmu_cpu() to catch such cases.
    
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

commit d85cf93da66977dbc645352be1b2084a659d8a0b
Author: Jeremy Fitzhardinge <jeremy@goop.org>
Date:   Thu Feb 12 10:02:56 2009 -0800

    x86/paravirt: make arch_flush_lazy_mmu/cpu disable preemption
    
    Impact: avoid access to percpu vars in preempible context
    
    They are intended to be used whenever there's the possibility
    that there's some stale state which is going to be overwritten
    with a queued update, or to force a state change when we may be
    in lazy mode.  Either way, we could end up calling it with
    preemption enabled, so wrap the functions in their own little
    preempt-disable section so they can be safely called in any
    context (though preemption should never be enabled if we're actually
    in a lazy state).
    
    (Move out of line to avoid #include dependencies.)
    
    Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>

commit 2456242530a21cfee82646ebeeda65d3f74faa4c
Author: Yan Zheng <zheng.yan@oracle.com>
Date:   Thu Feb 12 14:14:53 2009 -0500

    Btrfs: hold trans_mutex when using btrfs_record_root_in_trans
    
    btrfs_record_root_in_trans needs the trans_mutex held to make sure two
    callers don't race to setup the root in a given transaction.  This adds
    it to all the places that were missing it.
    
    Signed-off-by: Yan Zheng <zheng.yan@oracle.com>

commit 4008c04a07c73ec3cb1be4c1391d2159a8f75d6d
Author: Chris Mason <chris.mason@oracle.com>
Date:   Thu Feb 12 14:09:45 2009 -0500

    Btrfs: make a lockdep class for the extent buffer locks
    
    Btrfs is currently using spin_lock_nested with a nested value based
    on the tree depth of the block.  But, this doesn't quite work because
    the max tree depth is bigger than what spin_lock_nested can deal with,
    and because locks are sometimes taken before the level field is filled in.
    
    The solution here is to use lockdep_set_class_and_name instead, and to
    set the class before unlocking the pages when the block is read from the
    disk and just after init of a freshly allocated tree block.
    
    btrfs_clear_path_blocking is also changed to take the locks in the proper
    order, and it also makes sure all the locks currently held are properly
    set to blocking before it tries to retake the spinlocks.  Otherwise, lockdep
    gets upset about bad lock orderin.
    
    The lockdep magic cam from Peter Zijlstra <peterz@infradead.org>
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit 3f3420df505e47751ef76a652b5cb660e5360d6f
Author: Julia Lawall <julia@diku.dk>
Date:   Thu Feb 12 10:16:03 2009 -0500

    Btrfs: fs/btrfs/volumes.c: remove useless kzalloc
    
    The call to kzalloc is followed by a kmalloc whose result is stored in the
    same variable.
    
    The semantic match that finds the problem is as follows:
    (http://www.emn.fr/x-info/coccinelle/)
    
    // <smpl>
    @r exists@
    local idexpression x;
    statement S;
    expression E;
    identifier f,l;
    position p1,p2;
    expression *ptr != NULL;
    @@
    
    (
    if ((x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...)) == NULL) S
    |
    x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
    ...
    if (x == NULL) S
    )
    <... when != x
         when != if (...) { <+...x...+> }
    x->f = E
    ...>
    (
     return \(0\|<+...x...+>\|ptr\);
    |
     return@p2 ...;
    )
    
    @script:python@
    p1 << r.p1;
    p2 << r.p2;
    @@
    
    print "* file: %s kmalloc %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
    // </smpl>
    
    Signed-off-by: Julia Lawall <julia@diku.dk>
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit a48ddf08ba9bab91efd95e458737afa9d7699623
Author: Qinghuang Feng <qhfeng.kernel@gmail.com>
Date:   Thu Feb 12 14:25:23 2009 -0500

    Btrfs: remove unused code in split_state()
    
    These two lines are not used, remove them.
    
    Signed-off-by: Qinghuang Feng <qhfeng.kernel@gmail.com>
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit e00f7308658622fbd483cb0d9fe41165bf9050d0
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Thu Feb 12 14:11:25 2009 -0500

    Btrfs: remove btrfs_init_path
    
    btrfs_init_path was initially used when the path objects were on the
    stack.  Now all the work is done by btrfs_alloc_path and btrfs_init_path
    isn't required.
    
    This patch removes it, and just uses kmem_cache_zalloc to zero out the object.
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit 7951f3cefbd711f4429a0cd014aa83a844c399a0
Author: Jeff Mahoney <jeffm@suse.com>
Date:   Thu Feb 12 10:06:15 2009 -0500

    Btrfs: balance_level checks !child after access
    
    The BUG_ON() is in the wrong spot.
    
    Signed-off-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit b335b0034e252e79ec2e9c6697f5d663c4627bec
Author: Yan Zheng <zheng.yan@oracle.com>
Date:   Thu Feb 12 10:06:04 2009 -0500

    Btrfs: Avoid using __GFP_HIGHMEM with slab allocator
    
    btrfs_releasepage may call kmem_cache_alloc indirectly,
    and provide same GFP flags it gets to kmem_cache_alloc.
    So it's possible to use __GFP_HIGHMEM with the slab
    allocator.
    
    Signed-off-by: Yan Zheng <zheng.yan@oracle.com>

commit e1df36d2f18254d0690a0fbe036cece74ec311b8
Author: Chris Mason <chris.mason@oracle.com>
Date:   Thu Feb 12 09:45:08 2009 -0500

    Btrfs: don't clean old snapshots on sync(1)
    
    Cleaning old snapshots can make sync(1) somewhat slow, and some users
    and applications still use it in a global fsync kind of workload.
    
    This patch changes btrfs not to clean old snapshots during sync, which is
    safe from a FS consistency point of view.  The major downside is that it
    makes it difficult to tell when old snapshots have been reaped and
    the space they were using has been reclaimed.  A new ioctl will be added
    for this purpose instead.
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit 536ac8ae86e68bb5574d7cc81c7d229a86b82601
Author: Chris Mason <chris.mason@oracle.com>
Date:   Thu Feb 12 09:41:38 2009 -0500

    Btrfs: use larger metadata clusters in ssd mode
    
    Larger metadata clusters can significantly improve writeback performance
    on ssd drives with large erasure blocks.  The larger clusters make it
    more likely a given IO will completely overwrite the ssd block, so it
    doesn't have to do an internal rwm cycle.
    
    On spinning media, lager metadata clusters end up spreading out the
    metadata more over time, which makes fsck slower, so we don't want this
    to be the default.
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit b288052e1779261ae80138074989ef50358c4e58
Author: Chris Mason <chris.mason@oracle.com>
Date:   Thu Feb 12 09:37:35 2009 -0500

    Btrfs: process mount options on mount -o remount,
    
    Btrfs wasn't parsing any new mount options during remount, making it
    difficult to set mount options on a root drive.
    
    Signed-off-by: Chris Mason <chris.mason@oracle.com>

commit eb099670895f22970cd143875467c2768d6d87e5
Author: Josef Bacik <jbacik@redhat.com>
Date:   Thu Feb 12 09:27:38 2009 -0500

    Btrfs: make sure all pending extent operations are complete
    
    Theres a slight problem with finish_current_insert, if we set all to 1 and then
    go through and don't actually skip any of the extents on the pending list, we
    could exit right after we've added new extents.
    
    This is a problem because by inserting the new extents we could have gotten new
    COW's to happen and such, so we may have some pending updates to do or even
    more inserts to do after that.
    
    So this patch will only exit if we have never skipped any of the extents in the
    pending list, and we have no extents to insert, this will make sure that all of
    the pending work is truly done before we return.  I've been running with this
    patch for a few days with all of my other testing and have not seen issues.
    Thanks,
    
    Signed-off-by: Josef Bacik <jbacik@redhat.com>

commit a0490fa35dc0022ef95f64802e8edf18c411c790
Author: Ingo Molnar <mingo@elte.hu>
Date:   Thu Feb 12 11:35:40 2009 +0100

    sched: cpu hotplug fix
    
    rq_attach_root() does a kfree() with the runqueue lock held.
    
    That's not a very wise move, fix it.
    
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit be03d9e8022030c16abf534e33e185bfc3d40eef
Author: Suresh Siddha <suresh.b.siddha@intel.com>
Date:   Wed Feb 11 11:20:23 2009 -0800

    x86, pat: fix warn_on_once() while mapping 0-1MB range with /dev/mem
    
    Jeff Mahoney reported:
    
    > With Suse's hwinfo tool, on -tip:
    > WARNING: at arch/x86/mm/pat.c:637 reserve_pfn_range+0x5b/0x26d()
    
    reserve_pfn_range() is not tracking the memory range below 1MB
    as non-RAM and as such is inconsistent with similar checks in
    reserve_memtype() and free_memtype()
    
    Rename the pagerange_is_ram() to pat_pagerange_is_ram() and add the
    "track legacy 1MB region as non RAM" condition.
    
    And also, fix reserve_pfn_range() to return -EINVAL, when the pfn
    range is RAM. This is to be consistent with this API design.
    
    Reported-and-tested-by: Jeff Mahoney <jeffm@suse.com>
    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 4f06b0436b2ddbd3b67b10e77098a6862787b3eb
Author: Jeremy Fitzhardinge <jeremy@goop.org>
Date:   Wed Feb 11 09:32:19 2009 -0800

    x86/cpa: make sure cpa is safe to call in lazy mmu mode
    
    Impact: fix race leading to crash under KVM and Xen
    
    The CPA code may be called while we're in lazy mmu update mode - for
    example, when using DEBUG_PAGE_ALLOC and doing a slab allocation
    in an interrupt handler which interrupted a lazy mmu update.  In this
    case, the in-memory pagetable state may be out of date due to pending
    queued updates.  We need to flush any pending updates before inspecting
    the page table.  Similarly, we must explicitly flush any modifications
    CPA may have made (which comes down to flushing queued operations when
    flushing the TLB).
    
    Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
    Acked-by: Marcelo Tosatti <mtosatti@redhat.com>
    Cc: Stable Kernel <stable@kernel.org>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 2fff78c784ed97a8e5aa225ef5228f0a6d862d82
Author: Peter Zijlstra <peterz@infradead.org>
Date:   Wed Feb 11 18:10:10 2009 +0100

    futex: fix reference leak
    
    Catalin noticed that (38d47c1b7075: futex: rely on get_user_pages() for
    shared futexes) caused an mm_struct leak.
    
    Some tracing with the function graph tracer quickly pointed out that
    futex_wait() has exit paths with unbalanced reference counts.
    
    This regression was discovered by kmemleak.
    
    Reported-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Tested-by: "Pallipadi, Venkatesh" <venkatesh.pallipadi@intel.com>
    Tested-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit 9f339e7028e2855717af3193c938f9960ad13b38
Author: Markus Metzger <markus.t.metzger@intel.com>
Date:   Wed Feb 11 15:10:27 2009 +0100

    x86, ptrace, mm: fix double-free on race
    
    Ptrace_detach() races with __ptrace_unlink() if the traced task is
    reaped while detaching. This might cause a double-free of the BTS
    buffer.
    
    Change the ptrace_detach() path to only do the memory accounting in
    ptrace_bts_detach() and leave the buffer free to ptrace_bts_untrace()
    which will be called from __ptrace_unlink().
    
    The fix follows a proposal from Oleg Nesterov.
    
    Reported-by: Oleg Nesterov <oleg@redhat.com>
    Signed-off-by: Markus Metzger <markus.t.metzger@intel.com>
    Signed-off-by: Ingo Molnar <mingo@elte.hu>

commit ba4439165f0f0d25b2fe065cf0c1ff8130b802eb
Author: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Date:   Tue Feb 10 11:14:34 2009 -0500

    ext4: Fix lockdep warning
    
    We should not call ext4_mb_add_n_trim while holding alloc_semp.
    
        =============================================
        [ INFO: possible recursive locking detected ]
        2.6.29-rc4-git1-dirty #124
        ---------------------------------------------
        ffsb/3116 is trying to acquire lock:
         (&meta_group_info[i]->alloc_sem){----}, at: [<ffffffff8035a6e8>]
         ext4_mb_load_buddy+0xd2/0x343
    
        but task is already holding lock:
         (&meta_group_info[i]->alloc_sem){----}, at: [<ffffffff8035a6e8>]
         ext4_mb_load_buddy+0xd2/0x343
    
    http://bugzilla.kernel.org/show_bug.cgi?id=12672
    
    Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

commit 7be2baaa0322c59ba888aa5260a8c130666acd41
Author: Wei Yongjun <yjwei@cn.fujitsu.com>
Date:   Tue Feb 10 09:53:42 2009 -0500

    ext4: Fix to read empty directory blocks correctly in 64k
    
    The rec_len field in the directory entry is 16 bits, so there was a
    problem representing rec_len for filesystems with a 64k block size in
    the case where the directory entry takes the entire 64k block.
    Unfortunately, there were two schemes that were proposed; one where
    all zeros meant 65536 and one where all ones (65535) meant 65536.
    E2fsprogs used 0, whereas the kernel used 65535.  Oops.  Fortunately
    this case happens extremely rarely, with the most common case being
    the lost+found directory, created by mke2fs.
    
    So we will be liberal in what we accept, and accept both encodings,
    but we will continue to encode 65536 as 65535.  This will require a
    change in e2fsprogs, but with fortunately ext4 filesystems normally
    have the dir_index feature enabled, which precludes having a
    completely empty directory block.
    
    Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>

commit 7f5aa215088b817add9c71914b83650bdd49f8a9
Author: Jan Kara <jack@suse.cz>
Date:   Tue Feb 10 11:15:34 2009 -0500

    jbd2: Avoid possible NULL dereference in jbd2_journal_begin_ordered_truncate()
    
    If we race with commit code setting i_transaction to NULL, we could
    possibly dereference it.  Proper locking requires the journal pointer
    (to access journal->j_list_lock), which we don't have.  So we have to
    change the prototype of the function so that filesystem passes us the
    journal pointer.  Also add a more detailed comment about why the
    function jbd2_journal_begin_ordered_truncate() does what it does and
    how it should be used.
    
    Thanks to Dan Carpenter <error27@gmail.com> for pointing to the
    suspitious code.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Acked-by: Joel Becker <joel.becker@oracle.com>
    CC: linux-ext4@vger.kernel.org
    CC: ocfs2-devel@oss.oracle.com
    CC: mfasheh@suse.de
    CC: Dan Carpenter <error27@gmail.com>

commit 9eddacf9e9c03578ef2c07c9534423e823d677f8
Author: Jan Kara <jack@suse.cz>
Date:   Tue Feb 10 06:46:05 2009 -0500

    Revert "ext4: wait on all pending commits in ext4_sync_fs()"
    
    This undoes commit 14ce0cb411c88681ab8f3a4c9caa7f42e97a3184.
    
    Since jbd2_journal_start_commit() is now fixed to return 1 when we
    started a transaction commit, there's some transaction waiting to be
    committed or there's a transaction already committing, we don't
    need to call ext4_force_commit() in ext4_sync_fs(). Furthermore
    ext4_force_commit() can unnecessarily create sync transaction which is
    expensive so it's worthwhile to remove it when we can.
    
    http://bugzilla.kernel.org/show_bug.cgi?id=12224
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    Cc: Eric Sandeen <sandeen@redhat.com>
    Cc: linux-ext4@vger.kernel.org

commit c88ccea3143975294f5a52097546bcbb75975f52
Author: Jan Kara <jack@suse.cz>
Date:   Tue Feb 10 11:27:46 2009 -0500

    jbd2: Fix return value of jbd2_journal_start_commit()
    
    The function jbd2_journal_start_commit() returns 1 if either a
    transaction is committing or the function has queued a transaction
    commit. But it returns 0 if we raced with somebody queueing the
    transaction commit as well. This resulted in ext4_sync_fs() not
    functioning correctly (description from Arthur Jones):
    
       In the case of a data=ordered umount with pending long symlinks
       which are delayed due to a long list of other I/O on the backing
       block device, this causes the buffer associated with the long
       symlinks to not be moved to the inode dirty list in the second
       phase of fsync_super.  Then, before they can be dirtied again,
       kjournald exits, seeing the UMOUNT flag and the dirty pages are
       never written to the backing block device, causing long symlink
       corruption and exposing new or previously freed block data to
       userspace.
    
    This can be reproduced with a script created by Eric Sandeen
    <sandeen@redhat.com>:
    
            #!/bin/bash
    
            umount /mnt/test2
            mount /dev/sdb4 /mnt/test2
            rm -f /mnt/test2/*
            dd if=/dev/zero of=/mnt/test2/bigfile bs=1M count=512
            touch /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename
            ln -s /mnt/test2/thisisveryveryveryveryveryveryveryveryveryveryveryveryveryveryveryverylongfilename
            /mnt/test2/link
            umount /mnt/test2
            mount /dev/sdb4 /mnt/test2
            ls /mnt/test2/
    
    This patch fixes jbd2_journal_start_commit() to always return 1 when
    there's a transaction committing or queued for commit.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
    CC: Eric Sandeen <sandeen@redhat.com>
    CC: linux-ext4@vger.kernel.org