Skip to content
  1. Apr 13, 2010
    • Linus Torvalds's avatar
      Linux 2.6.34-rc4 · 0d0fb0f9
      Linus Torvalds authored
      v2.6.34-rc4
      0d0fb0f9
    • Linus Torvalds's avatar
      Merge branch 'anonvma' · 64a8920f
      Linus Torvalds 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()
      64a8920f
    • Linus Torvalds's avatar
      Merge master.kernel.org:/home/rmk/linux-2.6-arm · 50b88c46
      Linus Torvalds 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
        ...
      50b88c46
    • Linus Torvalds's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable · d6cf853d
      Linus Torvalds authored
      * '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
      d6cf853d
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs-2.6 · 6a945f38
      Linus Torvalds authored
      * '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
      6a945f38
    • Linus Torvalds's avatar
      Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6 · 50fc88cb
      Linus Torvalds authored
      * '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
      50fc88cb
    • Linus Torvalds's avatar
      Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus · 4505a493
      Linus Torvalds authored
      * '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
        ...
      4505a493
    • Linus Torvalds's avatar
      Merge branch 'for-2.6.34' of git://linux-nfs.org/~bfields/linux · fedfb947
      Linus Torvalds authored
      * 'for-2.6.34' of git://linux-nfs.org/~bfields/linux:
        svcrdma: RDMA support not yet compatible with RPC6
      fedfb947
    • Linus Torvalds's avatar
      Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ryusuke/nilfs2 · 44fa2b4b
      Linus Torvalds authored
      * '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()
      44fa2b4b
    • Linus Torvalds's avatar
      anonvma: when setting up page->mapping, we need to pick the _oldest_ anonvma · ea90002b
      Linus Torvalds authored
      
      
      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: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Tested-by: Borislav Petkov <bp@alien8.de> [ "What do you know, I think you fixed it!" ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      ea90002b
    • Linus Torvalds's avatar
      anon_vma: clone the anon_vma chain in the right order · 646d87b4
      Linus Torvalds 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: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Tested-by: Borislav Petkov <bp@alien8.de> [ "No, it still oopses" ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      646d87b4
    • Linus Torvalds's avatar
      vma_adjust: fix the copying of anon_vma chains · 287d97ac
      Linus Torvalds 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: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Tested-by: Borislav Petkov <bp@alien8.de> [ "Yeah, not so much this one either" ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      287d97ac
    • Linus Torvalds's avatar
      Simplify and comment on anon_vma re-use for anon_vma_prepare() · d0e9fe17
      Linus Torvalds 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: default avatarRik van Riel <riel@redhat.com>
      Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Tested-by: Borislav Petkov <bp@alien8.de> [ "That didn't fix it" ]
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d0e9fe17
    • Andrew Perepechko's avatar
      quota: Fix possible dq_flags corruption · 08261673
      Andrew Perepechko authored
      
      
      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: default avatarAndrew Perepechko <andrew.perepechko@sun.com>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      08261673
    • Jan Kara's avatar
      quota: Hide warnings about writes to the filesystem before quota was turned on · 4c5e6c0e
      Jan Kara authored
      
      
      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: default avatarJan Kara <jack@suse.cz>
      4c5e6c0e
    • Dmitry Monakhov's avatar
      ext3: symlink must be handled via filesystem specific operation · 774f03fb
      Dmitry Monakhov authored
      
      
      generic setattr implementation is no longer responsible for
      quota transfer so synlinks must be handled via ext3_setattr.
      
      Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      774f03fb
    • Dmitry Monakhov's avatar
      ext2: symlink must be handled via filesystem specific operation · fc7683a3
      Dmitry Monakhov authored
      
      
      generic setattr implementation is no longer responsible for
      quota transfer so synlinks must be handled via ext2_setattr.
      
      Signed-off-by: default avatarDmitry Monakhov <dmonakhov@openvz.org>
      Signed-off-by: default avatarJan Kara <jack@suse.cz>
      fc7683a3
    • David Daney's avatar
      MIPS: Calculate proper ebase value for 64-bit kernels · f6be75d0
      David Daney authored
      
      
      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: default avatarDavid Daney <ddaney@caviumnetworks.com>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1093/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      f6be75d0
    • Manuel Lauss's avatar
      MIPS: Alchemy: DB1200: Remove custom wait implementation · d8000bee
      Manuel Lauss authored
      
      
      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: default avatarManuel Lauss <manuel.lauss@gmail.com>
      To: Linux-MIPS <linux-mips@linux-mips.org>
      Patchwork: http://patchwork.linux-mips.org/patch/1092/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      d8000bee
    • Ralf Baechle's avatar
      2844e49f
    • Anton Altaparmakov's avatar
      MIPS: Fix __vmalloc() etc. on MIPS for non-GPL modules · 7b3e543d
      Anton Altaparmakov authored
      Commit b3594a089f1c17ff919f8f78505c3f20e1f6f8ce (lmo) rsp.
      35133692
      
       (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: default avatarAnton 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: default avatarRalf Baechle <ralf@linux-mips.org>
      7b3e543d
    • Ralf Baechle's avatar
      MIPS: Sibyte: Fix M3 TLB exception handler workaround. · 3d45285d
      Ralf Baechle authored
      
      
      The M3 workaround needs to cmpare the region and VPN2 fields only.
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      3d45285d
    • Florian Fainelli's avatar
      MIPS: BCM63xx: Fix build failure in board_bcm963xx.c · 5e3644a9
      Florian Fainelli authored
      
      
      Since 2083e8327aeeaf818b0e4522a9d2539835c60423, 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: default avatarFlorian Fainelli <ffainelli@freebox.fr>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1077/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      5e3644a9
    • Ralf Baechle's avatar
      MIPS: uasm: Add OR instruction. · 5808184f
      Ralf Baechle authored
      
      
      This is needed for the fix of the M3 workaround.
      
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      5808184f
    • Ralf Baechle's avatar
      MIPS: Sibyte: Apply M3 workaround only on affected chip types and versions. · 8d9df29d
      Ralf Baechle authored
      
      
      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: default avatarRalf Baechle <ralf@linux-mips.org>
      8d9df29d
    • Maxime Bizon's avatar
      MIPS: BCM63xx: Initialize gpio_out_low & out_high to current value at boot. · 9538ca63
      Maxime Bizon authored
      
      
      To avoid a glitch during GPIO initialisation read GPIO output register
      values left by the firmware.
      
      Signed-off-by: default avatarMaxime Bizon <mbizon@freebox.fr>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/903/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      9538ca63
    • Florian Fainelli's avatar
      MIPS: BCM63xx: Register SSB SPROM fallback in board's first stage callback · e23a90eb
      Florian Fainelli authored
      
      
      Signed-off-by: default avatarFlorian 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: default avatarRalf Baechle <ralf@linux-mips.org>
      e23a90eb
    • Maxime Bizon's avatar
      MIPS: BCM63xx: Fix typo in cpu-feature-overrides file. · 4fe67e44
      Maxime Bizon authored
      
      
      Fix typo: CONFIG_BCMCPU_IS_63xx does not exist;
      CONFIG_BCM63XX_CPU_63xx is the valid config option.
      
      Signed-off-by: default avatarMaxime 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: default avatarRalf Baechle <ralf@linux-mips.org>
      4fe67e44
    • Maxime Bizon's avatar
      MIPS: BCM63xx: Add support for second uart. · 524ef29c
      Maxime Bizon authored
      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
      6a2c7eab
      
      .
      
      Signed-off-by: default avatarMaxime 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: default avatarRalf Baechle <ralf@linux-mips.org>
      524ef29c
    • Maxime Bizon's avatar
      MIPS: BCM63xx: Fix double gpio registration. · 97befcf4
      Maxime Bizon authored
      
      
      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: default avatarMaxime 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: default avatarRalf Baechle <ralf@linux-mips.org>
      97befcf4
    • Florian Fainelli's avatar
      MIPS: BCM63xx: Add DWVS0 board · f29b7cac
      Florian Fainelli authored
      
      
      The DWVS0 board is a BCM6358-based board with an on-board OHCI controler.
      
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1015/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      f29b7cac
    • Florian Fainelli's avatar
      MIPS: BCM63xx: Add the RTA1025W-16 BCM6348-based board to suppported boards. · 2e6ad9a9
      Florian Fainelli authored
      
      
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1014/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      2e6ad9a9
    • Florian Fainelli's avatar
      MIPS: BCM63xx: Fix BCM6338 and BCM6345 gpio count · d1b28758
      Florian Fainelli authored
      
      
      The number of GPIOs on BCM6338 is 8, while BCM6345 has only 16 GPIOs
      available.
      
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1016/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      d1b28758
    • Andrea Gelmini's avatar
      MIPS: libgcc.h: Checkpatch cleanup · b44c779a
      Andrea Gelmini authored
      
      
      arch/mips/lib/libgcc.h:21: ERROR: open brace '{' following union go on the same line
      
      Signed-off-by: default avatarAndrea 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: default avatarRalf Baechle <ralf@linux-mips.org>
      b44c779a
    • Wu Zhangjin's avatar
      MIPS: Loongson-2F: Flush the branch target history in BTB and RAS · f1df3239
      Wu Zhangjin authored
      
      
      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: default avatarWu 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: default avatarRalf Baechle <ralf@linux-mips.org>
      f1df3239
    • David Daney's avatar
      MIPS: Move signal trampolines off of the stack. · d814c28c
      David Daney authored
      
      
      This is a follow on to the vdso patch.
      
      Since all processes now have signal trampolines permanently mapped, we
      can use those instead of putting the trampoline on the stack and
      invalidating the corresponding icache across all CPUs.  We also get rid
      of a bunch of ICACHE_REFILLS_WORKAROUND_WAR code.
      
      [Ralf: GDB 7.1 which has the necessary modifications to allow backtracing
      over signal frames will supposedly be released tomorrow.  The old signal
      frame format obsoleted by this patch exists in two variations, for sane
      processors and for those requiring ICACHE_REFILLS_WORKAROUND_WAR.  So
      there was never a GDB which did support backtracing over signal frames
      on all MIPS systems.  This convinved me this series should be applied and
      pushed upstream as soon as possible.]
      
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/974/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      d814c28c
    • David Daney's avatar
      MIPS: Preliminary VDSO · c52d0d30
      David Daney authored
      
      
      This is a preliminary patch to add a vdso to all user processes.  Still
      missing are ELF headers and .eh_frame information.  But it is enough to
      allow us to move signal trampolines off of the stack.  Note that emulation
      of branch delay slots in the FPU emulator still requires the stack.
      
      We allocate a single page (the vdso) and write all possible signal
      trampolines into it.  The stack is moved down by one page and the vdso is
      mapped into this space.
      
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/975/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      c52d0d30
    • David Daney's avatar
      MIPS: Add SYSCALL to uasm. · 58b9e223
      David Daney authored
      
      
      Signed-off-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/976/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      58b9e223
    • Andreas Ferber's avatar
      MIPS: Fix SSB PCIcore IO resource management · 847253b9
      Andreas Ferber authored
      
      
      The SSB PCIcore code reused the IO resource fixup code from the original
      2.4.x Broadcom patch for BCM47xx based devices, which was a quick hack
      for doing PCI IO resource configuration back then (the boot loader
      doesn't configure PCI devices on this platform).
      
      However, this code is no longer necessary since the kernel now can do
      PCI resource management fine all by itself, so remove the old code.
      
      When removing the code, it becomes obvious that the mem_offset setting
      in the PCIcore driver was wrong, however this was masked by the fixup
      code before, except in a few cases involving yenta_socket. For BCM47xx,
      the correct offset is 0, and since this is the only device using PCIcore
      in host mode, the offset can simply be removed unconditionally.
      
      Signed-off-by: default avatarAndreas Ferber <af@chaos-agency.de>
      Signed-off-by: default avatarMichael Buesch <mb@bu3sch.de>
      Cc: Markus Wigge <markus@cultcom.de>
      Cc: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1070/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      847253b9
    • Florian Fainelli's avatar
      MIPS: make CAC_ADDR and UNCAC_ADDR account for PHYS_OFFSET · 86f7d75e
      Florian Fainelli authored
      
      
      On AR7, we already redefine PHYS_OFFSET to match the system specifities, it
      is however not sufficient when unsing dma_{map,unmap}_single, specifically
      in the ethernet driver, we must also adjust CAC_ADDR and UNCAC_ADDR for DMA
      to work correctly. This patch fixes the following issue, seen in cpmac_open:
      
      ops[#1]:
      Cpu 0
      $ 0   : 00000000 10008400 a0f5b120 00000000
      $ 4   : 94c59000 94270f64 00000020 00000010
      $ 8   : 00000010 94103ce0 0000000a 94c03400
      $12   : ffffffff 94c03408 94c03410 00000001
      $16   : a0f5ba20 00000041 94c592c0 94c59200
      $20   : 94c59000 000005ee 00002000 9438c8f0
      $24   : 00000010 00000000
      $28   : 94fac000 94fadd58 94390000 942724a8
      Hi    : 00000000
      Lo    : 00000001
      epc   : 94272518 cpmac_open+0x208/0x3f8
          Not tainted
      ra    : 942724a8 cpmac_open+0x198/0x3f8
      Status: 10008403    KERNEL EXL IE
      Cause : 3080000c
      BadVA : 00000000
      PrId  : 00018448 (MIPS 4KEc)
      Modules linked in:
      Process ifconfig (pid: 278, threadinfo=94fac000, task=94e79590, tls=00000000)
      Stack : 7f8da120 2ab05cb0 94c59000 943356f0 00000000 943d0000 94c59000 943356f0
              94c59030 943d0000 943c27c0 94fade10 00000000 94fade20 94c59000 9428e5a4
              00000000 94c59000 00000041 94289768 94c59000 00000041 00001002 00001043
              00000000 9428d810 00000000 94fade10 7f8da4e8 9428e6b8 00000000 7f8da4a8
              7f8da4e8 00008914 00000000 942f7f2c 00000000 00000008 00408000 00008913
              ...
      Call Trace:
      [<94272518>] cpmac_open+0x208/0x3f8
      [<9428e5a4>] dev_open+0x164/0x264
      [<9428d810>] dev_change_flags+0xd0/0x1bc
      [<942f7f2c>] devinet_ioctl+0x2d8/0x908
      [<942771f8>] sock_ioctl+0x29c/0x2fc
      [<941a0fb4>] vfs_ioctl+0x2c/0x7c
      [<941a16ec>] do_vfs_ioctl+0x5dc/0x630
      [<941a1790>] sys_ioctl+0x50/0x88
      [<94101e10>] stack_done+0x20/0x3c
      
      Signed-off-by: default avatarpeter fuerst <post@pfrst.de>
      Signed-off-by: default avatarFlorian Fainelli <florian@openwrt.org>
      To: linux-mips@linux-mips.org
      Patchwork: http://patchwork.linux-mips.org/patch/1050/
      Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      86f7d75e