1. 24 3月, 2022 1 次提交
    • F
      MIPS: Fix build error for loongson64 and sgi-ip27 · f8f9f21c
      Feiyang Chen 提交于
      Select HAVE_ARCH_NODEDATA_EXTENSION for loongson64 to fix build error
      when CONFIG_NUMA=y:
      
      mips64el-unknown-linux-gnu-ld: mm/page_alloc.o: in function `free_area_init':
      (.init.text+0x1714): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: (.init.text+0x1730): undefined reference to `node_data'
      
      Also, select HAVE_ARCH_NODEDATA_EXTENSION for sgi-ip27 to fix build error:
      
      mips64el-unknown-linux-gnu-ld: mm/page_alloc.o: in function `free_area_init':
      page_alloc.c:(.init.text+0x1ba8): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: page_alloc.c:(.init.text+0x1bcc): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: page_alloc.c:(.init.text+0x1be4): undefined reference to `node_data'
      mips64el-unknown-linux-gnu-ld: page_alloc.c:(.init.text+0x1bf4): undefined reference to `node_data'
      Signed-off-by: NFeiyang Chen <chenfeiyang@loongson.cn>
      Reviewed-by: NHuacai Chen <chenhuacai@kernel.org>
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      f8f9f21c
  2. 18 3月, 2022 1 次提交
  3. 14 3月, 2022 8 次提交
  4. 07 3月, 2022 6 次提交
    • X
      mips: remove reference to "newer Loongson-3" · 3f059a7e
      Xi Ruoyao 提交于
      Newest Loongson-3 processors have moved to use LoongArch architecture.
      Sadly, the LL/SC issue is still existing on both latest Loongson-3
      processors using MIPS64 (Loongson-3A4000) and LoongArch
      (Loongson-3A5000).
      
      As it's very unlikely there will be new Loongson-3 processors using
      MIPS64, let's stop people from false hoping.
      Signed-off-by: NXi Ruoyao <xry111@mengyan1223.wang>
      Cc: Huacai Chen <chenhuacai@kernel.org>
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      3f059a7e
    • P
      mips: Always permit to build u-boot images · 34275ac2
      Paul Cercueil 提交于
      The platforms where the kernel should be loaded above 0x8000.0000 do not
      support loading u-boot images, that doesn't mean that we shouldn't be
      able to generate them.
      
      Additionally, since commit 79876cc1 ("MIPS: new Kconfig option
      ZBOOT_LOAD_ADDRESS"), the $(zload-y) variable was no longer hardcoded,
      which made it impossible to use the uzImage.bin target.
      
      Fixes: 79876cc1 ("MIPS: new Kconfig option ZBOOT_LOAD_ADDRESS")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: NPaul Cercueil <paul@crapouillou.net>
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      34275ac2
    • M
      MIPS: Sanitise Cavium switch cases in TLB handler synthesizers · 6ddcba9d
      Maciej W. Rozycki 提交于
      It makes no sense to fall through to `break'.  Therefore reorder the
      switch statements so as to have the Cavium cases first, followed by the
      default case, which improves readability and pacifies code analysis
      tools.  No change in semantics, assembly produced is exactly the same.
      Reported-by: Nkernel test robot <lkp@intel.com>
      Signed-off-by: NMaciej W. Rozycki <macro@orcam.me.uk>
      Fixes: bc431d21 ("MIPS: Fix fall-through warnings for Clang")
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      6ddcba9d
    • M
      DEC: Limit PMAX memory probing to R3k systems · 244eae91
      Maciej W. Rozycki 提交于
      Recent tightening of the opcode table in binutils so as to consistently
      disallow the assembly or disassembly of CP0 instructions not supported
      by the processor architecture chosen has caused a regression like below:
      
      arch/mips/dec/prom/locore.S: Assembler messages:
      arch/mips/dec/prom/locore.S:29: Error: opcode not supported on this processor: r4600 (mips3) `rfe'
      
      in a piece of code used to probe for memory with PMAX DECstation models,
      which have non-REX firmware.  Those computers always have an R2000 CPU
      and consequently the exception handler used in memory probing uses the
      RFE instruction, which those processors use.
      
      While adding 64-bit support this code was correctly excluded for 64-bit
      configurations, however it should have also been excluded for irrelevant
      32-bit configurations.  Do this now then, and only enable PMAX memory
      probing for R3k systems.
      Reported-by: NJan-Benedict Glaw <jbglaw@lug-owl.de>
      Reported-by: NSudip Mukherjee <sudipm.mukherjee@gmail.com>
      Signed-off-by: NMaciej W. Rozycki <macro@orcam.me.uk>
      Fixes: 1da177e4 ("Linux-2.6.12-rc2")
      Cc: stable@vger.kernel.org # v2.6.12+
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      244eae91
    • R
      mips: DEC: honor CONFIG_MIPS_FP_SUPPORT=n · 97bf0395
      Randy Dunlap 提交于
      Include the DECstation interrupt handler in opting out of
      FPU support.
      
      Fixes a linker error:
      
      mips-linux-ld: arch/mips/dec/int-handler.o: in function `fpu':
      (.text+0x148): undefined reference to `handle_fpe_int'
      
      Fixes: 183b40f9 ("MIPS: Allow FP support to be disabled")
      Signed-off-by: NRandy Dunlap <rdunlap@infradead.org>
      Reported-by: Nkernel test robot <lkp@intel.com>
      Cc: Paul Burton <paulburton@kernel.org>
      Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
      Cc: Maciej W. Rozycki <macro@orcam.me.uk>
      Cc: linux-mips@vger.kernel.org
      Acked-by: NMaciej W. Rozycki <macro@orcam.me.uk>
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      97bf0395
    • A
      MIPS: fix fortify panic when copying asm exception handlers · d17b6641
      Alexander Lobakin 提交于
      With KCFLAGS="-O3", I was able to trigger a fortify-source
      memcpy() overflow panic on set_vi_srs_handler().
      Although O3 level is not supported in the mainline, under some
      conditions that may've happened with any optimization settings,
      it's just a matter of inlining luck. The panic itself is correct,
      more precisely, 50/50 false-positive and not at the same time.
      From the one side, no real overflow happens. Exception handler
      defined in asm just gets copied to some reserved places in the
      memory.
      But the reason behind is that C code refers to that exception
      handler declares it as `char`, i.e. something of 1 byte length.
      It's obvious that the asm function itself is way more than 1 byte,
      so fortify logics thought we are going to past the symbol declared.
      The standard way to refer to asm symbols from C code which is not
      supposed to be called from C is to declare them as
      `extern const u8[]`. This is fully correct from any point of view,
      as any code itself is just a bunch of bytes (including 0 as it is
      for syms like _stext/_etext/etc.), and the exact size is not known
      at the moment of compilation.
      Adjust the type of the except_vec_vi_*() and related variables.
      Make set_handler() take `const` as a second argument to avoid
      cast-away warnings and give a little more room for optimization.
      Signed-off-by: NAlexander Lobakin <alobakin@pm.me>
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      d17b6641
  5. 02 3月, 2022 1 次提交
  6. 01 3月, 2022 2 次提交
  7. 23 2月, 2022 1 次提交
    • K
      MIPS: Modernize READ_IMPLIES_EXEC · fbb1d4b3
      Kees Cook 提交于
      I'm doing some thread necromancy of
      https://lore.kernel.org/lkml/202007081624.82FA0CC1EA@keescook/
      
      x86, arm64, and arm32 adjusted their READ_IMPLIES_EXEC logic to better
      align with the safer defaults and the interactions with other mappings,
      which I illustrated with this comment on x86:
      
      /*
       * An executable for which elf_read_implies_exec() returns TRUE will
       * have the READ_IMPLIES_EXEC personality flag set automatically.
       *
       * The decision process for determining the results are:
       *
       *                 CPU: | lacks NX*  | has NX, ia32     | has NX, x86_64 |
       * ELF:                 |            |                  |                |
       * ---------------------|------------|------------------|----------------|
       * missing PT_GNU_STACK | exec-all   | exec-all         | exec-none      |
       * PT_GNU_STACK == RWX  | exec-stack | exec-stack       | exec-stack     |
       * PT_GNU_STACK == RW   | exec-none  | exec-none        | exec-none      |
       *
       *  exec-all  : all PROT_READ user mappings are executable, except when
       *              backed by files on a noexec-filesystem.
       *  exec-none : only PROT_EXEC user mappings are executable.
       *  exec-stack: only the stack and PROT_EXEC user mappings are
       *  executable.
       *
       *  *this column has no architectural effect: NX markings are ignored by
       *   hardware, but may have behavioral effects when "wants X" collides with
       *   "cannot be X" constraints in memory permission flags, as in
       *   https://lkml.kernel.org/r/20190418055759.GA3155@mellanox.com
       *
       */
      
      For MIPS, the "lacks NX" above is the "!cpu_has_rixi" check. On x86,
      we decided that the READ_IMPLIES_EXEC flag needed to reflect the
      expectations, not the architectural behavior due to bad interactions
      as noted above, as always returning "1" on non-NX hardware breaks
      some mappings.
      
      The other part of the issue is "what does the MIPS toolchain do for
      PT_GNU_STACK?" The answer seems to be "by default, include PT_GNU_STACK,
      but mark it executable" (likely due to concerns over non-NX hardware):
      
      $ mipsel-linux-gnu-gcc -o hello_world hello_world.c
      $ llvm-readelf -lW hellow_world | grep GNU_STACK
        GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x10
      
      Given that older hardware doesn't support non-executable memory, it
      seems safe to make the "PT_GNU_STACK is absent" logic mean "assume
      non-executable", but this might break very old software running on
      modern MIPS. This situation matches the ia32-on-x86_64 logic x86
      uses (which assumes needing READ_IMPLIES_EXEC in that situation). But
      modern toolchains on modern MIPS hardware should follow a safer default
      (assume NX stack).
      
      A follow-up to this change would be to switch the MIPS toolchain to emit
      a non-executable PT_GNU_STACK, as this seems to be unneeded.
      
      Cc: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
      Cc: Tiezhu Yang <yangtiezhu@loongson.cn>
      Cc: Xuefeng Li <lixuefeng@loongson.cn>
      Cc: Juxin Gao <gaojuxin@loongson.cn>
      Cc: linux-mips@vger.kernel.org
      Signed-off-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      fbb1d4b3
  8. 22 2月, 2022 6 次提交
  9. 09 2月, 2022 1 次提交
    • N
      MIPS: Malta: Enable BLK_DEV_INITRD · c47c7ab9
      Nathan Chancellor 提交于
      This configuration is useful for boot testing malta_defconfig in QEMU
      with just a simple cpio initrd, instead of a full ext4 rootfs.
      
      This results in an increase of ~164KB of vmlinux (with GCC 11.2.0):
      
      $ diskus vmlinux.before
      11.19 MB (11,194,368 bytes)
      
      $ diskus vmlinux.after
      11.36 MB (11,358,208 bytes)
      
      This size increase comes from the fact that usr/Kconfig is sourced when
      CONFIG_BLK_DEV_INITRD is enabled, which defaults to supporting several
      decompression algorithms for compressed initrds. This seems like a
      reasonable tradeoff but these configurations could be disabled in the
      future if there are complaints about the size increase.
      Signed-off-by: NNathan Chancellor <nathan@kernel.org>
      Reviewed-by: NKees Cook <keescook@chromium.org>
      Signed-off-by: NThomas Bogendoerfer <tsbogend@alpha.franken.de>
      c47c7ab9
  10. 08 2月, 2022 4 次提交
  11. 07 2月, 2022 7 次提交
    • L
      Linux 5.17-rc3 · dfd42fac
      Linus Torvalds 提交于
      dfd42fac
    • L
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · d8ad2ce8
      Linus Torvalds 提交于
      Pull ext4 fixes from Ted Ts'o:
       "Various bug fixes for ext4 fast commit and inline data handling.
      
        Also fix regression introduced as part of moving to the new mount API"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        fs/ext4: fix comments mentioning i_mutex
        ext4: fix incorrect type issue during replay_del_range
        jbd2: fix kernel-doc descriptions for jbd2_journal_shrink_{scan,count}()
        ext4: fix potential NULL pointer dereference in ext4_fill_super()
        jbd2: refactor wait logic for transaction updates into a common function
        jbd2: cleanup unused functions declarations from jbd2.h
        ext4: fix error handling in ext4_fc_record_modified_inode()
        ext4: remove redundant max inline_size check in ext4_da_write_inline_data_begin()
        ext4: fix error handling in ext4_restore_inline_data()
        ext4: fast commit may miss file actions
        ext4: fast commit may not fallback for ineligible commit
        ext4: modify the logic of ext4_mb_new_blocks_simple
        ext4: prevent used blocks from being allocated during fast commit replay
      d8ad2ce8
    • L
      Merge tag 'perf-tools-fixes-for-v5.17-2022-02-06' of... · 18118a42
      Linus Torvalds 提交于
      Merge tag 'perf-tools-fixes-for-v5.17-2022-02-06' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix display of grouped aliased events in 'perf stat'.
      
       - Add missing branch_sample_type to perf_event_attr__fprintf().
      
       - Apply correct label to user/kernel symbols in branch mode.
      
       - Fix 'perf ftrace' system_wide tracing, it has to be set before
         creating the maps.
      
       - Return error if procfs isn't mounted for PID namespaces when
         synthesizing records for pre-existing processes.
      
       - Set error stream of objdump process for 'perf annotate' TUI, to avoid
         garbling the screen.
      
       - Add missing arm64 support to perf_mmap__read_self(), the kernel part
         got into 5.17.
      
       - Check for NULL pointer before dereference writing debug info about a
         sample.
      
       - Update UAPI copies for asound, perf_event, prctl and kvm headers.
      
       - Fix a typo in bpf_counter_cgroup.c.
      
      * tag 'perf-tools-fixes-for-v5.17-2022-02-06' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf ftrace: system_wide collection is not effective by default
        libperf: Add arm64 support to perf_mmap__read_self()
        tools include UAPI: Sync sound/asound.h copy with the kernel sources
        perf stat: Fix display of grouped aliased events
        perf tools: Apply correct label to user/kernel symbols in branch mode
        perf bpf: Fix a typo in bpf_counter_cgroup.c
        perf synthetic-events: Return error if procfs isn't mounted for PID namespaces
        perf session: Check for NULL pointer before dereference
        perf annotate: Set error stream of objdump process for TUI
        perf tools: Add missing branch_sample_type to perf_event_attr__fprintf()
        tools headers UAPI: Sync linux/kvm.h with the kernel sources
        tools headers UAPI: Sync linux/prctl.h with the kernel sources
        perf beauty: Make the prctl arg regexp more strict to cope with PR_SET_VMA
        tools headers cpufeatures: Sync with the kernel sources
        tools headers UAPI: Sync linux/perf_event.h with the kernel sources
        tools include UAPI: Sync sound/asound.h copy with the kernel sources
      18118a42
    • L
      Merge tag 'perf_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · c3bf8a14
      Linus Torvalds 提交于
      Pull perf fixes from Borislav Petkov:
      
       - Intel/PT: filters could crash the kernel
      
       - Intel: default disable the PMU for SMM, some new-ish EFI firmware has
         started using CPL3 and the PMU CPL filters don't discriminate against
         SMM, meaning that CPL3 (userspace only) events now also count EFI/SMM
         cycles.
      
       - Fixup for perf_event_attr::sig_data
      
      * tag 'perf_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel/pt: Fix crash with stop filters in single-range mode
        perf: uapi: Document perf_event_attr::sig_data truncation on 32 bit architectures
        selftests/perf_events: Test modification of perf_event_attr::sig_data
        perf: Copy perf_event_attr::sig_data on modification
        x86/perf: Default set FREEZE_ON_SMI for all
      c3bf8a14
    • L
      Merge tag 'objtool_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · aeabe1e0
      Linus Torvalds 提交于
      Pull objtool fix from Borislav Petkov:
       "Fix a potential truncated string warning triggered by gcc12"
      
      * tag 'objtool_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        objtool: Fix truncated string warning
      aeabe1e0
    • L
      Merge tag 'irq_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b72e40b1
      Linus Torvalds 提交于
      Pull irq fix from Borislav Petkov:
       "Remove a bogus warning introduced by the recent PCI MSI irq affinity
        overhaul"
      
      * tag 'irq_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        PCI/MSI: Remove bogus warning in pci_irq_get_affinity()
      b72e40b1
    • L
      Merge tag 'edac_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 898b5841
      Linus Torvalds 提交于
      Pull EDAC fixes from Borislav Petkov:
       "Fix altera and xgene EDAC drivers to propagate the correct error code
        from platform_get_irq() so that deferred probing still works"
      
      * tag 'edac_urgent_for_v5.17_rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/xgene: Fix deferred probing
        EDAC/altera: Fix deferred probing
      898b5841
  12. 06 2月, 2022 2 次提交