26 May, 2011

8 commits

  • This serves no useful purpose that I can discern. All callers (rename,
    rmdir) hold their own reference to the dentry.

    A quick audit of all file systems showed no relevant checks on the value
    of d_count in vfs_rmdir/vfs_rename_dir paths.

    Signed-off-by: Sage Weil
    Signed-off-by: Al Viro

    Sage Weil
     
  • This presumes that there is no reason to unhash a dentry if we fail because
    it is a mountpoint or the LSM check fails, and that the LSM checks do not
    depend on the dentry being unhashed.

    Signed-off-by: Sage Weil
    Signed-off-by: Al Viro

    Sage Weil
     
  • We should not allow file modification via mmap while the filesystem is
    frozen. So block in block_page_mkwrite() while the filesystem is frozen.
    We cannot do the blocking wait in __block_page_mkwrite() since e.g. ext4
    will want to call that function with transaction started in some cases
    and that would deadlock. But we can at least do the non-blocking reliable
    check in __block_page_mkwrite() which is the hardest part anyway.

    We have to check for frozen filesystem with the page marked dirty and under
    page lock with which we then return from ->page_mkwrite(). Only that way we
    cannot race with writeback done by freezing code - either we mark the page
    dirty after the writeback has started, see freezing in progress and block, or
    writeback will wait for our page lock which is released only when the fault is
    done and then writeback will writeout and writeprotect the page again.

    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jan Kara
    Signed-off-by: Al Viro

    Jan Kara
     
  • Create __block_page_mkwrite() helper which does all what block_page_mkwrite()
    does except that it passes back errors from __block_write_begin /
    block_commit_write calls.

    Reviewed-by: Christoph Hellwig
    Signed-off-by: Jan Kara
    Signed-off-by: Al Viro

    Jan Kara
     
  • This issue was discovered by users of busybox. And the bug is actual for
    busybox users, I don't know how it affects others. Apparently, mount is
    called with and without MS_SILENT, and this affects mount() behaviour.
    But MS_SILENT is only supposed to affect kernel logging verbosity.

    The following script was run in an empty test directory:

    mkdir -p mount.dir mount.shared1 mount.shared2
    touch mount.dir/a mount.dir/b
    mount -vv --bind mount.shared1 mount.shared1
    mount -vv --make-rshared mount.shared1
    mount -vv --bind mount.shared2 mount.shared2
    mount -vv --make-rshared mount.shared2
    mount -vv --bind mount.shared2 mount.shared1
    mount -vv --bind mount.dir mount.shared2
    ls -R mount.dir mount.shared1 mount.shared2
    umount mount.dir mount.shared1 mount.shared2 2>/dev/null
    umount mount.dir mount.shared1 mount.shared2 2>/dev/null
    umount mount.dir mount.shared1 mount.shared2 2>/dev/null
    rm -f mount.dir/a mount.dir/b mount.dir/c
    rmdir mount.dir mount.shared1 mount.shared2

    mount -vv was used to show the mount() call arguments and result.
    Output shows that flag argument has 0x00008000 = MS_SILENT bit:

    mount: mount('mount.shared1','mount.shared1','(null)',0x00009000,'(null)'):0
    mount: mount('','mount.shared1','',0x0010c000,''):0
    mount: mount('mount.shared2','mount.shared2','(null)',0x00009000,'(null)'):0
    mount: mount('','mount.shared2','',0x0010c000,''):0
    mount: mount('mount.shared2','mount.shared1','(null)',0x00009000,'(null)'):0
    mount: mount('mount.dir','mount.shared2','(null)',0x00009000,'(null)'):0
    mount.dir:
    a
    b

    mount.shared1:

    mount.shared2:
    a
    b

    After adding --loud option to remove MS_SILENT bit from just one mount cmd:

    mkdir -p mount.dir mount.shared1 mount.shared2
    touch mount.dir/a mount.dir/b
    mount -vv --bind mount.shared1 mount.shared1 2>&1
    mount -vv --make-rshared mount.shared1 2>&1
    mount -vv --bind mount.shared2 mount.shared2 2>&1
    mount -vv --loud --make-rshared mount.shared2 2>&1 # &1
    mount -vv --bind mount.dir mount.shared2 2>&1
    ls -R mount.dir mount.shared1 mount.shared2 2>&1
    umount mount.dir mount.shared1 mount.shared2 2>/dev/null
    umount mount.dir mount.shared1 mount.shared2 2>/dev/null
    umount mount.dir mount.shared1 mount.shared2 2>/dev/null
    rm -f mount.dir/a mount.dir/b mount.dir/c
    rmdir mount.dir mount.shared1 mount.shared2

    The result is different now - look closely at mount.shared1 directory listing.
    Now it does show files 'a' and 'b':

    mount: mount('mount.shared1','mount.shared1','(null)',0x00009000,'(null)'):0
    mount: mount('','mount.shared1','',0x0010c000,''):0
    mount: mount('mount.shared2','mount.shared2','(null)',0x00009000,'(null)'):0
    mount: mount('','mount.shared2','',0x00104000,''):0
    mount: mount('mount.shared2','mount.shared1','(null)',0x00009000,'(null)'):0
    mount: mount('mount.dir','mount.shared2','(null)',0x00009000,'(null)'):0

    mount.dir:
    a
    b

    mount.shared1:
    a
    b

    mount.shared2:
    a
    b

    The analysis shows that MS_SILENT flag which is ON by default in any
    busybox-> mount operations cames to flags_to_propagation_type function and
    causes the error return while is_power_of_2 checking because the function
    expects only one bit set. This doesn't allow to do busybox->mount with
    any --make-[r]shared, --make-[r]private etc options.

    Moreover, the recently added flags_to_propagation_type() function doesn't
    allow us to do such operations as --make-[r]private --make-[r]shared etc.
    when MS_SILENT is on. The idea or clearing the MS_SILENT flag came from
    to Denys Vlasenko.

    Signed-off-by: Roman Borisov
    Reported-by: Denys Vlasenko
    Cc: Chuck Ebbert
    Cc: Alexander Shishkin
    Cc: Al Viro
    Cc: Christoph Hellwig
    Signed-off-by: Andrew Morton
    Signed-off-by: Al Viro

    Roman Borisov
     
  • Commit 990d6c2d7aee921e3bce22b2d6a750fd552262be ("vfs: Add name to file
    handle conversion support") changed EXPORTFS to be a bool.
    This was needed for earlier revisions of the original patch, but the actual
    commit put the code needing it into its own file that only gets compiled
    when FHANDLE is selected which in turn selects EXPORTFS.
    So EXPORTFS can be safely compiled as a module when not selecting FHANDLE.

    Signed-off-by: Jonas Gorski
    Acked-by: Aneesh Kumar K.V
    Signed-off-by: Al Viro

    Jonas Gorski
     
  • new helper: complete_walk(). Done on successful completion
    of walk, drops out of RCU mode, does d_revalidate of final
    result if that hadn't been done already.

    handle_reval_dot() and nameidata_drop_rcu_last() subsumed into
    that one; callers converted to use of complete_walk().

    Signed-off-by: Al Viro

    Al Viro
     
  • Merge these into a single function (unlazy_walk(nd, dentry)),
    kill ..._maybe variants

    Signed-off-by: Al Viro

    Al Viro
     

30 Apr, 2011

5 commits


29 Apr, 2011

22 commits

  • …/git/tmlind/linux-omap-2.6

    * 'omap-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap-2.6:
    OMAP3+: voltage: remove initial voltage
    OMAP4: Intialize IVA Device in addition to DSP device.
    omap: rx51: mark reserved memory earlier
    OMAP3: l3: fix for "irq 10: nobody cared" message
    arm: omap2: enable smc instruction for sleep34xx
    OMAP2/3: hwmod: fix gpio-reset timeouts seen during bootup.
    OMAP3: PM: Do not rely on ROM code to restore CM_AUTOIDLE_PLL.AUTO_PERIPH_DPLL
    OMAP2+: PM: Fix the saving of CM_AUTOIDLE_PLL register on scratchpad area
    OMAP4: clock data: Change DSS clock aliases
    OMAP2+: hwmod data: Fix wrong dma_system end address

    Linus Torvalds
     
  • We must remove all files we created, even in error cases.

    Fixes second part of kernel bug #34072:
    https://bugzilla.kernel.org/show_bug.cgi?id=34072

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • Fixes kernel bug #34072:
    https://bugzilla.kernel.org/show_bug.cgi?id=34072

    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • Recent Xeon processor thermal sensors are supported by the coretemp
    driver and not the adm1021 driver. Only one old generation of Xeon
    processors (the first Netburst ones) are supported by the adm1021
    driver.

    Reported-by: Darren Hart
    Signed-off-by: Jean Delvare
    Acked-by: Guenter Roeck

    Jean Delvare
     
  • The lm90 driver's attribute update interval is configurable.
    Reflect this information in the driver documentation.

    Signed-off-by: Guenter Roeck
    Signed-off-by: Jean Delvare

    Guenter Roeck
     
  • This patch adds support for ADT7461A and NCT1008 to the lm90 driver.
    Both chips have identical functionality and report the same manufacturing ID
    and device ID values.

    Signed-off-by: Guenter Roeck
    Signed-off-by: Jean Delvare

    Guenter Roeck
     
  • Sedat and Bruno reported RCU stalls which turned out to be caused by
    the following;

    sched_init() calls init_rt_bandwidth() which calls hrtimer_init()
    _BEFORE_ hrtimers_init() is called. While not entirely correct this
    worked because hrtimer_init() only accessed statically initialized
    data (hrtimer_bases.clock_base[CLOCK_MONOTONIC])

    Commit e06383db9 (hrtimers: extend hrtimer base code to handle more
    then 2 clockids) added an indirection to the hrtimer_bases.clock_base
    lookup to avoid gap handling in the hot path. The table which is used
    for the translataion from CLOCK_ID to HRTIMER_BASE index is
    initialized at runtime in hrtimers_init(). So the early call of the
    scheduler code translates CLOCK_MONOTONIC to HRTIMER_BASE_REALTIME.

    Thus the rt_bandwith timer ends up on CLOCK_REALTIME. If the timer is
    armed and the wall clock time is set (e.g. ntpdate in the early boot
    process - which also gives the problem deterministic behaviour
    i.e. magic recovery after N hours), then the timer ends up with an
    expiry time far into the future. That breaks the RT throttler
    mechanism as rt runtime is accumulated and never cleared, so the rt
    throttler detects a false cpu hog condition and blocks all RT tasks
    until the timer finally expires. That in turn stalls the RCU thread of
    TINYRCU which leads to an huge amount of RCU callbacks piling up.

    Make the translation table statically initialized, so we are back to
    the status of
    Reported-by: Bruno Prémont
    Cc: John stultz
    Cc: Mike Galbraith
    Cc: Paul E. McKenney
    Cc: Peter Zijlstra
    Link: http://lkml.kernel.org/r/%3Calpine.LFD.2.02.1104282353140.3005%40ionos%3E
    Reviewed-by: Ingo Molnar
    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/i915: restore only the mode of this driver on lastclose (v2)
    drm/radeon/kms: add info query for tile pipes
    drm/radeon/kms: add missing safe regs for 6xx/7xx
    drm: select FRAMEBUFFER_CONSOLE_PRIMARY if we have FRAMEBUFFER_CONSOLE

    Linus Torvalds
     
  • * 'for-2.6.39' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
    m68k/mm: Set all online nodes in N_NORMAL_MEMORY

    Linus Torvalds
     
  • * 'bugfixes' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
    nfs: don't lose MS_SYNCHRONOUS on remount of noac mount
    NFS: Return meaningful status from decode_secinfo()
    NFSv4: Ensure we request the ordinary fileid when doing readdirplus
    NFSv4: Ensure that clientid and session establishment can time out
    SUNRPC: Allow RPC calls to return ETIMEDOUT instead of EIO
    NFSv4.1: Don't loop forever in nfs4_proc_create_session
    NFSv4: Handle NFS4ERR_WRONGSEC outside of nfs4_handle_exception()
    NFSv4.1: Don't update sequence number if rpc_task is not sent
    NFSv4.1: Ensure state manager thread dies on last umount
    SUNRPC: Fix the SUNRPC Kerberos V RPCSEC_GSS module dependencies
    NFS: Use correct variable for page bounds checking
    NFS: don't negotiate when user specifies sec flavor
    NFS: Attempt mount with default sec flavor first
    NFS: flav_array honors NFS_MAX_SECFLAVORS
    NFS: Fix infinite loop in gss_create_upcall()
    Don't mark_inode_dirty_sync() while holding lock
    NFS: Get rid of pointless test in nfs_commit_done
    NFS: Remove unused argument from nfs_find_best_sec()
    NFS: Eliminate duplicate call to nfs_mark_request_dirty
    NFS: Remove dead code from nfs_fs_mount()

    Linus Torvalds
     
  • With transparent hugepage support, handle_mm_fault() has to be careful
    that a normal PMD has been established before handling a PTE fault. To
    achieve this, it used __pte_alloc() directly instead of pte_alloc_map as
    pte_alloc_map is unsafe to run against a huge PMD. pte_offset_map() is
    called once it is known the PMD is safe.

    pte_alloc_map() is smart enough to check if a PTE is already present
    before calling __pte_alloc but this check was lost. As a consequence,
    PTEs may be allocated unnecessarily and the page table lock taken. Thi
    useless PTE does get cleaned up but it's a performance hit which is
    visible in page_test from aim9.

    This patch simply re-adds the check normally done by pte_alloc_map to
    check if the PTE needs to be allocated before taking the page table lock.
    The effect is noticable in page_test from aim9.

    AIM9
    2.6.38-vanilla 2.6.38-checkptenone
    creat-clo 446.10 ( 0.00%) 424.47 (-5.10%)
    page_test 38.10 ( 0.00%) 42.04 ( 9.37%)
    brk_test 52.45 ( 0.00%) 51.57 (-1.71%)
    exec_test 382.00 ( 0.00%) 456.90 (16.39%)
    fork_test 60.11 ( 0.00%) 67.79 (11.34%)
    MMTests Statistics: duration
    Total Elapsed Time (seconds) 611.90 612.22

    (While this affects 2.6.38, it is a performance rather than a functional
    bug and normally outside the rules -stable. While the big performance
    differences are to a microbench, the difference in fork and exec
    performance may be significant enough that -stable wants to consider the
    patch)

    Reported-by: Raz Ben Yehuda
    Signed-off-by: Mel Gorman
    Reviewed-by: Rik van Riel
    Reviewed-by: Andrea Arcangeli
    Reviewed-by: Minchan Kim
    Acked-by: Johannes Weiner
    Cc: [2.6.38.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mel Gorman
     
  • In corner cases where softlockup watchdog is not setup successfully, the
    relevant nmi perf event for hardlockup watchdog could be disabled, then
    the status of the underlying hardware remains unchanged.

    Also, if the kthread doesn't start then the hrtimer won't run and the
    hardlockup detector will falsely fire.

    Signed-off-by: Hillf Danton
    Signed-off-by: Don Zickus
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Hillf Danton
     
  • In some cases gcc >= 4.5.2 will optimize away current_thread_info(). To
    prevent gcc from doing so the stack address has to be obtained via inline
    asm.

    Signed-off-by: Richard Weinberger
    Acked-by: Kirill A. Shutemov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Weinberger
     
  • Make HoneyPot ProcFS depend on CONFIG_PROC_FS so that it will build.
    Recommended by Christoph Hellwig.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=33692

    Reported-by: Simon Danner
    Signed-off-by: Randy Dunlap
    Cc: Jeff Dike
    Cc: Christoph Hellwig
    Signed-off-by: Richard Weinberger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • This adds support for 64 bit atomic operations on 32 bit UML systems. XFS
    needs them since 2.6.38.

    $ make ARCH=um SUBARCH=i386
    ...
    LD .tmp_vmlinux1
    fs/built-in.o: In function `xlog_regrant_reserve_log_space':
    xfs_log.c:(.text+0xd8584): undefined reference to `atomic64_read_386'
    xfs_log.c:(.text+0xd85ac): undefined reference to `cmpxchg8b_emu'
    ...

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=32812

    Reported-by: Martin Walch
    Tested-by: Martin Walch
    Cc: Martin Walch
    Cc: [2.6.38.x 084189a: um: disable CONFIG_CMPXCHG_LOCAL]
    Signed-off-by: Richard Weinberger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Richard Weinberger
     
  • PTE pages eat up memory just like anything else, but we do not account for
    them in any way in the OOM scores. They are also _guaranteed_ to get
    freed up when a process is OOM killed, while RSS is not.

    Reported-by: Dave Hansen
    Signed-off-by: KOSAKI Motohiro
    Cc: Hugh Dickins
    Cc: KAMEZAWA Hiroyuki
    Cc: Oleg Nesterov
    Acked-by: David Rientjes
    Cc: [2.6.36+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • Signed-off-by: Kukjin Kim
    Cc: Ben Dooks
    Cc: Russell King
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kukjin Kim
     
  • Since 569b846d ("memcg: coalesce uncharge during unmap/truncate"), we do
    batched (delayed) uncharge at truncation/unmap. And since cdec2e42(memcg:
    coalesce charging via percpu storage), we have percpu cache for
    res_counter.

    These changes improved performance of memory cgroup very much, but made
    res_counter->usage usually have a bigger value than the actual value of
    memory usage. So, *.usage_in_bytes, which show res_counter->usage, are
    not desirable for precise values of memory(and swap) usage anymore.

    Instead of removing these files completely(because we cannot know
    res_counter->usage without them), this patch updates the meaning of those
    files.

    Signed-off-by: Daisuke Nishimura
    Acked-by: KAMEZAWA Hiroyuki
    Acked-by: Michal Hocko
    Cc: Balbir Singh
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daisuke Nishimura
     
  • Signed-off-by: Kukjin Kim
    Cc: Grant Likely
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kukjin Kim
     
  • Signed-off-by: Ian Campbell
    Acked-by: Konrad Rzeszutek Wilk
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ian Campbell
     
  • The huge_memory.c THP page fault was allowed to run if vm_ops was null
    (which would succeed for /dev/zero MAP_PRIVATE, as the f_op->mmap wouldn't
    setup a special vma->vm_ops and it would fallback to regular anonymous
    memory) but other THP logics weren't fully activated for vmas with vm_file
    not NULL (/dev/zero has a not NULL vma->vm_file).

    So this removes the vm_file checks so that /dev/zero also can safely use
    THP (the other albeit safer approach to fix this bug would have been to
    prevent the THP initial page fault to run if vm_file was set).

    After removing the vm_file checks, this also makes huge_memory.c stricter
    in khugepaged for the DEBUG_VM=y case. It doesn't replace the vm_file
    check with a is_pfn_mapping check (but it keeps checking for VM_PFNMAP
    under VM_BUG_ON) because for a is_cow_mapping() mapping VM_PFNMAP should
    only be allowed to exist before the first page fault, and in turn when
    vma->anon_vma is null (so preventing khugepaged registration). So I tend
    to think the previous comment saying if vm_file was set, VM_PFNMAP might
    have been set and we could still be registered in khugepaged (despite
    anon_vma was not NULL to be registered in khugepaged) was too paranoid.
    The is_linear_pfn_mapping check is also I think superfluous (as described
    by comment) but under DEBUG_VM it is safe to stay.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=33682

    Signed-off-by: Andrea Arcangeli
    Reported-by: Caspar Zhang
    Acked-by: Mel Gorman
    Acked-by: Rik van Riel
    Cc: [2.6.38.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     
  • Azurit reports large increases in system time after 2.6.36 when running
    Apache. It was bisected down to a892e2d7dcdfa6c76e6 ("vfs: use kmalloc()
    to allocate fdmem if possible").

    That patch caused the vfs to use kmalloc() for very large allocations and
    this is causing excessive work (and presumably excessive reclaim) within
    the page allocator.

    Fix it by falling back to vmalloc() earlier - when the allocation attempt
    would have been considered "costly" by reclaim.

    Reported-by: azurIt
    Tested-by: azurIt
    Acked-by: Changli Gao
    Cc: Americo Wang
    Cc: Jiri Slaby
    Acked-by: Eric Dumazet
    Cc: Mel Gorman
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     

28 Apr, 2011

5 commits

  • The USB and SATA ioapic interrrupt pins are configured as edge type,
    but need to be level type interrupts to work correctly.

    [ tglx: Split out from the combo patch ]

    Cc: Torben Hohn
    Signed-off-by: Sebastian Andrzej Siewior
    Link: http://lkml.kernel.org/r/%3C20110427143052.GA15211%40linutronix.de%3E
    Signed-off-by: Thomas Gleixner

    Sebastian Andrzej Siewior
     
  • We use io_apic_setup_irq_pin() in order to configure pin's interrupt
    number polarity and type. This is done on every irq_create_of_mapping()
    which happens for instance during pci enable calls. Level typed
    interrupts are masked by default, edge are unmasked.

    On the first ->xlate() call the level interrupt is configured and
    masked. The driver calls request_irq() and the line is unmasked. Lets
    assume the interrupt line is shared with another device and we call
    pci_enable_device() for this device. The ->xlate() configures the pin
    again and it is masked. request_irq() does not unmask the line because
    it _is_ already unmasked according to its internal state. So the
    interrupt will never be unmasked again.

    This patch is based on an earlier work by Torben Hohn and solves the
    problem by configuring the pin only once. Since all devices must agree
    on the same type and polarity there is no point in configuring the pin
    more than once.

    [ tglx: Split out the ce4100 part into a separate patch ]

    Cc: Torben Hohn
    Signed-off-by: Sebastian Andrzej Siewior
    Link: http://lkml.kernel.org/r/%3C20110427143052.GA15211%40linutronix.de%3E
    Signed-off-by: Thomas Gleixner

    Sebastian Andrzej Siewior
     
  • We call rtc_read_alarm from rtc_device_register, so it is important
    that the rtc device is fully initialized prior to registration.

    rtc-max8925 sets drvdata after register, so the rtc_read_alarm code
    dereferences a NULL pointer.

    Call dev_set_drvdata before rtc_device_register.

    [ jstultz/tglx: Massaged commit message ]

    Signed-off-by: Zhangfei Gao
    Cc: Alessandro Zummo
    Link: http://lkml.kernel.org/r/%3C1303929869-25249-1-git-send-email-john.stultz%40linaro.org%3E
    Signed-off-by: John Stultz
    Signed-off-by: Thomas Gleixner

    Zhangfei Gao
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/parisc-2.6:
    [PARISC] slub: fix panic with DISCONTIGMEM
    [PARISC] set memory ranges in N_NORMAL_MEMORY when onlined

    Linus Torvalds
     
  • * 'pm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/suspend-2.6:
    ACPI / PM: Avoid infinite recurrence while registering power resources
    PM / Wakeup: Fix initialization of wakeup-related device sysfs files

    Linus Torvalds