Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on Apr 13, 2010
  1. Linux 2.6.34-rc4

    authored
  2. Merge branch 'anonvma'

    authored
    * anonvma:
      anonvma: when setting up page->mapping, we need to pick the _oldest_ anonvma
      anon_vma: clone the anon_vma chain in the right order
      vma_adjust: fix the copying of anon_vma chains
      Simplify and comment on anon_vma re-use for anon_vma_prepare()
  3. Merge master.kernel.org:/home/rmk/linux-2.6-arm

    authored
    * master.kernel.org:/home/rmk/linux-2.6-arm: (21 commits)
      ARM: Fix ioremap_cached()/ioremap_wc() for SMP platforms
      ARM: 6043/1: AT91 slow-clock resume: Don't wait for a disabled PLL to lock
      ARM: 6031/1: fix Thumb-2 decompressor
      ARM: 6029/1: ep93xx: gpio.c: local functions should be static
      ARM: 6028/1: ARM: add MAINTAINERS for U300
      ARM: 6024/1: bcmring: fix missing down on semaphore in dma.c
      MXC: mach_armadillo5x0: Add USB Host support.
      ARM mach-mx3: duplicated include
      ARM mach-mx3: duplicated include
      imx31: add watchdog device on litekit board.
      imx3: Add watchdog platform device support
      MXC: mach-mx31_3ds: add support for freescale mc13783 power management device.
      MXC: mach-mx31_3ds: Add SPI1 device support.
      MXC: mach-mx31_3ds: Add support for on board NAND Flash.
      MXC: mach-mx31_3ds: Update variable names over recent mach name modification.
      imx31: fix parent clock for rtc
      i.MX51: remove NFC AXI static mapping
      i.MX51: determine silicon revision dynamically
      i.MX51: map TZIC dynamically
      i.MX51: Use correct clock for gpt
      ...
  4. Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/gi…

    authored
    …t/mason/btrfs-unstable
    
    * 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
      Btrfs: make sure the chunk allocator doesn't create zero length chunks
      Btrfs: fix data enospc check overflow
  5. Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/jack/linux-fs-2.6
    
    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6:
      quota: Fix possible dq_flags corruption
      quota: Hide warnings about writes to the filesystem before quota was turned on
      ext3: symlink must be handled via filesystem specific operation
      ext2: symlink must be handled via filesystem specific operation
  6. Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/jack/linux-udf-2.6
    
    * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:
      udf: add speciffic ->setattr callback
      udf: potential integer overflow
  7. Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-…

    authored
    …linus
    
    * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (36 commits)
      MIPS: Calculate proper ebase value for 64-bit kernels
      MIPS: Alchemy: DB1200: Remove custom wait implementation
      MIPS: Big Sur: Make defconfig more useful.
      MIPS: Fix __vmalloc() etc. on MIPS for non-GPL modules
      MIPS: Sibyte: Fix M3 TLB exception handler workaround.
      MIPS: BCM63xx: Fix build failure in board_bcm963xx.c
      MIPS: uasm: Add OR instruction.
      MIPS: Sibyte: Apply M3 workaround only on affected chip types and versions.
      MIPS: BCM63xx: Initialize gpio_out_low & out_high to current value at boot.
      MIPS: BCM63xx: Register SSB SPROM fallback in board's first stage callback
      MIPS: BCM63xx: Fix typo in cpu-feature-overrides file.
      MIPS: BCM63xx: Add support for second uart.
      MIPS: BCM63xx: Fix double gpio registration.
      MIPS: BCM63xx: Add DWVS0 board
      MIPS: BCM63xx: Add the RTA1025W-16 BCM6348-based board to suppported boards.
      MIPS: BCM63xx: Fix BCM6338 and BCM6345 gpio count
      MIPS: libgcc.h: Checkpatch cleanup
      MIPS: Loongson-2F: Flush the branch target history in BTB and RAS
      MIPS: Move signal trampolines off of the stack.
      MIPS: Preliminary VDSO
      ...
  8. Merge branch 'for-2.6.34' of git://linux-nfs.org/~bfields/linux

    authored
    * 'for-2.6.34' of git://linux-nfs.org/~bfields/linux:
      svcrdma: RDMA support not yet compatible with RPC6
  9. Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel…

    authored
    …/git/ryusuke/nilfs2
    
    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2:
      nilfs2: fix typo "numer" -> "number" in alloc.c
      nilfs2: Remove an uninitialization warning in nilfs_btree_propagate_v()
      nilfs2: fix a wrong type conversion in nilfs_ioctl()
  10. anonvma: when setting up page->mapping, we need to pick the _oldest_ …

    authored
    …anonvma
    
    Otherwise we might be mapping in a page in a new mapping, but that page
    (through the swapcache) would later be mapped into an old mapping too.
    The page->mapping must be the case that works for everybody, not just
    the mapping that happened to page it in first.
    
    Here's the scenario:
    
     - page gets allocated/mapped by process A. Let's call the anon_vma we
       associate the page with 'A' to keep it easy to track.
    
     - Process A forks, creating process B. The anon_vma in B is 'B', and has
       a chain that looks like 'B' -> 'A'. Everything is fine.
    
     - Swapping happens. The page (with mapping pointing to 'A') gets swapped
       out (perhaps not to disk - it's enough to assume that it's just not
       mapped any more, and lives entirely in the swap-cache)
    
     - Process B pages it in, which goes like this:
    
            do_swap_page ->
              page = lookup_swap_cache(entry);
             ...
              set_pte_at(mm, address, page_table, pte);
              page_add_anon_rmap(page, vma, address);
    
       And think about what happens here!
    
       In particular, what happens is that this will now be the "first"
       mapping of that page, so page_add_anon_rmap() used to do
    
            if (first)
                    __page_set_anon_rmap(page, vma, address);
    
       and notice what anon_vma it will use? It will use the anon_vma for
       process B!
    
       What happens then? Trivial: process 'A' also pages it in (nothing
       happens, it's not the first mapping), and then process 'B' execve's
       or exits or unmaps, making anon_vma B go away.
    
       End result: process A has a page that points to anon_vma B, but
       anon_vma B does not exist any more.  This can go on forever.  Forget
       about RCU grace periods, forget about locking, forget anything like
       that.  The bug is simply that page->mapping points to an anon_vma
       that was correct at one point, but was _not_ the one that was shared
       by all users of that possible mapping.
    
    Changing it to always use the deepest anon_vma in the anonvma chain gets
    us to the safest model.
    
    This can be improved in certain cases: if we know the page is private to
    just this particular mapping (for example, it's a new page, or it is the
    only swapcache entry), we could pick the top (most specific) anon_vma.
    
    But that's a future optimization. Make it _work_ reliably first.
    
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Tested-by: Borislav Petkov <bp@alien8.de> [ "What do you know, I think you fixed it!" ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  11. anon_vma: clone the anon_vma chain in the right order

    authored
    We want to walk the chain in reverse order when cloning it, so that the
    order of the result chain will be the same as the order in the source
    chain.  When we add entries to the chain, they go at the head of the
    chain, so we want to add the source head last.
    
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Tested-by: Borislav Petkov <bp@alien8.de> [ "No, it still oopses" ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  12. vma_adjust: fix the copying of anon_vma chains

    authored
    When we move the boundaries between two vma's due to things like
    mprotect, we need to make sure that the anon_vma of the pages that got
    moved from one vma to another gets properly copied around.  And that was
    not always the case, in this rather hard-to-follow code sequence.
    
    Clarify the code, and fix it so that it copies the anon_vma from the
    right source.
    
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Tested-by: Borislav Petkov <bp@alien8.de> [ "Yeah, not so much this one either" ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  13. Simplify and comment on anon_vma re-use for anon_vma_prepare()

    authored
    This changes the anon_vma reuse case to require that we only reuse
    simple anon_vma's - ie the case when the vma only has a single anon_vma
    associated with it.
    
    This means that a reuse of an anon_vma from an adjacent vma will always
    guarantee that both vma's are associated not only with the same
    anon_vma, they will also have the same anon_vma chain (of just a single
    entry in this case).
    
    And since anon_vma re-use was the only case where the same anon_vma
    might be associated with different chains of anon_vma's, we now have the
    case that every vma that shares the same anon_vma will always also have
    the same chain.  That makes it much easier to think about merging vma's
    that share the same anon_vma's: you can always just drop the other
    anon_vma chain in anon_vma_merge() since you know that they are always
    identical.
    
    This also splits up the function to validate the anon_vma re-use, and
    adds a lot of commentary about the possible races.
    
    Reviewed-by: Rik van Riel <riel@redhat.com>
    Acked-by: Johannes Weiner <hannes@cmpxchg.org>
    Tested-by: Borislav Petkov <bp@alien8.de> [ "That didn't fix it" ]
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Commits on Apr 12, 2010
  1. @jankara

    quota: Fix possible dq_flags corruption

    Andrew Perepechko authored jankara committed
    dq_flags are modified non-atomically in do_set_dqblk via __set_bit calls and
    atomically for example in mark_dquot_dirty or clear_dquot_dirty.  Hence a
    change done by an atomic operation can be overwritten by a change done by a
    non-atomic one. Fix the problem by using atomic bitops even in do_set_dqblk.
    
    Signed-off-by: Andrew Perepechko <andrew.perepechko@sun.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
  2. @jankara

    quota: Hide warnings about writes to the filesystem before quota was …

    jankara authored
    …turned on
    
    For a root filesystem write to the filesystem before quota is turned on happens
    regularly and there's no way around it because of writes to syslog, /etc/mtab,
    and similar. So the warning is rather pointless for ordinary users. It's
    still useful during development so we just hide the warning behind
    __DQUOT_PARANOIA config option.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
  3. @dmonakhov @jankara

    ext3: symlink must be handled via filesystem specific operation

    dmonakhov authored jankara committed
    generic setattr implementation is no longer responsible for
    quota transfer so synlinks must be handled via ext3_setattr.
    
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
  4. @dmonakhov @jankara

    ext2: symlink must be handled via filesystem specific operation

    dmonakhov authored jankara committed
    generic setattr implementation is no longer responsible for
    quota transfer so synlinks must be handled via ext2_setattr.
    
    Signed-off-by: Dmitry Monakhov <dmonakhov@openvz.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
  5. @ralfbaechle

    MIPS: Calculate proper ebase value for 64-bit kernels

    David Daney authored ralfbaechle committed
    The ebase is relative to CKSEG0 not CAC_BASE.  On a 32-bit kernel they
    are the same thing, for a 64-bit kernel they are not.
    
    It happens to kind of work on a 64-bit kernel as they both reference
    the same physical memory.  However since the CPU uses the CKSEG0 base,
    determining if a J instruction will reach always gives the wrong result
    unless we use the same number the CPU uses.
    
    Signed-off-by: David Daney <ddaney@caviumnetworks.com>
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1093/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  6. @ralfbaechle

    MIPS: Alchemy: DB1200: Remove custom wait implementation

    Manuel Lauss authored ralfbaechle committed
    While playing with the out-of-tree MAE driver module, the system would
    panic after a while in the db1200 custom wait code after wakeup due to
    a clobbered k0 register being used as target address of a store op.
    
    Remove the custom wait implementation and revert back to the Alchemy-
    recommended implementation already set as default.
    
    Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com>
    To: Linux-MIPS <linux-mips@linux-mips.org>
    Patchwork: http://patchwork.linux-mips.org/patch/1092/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  7. @ralfbaechle

    MIPS: Big Sur: Make defconfig more useful.

    ralfbaechle authored
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  8. @ralfbaechle

    MIPS: Fix __vmalloc() etc. on MIPS for non-GPL modules

    Anton Altaparmakov authored ralfbaechle committed
    Commit b3594a0 (lmo) rsp.
    3513369 (kernel.org) break non-GPL modules
    that use __vmalloc() or any of the vmap(), vm_map_ram(), etc functions on
    MIPS.
    
    All those functions are EXPORT_SYMBOL() so are meant to be allowed to be
    used by non-GPL kernel modules.  These calls all take page protection as
    an argument which is normally a constant like PAGE_KERNEL.
    
    This commit causes all protection constants like PAGE_KERNEL to not be
    constants and instead to contain the GPL-only symbol _page_cachable_default.
    
    This means that all calls to __vmalloc(), vmap(), etc, cause non-GPL
    modules to fail to link with the complaint that they are trying to use the
    GPL-only symbol _page_cachable_default...
    
    Change EXPORT_SYMBOL_GPL(_page_cachable_default) to EXPORT_SYMBOL() for
    non-GPL modules that call __vmalloc(), vmap(), vm_map_ram() etc.
    
    Signed-off-by: Anton Altaparmakov <aia21@cantab.net>
    Cc: Chris Dearman <chris@mips.com>
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: http://patchwork.linux-mips.org/patch/1084/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  9. @ralfbaechle

    MIPS: Sibyte: Fix M3 TLB exception handler workaround.

    ralfbaechle authored
    The M3 workaround needs to cmpare the region and VPN2 fields only.
    
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  10. @ffainelli @ralfbaechle

    MIPS: BCM63xx: Fix build failure in board_bcm963xx.c

    ffainelli authored ralfbaechle committed
    Since 2083e83, the SPROM is now registered
    in the board_prom_init callback, but it references variables and functions
    which are declared below.  Move the variables and functions above
    board_prom_init.
    
    Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1077/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  11. @ralfbaechle

    MIPS: uasm: Add OR instruction.

    ralfbaechle authored
    This is needed for the fix of the M3 workaround.
    
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  12. @ralfbaechle

    MIPS: Sibyte: Apply M3 workaround only on affected chip types and ver…

    ralfbaechle authored
    …sions.
    
    Previously it was unconditionally used on all Sibyte family SOCs.  The
    M3 bug has to be handled in the TLB exception handler which is extremly
    performance sensitive, so this modification is expected to deliver around
    2-3% performance improvment.  This is important as required changes to the
    M3 workaround will make it more costly.
    
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  13. @ralfbaechle

    MIPS: BCM63xx: Initialize gpio_out_low & out_high to current value at…

    Maxime Bizon authored ralfbaechle committed
    … boot.
    
    To avoid a glitch during GPIO initialisation read GPIO output register
    values left by the firmware.
    
    Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/903/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  14. @ffainelli @ralfbaechle

    MIPS: BCM63xx: Register SSB SPROM fallback in board's first stage cal…

    ffainelli authored ralfbaechle committed
    …lback
    
    Signed-off-by: Florian Fainelli <ffainelli@freebox.fr>
    To: Maxime Bizon <mbizon@freebox.fr>
    Cc: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1017/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  15. @ralfbaechle

    MIPS: BCM63xx: Fix typo in cpu-feature-overrides file.

    Maxime Bizon authored ralfbaechle committed
    Fix typo: CONFIG_BCMCPU_IS_63xx does not exist;
    CONFIG_BCM63XX_CPU_63xx is the valid config option.
    
    Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
    To: linux-mips@linux-mips.org
    Cc: Maxime Bizon <mbizon@freebox.fr>
    Patchwork: http://patchwork.linux-mips.org/patch/901/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  16. @ralfbaechle

    MIPS: BCM63xx: Add support for second uart.

    Maxime Bizon authored ralfbaechle committed
    The BCm63xx SOC has two uarts.  Some boards use the second one for
    bluetooth.  This patch changes platform device registration code to
    handle this.  Changes to the UART driver were already merged in
    6a2c7ea.
    
    Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
    To: linux-mips@linux-mips.org
    Cc: Maxime Bizon <mbizon@freebox.fr>
    Patchwork: http://patchwork.linux-mips.org/patch/900/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  17. @ralfbaechle

    MIPS: BCM63xx: Fix double gpio registration.

    Maxime Bizon authored ralfbaechle committed
    bcm63xx_gpio_init is already called from prom_init to allow board to use
    them early, so we can remove the unneeded arch_initcall.
    
    Signed-off-by: Maxime Bizon <mbizon@freebox.fr>
    To: linux-mips@linux-mips.org
    Cc: Maxime Bizon <mbizon@freebox.fr>
    Patchwork: http://patchwork.linux-mips.org/patch/899/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  18. @ffainelli @ralfbaechle

    MIPS: BCM63xx: Add DWVS0 board

    ffainelli authored ralfbaechle committed
    The DWVS0 board is a BCM6358-based board with an on-board OHCI controler.
    
    Signed-off-by: Florian Fainelli <florian@openwrt.org>
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1015/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  19. @ffainelli @ralfbaechle

    MIPS: BCM63xx: Add the RTA1025W-16 BCM6348-based board to suppported …

    ffainelli authored ralfbaechle committed
    …boards.
    
    Signed-off-by: Florian Fainelli <florian@openwrt.org>
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1014/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  20. @ffainelli @ralfbaechle

    MIPS: BCM63xx: Fix BCM6338 and BCM6345 gpio count

    ffainelli authored ralfbaechle committed
    The number of GPIOs on BCM6338 is 8, while BCM6345 has only 16 GPIOs
    available.
    
    Signed-off-by: Florian Fainelli <florian@openwrt.org>
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/1016/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  21. @ralfbaechle

    MIPS: libgcc.h: Checkpatch cleanup

    Andrea Gelmini authored ralfbaechle committed
    arch/mips/lib/libgcc.h:21: ERROR: open brace '{' following union go on the same line
    
    Signed-off-by: Andrea Gelmini <andrea.gelmini@gelma.net>
    To: linux-kernel@vger.kernel.org
    Cc: Paul Mundt <lethal@linux-sh.org>
    Cc: linux-mips@linux-mips.org
    Cc: linux-sh@vger.kernel.org
    Patchwork: http://patchwork.linux-mips.org/patch/1007/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  22. @lzufalcon @ralfbaechle

    MIPS: Loongson-2F: Flush the branch target history in BTB and RAS

    lzufalcon authored ralfbaechle committed
    As per chapter 15 "Errata: Issue of Out-of-order in loongson"[1] to work
    around the Loongson 2F erratum we need to do:
    
    "When switching from user mode to kernel mode, you should flush the
    branch target history such as BTB and RAS."
    
    [1] Chinese version: http://www.loongson.cn/uploadfile/file/200808211
    [2] English version of chapter 15:
        http://groups.google.com.hk/group/loongson-dev/msg/e0d2e220958f10a6?dmode=source
    
    Signed-off-by: Wu Zhangjin <wuzhangjin@gmail.com>
    Cc: linux-mips@linux-mips.org
    Cc: Shinya Kuribayashi <shinya.kuribayashi@necel.com>
    Patchwork: http://patchwork.linux-mips.org/patch/1066/
    Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Something went wrong with that request. Please try again.