1. 08 7月, 2012 3 次提交
    • T
      cgroup: fix cgroup hierarchy umount race · 5db9a4d9
      Tejun Heo 提交于
      48ddbe19 "cgroup: make css->refcnt clearing on cgroup removal
      optional" allowed a css to linger after the associated cgroup is
      removed.  As a css holds a reference on the cgroup's dentry, it means
      that cgroup dentries may linger for a while.
      
      Destroying a superblock which has dentries with positive refcnts is a
      critical bug and triggers BUG() in vfs code.  As each cgroup dentry
      holds an s_active reference, any lingering cgroup has both its dentry
      and the superblock pinned and thus preventing premature release of
      superblock.
      
      Unfortunately, after 48ddbe19, there's a small window while
      releasing a cgroup which is directly under the root of the hierarchy.
      When a cgroup directory is released, vfs layer first deletes the
      corresponding dentry and then invokes dput() on the parent, which may
      recurse further, so when a cgroup directly below root cgroup is
      released, the cgroup is first destroyed - which releases the s_active
      it was holding - and then the dentry for the root cgroup is dput().
      
      This creates a window where the root dentry's refcnt isn't zero but
      superblock's s_active is.  If umount happens before or during this
      window, vfs will see the root dentry with non-zero refcnt and trigger
      BUG().
      
      Before 48ddbe19, this problem didn't exist because the last dentry
      reference was guaranteed to be put synchronously from rmdir(2)
      invocation which holds s_active around the whole process.
      
      Fix it by holding an extra superblock->s_active reference across
      dput() from css release, which is the dput() path added by 48ddbe19
      and the only one which doesn't hold an extra s_active ref across the
      final cgroup dput().
      Signed-off-by: NTejun Heo <tj@kernel.org>
      LKML-Reference: <4FEEA5CB.8070809@huawei.com>
      Reported-by: Nshyju pv <shyju.pv@huawei.com>
      Tested-by: Nshyju pv <shyju.pv@huawei.com>
      Cc: Sasha Levin <levinsasha928@gmail.com>
      Acked-by: NLi Zefan <lizefan@huawei.com>
      5db9a4d9
    • T
      Revert "cgroup: superblock can't be released with active dentries" · 7db5b3ca
      Tejun Heo 提交于
      This reverts commit fa980ca8.  The
      commit was an attempt to fix a race condition where a cgroup hierarchy
      may be unmounted with positive dentry reference on root cgroup.  While
      the commit made the race condition slightly more difficult to trigger,
      the race was still there and could be reliably triggered using a
      different test case.
      
      Revert the incorrect fix.  The next commit will describe the race and
      fix it correctly.
      Signed-off-by: NTejun Heo <tj@kernel.org>
      LKML-Reference: <4FEEA5CB.8070809@huawei.com>
      Reported-by: Nshyju pv <shyju.pv@huawei.com>
      Cc: Sasha Levin <levinsasha928@gmail.com>
      Acked-by: NLi Zefan <lizefan@huawei.com>
      7db5b3ca
    • L
      Merge branch 'fixes' of git://git.linaro.org/people/rmk/linux-arm · cd6407fe
      Linus Torvalds 提交于
      Pull ARM fixes from Russell King:
       "Last merge window, we had some updates from Al cleaning up the signal
        restart handling.  These have caused some problems on ARM, and while
        Al has some fixes, we have some concerns with Al's patches but we've
        been unsuccesful with discussing this.
      
        We have got to the point where we need to do something, and we've
        decided that the best solution is to revert the appropriate commits
        until Al is able to reply to us.
      
        Also included here are four patches to fix warnings that I've noticed
        in my build system, and one fix for kprobes test code."
      
      * 'fixes' of git://git.linaro.org/people/rmk/linux-arm:
        ARM: fix warning caused by wrongly typed arm_dma_limit
        ARM: fix warnings about atomic64_read
        ARM: 7440/1: kprobes: only test 'sub pc, pc, #1b-2b+8-2' on ARMv6
        ARM: 7441/1: perf: return -EOPNOTSUPP if requested mode exclusion is unavailable
        ARM: 7443/1: Revert "new way of handling ERESTART_RESTARTBLOCK"
        ARM: 7442/1: Revert "remove unused restart trampoline"
        ARM: fix set_domain() macro
        ARM: fix mach-versatile/pci.c warning
      cd6407fe
  2. 07 7月, 2012 10 次提交
  3. 06 7月, 2012 6 次提交
    • D
      mtd: cafe_nand: fix an & vs | mistake · 48f8b641
      Dan Carpenter 提交于
      The intent here was clearly to set result to true if the 0x40000000 flag
      was set.  But instead there was a | vs & typo and we always set result
      to true.
      
      Artem: check the spec at
      wiki.laptop.org/images/5/5c/88ALP01_Datasheet_July_2007.pdf
      and this fix looks correct.
      Signed-off-by: NDan Carpenter <dan.carpenter@oracle.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: NArtem Bityutskiy <artem.bityutskiy@linux.intel.com>
      Signed-off-by: NDavid Woodhouse <David.Woodhouse@intel.com>
      48f8b641
    • L
      Merge tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · c4aed353
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Arnd Bergmann:
       "Small fixes on multiple ARM platforms
         - A build regression from a previous fix on dove and mv78xx0
         - Two fixes for recently (3.5-rc1) changed mmp/pxa code
         - multiple omap2+ bug fixes
         - two trivial fixes for i.MX
         - one v3.5 regression for mxs"
      
      * tag 'fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        ARM: apx4devkit: fix FEC enabling PHY clock
        ARM: OMAP2+: hwmod data: Fix wrong McBSP clock alias on OMAP4
        ARM: OMAP4: hwmod data: temporarily comment out data for the usb_host_fs and aess IP blocks
        ARM: Orion: Fix WDT compile for Dove and MV78xx0
        ARM: mmp: remove mach/gpio-pxa.h
        ARM: imx: assert SCC gate stays enabled
        ARM: OMAP4: TWL6030: ensure sys_nirq1 is mux'd and wakeup enabled
        ARM: OMAP2: Overo: init I2C before MMC to fix MMC suspend/resume failure
        ARM: imx27_visstrim_m10: Do not include <asm/system.h>
        ARM: pxa: hx4700: Fix basic suspend/resume
      c4aed353
    • L
      Merge git://git.kernel.org/pub/scm/virt/kvm/kvm · 6bc51545
      Linus Torvalds 提交于
      Pull KVM fix from Marcelo Tosatti:
       "Memory leak and oops on the x86 mmu code, and sanitization of the
        KVM_IRQFD ioctl."
      
      * git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: MMU: fix shrinking page from the empty mmu
        KVM: fix fault page leak
        KVM: Sanitize KVM_IRQFD flags
        KVM: Add missing KVM_IRQFD API documentation
        KVM: Pass kvm_irqfd to functions
      6bc51545
    • L
      Merge branch 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds · 24eee627
      Linus Torvalds 提交于
      Pull leds fix from Bryan Wu:
       "Fix for heartbeat led trigger driver"
      
      * 'fixes-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds:
        leds: heartbeat: fix bug on panic
      24eee627
    • L
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs · 5eecb9cc
      Linus Torvalds 提交于
      Pull btrfs updates from Chris Mason:
       "I held off on my rc5 pull because I hit an oops during log recovery
        after a crash.  I wanted to make sure it wasn't a regression because
        we have some logging fixes in here.
      
        It turns out that a commit during the merge window just made it much
        more likely to trigger directory logging instead of full commits,
        which exposed an old bug.
      
        The new backref walking code got some additional fixes.  This should
        be the final set of them.
      
        Josef fixed up a corner where our O_DIRECT writes and buffered reads
        could expose old file contents (not stale, just not the most recent).
        He and Liu Bo fixed crashes during tree log recover as well.
      
        Ilya fixed errors while we resume disk balancing operations on
        readonly mounts."
      
      * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux-btrfs:
        Btrfs: run delayed directory updates during log replay
        Btrfs: hold a ref on the inode during writepages
        Btrfs: fix tree log remove space corner case
        Btrfs: fix wrong check during log recovery
        Btrfs: use _IOR for BTRFS_IOC_SUBVOL_GETFLAGS
        Btrfs: resume balance on rw (re)mounts properly
        Btrfs: restore restriper state on all mounts
        Btrfs: fix dio write vs buffered read race
        Btrfs: don't count I/O statistic read errors for missing devices
        Btrfs: resolve tree mod log locking issue in btrfs_next_leaf
        Btrfs: fix tree mod log rewind of ADD operations
        Btrfs: leave critical region in btrfs_find_all_roots as soon as possible
        Btrfs: always put insert_ptr modifications into the tree mod log
        Btrfs: fix tree mod log for root replacements at leaf level
        Btrfs: support root level changes in __resolve_indirect_ref
        Btrfs: avoid waiting for delayed refs when we must not
      5eecb9cc
    • L
      Merge branch 'fixes-for-grant' of git://sources.calxeda.com/kernel/linux · 62ad6449
      Linus Torvalds 提交于
      Pull DT fixes from Rob Herring:
       "Mainly some documentation updates and 2 fixes:
      
         - An export symbol fix for of_platform_populate from Stephen W.
         - A fix for the order compatible entries are matched to ensure the
           first compatible string is matched when there are multiple matches."
      
      Normally these would go through Grant Likely (thus the "fixes-for-grant"
      branch name), but Grant is in the middle of moving to Scotland, and is
      practically offline until sometime in August. So pull directly from Rob.
      
      * 'fixes-for-grant' of git://sources.calxeda.com/kernel/linux:
        of: match by compatible property first
        dt: mc13xxx.txt: Fix gpio number assignment
        dt: fsl-fec.txt: Fix gpio number assignment
        dt: fsl-mma8450.txt: Add missing 'reg' description
        dt: fsl-imx-esdhc.txt: Fix gpio number assignment
        dt: fsl-imx-cspi.txt: Fix comment about GPIOs used for chip selects
        of: Add Avionic Design vendor prefix
        of: export of_platform_populate()
      62ad6449
  4. 05 7月, 2012 14 次提交
  5. 04 7月, 2012 7 次提交
    • B
      ARM: OMAP2+: hwmod data: Fix wrong McBSP clock alias on OMAP4 · d7a0b513
      Benoit Cousson 提交于
      The commit 503d0ea2
        ARM: OMAP4: hwmod data: Add aliases for McBSP fclk clocks
      
      added a wrong "prcm_clk" alias for PRCM clock whereas the McBSP
      driver and previous OMAPs are using "prcm_fck".
      
      It thus lead to the following warning.
      
      [   47.409729] omap-mcbsp: clks: could not clk_get() prcm_fck
      
      Fix that by changing the opt_clk role to prcm_fck.
      Reported-by: NMisael Lopez Cruz <misael.lopez@ti.com>
      Signed-off-by: NBenoit Cousson <b-cousson@ti.com>
      Cc: Peter Ujfalusi <peter.ujfalusi@ti.com>
      Tested-by: NSebastien Guiriec <s-guiriec@ti.com>
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      d7a0b513
    • P
      ARM: OMAP4: hwmod data: temporarily comment out data for the usb_host_fs and aess IP blocks · b0a70cc8
      Paul Walmsley 提交于
      The OMAP4 usb_host_fs (OHCI) and AESS IP blocks require some special
      programming for them to enter idle.  Without this programming, they
      will prevent the rest of the chip from entering full chip idle.
      
      To implement the idle programming cleanly, this will take some
      coordination between maintainers.  This is likely to take some time,
      so it is probably best to leave this for 3.6 or 3.7.  So, in the
      meantime, prevent these IP blocks from being registered.
      
      Later, once the appropriate support is available, this patch can be
      reverted.
      
      This second version comments out the IP block data since Benoît didn't
      like removing it.
      Signed-off-by: NPaul Walmsley <paul@pwsan.com>
      Cc: Benoît Cousson <b-cousson@ti.com>
      b0a70cc8
    • A
      Merge branch 'fixes' of git://github.com/hzhuang1/linux into fixes · 8df0fd93
      Arnd Bergmann 提交于
      From Haojian Zhuang <haojian.zhuang@gmail.com>:
      
      * 'fixes' of git://github.com/hzhuang1/linux:
        ARM: mmp: remove mach/gpio-pxa.h
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      8df0fd93
    • A
      Merge tag 'v3.5-imx-fixes' of git://git.pengutronix.de/git/imx/linux-2.6 into fixes · 811dde65
      Arnd Bergmann 提交于
      From Sascha Hauer <s.hauer@pengutronix.de>:
      
      ARM i.MX fixes for v3.5-rc5
      
      * tag 'v3.5-imx-fixes' of git://git.pengutronix.de/git/imx/linux-2.6:
        ARM: imx: assert SCC gate stays enabled
        ARM: imx27_visstrim_m10: Do not include <asm/system.h>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      811dde65
    • A
      ARM: Orion: Fix WDT compile for Dove and MV78xx0 · 1e0c1ce0
      Andrew Lunn 提交于
      Commit 0fa1f060 (ARM: Orion: Fix
      Virtual/Physical mixup with watchdog) broke the Dove & MV78xx0
      build. Although these two SoC don't use the watchdog, the shared
      platform code still needs to build. Add the necessary defines.
      
      Cc: stable@vger.kernel.org
      Reported-by: NNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Tested-by: NNicolas Pitre <nico@fluxnic.net>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      1e0c1ce0
    • P
      ARM: mmp: remove mach/gpio-pxa.h · c12a3cb9
      Paul Bolle 提交于
      Commit 157d2644 ("ARM: pxa: change gpio
      to platform device") removed all includes of mach/gpio-pxa.h. It kept
      this unused header in the tree. Using it can't work, as it itself
      includes the non-existent header plat/gpio-pxa.h. This header can safely
      be removed.
      Signed-off-by: NPaul Bolle <pebolle@tiscali.nl>
      Acked-by: NEric Miao <eric.y.miao@gmail.com>
      Signed-off-by: NHaojian Zhuang <haojian.zhuang@gmail.com>
      c12a3cb9
    • A
      leds: heartbeat: fix bug on panic · fb31fbeb
      Alexander Holler 提交于
      With commit 49dca5ae I introduced
      a bug (visible if CONFIG_PROVE_RCU is enabled) which occures when a panic
      has happened:
      
      [ 1526.520230] ===============================
      [ 1526.520230] [ INFO: suspicious RCU usage. ]
      [ 1526.520230] 3.5.0-rc1+ #12 Not tainted
      [ 1526.520230] -------------------------------
      [ 1526.520230] /c/kernel-tests/mm/include/linux/rcupdate.h:436 Illegal context switch in RCU read-side critical section!
      [ 1526.520230]
      [ 1526.520230] other info that might help us debug this:
      [ 1526.520230]
      [ 1526.520230]
      [ 1526.520230] rcu_scheduler_active = 1, debug_locks = 0
      [ 1526.520230] 3 locks held by net.agent/3279:
      [ 1526.520230]  #0:  (&mm->mmap_sem){++++++}, at: [<ffffffff82f85962>] do_page_fault+0x193/0x390
      [ 1526.520230]  #1:  (panic_lock){+.+...}, at: [<ffffffff82ed2830>] panic+0x37/0x1d3
      [ 1526.520230]  #2:  (rcu_read_lock){.+.+..}, at: [<ffffffff810b9b28>] rcu_lock_acquire+0x0/0x29
      [ 1526.520230]
      [ 1526.520230] stack backtrace:
      [ 1526.520230] Pid: 3279, comm: net.agent Not tainted 3.5.0-rc1+ #12
      [ 1526.520230] Call Trace:
      [ 1526.520230]  [<ffffffff810e1570>] lockdep_rcu_suspicious+0x109/0x112
      [ 1526.520230]  [<ffffffff810bfe3a>] rcu_preempt_sleep_check+0x45/0x47
      [ 1526.520230]  [<ffffffff810bfe5a>] __might_sleep+0x1e/0x19a
      [ 1526.520230]  [<ffffffff82f8010e>] down_write+0x26/0x81
      [ 1526.520230]  [<ffffffff8276a966>] led_trigger_unregister+0x1f/0x9c
      [ 1526.520230]  [<ffffffff8276def5>] heartbeat_reboot_notifier+0x15/0x19
      [ 1526.520230]  [<ffffffff82f85bf5>] notifier_call_chain+0x96/0xcd
      [ 1526.520230]  [<ffffffff82f85cba>] __atomic_notifier_call_chain+0x8e/0xff
      [ 1526.520230]  [<ffffffff81094b7c>] ? kmsg_dump+0x37/0x1eb
      [ 1526.520230]  [<ffffffff82f85d3f>] atomic_notifier_call_chain+0x14/0x16
      [ 1526.520230]  [<ffffffff82ed28e1>] panic+0xe8/0x1d3
      [ 1526.520230]  [<ffffffff811473e2>] out_of_memory+0x15d/0x1d3
      
      So in case of a panic, now just turn of the LED. Other approaches like
      scheduling a work to unregister the trigger aren't working because there
      isn't much which still runs after a panic occured (except timers).
      Signed-off-by: NAlexander Holler <holler@ahsoftware.de>
      Signed-off-by: NBryan Wu <bryan.wu@canonical.com>
      fb31fbeb