1. 28 Apr, 2013 3 commits
    • Doug Anderson's avatar
      ARM: dts: Add i2c-arbitrator bus for exynos5250-snow · 97a4a1ba
      Doug Anderson authored
      We need to use the i2c-arbitrator to talk to any of the devices on i2c
      bus 4 on exynos5250-snow so that we don't confuse the embedded
      controller (EC).  Add the i2c-arbitrator to the device tree.  As we
      add future devices (keyboard, sbs, tps65090) we'll add them on top of
      this.
      
      The arbitrated bus is numbered 104 simply as a convenience to make it
      easier for people poking around to guess that it might have something
      to do with the physical bus 4.
      
      The addition is split between the cros5250-common and the snow device
      tree file since not all cros5250-class devices use arbitration.
      Signed-off-by: default avatarDoug Anderson <dianders@chromium.org>
      Acked-by: default avatarKukjin Kim <kgene.kim@samsung.com>
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      97a4a1ba
    • Olof Johansson's avatar
      Merge branch 'exynos/dt' into late/dt · 6cae0faf
      Olof Johansson authored
      * exynos/dt: (125 commits)
        ARM: dts: add PDMA0 changes for exynos5440
        ARM: dts: Add cpufreq controller node for Exynos5440 SoC
        ARM: dts: Fix gmac clock ids due to changes in Exynos5440
        ARM: dts: add device tree file for SD5v1 board
        ARM: dts: update bootargs to boot from sda2 for exynos5440-ssdk5440
        ARM: dts: add PMU support in exynos5440
        ARM: dts: Add node for GMAC for exynos5440
        ARM: dts: list the interrupts generated by pin-controller on Exynos5440
        ARM: dts: Add FIMD DT binding Documentation
        ARM: dts: Add FIMD node and display timing node to exynos4412-origen.dts
        ARM: dts: Add FIMD node to exynos4
        ARM: dts: Add SYSREG block node for S5P/Exynos4 SoC series
        ARM: dts: Add display timing node to exynos5250-smdk5250.dts
        ARM: dts: Add FIMD node to exynos5
        ARM: dts: Add virtual GIC DT bindings for exynos5440
        ARM: dts: Document usb clocks in samsung,exynos4210-ehci/ohci bindings
        ARM: dts: add usb 2.0 clock references to exynos5250 device tree
        ARM: dts: Add architected timer nodes for exynos5250
        ARM: dts: Declare the gic as a15 compatible for exynos5250
        ARM: dts: Add HDMI HPD and regulator node for Arndale board
        ...
      6cae0faf
    • Olof Johansson's avatar
      Merge branch 'samsung/pinctrl-exynos' into late/dt · 4fac6f0e
      Olof Johansson authored
      * samsung/pinctrl-exynos:
        ARM: EXYNOS: skip wakeup interrupt registration for exynos5250 if pinctrl is enabled
        gpio: samsung: skip gpiolib registration if pinctrl support is enabled for exynos5250
        pinctrl: exynos: add exynos5250 SoC specific data
      4fac6f0e
  2. 15 Apr, 2013 1 commit
  3. 14 Apr, 2013 10 commits
  4. 13 Apr, 2013 3 commits
    • Suleiman Souhlal's avatar
      vfs: Revert spurious fix to spinning prevention in prune_icache_sb · 5b55d708
      Suleiman Souhlal authored
      Revert commit 62a3ddef ("vfs: fix spinning prevention in prune_icache_sb").
      
      This commit doesn't look right: since we are looking at the tail of the
      list (sb->s_inode_lru.prev) if we want to skip an inode, we should put
      it back at the head of the list instead of the tail, otherwise we will
      keep spinning on it.
      
      Discovered when investigating why prune_icache_sb came top in perf
      reports of a swapping load.
      Signed-off-by: default avatarSuleiman Souhlal <suleiman@google.com>
      Signed-off-by: default avatarHugh Dickins <hughd@google.com>
      Cc: stable@vger.kernel.org # v3.2+
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5b55d708
    • Linus Torvalds's avatar
      kobject: fix kset_find_obj() race with concurrent last kobject_put() · a49b7e82
      Linus Torvalds authored
      Anatol Pomozov identified a race condition that hits module unloading
      and re-loading.  To quote Anatol:
      
       "This is a race codition that exists between kset_find_obj() and
        kobject_put().  kset_find_obj() might return kobject that has refcount
        equal to 0 if this kobject is freeing by kobject_put() in other
        thread.
      
        Here is timeline for the crash in case if kset_find_obj() searches for
        an object tht nobody holds and other thread is doing kobject_put() on
        the same kobject:
      
          THREAD A (calls kset_find_obj())     THREAD B (calls kobject_put())
          splin_lock()
                                               atomic_dec_return(kobj->kref), counter gets zero here
                                               ... starts kobject cleanup ....
                                               spin_lock() // WAIT thread A in kobj_kset_leave()
          iterate over kset->list
          atomic_inc(kobj->kref) (counter becomes 1)
          spin_unlock()
                                               spin_lock() // taken
                                               // it does not know that thread A increased counter so it
                                               remove obj from list
                                               spin_unlock()
                                               vfree(module) // frees module object with containing kobj
      
          // kobj points to freed memory area!!
          kobject_put(kobj) // OOPS!!!!
      
        The race above happens because module.c tries to use kset_find_obj()
        when somebody unloads module.  The module.c code was introduced in
        commit 6494a93d"
      
      Anatol supplied a patch specific for module.c that worked around the
      problem by simply not using kset_find_obj() at all, but rather than make
      a local band-aid, this just fixes kset_find_obj() to be thread-safe
      using the proper model of refusing the get a new reference if the
      refcount has already dropped to zero.
      
      See examples of this proper refcount handling not only in the kref
      documentation, but in various other equivalent uses of this pattern by
      grepping for atomic_inc_not_zero().
      
      [ Side note: the module race does indicate that module loading and
        unloading is not properly serialized wrt sysfs information using the
        module mutex.  That may require further thought, but this is the
        correct fix at the kobject layer regardless. ]
      Reported-analyzed-and-tested-by: default avatarAnatol Pomozov <anatol.pomozov@gmail.com>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Al Viro <viro@zeniv.linux.org.uk>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a49b7e82
    • Josef Bacik's avatar
      Btrfs: make sure nbytes are right after log replay · 4bc4bee4
      Josef Bacik authored
      While trying to track down a tree log replay bug I noticed that fsck was always
      complaining about nbytes not being right for our fsynced file.  That is because
      the new fsync stuff doesn't wait for ordered extents to complete, so the inodes
      nbytes are not necessarily updated properly when we log it.  So to fix this we
      need to set nbytes to whatever it is on the inode that is on disk, so when we
      replay the extents we can just add the bytes that are being added as we replay
      the extent.  This makes it work for the case that we have the wrong nbytes or
      the case that we logged everything and nbytes is actually correct.  With this
      I'm no longer getting nbytes errors out of btrfsck.
      
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJosef Bacik <jbacik@fusionio.com>
      Signed-off-by: default avatarChris Mason <chris.mason@fusionio.com>
      4bc4bee4
  5. 12 Apr, 2013 20 commits
  6. 11 Apr, 2013 3 commits