20 Jan, 2021

5 commits

  • commit 7cd1af107a92eb63b93a96dc07406dcbc5269436 upstream.

    We should call irq trace only if interrupt is going to be enabled during
    excecption handling. Otherwise, it results in following warning during
    boot with lock debugging enabled.

    [ 0.000000] ------------[ cut here ]------------
    [ 0.000000] DEBUG_LOCKS_WARN_ON(early_boot_irqs_disabled)
    [ 0.000000] WARNING: CPU: 0 PID: 0 at kernel/locking/lockdep.c:4085 lockdep_hardirqs_on_prepare+0x22a/0x22e
    [ 0.000000] Modules linked in:
    [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.10.0-00022-ge20097fb37e2-dirty #548
    [ 0.000000] epc: c005d5d4 ra : c005d5d4 sp : c1c01e80
    [ 0.000000] gp : c1d456e0 tp : c1c0a980 t0 : 00000000
    [ 0.000000] t1 : ffffffff t2 : 00000000 s0 : c1c01ea0
    [ 0.000000] s1 : c100f360 a0 : 0000002d a1 : c00666ee
    [ 0.000000] a2 : 00000000 a3 : 00000000 a4 : 00000000
    [ 0.000000] a5 : 00000000 a6 : c1c6b390 a7 : 3ffff00e
    [ 0.000000] s2 : c2384fe8 s3 : 00000000 s4 : 00000001
    [ 0.000000] s5 : c1c0a980 s6 : c1d48000 s7 : c1613b4c
    [ 0.000000] s8 : 00000fff s9 : 80000200 s10: c1613b40
    [ 0.000000] s11: 00000000 t3 : 00000000 t4 : 00000000
    [ 0.000000] t5 : 00000001 t6 : 00000000

    Fixes: 3c4697982982 ("riscv:Enable LOCKDEP_SUPPORT & fixup TRACE_IRQFLAGS_SUPPORT")

    Signed-off-by: Atish Patra
    Signed-off-by: Palmer Dabbelt
    Signed-off-by: Greg Kroah-Hartman

    Atish Patra
     
  • commit c25a053e15778f6b4d6553708673736e27a6c2cf upstream.

    Use virtual address instead of physical address when translating
    the address to shadow memory by kasan_mem_to_shadow().

    Signed-off-by: Nick Hu
    Signed-off-by: Nylon Chen
    Fixes: b10d6bca8720 ("arch, drivers: replace for_each_membock() with for_each_mem_range()")
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt
    Signed-off-by: Greg Kroah-Hartman

    Nick Hu
     
  • commit 0aa2ec8a475fb505fd98d93bbcf4e03beeeebcb6 upstream.

    The patch fix commit: ad5d112 ("riscv: use vDSO common flow to
    reduce the latency of the time-related functions").

    The GENERIC_TIME_VSYSCALL should be CONFIG_GENERIC_TIME_VSYSCALL
    or vgettimeofday won't work.

    Signed-off-by: Guo Ren
    Reviewed-by: Pekka Enberg
    Fixes: ad5d1122b82f ("riscv: use vDSO common flow to reduce the latency of the time-related functions")
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt
    Signed-off-by: Greg Kroah-Hartman

    Guo Ren
     
  • commit cf7b2ae4d70432fa94ebba3fbaab825481ae7189 upstream.

    Properly return -ENOSYS for syscall -1 instead of leaving the return value
    uninitialized. This fixes the strace teststuite.

    Fixes: 5340627e3fe0 ("riscv: add support for SECCOMP and SECCOMP_FILTER")
    Cc: stable@vger.kernel.org
    Signed-off-by: Andreas Schwab
    Reviewed-by: Tycho Andersen
    Signed-off-by: Palmer Dabbelt
    Signed-off-by: Greg Kroah-Hartman

    Andreas Schwab
     
  • commit 0ea02c73775277001c651ad4a0e83781a9acf406 upstream.

    commit b91540d52a08 ("RISC-V: Add EFI runtime services") add
    a duplicated PAGE_KERNEL_EXEC, kill it.

    Signed-off-by: Kefeng Wang
    Reviewed-by: Pekka Enberg
    Reviewed-by: Atish Patra
    Fixes: b91540d52a08 ("RISC-V: Add EFI runtime services")
    Cc: stable@vger.kernel.org
    Signed-off-by: Palmer Dabbelt
    Signed-off-by: Greg Kroah-Hartman

    Kefeng Wang
     

13 Jan, 2021

1 commit

  • [ Upstream commit 87dbc209ea04645fd2351981f09eff5d23f8e2e9 ]

    Make mandatory in include/asm-generic/Kbuild and
    remove all arch/*/include/asm/local64.h arch-specific files since they
    only #include .

    This fixes build errors on arch/c6x/ and arch/nios2/ for
    block/blk-iocost.c.

    Build-tested on 21 of 25 arch-es. (tools problems on the others)

    Yes, we could even rename to
    and change all #includes to use
    instead.

    Link: https://lkml.kernel.org/r/20201227024446.17018-1-rdunlap@infradead.org
    Signed-off-by: Randy Dunlap
    Suggested-by: Christoph Hellwig
    Reviewed-by: Masahiro Yamada
    Cc: Jens Axboe
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Aurelien Jacquiot
    Cc: Peter Zijlstra
    Cc: Arnd Bergmann
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds
    Signed-off-by: Sasha Levin

    Randy Dunlap
     

30 Dec, 2020

1 commit

  • commit de043da0b9e71147ca610ed542d34858aadfc61c upstream.

    memblock_enforce_memory_limit accepts the maximum memory size not the
    maximum address that can be handled by kernel. Fix the function invocation
    accordingly.

    Fixes: 1bd14a66ee52 ("RISC-V: Remove any memblock representing unusable memory area")
    Cc: stable@vger.kernel.org
    Reported-by: Bin Meng
    Tested-by: Bin Meng
    Acked-by: Mike Rapoport
    Signed-off-by: Atish Patra
    Signed-off-by: Palmer Dabbelt
    Signed-off-by: Greg Kroah-Hartman

    Atish Patra
     

13 Dec, 2020

1 commit


11 Dec, 2020

1 commit

  • The timer driver uses get_cycles64() unconditionally to obtain the current
    time. A recent refactoring lost the common definition for some configs, which
    is now the only one we need.

    Fixes: d5be89a8d118 ("RISC-V: Resurrect the MMIO timer implementation for M-mode systems")
    Reported-by: kernel test robot
    Signed-off-by: Palmer Dabbelt

    Palmer Dabbelt
     

30 Nov, 2020

1 commit


29 Nov, 2020

1 commit

  • Pull RISC-V fixes from Palmer Dabbelt:
    "I've collected a handful of fixes over the past few weeks:

    - A fix to un-break the build-id argument to the vDSO build, which is
    necessary for the LLVM linker.

    - A fix to initialize the jump label subsystem, without which it (and
    all the stuff that uses it) doesn't actually function.

    - A fix to include from , without
    which some drivers won't compile"

    * tag 'riscv-for-linus-5.10-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    RISC-V: fix barrier() use in
    RISC-V: Add missing jump label initialization
    riscv: Explicitly specify the build id style in vDSO Makefile again

    Linus Torvalds
     

28 Nov, 2020

1 commit


26 Nov, 2020

3 commits

  • riscv's uses barrier() so it should include

    Fixes this build error:
    CC [M] drivers/net/ethernet/emulex/benet/be_main.o
    In file included from ./include/vdso/processor.h:10,
    from ./arch/riscv/include/asm/processor.h:11,
    from ./include/linux/prefetch.h:15,
    from drivers/net/ethernet/emulex/benet/be_main.c:14:
    ./arch/riscv/include/asm/vdso/processor.h: In function 'cpu_relax':
    ./arch/riscv/include/asm/vdso/processor.h:14:2: error: implicit declaration of function 'barrier' [-Werror=implicit-function-declaration]
    14 | barrier();

    This happens with a total of 5 networking drivers -- they all use
    .

    rv64 allmodconfig now builds cleanly after this patch.

    Fixes fallout from:
    815f0ddb346c ("include/linux/compiler*.h: make compiler-*.h mutually exclusive")

    Fixes: ad5d1122b82f ("riscv: use vDSO common flow to reduce the latency of the time-related functions")
    Reported-by: Andreas Schwab
    Signed-off-by: Randy Dunlap
    Acked-by: Arvind Sankar
    Signed-off-by: Palmer Dabbelt
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Palmer Dabbelt

    Randy Dunlap
     
  • The jump_label_init() should be called from setup_arch() very
    early for proper functioning of jump label support.

    Fixes: ebc00dde8a97 ("riscv: Add jump-label implementation")
    Signed-off-by: Anup Patel
    Signed-off-by: Palmer Dabbelt

    Anup Patel
     
  • Commit a96843372331 ("kbuild: explicitly specify the build id style")
    explicitly set the build ID style to SHA1. Commit c2c81bb2f691 ("RISC-V:
    Fix the VDSO symbol generaton for binutils-2.35+") undid this change,
    likely unintentionally.

    Restore it so that the build ID style stays consistent across the tree
    regardless of linker.

    Fixes: c2c81bb2f691 ("RISC-V: Fix the VDSO symbol generaton for binutils-2.35+")
    Signed-off-by: Nathan Chancellor
    Reviewed-by: Nick Desaulniers
    Reviewed-by: Bill Wendling
    Signed-off-by: Palmer Dabbelt

    Nathan Chancellor
     

24 Nov, 2020

1 commit

  • We call arch_cpu_idle() with RCU disabled, but then use
    local_irq_{en,dis}able(), which invokes tracing, which relies on RCU.

    Switch all arch_cpu_idle() implementations to use
    raw_local_irq_{en,dis}able() and carefully manage the
    lockdep,rcu,tracing state like we do in entry.

    (XXX: we really should change arch_cpu_idle() to not return with
    interrupts enabled)

    Reported-by: Sven Schnelle
    Signed-off-by: Peter Zijlstra (Intel)
    Reviewed-by: Mark Rutland
    Tested-by: Mark Rutland
    Link: https://lkml.kernel.org/r/20201120114925.594122626@infradead.org

    Peter Zijlstra
     

16 Nov, 2020

2 commits

  • Stefan Agner reported a bug when using zsram on 32-bit Arm machines
    with RAM above the 4GB address boundary:

    Unable to handle kernel NULL pointer dereference at virtual address 00000000
    pgd = a27bd01c
    [00000000] *pgd=236a0003, *pmd=1ffa64003
    Internal error: Oops: 207 [#1] SMP ARM
    Modules linked in: mdio_bcm_unimac(+) brcmfmac cfg80211 brcmutil raspberrypi_hwmon hci_uart crc32_arm_ce bcm2711_thermal phy_generic genet
    CPU: 0 PID: 123 Comm: mkfs.ext4 Not tainted 5.9.6 #1
    Hardware name: BCM2711
    PC is at zs_map_object+0x94/0x338
    LR is at zram_bvec_rw.constprop.0+0x330/0xa64
    pc : [] lr : [] psr: 60000013
    sp : e376bbe0 ip : 00000000 fp : c1e2921c
    r10: 00000002 r9 : c1dda730 r8 : 00000000
    r7 : e8ff7a00 r6 : 00000000 r5 : 02f9ffa0 r4 : e3710000
    r3 : 000fdffe r2 : c1e0ce80 r1 : ebf979a0 r0 : 00000000
    Flags: nZCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user
    Control: 30c5383d Table: 235c2a80 DAC: fffffffd
    Process mkfs.ext4 (pid: 123, stack limit = 0x495a22e6)
    Stack: (0xe376bbe0 to 0xe376c000)

    As it turns out, zsram needs to know the maximum memory size, which
    is defined in MAX_PHYSMEM_BITS when CONFIG_SPARSEMEM is set, or in
    MAX_POSSIBLE_PHYSMEM_BITS on the x86 architecture.

    The same problem will be hit on all 32-bit architectures that have a
    physical address space larger than 4GB and happen to not enable sparsemem
    and include asm/sparsemem.h from asm/pgtable.h.

    After the initial discussion, I suggested just always defining
    MAX_POSSIBLE_PHYSMEM_BITS whenever CONFIG_PHYS_ADDR_T_64BIT is
    set, or provoking a build error otherwise. This addresses all
    configurations that can currently have this runtime bug, but
    leaves all other configurations unchanged.

    I looked up the possible number of bits in source code and
    datasheets, here is what I found:

    - on ARC, CONFIG_ARC_HAS_PAE40 controls whether 32 or 40 bits are used
    - on ARM, CONFIG_LPAE enables 40 bit addressing, without it we never
    support more than 32 bits, even though supersections in theory allow
    up to 40 bits as well.
    - on MIPS, some MIPS32r1 or later chips support 36 bits, and MIPS32r5
    XPA supports up to 60 bits in theory, but 40 bits are more than
    anyone will ever ship
    - On PowerPC, there are three different implementations of 36 bit
    addressing, but 32-bit is used without CONFIG_PTE_64BIT
    - On RISC-V, the normal page table format can support 34 bit
    addressing. There is no highmem support on RISC-V, so anything
    above 2GB is unused, but it might be useful to eventually support
    CONFIG_ZRAM for high pages.

    Fixes: 61989a80fb3a ("staging: zsmalloc: zsmalloc memory allocation library")
    Fixes: 02390b87a945 ("mm/zsmalloc: Prepare to variable MAX_PHYSMEM_BITS")
    Acked-by: Thomas Bogendoerfer
    Reviewed-by: Stefan Agner
    Tested-by: Stefan Agner
    Acked-by: Mike Rapoport
    Link: https://lore.kernel.org/linux-mm/bdfa44bf1c570b05d6c70898e2bbb0acf234ecdf.1604762181.git.stefan@agner.ch/
    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Pull perf fixes from Thomas Gleixner:
    "A set of fixes for perf:

    - A set of commits which reduce the stack usage of various perf
    event handling functions which allocated large data structs on
    stack causing stack overflows in the worst case

    - Use the proper mechanism for detecting soft interrupts in the
    recursion protection

    - Make the resursion protection simpler and more robust

    - Simplify the scheduling of event groups to make the code more
    robust and prepare for fixing the issues vs. scheduling of
    exclusive event groups

    - Prevent event multiplexing and rotation for exclusive event groups

    - Correct the perf event attribute exclusive semantics to take
    pinned events, e.g. the PMU watchdog, into account

    - Make the anythread filtering conditional for Intel's generic PMU
    counters as it is not longer guaranteed to be supported on newer
    CPUs. Check the corresponding CPUID leaf to make sure

    - Fixup a duplicate initialization in an array which was probably
    caused by the usual 'copy & paste - forgot to edit' mishap"

    * tag 'perf-urgent-2020-11-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86/intel/uncore: Fix Add BW copypasta
    perf/x86/intel: Make anythread filter support conditional
    perf: Tweak perf_event_attr::exclusive semantics
    perf: Fix event multiplexing for exclusive groups
    perf: Simplify group_sched_in()
    perf: Simplify group_sched_out()
    perf/x86: Make dummy_iregs static
    perf/arch: Remove perf_sample_data::regs_user_copy
    perf: Optimize get_recursion_context()
    perf: Fix get_recursion_context()
    perf/x86: Reduce stack usage for x86_pmu::drain_pebs()
    perf: Reduce stack usage of perf_output_begin()

    Linus Torvalds
     

10 Nov, 2020

1 commit

  • struct perf_sample_data lives on-stack, we should be careful about it's
    size. Furthermore, the pt_regs copy in there is only because x86_64 is a
    trainwreck, solve it differently.

    Reported-by: Thomas Gleixner
    Signed-off-by: Peter Zijlstra (Intel)
    Tested-by: Steven Rostedt
    Link: https://lkml.kernel.org/r/20201030151955.258178461@infradead.org

    Peter Zijlstra
     

06 Nov, 2020

6 commits

  • We were relying on GNU ld's ability to re-link executable files in order
    to extract our VDSO symbols. This behavior was deemed a bug as of
    binutils-2.35 (specifically the binutils-gdb commit a87e1817a4 ("Have
    the linker fail if any attempt to link in an executable is made."), but
    as that has been backported to at least Debian's binutils-2.34 in may
    manifest in other places.

    The previous version of this was a bit of a mess: we were linking a
    static executable version of the VDSO, containing only a subset of the
    input symbols, which we then linked into the kernel. This worked, but
    certainly wasn't a supported path through the toolchain. Instead this
    new version parses the textual output of nm to produce a symbol table.
    Both rely on near-zero addresses being linkable, but as we rely on weak
    undefined symbols being linkable elsewhere I don't view this as a major
    issue.

    Fixes: e2c0cdfba7f6 ("RISC-V: User-facing API")
    Signed-off-by: Palmer Dabbelt

    Palmer Dabbelt
     
  • Currently, we use PGD mappings for early DTB mapping in early_pgd
    but this breaks Linux kernel on SiFive Unleashed because on SiFive
    Unleashed PMP checks don't work correctly for PGD mappings.

    To fix early DTB mappings on SiFive Unleashed, we use non-PGD
    mappings (i.e. PMD) for early DTB access.

    Fixes: 8f3a2b4a96dc ("RISC-V: Move DT mapping outof fixmap")
    Signed-off-by: Anup Patel
    Reviewed-by: Atish Patra
    Tested-by: Atish Patra
    Signed-off-by: Palmer Dabbelt

    Anup Patel
     
  • The copy_from_kernel_nofault() is broken on riscv because the 'dst' and
    'src' are mistakenly reversed in __put_kernel_nofault() macro.

    copy_to_kernel_nofault:
    ...
    0xffffffe0003159b8 : sd a4,0(a1) # a1 aka 'src'

    Fixes: d464118cdc ("riscv: implement __get_kernel_nofault and __put_user_nofault")
    Signed-off-by: Changbin Du
    Reviewed-by: Christoph Hellwig
    Reviewed-by: Anup Patel
    Tested-by: Anup Patel
    Signed-off-by: Palmer Dabbelt

    Changbin Du
     
  • The argument to pfn_to_virt() should be pfn not the value of CSR_SATP.

    Reviewed-by: Palmer Dabbelt
    Reviewed-by: Anup Patel
    Signed-off-by: liush
    Reviewed-by: Pekka Enberg
    Signed-off-by: Palmer Dabbelt

    Liu Shaohua
     
  • M-Mode Linux is loaded at the start of RAM, not 2MB later. Perhaps this
    should be calculated based on PAGE_OFFSET somehow? Even better would be to
    deprecate text_offset and instead introduce something absolute.

    Signed-off-by: Sean Anderson
    Signed-off-by: Palmer Dabbelt

    Sean Anderson
     
  • RISC-V limits the physical memory size by -PAGE_OFFSET. Any memory beyond
    that size from DRAM start is unusable. Just remove any memblock pointing
    to those memory region without worrying about computing the maximum size.

    Signed-off-by: Atish Patra
    Reviewed-by: Mike Rapoport
    Signed-off-by: Palmer Dabbelt

    Atish Patra
     

05 Nov, 2020

1 commit


26 Oct, 2020

1 commit

  • Use a more generic form for __section that requires quotes to avoid
    complications with clang and gcc differences.

    Remove the quote operator # from compiler_attributes.h __section macro.

    Convert all unquoted __section(foo) uses to quoted __section("foo").
    Also convert __attribute__((section("foo"))) uses to __section("foo")
    even if the __attribute__ has multiple list entry forms.

    Conversion done using the script at:

    https://lore.kernel.org/lkml/75393e5ddc272dc7403de74d645e6c6e0f4e70eb.camel@perches.com/2-convert_section.pl

    Signed-off-by: Joe Perches
    Reviewed-by: Nick Desaulniers
    Reviewed-by: Miguel Ojeda
    Signed-off-by: Linus Torvalds

    Joe Perches
     

25 Oct, 2020

1 commit

  • Pull more RISC-V updates from Palmer Dabbelt:
    "Just a single patch set: the remainder of Christoph's work to remove
    set_fs, including the RISC-V portion"

    * tag 'riscv-for-linus-5.10-mw1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    riscv: remove address space overrides using set_fs()
    riscv: implement __get_kernel_nofault and __put_user_nofault
    riscv: refactor __get_user and __put_user
    riscv: use memcpy based uaccess for nommu again
    asm-generic: make the set_fs implementation optional
    asm-generic: add nommu implementations of __{get,put}_kernel_nofault
    asm-generic: improve the nommu {get,put}_user handling
    uaccess: provide a generic TASK_SIZE_MAX definition

    Linus Torvalds
     

24 Oct, 2020

1 commit

  • Pull arch task_work cleanups from Jens Axboe:
    "Two cleanups that don't fit other categories:

    - Finally get the task_work_add() cleanup done properly, so we don't
    have random 0/1/false/true/TWA_SIGNAL confusing use cases. Updates
    all callers, and also fixes up the documentation for
    task_work_add().

    - While working on some TIF related changes for 5.11, this
    TIF_NOTIFY_RESUME cleanup fell out of that. Remove some arch
    duplication for how that is handled"

    * tag 'arch-cleanup-2020-10-22' of git://git.kernel.dk/linux-block:
    task_work: cleanup notification modes
    tracehook: clear TIF_NOTIFY_RESUME in tracehook_notify_resume()

    Linus Torvalds
     

23 Oct, 2020

2 commits

  • Pull Kbuild updates from Masahiro Yamada:

    - Support 'make compile_commands.json' to generate the compilation
    database more easily, avoiding stale entries

    - Support 'make clang-analyzer' and 'make clang-tidy' for static checks
    using clang-tidy

    - Preprocess scripts/modules.lds.S to allow CONFIG options in the
    module linker script

    - Drop cc-option tests from compiler flags supported by our minimal
    GCC/Clang versions

    - Use always 12-digits commit hash for CONFIG_LOCALVERSION_AUTO=y

    - Use sha1 build id for both BFD linker and LLD

    - Improve deb-pkg for reproducible builds and rootless builds

    - Remove stale, useless scripts/namespace.pl

    - Turn -Wreturn-type warning into error

    - Fix build error of deb-pkg when CONFIG_MODULES=n

    - Replace 'hostname' command with more portable 'uname -n'

    - Various Makefile cleanups

    * tag 'kbuild-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
    kbuild: Use uname for LINUX_COMPILE_HOST detection
    kbuild: Only add -fno-var-tracking-assignments for old GCC versions
    kbuild: remove leftover comment for filechk utility
    treewide: remove DISABLE_LTO
    kbuild: deb-pkg: clean up package name variables
    kbuild: deb-pkg: do not build linux-headers package if CONFIG_MODULES=n
    kbuild: enforce -Werror=return-type
    scripts: remove namespace.pl
    builddeb: Add support for all required debian/rules targets
    builddeb: Enable rootless builds
    builddeb: Pass -n to gzip for reproducible packages
    kbuild: split the build log of kallsyms
    kbuild: explicitly specify the build id style
    scripts/setlocalversion: make git describe output more reliable
    kbuild: remove cc-option test of -Werror=date-time
    kbuild: remove cc-option test of -fno-stack-check
    kbuild: remove cc-option test of -fno-strict-overflow
    kbuild: move CFLAGS_{KASAN,UBSAN,KCSAN} exports to relevant Makefiles
    kbuild: remove redundant CONFIG_KASAN check from scripts/Makefile.kasan
    kbuild: do not create built-in objects for external module builds
    ...

    Linus Torvalds
     
  • Pull initial set_fs() removal from Al Viro:
    "Christoph's set_fs base series + fixups"

    * 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
    fs: Allow a NULL pos pointer to __kernel_read
    fs: Allow a NULL pos pointer to __kernel_write
    powerpc: remove address space overrides using set_fs()
    powerpc: use non-set_fs based maccess routines
    x86: remove address space overrides using set_fs()
    x86: make TASK_SIZE_MAX usable from assembly code
    x86: move PAGE_OFFSET, TASK_SIZE & friends to page_{32,64}_types.h
    lkdtm: remove set_fs-based tests
    test_bitmap: remove user bitmap tests
    uaccess: add infrastructure for kernel builds with set_fs()
    fs: don't allow splice read/write without explicit ops
    fs: don't allow kernel reads and writes without iter ops
    sysctl: Convert to iter interfaces
    proc: add a read_iter method to proc proc_ops
    proc: cleanup the compat vs no compat file ops
    proc: remove a level of indentation in proc_get_inode

    Linus Torvalds
     

20 Oct, 2020

1 commit

  • Pull RISC-V updates from Palmer Dabbelt:
    "A handful of cleanups and new features:

    - A handful of cleanups for our page fault handling

    - Improvements to how we fill out cacheinfo

    - Support for EFI-based systems"

    * tag 'riscv-for-linus-5.10-mw0' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux: (22 commits)
    RISC-V: Add page table dump support for uefi
    RISC-V: Add EFI runtime services
    RISC-V: Add EFI stub support.
    RISC-V: Add PE/COFF header for EFI stub
    RISC-V: Implement late mapping page table allocation functions
    RISC-V: Add early ioremap support
    RISC-V: Move DT mapping outof fixmap
    RISC-V: Fix duplicate included thread_info.h
    riscv/mm/fault: Set FAULT_FLAG_INSTRUCTION flag in do_page_fault()
    riscv/mm/fault: Fix inline placement in vmalloc_fault() declaration
    riscv: Add cache information in AUX vector
    riscv: Define AT_VECTOR_SIZE_ARCH for ARCH_DLINFO
    riscv: Set more data to cacheinfo
    riscv/mm/fault: Move access error check to function
    riscv/mm/fault: Move FAULT_FLAG_WRITE handling in do_page_fault()
    riscv/mm/fault: Simplify mm_fault_error()
    riscv/mm/fault: Move fault error handling to mm_fault_error()
    riscv/mm/fault: Simplify fault error handling
    riscv/mm/fault: Move vmalloc fault handling to vmalloc_fault()
    riscv/mm/fault: Move bad area handling to bad_area()
    ...

    Linus Torvalds
     

18 Oct, 2020

1 commit


15 Oct, 2020

1 commit

  • Merge misc updates from Andrew Morton:
    "181 patches.

    Subsystems affected by this patch series: kbuild, scripts, ntfs,
    ocfs2, vfs, mm (slab, slub, kmemleak, dax, debug, pagecache, fadvise,
    gup, swap, memremap, memcg, selftests, pagemap, mincore, hmm, dma,
    memory-failure, vmallo and migration)"

    * emailed patches from Andrew Morton : (181 commits)
    mm/migrate: remove obsolete comment about device public
    mm/migrate: remove cpages-- in migrate_vma_finalize()
    mm, oom_adj: don't loop through tasks in __set_oom_adj when not necessary
    memblock: use separate iterators for memory and reserved regions
    memblock: implement for_each_reserved_mem_region() using __next_mem_region()
    memblock: remove unused memblock_mem_size()
    x86/setup: simplify reserve_crashkernel()
    x86/setup: simplify initrd relocation and reservation
    arch, drivers: replace for_each_membock() with for_each_mem_range()
    arch, mm: replace for_each_memblock() with for_each_mem_pfn_range()
    memblock: reduce number of parameters in for_each_mem_range()
    memblock: make memblock_debug and related functionality private
    memblock: make for_each_memblock_type() iterator private
    mircoblaze: drop unneeded NUMA and sparsemem initializations
    riscv: drop unneeded node initialization
    h8300, nds32, openrisc: simplify detection of memory extents
    arm64: numa: simplify dummy_numa_init()
    arm, xtensa: simplify initialization of high memory pages
    dma-contiguous: simplify cma_early_percent_memory()
    KVM: PPC: Book3S HV: simplify kvm_cma_reserve()
    ...

    Linus Torvalds
     

14 Oct, 2020

4 commits

  • for_each_memblock() is used to iterate over memblock.memory in a few
    places that use data from memblock_region rather than the memory ranges.

    Introduce separate for_each_mem_region() and
    for_each_reserved_mem_region() to improve encapsulation of memblock
    internals from its users.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Reviewed-by: Baoquan He
    Acked-by: Ingo Molnar [x86]
    Acked-by: Thomas Bogendoerfer [MIPS]
    Acked-by: Miguel Ojeda [.clang-format]
    Cc: Andy Lutomirski
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Catalin Marinas
    Cc: Christoph Hellwig
    Cc: Daniel Axtens
    Cc: Dave Hansen
    Cc: Emil Renner Berthing
    Cc: Hari Bathini
    Cc: Ingo Molnar
    Cc: Jonathan Cameron
    Cc: Marek Szyprowski
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Palmer Dabbelt
    Cc: Paul Mackerras
    Cc: Paul Walmsley
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: https://lkml.kernel.org/r/20200818151634.14343-18-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • There are several occurrences of the following pattern:

    for_each_memblock(memory, reg) {
    start = __pfn_to_phys(memblock_region_memory_base_pfn(reg);
    end = __pfn_to_phys(memblock_region_memory_end_pfn(reg));

    /* do something with start and end */
    }

    Using for_each_mem_range() iterator is more appropriate in such cases and
    allows simpler and cleaner code.

    [akpm@linux-foundation.org: fix arch/arm/mm/pmsa-v7.c build]
    [rppt@linux.ibm.com: mips: fix cavium-octeon build caused by memblock refactoring]
    Link: http://lkml.kernel.org/r/20200827124549.GD167163@linux.ibm.com

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Baoquan He
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Catalin Marinas
    Cc: Christoph Hellwig
    Cc: Daniel Axtens
    Cc: Dave Hansen
    Cc: Emil Renner Berthing
    Cc: Hari Bathini
    Cc: Ingo Molnar
    Cc: Ingo Molnar
    Cc: Jonathan Cameron
    Cc: Marek Szyprowski
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Miguel Ojeda
    Cc: Palmer Dabbelt
    Cc: Paul Mackerras
    Cc: Paul Walmsley
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: https://lkml.kernel.org/r/20200818151634.14343-13-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • RISC-V does not (yet) support NUMA and for UMA architectures node 0 is
    used implicitly during early memory initialization.

    There is no need to call memblock_set_node(), remove this call and the
    surrounding code.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Cc: Andy Lutomirski
    Cc: Baoquan He
    Cc: Benjamin Herrenschmidt
    Cc: Borislav Petkov
    Cc: Catalin Marinas
    Cc: Christoph Hellwig
    Cc: Daniel Axtens
    Cc: Dave Hansen
    Cc: Emil Renner Berthing
    Cc: Hari Bathini
    Cc: Ingo Molnar
    Cc: Ingo Molnar
    Cc: Jonathan Cameron
    Cc: Marek Szyprowski
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Simek
    Cc: Miguel Ojeda
    Cc: Palmer Dabbelt
    Cc: Paul Mackerras
    Cc: Paul Walmsley
    Cc: Peter Zijlstra
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Thomas Gleixner
    Cc: Will Deacon
    Cc: Yoshinori Sato
    Link: https://lkml.kernel.org/r/20200818151634.14343-7-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     
  • Pull seccomp updates from Kees Cook:
    "The bulk of the changes are with the seccomp selftests to accommodate
    some powerpc-specific behavioral characteristics. Additional cleanups,
    fixes, and improvements are also included:

    - heavily refactor seccomp selftests (and clone3 selftests
    dependency) to fix powerpc (Kees Cook, Thadeu Lima de Souza
    Cascardo)

    - fix style issue in selftests (Zou Wei)

    - upgrade "unknown action" from KILL_THREAD to KILL_PROCESS (Rich
    Felker)

    - replace task_pt_regs(current) with current_pt_regs() (Denis
    Efremov)

    - fix corner-case race in USER_NOTIF (Jann Horn)

    - make CONFIG_SECCOMP no longer per-arch (YiFei Zhu)"

    * tag 'seccomp-v5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (23 commits)
    seccomp: Make duplicate listener detection non-racy
    seccomp: Move config option SECCOMP to arch/Kconfig
    selftests/clone3: Avoid OS-defined clone_args
    selftests/seccomp: powerpc: Set syscall return during ptrace syscall exit
    selftests/seccomp: Allow syscall nr and ret value to be set separately
    selftests/seccomp: Record syscall during ptrace entry
    selftests/seccomp: powerpc: Fix seccomp return value testing
    selftests/seccomp: Remove SYSCALL_NUM_RET_SHARE_REG in favor of SYSCALL_RET_SET
    selftests/seccomp: Avoid redundant register flushes
    selftests/seccomp: Convert REGSET calls into ARCH_GETREG/ARCH_SETREG
    selftests/seccomp: Convert HAVE_GETREG into ARCH_GETREG/ARCH_SETREG
    selftests/seccomp: Remove syscall setting #ifdefs
    selftests/seccomp: mips: Remove O32-specific macro
    selftests/seccomp: arm64: Define SYSCALL_NUM_SET macro
    selftests/seccomp: arm: Define SYSCALL_NUM_SET macro
    selftests/seccomp: mips: Define SYSCALL_NUM_SET macro
    selftests/seccomp: Provide generic syscall setting macro
    selftests/seccomp: Refactor arch register macros to avoid xtensa special case
    selftests/seccomp: Use __NR_mknodat instead of __NR_mknod
    selftests/seccomp: Use bitwise instead of arithmetic operator for flags
    ...

    Linus Torvalds
     

13 Oct, 2020

1 commit

  • Pull orphan section checking from Ingo Molnar:
    "Orphan link sections were a long-standing source of obscure bugs,
    because the heuristics that various linkers & compilers use to handle
    them (include these bits into the output image vs discarding them
    silently) are both highly idiosyncratic and also version dependent.

    Instead of this historically problematic mess, this tree by Kees Cook
    (et al) adds build time asserts and build time warnings if there's any
    orphan section in the kernel or if a section is not sized as expected.

    And because we relied on so many silent assumptions in this area, fix
    a metric ton of dependencies and some outright bugs related to this,
    before we can finally enable the checks on the x86, ARM and ARM64
    platforms"

    * tag 'core-build-2020-10-12' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
    x86/boot/compressed: Warn on orphan section placement
    x86/build: Warn on orphan section placement
    arm/boot: Warn on orphan section placement
    arm/build: Warn on orphan section placement
    arm64/build: Warn on orphan section placement
    x86/boot/compressed: Add missing debugging sections to output
    x86/boot/compressed: Remove, discard, or assert for unwanted sections
    x86/boot/compressed: Reorganize zero-size section asserts
    x86/build: Add asserts for unwanted sections
    x86/build: Enforce an empty .got.plt section
    x86/asm: Avoid generating unused kprobe sections
    arm/boot: Handle all sections explicitly
    arm/build: Assert for unwanted sections
    arm/build: Add missing sections
    arm/build: Explicitly keep .ARM.attributes sections
    arm/build: Refactor linker script headers
    arm64/build: Assert for unwanted sections
    arm64/build: Add missing DWARF sections
    arm64/build: Use common DISCARDS in linker script
    arm64/build: Remove .eh_frame* sections due to unwind tables
    ...

    Linus Torvalds
     

09 Oct, 2020

1 commit