1. 31 7月, 2019 1 次提交
  2. 26 7月, 2019 1 次提交
  3. 24 7月, 2019 3 次提交
  4. 22 7月, 2019 4 次提交
  5. 13 7月, 2019 2 次提交
  6. 04 7月, 2019 1 次提交
  7. 03 6月, 2019 1 次提交
  8. 15 5月, 2019 1 次提交
    • M
      mm: memblock: make keeping memblock memory opt-in rather than opt-out · 350e88ba
      Mike Rapoport 提交于
      Most architectures do not need the memblock memory after the page
      allocator is initialized, but only few enable ARCH_DISCARD_MEMBLOCK in the
      arch Kconfig.
      
      Replacing ARCH_DISCARD_MEMBLOCK with ARCH_KEEP_MEMBLOCK and inverting the
      logic makes it clear which architectures actually use memblock after
      system initialization and skips the necessity to add ARCH_DISCARD_MEMBLOCK
      to the architectures that are still missing that option.
      
      Link: http://lkml.kernel.org/r/1556102150-32517-1-git-send-email-rppt@linux.ibm.comSigned-off-by: NMike Rapoport <rppt@linux.ibm.com>
      Acked-by: Michael Ellerman <mpe@ellerman.id.au> (powerpc)
      Cc: Russell King <linux@armlinux.org.uk>
      Cc: Catalin Marinas <catalin.marinas@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Richard Kuo <rkuo@codeaurora.org>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Geert Uytterhoeven <geert@linux-m68k.org>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: Paul Burton <paul.burton@mips.com>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Ley Foon Tan <lftan@altera.com>
      Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
      Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
      Cc: Yoshinori Sato <ysato@users.sourceforge.jp>
      Cc: Rich Felker <dalias@libc.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Eric Biederman <ebiederm@xmission.com>
      Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
      350e88ba
  9. 10 5月, 2019 2 次提交
    • T
      MIPS: SGI-IP27: abstract chipset irq from bridge · e6308b6d
      Thomas Bogendoerfer 提交于
      Bridge ASIC is widely used in different SGI systems, but the connected
      chipset is either HUB, HEART or BEDROCK. This commit switches to
      irq domain hierarchy for hub and bridge interrupts to get bridge
      setup out of hub interrupt code.
      Signed-off-by: NThomas Bogendoerfer <tbogendoerfer@suse.de>
      [paul.burton@mips.com:
        Resolve conflict with commit 69a07a41 ("MIPS: SGI-IP27: rework HUB
        interrupts").]
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: linux-mips@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      e6308b6d
    • T
      MIPS: SGI-IP27: use generic PCI driver · a57140e9
      Thomas Bogendoerfer 提交于
      Converted bridge code to a platform driver using the PCI generic driver
      framework and use adding platform devices during xtalk scan. This allows
      easier sharing bridge driver for other SGI platforms like IP30 (Octane) and
      IP35 (Origin 3k, Fuel, Tezro).
      Signed-off-by: NThomas Bogendoerfer <tbogendoerfer@suse.de>
      [paul.burton@mips.com:
        - Leave __phys_to_dma(), __dma_to_phys() & pcibus_to_node() in
          arch/mips/pci/pci-ip27.c since the motivation for moving them
          disappeared when the driver stopped being moved to drivers/pci.]
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: linux-mips@vger.kernel.org
      Cc: linux-kernel@vger.kernel.org
      a57140e9
  10. 03 4月, 2019 1 次提交
    • W
      locking/rwsem: Remove rwsem-spinlock.c & use rwsem-xadd.c for all archs · 390a0c62
      Waiman Long 提交于
      Currently, we have two different implementation of rwsem:
      
       1) CONFIG_RWSEM_GENERIC_SPINLOCK (rwsem-spinlock.c)
       2) CONFIG_RWSEM_XCHGADD_ALGORITHM (rwsem-xadd.c)
      
      As we are going to use a single generic implementation for rwsem-xadd.c
      and no architecture-specific code will be needed, there is no point
      in keeping two different implementations of rwsem. In most cases, the
      performance of rwsem-spinlock.c will be worse. It also doesn't get all
      the performance tuning and optimizations that had been implemented in
      rwsem-xadd.c over the years.
      
      For simplication, we are going to remove rwsem-spinlock.c and make all
      architectures use a single implementation of rwsem - rwsem-xadd.c.
      
      All references to RWSEM_GENERIC_SPINLOCK and RWSEM_XCHGADD_ALGORITHM
      in the code are removed.
      Suggested-by: NPeter Zijlstra <peterz@infradead.org>
      Signed-off-by: NWaiman Long <longman@redhat.com>
      Signed-off-by: NPeter Zijlstra (Intel) <peterz@infradead.org>
      Acked-by: NLinus Torvalds <torvalds@linux-foundation.org>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: Davidlohr Bueso <dave@stgolabs.net>
      Cc: H. Peter Anvin <hpa@zytor.com>
      Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Tim Chen <tim.c.chen@linux.intel.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: linux-arm-kernel@lists.infradead.org
      Cc: linux-c6x-dev@linux-c6x.org
      Cc: linux-m68k@lists.linux-m68k.org
      Cc: linux-riscv@lists.infradead.org
      Cc: linux-um@lists.infradead.org
      Cc: linux-xtensa@linux-xtensa.org
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: nios2-dev@lists.rocketboards.org
      Cc: openrisc@lists.librecores.org
      Cc: uclinux-h8-devel@lists.sourceforge.jp
      Link: https://lkml.kernel.org/r/20190322143008.21313-3-longman@redhat.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
      390a0c62
  11. 20 3月, 2019 2 次提交
    • E
      arch: mips: Kconfig: pedantic formatting · 371a4151
      Enrico Weigelt, metux IT consult 提交于
      Formatting of Kconfig files doesn't look so pretty, so let the
      Great White Handkerchief come around and clean it up.
      Signed-off-by: NEnrico Weigelt, metux IT consult <info@metux.net>
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: linux-kernel@vger.kernel.org
      Cc: hauke@hauke-m.de
      Cc: zajec5@gmail.com
      Cc: f.fainelli@gmail.com
      Cc: bcm-kernel-feedback-list@broadcom.com
      Cc: linux-mips@vger.kernel.org
      371a4151
    • H
      MIPS: eBPF: Initial eBPF support for MIPS32 architecture. · 716850ab
      Hassan Naveed 提交于
      Currently MIPS32 supports a JIT for classic BPF only, not extended BPF.
      This patch adds JIT support for extended BPF on MIPS32, so code is
      actually JIT'ed instead of being only interpreted. Instructions with
      64-bit operands are not supported at this point.
      We can delete classic BPF because the kernel will translate classic BPF
      programs into extended BPF and JIT them, eliminating the need for
      classic BPF.
      Signed-off-by: NHassan Naveed <hnaveed@wavecomp.com>
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: kafai@fb.com
      Cc: songliubraving@fb.com
      Cc: yhs@fb.com
      Cc: netdev@vger.kernel.org
      Cc: bpf@vger.kernel.org
      Cc: linux-mips@vger.kernel.org
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: James Hogan <jhogan@kernel.org>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Cc: Daniel Borkmann <daniel@iogearbox.net>
      Cc: open list:MIPS <linux-mips@linux-mips.org>
      Cc: open list <linux-kernel@vger.kernel.org>
      716850ab
  12. 22 2月, 2019 1 次提交
  13. 20 2月, 2019 2 次提交
  14. 19 2月, 2019 1 次提交
    • Y
      32-bit userspace ABI: introduce ARCH_32BIT_OFF_T config option · 942fa985
      Yury Norov 提交于
      All new 32-bit architectures should have 64-bit userspace off_t type, but
      existing architectures has 32-bit ones.
      
      To enforce the rule, new config option is added to arch/Kconfig that defaults
      ARCH_32BIT_OFF_T to be disabled for new 32-bit architectures. All existing
      32-bit architectures enable it explicitly.
      
      New option affects force_o_largefile() behaviour. Namely, if userspace
      off_t is 64-bits long, we have no reason to reject user to open big files.
      
      Note that even if architectures has only 64-bit off_t in the kernel
      (arc, c6x, h8300, hexagon, nios2, openrisc, and unicore32),
      a libc may use 32-bit off_t, and therefore want to limit the file size
      to 4GB unless specified differently in the open flags.
      Signed-off-by: NYury Norov <ynorov@caviumnetworks.com>
      Acked-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NYury Norov <ynorov@marvell.com>
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      942fa985
  15. 14 2月, 2019 1 次提交
  16. 05 2月, 2019 4 次提交
    • P
      MIPS: Loongson32: Fix config brokenness; select SYS_SUPPORTS_32BIT_KERNEL · d6c2fba5
      Paul Burton 提交于
      Commit a96d68ba ("MIPS: Loongson32: clarify we don't support MIPS16
      and merge configs") attempted to reduce duplication in Kconfig by
      consolidating some selects common to Loongson 1B & 1C CPUs under
      CPU_LOONGSON1. Unfortunately it clearly wasn't tested because by
      removing SYS_SUPPORTS_32BIT_KERNEL it prevented 32BIT from being enabled
      leading to all sorts of strange build errors from a kernel configured to
      build as neither 32 nor 64 bit.
      
      Both loongson1b_defconfig & loongson1c_defconfig failed to build due to
      this problem.
      
      Revert the cleanup portions of commit a96d68ba ("MIPS: Loongson32:
      clarify we don't support MIPS16 and merge configs"), keeping only its
      removal of the selection of SYS_SUPPORTS_MIPS16.
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Fixes: a96d68ba ("MIPS: Loongson32: clarify we don't support MIPS16 and merge configs")
      d6c2fba5
    • P
      MIPS: Don't select ARCH_HAS_SYNC_DMA_FOR_CPU when DMA is coherent · 9ae1f262
      Paul Burton 提交于
      Commit f263f2a2 ("MIPS: Compile post DMA flush only when needed")
      pushed the selection of ARCH_HAS_SYNC_DMA_FOR_CPU down to various
      SYS_HAS_CPU_* Kconfig entries corresponding to CPUs for which
      cpu_needs_post_dma_flush() might return true, but unfortunately missed
      the fact that some of these CPUs can be used in configurations with
      DMA_NONCOHERENT=n. When this is the case the kernel build does not
      include our definition of arch_sync_dma_for_cpu() from
      arch/mips/mm/dma-noncoherent.c and the build fails with a link error.
      
      One example of this problem is ip27_defconfig:
      
        kernel/dma/direct.o: In function `dma_direct_sync_single_for_cpu':
        direct.c:(.text+0x6c): undefined reference to `arch_sync_dma_for_cpu'
        kernel/dma/direct.o: In function `dma_direct_sync_sg_for_cpu':
        direct.c:(.text+0x1f0): undefined reference to `arch_sync_dma_for_cpu'
        kernel/dma/direct.o: In function `dma_direct_alloc':
        direct.c:(.text+0xc20): undefined reference to `arch_dma_alloc'
        kernel/dma/direct.o: In function `dma_direct_free':
        direct.c:(.text+0xc3c): undefined reference to `arch_dma_free'
        make[1]: *** [Makefile:1021: vmlinux] Error 1
        make: *** [Makefile:152: sub-make] Error 2
      
      Fix this by selecting ARCH_HAS_SYNC_DMA_FOR_CPU only when
      DMA_NONCOHERENT is also selected. The SYS_HAS_CPU_BMIPS5000 case is left
      as-is because systems with that CPU always select DMA_NONCOHERENT
      anyway.
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Fixes: f263f2a2 ("MIPS: Compile post DMA flush only when needed")
      9ae1f262
    • P
      MIPS: Enable hugepage support for MIPS64r6 · afd375dc
      Paul Burton 提交于
      Our hugepage support already exists for MIPS64 CPUs, and is already
      enabled for older architecture revisions. There's nothing MIPSr6
      specific involved, and our hugepage support already works fine for
      MIPS64r6 CPUs such as the I6500, so allow it to be selected in Kconfig.
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: linux-mips@vger.kernel.org
      afd375dc
    • H
      MIPS: Loongson: Introduce and use loongson_llsc_mb() · e02e07e3
      Huacai Chen 提交于
      On the Loongson-2G/2H/3A/3B there is a hardware flaw that ll/sc and
      lld/scd is very weak ordering. We should add sync instructions "before
      each ll/lld" and "at the branch-target between ll/sc" to workaround.
      Otherwise, this flaw will cause deadlock occasionally (e.g. when doing
      heavy load test with LTP).
      
      Below is the explaination of CPU designer:
      
      "For Loongson 3 family, when a memory access instruction (load, store,
      or prefetch)'s executing occurs between the execution of LL and SC, the
      success or failure of SC is not predictable. Although programmer would
      not insert memory access instructions between LL and SC, the memory
      instructions before LL in program-order, may dynamically executed
      between the execution of LL/SC, so a memory fence (SYNC) is needed
      before LL/LLD to avoid this situation.
      
      Since Loongson-3A R2 (3A2000), we have improved our hardware design to
      handle this case. But we later deduce a rarely circumstance that some
      speculatively executed memory instructions due to branch misprediction
      between LL/SC still fall into the above case, so a memory fence (SYNC)
      at branch-target (if its target is not between LL/SC) is needed for
      Loongson 3A1000, 3B1500, 3A2000 and 3A3000.
      
      Our processor is continually evolving and we aim to to remove all these
      workaround-SYNCs around LL/SC for new-come processor."
      
      Here is an example:
      
      Both cpu1 and cpu2 simutaneously run atomic_add by 1 on same atomic var,
      this bug cause both 'sc' run by two cpus (in atomic_add) succeed at same
      time('sc' return 1), and the variable is only *added by 1*, sometimes,
      which is wrong and unacceptable(it should be added by 2).
      
      Why disable fix-loongson3-llsc in compiler?
      Because compiler fix will cause problems in kernel's __ex_table section.
      
      This patch fix all the cases in kernel, but:
      
      +. the fix at the end of futex_atomic_cmpxchg_inatomic is for branch-target
      of 'bne', there other cases which smp_mb__before_llsc() and smp_llsc_mb() fix
      the ll and branch-target coincidently such as atomic_sub_if_positive/
      cmpxchg/xchg, just like this one.
      
      +. Loongson 3 does support CONFIG_EDAC_ATOMIC_SCRUB, so no need to touch
      edac.h
      
      +. local_ops and cmpxchg_local should not be affected by this bug since
      only the owner can write.
      
      +. mips_atomic_set for syscall.c is deprecated and rarely used, just let
      it go
      Signed-off-by: NHuacai Chen <chenhc@lemote.com>
      Signed-off-by: NHuang Pei <huangpei@loongson.cn>
      [paul.burton@mips.com:
        - Simplify the addition of -mno-fix-loongson3-llsc to cflags, and add
          a comment describing why it's there.
        - Make loongson_llsc_mb() a no-op when
          CONFIG_CPU_LOONGSON3_WORKAROUNDS=n, rather than a compiler memory
          barrier.
        - Add a comment describing the bug & how loongson_llsc_mb() helps
          in asm/barrier.h.]
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: Ralf Baechle <ralf@linux-mips.org>
      Cc: ambrosehua@gmail.com
      Cc: Steven J . Hill <Steven.Hill@cavium.com>
      Cc: linux-mips@linux-mips.org
      Cc: Fuxin Zhang <zhangfx@lemote.com>
      Cc: Zhangjin Wu <wuzhangjin@gmail.com>
      Cc: Li Xuefeng <lixuefeng@loongson.cn>
      Cc: Xu Chenghua <xuchenghua@loongson.cn>
      e02e07e3
  17. 23 1月, 2019 3 次提交
  18. 19 1月, 2019 1 次提交
    • H
      MIPS: Compile post DMA flush only when needed · f263f2a2
      Hauke Mehrtens 提交于
      dma_sync_phys() is only called for some CPUs when a mapping is removed.
      Add ARCH_HAS_SYNC_DMA_FOR_CPU only for the CPUs listed in
      cpu_needs_post_dma_flush() which need this extra call and do not compile
      this code in for other CPUs. We need this for R10000, R12000, BMIPS5000
      CPUs and CPUs supporting MAAR which was introduced in MIPS32r5.
      
      This will hopefully improve the performance of the not affected devices.
      Signed-off-by: NHauke Mehrtens <hauke@hauke-m.de>
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: ralf@linux-mips.org
      Cc: jhogan@kernel.org
      Cc: linux-mips@vger.kernel.org
      Cc: nbd@nbd.name
      f263f2a2
  19. 12 1月, 2019 1 次提交
    • A
      mips: fix n32 compat_ipc_parse_version · 5a9372f7
      Arnd Bergmann 提交于
      While reading through the sysvipc implementation, I noticed that the n32
      semctl/shmctl/msgctl system calls behave differently based on whether
      o32 support is enabled or not: Without o32, the IPC_64 flag passed by
      user space is rejected but calls without that flag get IPC_64 behavior.
      
      As far as I can tell, this was inadvertently changed by a cleanup patch
      but never noticed by anyone, possibly nobody has tried using sysvipc
      on n32 after linux-3.19.
      
      Change it back to the old behavior now.
      
      Fixes: 78aaf956 ("MIPS: Compat: Fix build error if CONFIG_MIPS32_COMPAT but no compat ABI.")
      Signed-off-by: NArnd Bergmann <arnd@arndb.de>
      Signed-off-by: NPaul Burton <paul.burton@mips.com>
      Cc: linux-mips@vger.kernel.org
      Cc: stable@vger.kernel.org # 3.19+
      5a9372f7
  20. 14 12月, 2018 1 次提交
  21. 23 11月, 2018 6 次提交