28 Oct, 2020

1 commit


27 Oct, 2020

2 commits


24 Oct, 2020

1 commit

  • Pull virtio updates from Michael Tsirkin:
    "vhost, vdpa, and virtio cleanups and fixes

    A very quiet cycle, no new features"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    MAINTAINERS: add URL for virtio-mem
    vhost_vdpa: remove unnecessary spin_lock in vhost_vring_call
    vringh: fix __vringh_iov() when riov and wiov are different
    vdpa/mlx5: Setup driver only if VIRTIO_CONFIG_S_DRIVER_OK
    s390: virtio: PV needs VIRTIO I/O device protection
    virtio: let arch advertise guest's memory access restrictions
    vhost_vdpa: Fix duplicate included kernel.h
    vhost: reduce stack usage in log_used
    virtio-mem: Constify mem_id_table
    virtio_input: Constify id_table
    virtio-balloon: Constify id_table
    vdpa/mlx5: Fix failure to bring link up
    vdpa/mlx5: Make use of a specific 16 bit endianness API

    Linus Torvalds
     

23 Oct, 2020

1 commit

  • 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
     

21 Oct, 2020

1 commit

  • If protected virtualization is active on s390, VIRTIO has only retricted
    access to the guest memory.
    Define CONFIG_ARCH_HAS_RESTRICTED_VIRTIO_MEMORY_ACCESS and export
    arch_has_restricted_virtio_memory_access to advertize VIRTIO if that's
    the case.

    Signed-off-by: Pierre Morel
    Reviewed-by: Cornelia Huck
    Reviewed-by: Halil Pasic
    Link: https://lore.kernel.org/r/1599728030-17085-3-git-send-email-pmorel@linux.ibm.com
    Signed-off-by: Michael S. Tsirkin
    Acked-by: Christian Borntraeger

    Pierre Morel
     

17 Oct, 2020

1 commit

  • Pull s390 updates from Vasily Gorbik:

    - Remove address space overrides using set_fs()

    - Convert to generic vDSO

    - Convert to generic page table dumper

    - Add ARCH_HAS_DEBUG_WX support

    - Add leap seconds handling support

    - Add NVMe firmware-assisted kernel dump support

    - Extend NVMe boot support with memory clearing control and addition of
    kernel parameters

    - AP bus and zcrypt api code rework. Add adapter configure/deconfigure
    interface. Extend debug features. Add failure injection support

    - Add ECC secure private keys support

    - Add KASan support for running protected virtualization host with
    4-level paging

    - Utilize destroy page ultravisor call to speed up secure guests
    shutdown

    - Implement ioremap_wc() and ioremap_prot() with MIO in PCI code

    - Various checksum improvements

    - Other small various fixes and improvements all over the code

    * tag 's390-5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (85 commits)
    s390/uaccess: fix indentation
    s390/uaccess: add default cases for __put_user_fn()/__get_user_fn()
    s390/zcrypt: fix wrong format specifications
    s390/kprobes: move insn_page to text segment
    s390/sie: fix typo in SIGP code description
    s390/lib: fix kernel doc for memcmp()
    s390/zcrypt: Introduce Failure Injection feature
    s390/zcrypt: move ap_msg param one level up the call chain
    s390/ap/zcrypt: revisit ap and zcrypt error handling
    s390/ap: Support AP card SCLP config and deconfig operations
    s390/sclp: Add support for SCLP AP adapter config/deconfig
    s390/ap: add card/queue deconfig state
    s390/ap: add error response code field for ap queue devices
    s390/ap: split ap queue state machine state from device state
    s390/zcrypt: New config switch CONFIG_ZCRYPT_DEBUG
    s390/zcrypt: introduce msg tracking in zcrypt functions
    s390/startup: correct early pgm check info formatting
    s390: remove orphaned extern variables declarations
    s390/kasan: make sure int handler always run with DAT on
    s390/ipl: add support to control memory clearing for nvme re-IPL
    ...

    Linus Torvalds
     

14 Oct, 2020

1 commit

  • 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
     

09 Oct, 2020

1 commit

  • In order to make adding configurable features into seccomp easier,
    it's better to have the options at one single location, considering
    especially that the bulk of seccomp code is arch-independent. An quick
    look also show that many SECCOMP descriptions are outdated; they talk
    about /proc rather than prctl.

    As a result of moving the config option and keeping it default on,
    architectures arm, arm64, csky, riscv, sh, and xtensa did not have SECCOMP
    on by default prior to this and SECCOMP will be default in this change.

    Architectures microblaze, mips, powerpc, s390, sh, and sparc have an
    outdated depend on PROC_FS and this dependency is removed in this change.

    Suggested-by: Jann Horn
    Link: https://lore.kernel.org/lkml/CAG48ez1YWz9cnp08UZgeieYRhHdqh-ch7aNwc4JRBnGyrmgfMg@mail.gmail.com/
    Signed-off-by: YiFei Zhu
    [kees: added HAVE_ARCH_SECCOMP help text, tweaked wording]
    Signed-off-by: Kees Cook
    Link: https://lore.kernel.org/r/9ede6ef35c847e58d61e476c6a39540520066613.1600951211.git.yifeifz2@illinois.edu

    YiFei Zhu
     

28 Sep, 2020

1 commit

  • The unconditional selection of PCI_MSI_ARCH_FALLBACKS has an unmet
    dependency because PCI_MSI_ARCH_FALLBACKS is defined in a 'if PCI' clause.

    As it is only relevant when PCI_MSI is enabled, update the affected
    architecture Kconfigs to make the selection of PCI_MSI_ARCH_FALLBACKS
    depend on 'if PCI_MSI'.

    Fixes: 077ee78e3928 ("PCI/MSI: Make arch_.*_msi_irq[s] fallbacks selectable")
    Reported-by: Qian Cai
    Signed-off-by: Thomas Gleixner
    Cc: Vasily Gorbik
    Links: https://lore.kernel.org/r/cdfd63305caa57785b0925dd24c0711ea02c8527.camel@redhat.com

    Thomas Gleixner
     

16 Sep, 2020

1 commit

  • The arch_.*_msi_irq[s] fallbacks are compiled in whether an architecture
    requires them or not. Architectures which are fully utilizing hierarchical
    irq domains should never call into that code.

    It's not only architectures which depend on that by implementing one or
    more of the weak functions, there is also a bunch of drivers which relies
    on the weak functions which invoke msi_controller::setup_irq[s] and
    msi_controller::teardown_irq.

    Make the architectures and drivers which rely on them select them in Kconfig
    and if not selected replace them by stub functions which emit a warning and
    fail the PCI/MSI interrupt allocation.

    Signed-off-by: Thomas Gleixner
    Link: https://lore.kernel.org/r/20200826112333.992429909@linutronix.de

    Thomas Gleixner
     

14 Sep, 2020

2 commits

  • Checks the whole kernel address space for W+X mappings. Note that
    currently the first lowcore page unfortunately has to be mapped
    W+X. Therefore this not reported as an insecure mapping.

    For the very same reason the wording is also different to other
    architectures if the test passes:

    On s390 it is "no unexpected W+X pages found" instead of
    "no W+X pages found".

    Tested-by: Vasily Gorbik
    Signed-off-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik

    Heiko Carstens
     
  • Make use of generic ptdump infrastructure.

    Reviewed-by: Vasily Gorbik
    Signed-off-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik

    Heiko Carstens
     

09 Sep, 2020

1 commit

  • Add a CONFIG_SET_FS option that is selected by architecturess that
    implement set_fs, which is all of them initially. If the option is not
    set stubs for routines related to overriding the address space are
    provided so that architectures can start to opt out of providing set_fs.

    Signed-off-by: Christoph Hellwig
    Reviewed-by: Kees Cook
    Signed-off-by: Al Viro

    Christoph Hellwig
     

02 Sep, 2020

1 commit

  • Commit fa686453053b ("sched/rt, s390: Use CONFIG_PREEMPTION")
    changed a bunch of uses of CONFIG_PREEMPT to _PREEMPTION.
    Except in the Kconfig it used two T's. That's the only place
    in the system where that spelling exists, so let's fix that.

    Fixes: fa686453053b ("sched/rt, s390: Use CONFIG_PREEMPTION")
    Cc: # 5.6
    Signed-off-by: Eric Farman
    Signed-off-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik

    Eric Farman
     

27 Aug, 2020

1 commit

  • Convert s390 to generic vDSO. There are a few special things on s390:

    - vDSO can be called without a stack frame - glibc did this in the past.
    So we need to allocate a stackframe on our own.

    - The former assembly code used stcke to get the TOD clock and applied
    time steering to it. We need to do the same in the new code. This is done
    in the architecture specific __arch_get_hw_counter function. The steering
    information is stored in an architecure specific area in the vDSO data.

    - CPUCLOCK_VIRT is now handled with a syscall fallback, which might
    be slower/less accurate than the old implementation.

    The getcpu() function stays as an assembly function because there is no
    generic implementation and the code is just a few lines.

    Performance number from my system do 100 mio gettimeofday() calls:

    Plain syscall: 8.6s
    Generic VDSO: 1.3s
    old ASM VDSO: 1s

    So it's a bit slower but still much faster than syscalls.

    Signed-off-by: Sven Schnelle
    Reviewed-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik

    Sven Schnelle
     

12 Aug, 2020

2 commits

  • Sven Schnelle reported that setting CLOCKSOURCE_VALIDATE_LAST_CYCLE
    doesn't make sense: even if our tod clock overflows delta calculation
    (now - last) with unsigned 64 bit values will still be correct.

    Therefore revert commit 555701a714f7 ("s390/time: select
    CLOCKSOURCE_VALIDATE_LAST_CYCLE").

    Fixes: 555701a714f7 ("s390/time: select CLOCKSOURCE_VALIDATE_LAST_CYCLE")
    Reported-by: Sven Schnelle
    Signed-off-by: Heiko Carstens

    Heiko Carstens
     
  • The VFIO_AP uses ap_driver_register() (and deregister) functions
    implemented in ap_bus.c (compiled into ap.o). However the ap.o will be
    built only if CONFIG_ZCRYPT is selected.

    This was not visible before commit e93a1695d7fb ("iommu: Enable compile
    testing for some of drivers") because the CONFIG_VFIO_AP depends on
    CONFIG_S390_AP_IOMMU which depends on the missing CONFIG_ZCRYPT. After
    adding COMPILE_TEST, it is possible to select a configuration with
    VFIO_AP and S390_AP_IOMMU but without the ZCRYPT.

    Add proper dependency to the VFIO_AP to fix build errors:

    ERROR: modpost: "ap_driver_register" [drivers/s390/crypto/vfio_ap.ko] undefined!
    ERROR: modpost: "ap_driver_unregister" [drivers/s390/crypto/vfio_ap.ko] undefined!

    Reported-by: kernel test robot
    Fixes: e93a1695d7fb ("iommu: Enable compile testing for some of drivers")
    Signed-off-by: Krzysztof Kozlowski
    Signed-off-by: Heiko Carstens

    Krzysztof Kozlowski
     

05 Aug, 2020

2 commits

  • Pull dma-mapping updates from Christoph Hellwig:

    - make support for dma_ops optional

    - move more code out of line

    - add generic support for a dma_ops bypass mode

    - misc cleanups

    * tag 'dma-mapping-5.9' of git://git.infradead.org/users/hch/dma-mapping:
    dma-contiguous: cleanup dma_alloc_contiguous
    dma-debug: use named initializers for dir2name
    powerpc: use the generic dma_ops_bypass mode
    dma-mapping: add a dma_ops_bypass flag to struct device
    dma-mapping: make support for dma ops optional
    dma-mapping: inline the fast path dma-direct calls
    dma-mapping: move the remaining DMA API calls out of line

    Linus Torvalds
     
  • Pull fork cleanups from Christian Brauner:
    "This is cleanup series from when we reworked a chunk of the process
    creation paths in the kernel and switched to struct
    {kernel_}clone_args.

    High-level this does two main things:

    - Remove the double export of both do_fork() and _do_fork() where
    do_fork() used the incosistent legacy clone calling convention.

    Now we only export _do_fork() which is based on struct
    kernel_clone_args.

    - Remove the copy_thread_tls()/copy_thread() split making the
    architecture specific HAVE_COYP_THREAD_TLS config option obsolete.

    This switches all remaining architectures to select
    HAVE_COPY_THREAD_TLS and thus to the copy_thread_tls() calling
    convention. The current split makes the process creation codepaths
    more convoluted than they need to be. Each architecture has their own
    copy_thread() function unless it selects HAVE_COPY_THREAD_TLS then it
    has a copy_thread_tls() function.

    The split is not needed anymore nowadays, all architectures support
    CLONE_SETTLS but quite a few of them never bothered to select
    HAVE_COPY_THREAD_TLS and instead simply continued to use copy_thread()
    and use the old calling convention. Removing this split cleans up the
    process creation codepaths and paves the way for implementing clone3()
    on such architectures since it requires the copy_thread_tls() calling
    convention.

    After having made each architectures support copy_thread_tls() this
    series simply renames that function back to copy_thread(). It also
    switches all architectures that call do_fork() directly over to
    _do_fork() and the struct kernel_clone_args calling convention. This
    is a corollary of switching the architectures that did not yet support
    it over to copy_thread_tls() since do_fork() is conditional on not
    supporting copy_thread_tls() (Mostly because it lacks a separate
    argument for tls which is trivial to fix but there's no need for this
    function to exist.).

    The do_fork() removal is in itself already useful as it allows to to
    remove the export of both do_fork() and _do_fork() we currently have
    in favor of only _do_fork(). This has already been discussed back when
    we added clone3(). The legacy clone() calling convention is - as is
    probably well-known - somewhat odd:

    #
    # ABI hall of shame
    #
    config CLONE_BACKWARDS
    config CLONE_BACKWARDS2
    config CLONE_BACKWARDS3

    that is aggravated by the fact that some architectures such as sparc
    follow the CLONE_BACKWARDSx calling convention but don't really select
    the corresponding config option since they call do_fork() directly.

    So do_fork() enforces a somewhat arbitrary calling convention in the
    first place that doesn't really help the individual architectures that
    deviate from it. They can thus simply be switched to _do_fork()
    enforcing a single calling convention. (I really hope that any new
    architectures will __not__ try to implement their own calling
    conventions...)

    Most architectures already have made a similar switch (m68k comes to
    mind).

    Overall this removes more code than it adds even with a good portion
    of added comments. It simplifies a chunk of arch specific assembly
    either by moving the code into C or by simply rewriting the assembly.

    Architectures that have been touched in non-trivial ways have all been
    actually boot and stress tested: sparc and ia64 have been tested with
    Debian 9 images. They are the two architectures which have been
    touched the most. All non-trivial changes to architectures have seen
    acks from the relevant maintainers. nios2 with a custom built
    buildroot image. h8300 I couldn't get something bootable to test on
    but the changes have been fairly automatic and I'm sure we'll hear
    people yell if I broke something there.

    All other architectures that have been touched in trivial ways have
    been compile tested for each single patch of the series via git rebase
    -x "make ..." v5.8-rc2. arm{64} and x86{_64} have been boot tested
    even though they have just been trivially touched (removal of the
    HAVE_COPY_THREAD_TLS macro from their Kconfig) because well they are
    basically "core architectures" and since it is trivial to get your
    hands on a useable image"

    * tag 'fork-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
    arch: rename copy_thread_tls() back to copy_thread()
    arch: remove HAVE_COPY_THREAD_TLS
    unicore: switch to copy_thread_tls()
    sh: switch to copy_thread_tls()
    nds32: switch to copy_thread_tls()
    microblaze: switch to copy_thread_tls()
    hexagon: switch to copy_thread_tls()
    c6x: switch to copy_thread_tls()
    alpha: switch to copy_thread_tls()
    fork: remove do_fork()
    h8300: select HAVE_COPY_THREAD_TLS, switch to kernel_clone_args
    nios2: enable HAVE_COPY_THREAD_TLS, switch to kernel_clone_args
    ia64: enable HAVE_COPY_THREAD_TLS, switch to kernel_clone_args
    sparc: unconditionally enable HAVE_COPY_THREAD_TLS
    sparc: share process creation helpers between sparc and sparc64
    sparc64: enable HAVE_COPY_THREAD_TLS
    fork: fold legacy_clone_args_valid() into _do_fork()

    Linus Torvalds
     

27 Jul, 2020

1 commit


22 Jul, 2020

1 commit


20 Jul, 2020

1 commit

  • Get rid of FORCE_MAX_ZONEORDER which limited allocations to order 8 (= 1MB)
    and use the default, which allows for order 10 (= 4MB) allocations.

    Given that s390 allows less than the default this caused some memory
    allocation problems more or less unique to s390 from time to time.

    Note: this was originally introduced with commit 684de39bd795 ("[S390]
    Fix IPL from NSS.") in order to support Named Saved Segments, which
    could start/end at an arbitrary 1 megabyte boundary and also before
    support for sparsemem vmemmmap was enabled.

    Since NSS support is gone, but sparsemem vmemmap support is available
    this limitation can go away.

    Signed-off-by: Heiko Carstens

    Heiko Carstens
     

19 Jul, 2020

1 commit


10 Jul, 2020

1 commit

  • Commit 50be63450728 ("s390/mm: Convert bootmem to memblock") mentions
    "The original bootmem allocator is getting replaced by memblock. To
    cover the needs of the s390 kdump implementation the physical
    memory list is used."

    As we can now reference "physmem" managed in the memblock allocator after
    init even without ARCH_KEEP_MEMBLOCK, and s390x does no longer need
    other memblock metadata after boot (esp., the zcore memmap device that used
    it got removed), we can stop setting ARCH_KEEP_MEMBLOCK.

    With this change, we no longer create memblocks for standby/hotplugged
    memory (added via add_memory()) and free up memblock metadata (except
    physmem) after boot.

    Cc: Vasily Gorbik
    Cc: Christian Borntraeger
    Cc: Philipp Rudo
    Cc: Mike Rapoport
    Cc: Andrew Morton
    Signed-off-by: David Hildenbrand
    Message-Id:
    Signed-off-by: Heiko Carstens

    David Hildenbrand
     

05 Jul, 2020

1 commit

  • All architectures support copy_thread_tls() now, so remove the legacy
    copy_thread() function and the HAVE_COPY_THREAD_TLS config option. Everyone
    uses the same process creation calling convention based on
    copy_thread_tls() and struct kernel_clone_args. This will make it easier to
    maintain the core process creation code under kernel/, simplifies the
    callpaths and makes the identical for all architectures.

    Cc: linux-arch@vger.kernel.org
    Acked-by: Thomas Bogendoerfer
    Acked-by: Greentime Hu
    Acked-by: Geert Uytterhoeven
    Reviewed-by: Kees Cook
    Signed-off-by: Christian Brauner

    Christian Brauner
     

16 Jun, 2020

1 commit

  • Qian Cai reported:
    """
    When NUMA=n and nr_node_ids=2, in apply_wqattrs_prepare(), it has,

    for_each_node(node) {
    if (wq_calc_node_cpumask(...

    where it will trigger a booting warning,

    WARNING: workqueue cpumask: online intersect > possible intersect

    because it found 2 nodes and wq_numa_possible_cpumask[1] is an empty
    cpumask.
    """

    Let NODES_SHIFT depend on NEED_MULTIPLE_NODES like it is done
    on other architectures in order to fix this.

    Fixes: 701dc81e7412 ("s390/mm: remove fake numa support")
    Reported-by: Qian Cai
    Signed-off-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik

    Heiko Carstens
     

14 Jun, 2020

1 commit

  • Since commit 84af7a6194e4 ("checkpatch: kconfig: prefer 'help' over
    '---help---'"), the number of '---help---' has been gradually
    decreasing, but there are still more than 2400 instances.

    This commit finishes the conversion. While I touched the lines,
    I also fixed the indentation.

    There are a variety of indentation styles found.

    a) 4 spaces + '---help---'
    b) 7 spaces + '---help---'
    c) 8 spaces + '---help---'
    d) 1 space + 1 tab + '---help---'
    e) 1 tab + '---help---' (correct indentation)
    f) 1 tab + 1 space + '---help---'
    g) 1 tab + 2 spaces + '---help---'

    In order to convert all of them to 1 tab + 'help', I ran the
    following commend:

    $ find . -name 'Kconfig*' | xargs sed -i 's/^[[:space:]]*---help---/\thelp/'

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

05 Jun, 2020

1 commit

  • This adds tests which will validate architecture page table helpers and
    other accessors in their compliance with expected generic MM semantics.
    This will help various architectures in validating changes to existing
    page table helpers or addition of new ones.

    This test covers basic page table entry transformations including but not
    limited to old, young, dirty, clean, write, write protect etc at various
    level along with populating intermediate entries with next page table page
    and validating them.

    Test page table pages are allocated from system memory with required size
    and alignments. The mapped pfns at page table levels are derived from a
    real pfn representing a valid kernel text symbol. This test gets called
    via late_initcall().

    This test gets built and run when CONFIG_DEBUG_VM_PGTABLE is selected.
    Any architecture, which is willing to subscribe this test will need to
    select ARCH_HAS_DEBUG_VM_PGTABLE. For now this is limited to arc, arm64,
    x86, s390 and powerpc platforms where the test is known to build and run
    successfully Going forward, other architectures too can subscribe the test
    after fixing any build or runtime problems with their page table helpers.

    Folks interested in making sure that a given platform's page table helpers
    conform to expected generic MM semantics should enable the above config
    which will just trigger this test during boot. Any non conformity here
    will be reported as an warning which would need to be fixed. This test
    will help catch any changes to the agreed upon semantics expected from
    generic MM and enable platforms to accommodate it thereafter.

    [anshuman.khandual@arm.com: v17]
    Link: http://lkml.kernel.org/r/1587436495-22033-3-git-send-email-anshuman.khandual@arm.com
    [anshuman.khandual@arm.com: v18]
    Link: http://lkml.kernel.org/r/1588564865-31160-3-git-send-email-anshuman.khandual@arm.com
    Suggested-by: Catalin Marinas
    Signed-off-by: Anshuman Khandual
    Signed-off-by: Christophe Leroy
    Signed-off-by: Qian Cai
    Signed-off-by: Andrew Morton
    Tested-by: Gerald Schaefer [s390]
    Tested-by: Christophe Leroy [ppc32]
    Reviewed-by: Ingo Molnar
    Cc: Mike Rapoport
    Cc: Vineet Gupta
    Cc: Catalin Marinas
    Cc: Will Deacon
    Cc: Benjamin Herrenschmidt
    Cc: Paul Mackerras
    Cc: Michael Ellerman
    Cc: Heiko Carstens
    Cc: Vasily Gorbik
    Cc: Christian Borntraeger
    Cc: Thomas Gleixner
    Cc: Ingo Molnar
    Cc: Borislav Petkov
    Cc: "H. Peter Anvin"
    Cc: Kirill A. Shutemov
    Cc: Paul Walmsley
    Cc: Palmer Dabbelt
    Link: http://lkml.kernel.org/r/1583919272-24178-1-git-send-email-anshuman.khandual@arm.com
    Signed-off-by: Linus Torvalds

    Anshuman Khandual
     

04 Jun, 2020

1 commit

  • CONFIG_HAVE_MEMBLOCK_NODE_MAP is used to differentiate initialization of
    nodes and zones structures between the systems that have region to node
    mapping in memblock and those that don't.

    Currently all the NUMA architectures enable this option and for the
    non-NUMA systems we can presume that all the memory belongs to node 0 and
    therefore the compile time configuration option is not required.

    The remaining few architectures that use DISCONTIGMEM without NUMA are
    easily updated to use memblock_add_node() instead of memblock_add() and
    thus have proper correspondence of memblock regions to NUMA nodes.

    Still, free_area_init_node() must have a backward compatible version
    because its semantics with and without CONFIG_HAVE_MEMBLOCK_NODE_MAP is
    different. Once all the architectures will use the new semantics, the
    entire compatibility layer can be dropped.

    To avoid addition of extra run time memory to store node id for
    architectures that keep memblock but have only a single node, the node id
    field of the memblock_region is guarded by CONFIG_NEED_MULTIPLE_NODES and
    the corresponding accessors presume that in those cases it is always 0.

    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Tested-by: Hoan Tran [arm64]
    Acked-by: Catalin Marinas [arm64]
    Cc: Baoquan He
    Cc: Brian Cain
    Cc: "David S. Miller"
    Cc: Geert Uytterhoeven
    Cc: Greentime Hu
    Cc: Greg Ungerer
    Cc: Guan Xuetao
    Cc: Guo Ren
    Cc: Heiko Carstens
    Cc: Helge Deller
    Cc: "James E.J. Bottomley"
    Cc: Jonathan Corbet
    Cc: Ley Foon Tan
    Cc: Mark Salter
    Cc: Matt Turner
    Cc: Max Filippov
    Cc: Michael Ellerman
    Cc: Michal Hocko
    Cc: Michal Simek
    Cc: Nick Hu
    Cc: Paul Walmsley
    Cc: Richard Weinberger
    Cc: Rich Felker
    Cc: Russell King
    Cc: Stafford Horne
    Cc: Thomas Bogendoerfer
    Cc: Tony Luck
    Cc: Vineet Gupta
    Cc: Yoshinori Sato
    Link: http://lkml.kernel.org/r/20200412194859.12663-4-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

05 Apr, 2020

1 commit

  • Pull s390 updates from Vasily Gorbik:

    - Update maintainers. Niklas Schnelle takes over zpci and Vineeth
    Vijayan common io code.

    - Extend cpuinfo to include topology information.

    - Add new extended counters for IBM z15 and sampling buffer allocation
    rework in perf code.

    - Add control over zeroing out memory during system restart.

    - CCA protected key block version 2 support and other
    fixes/improvements in crypto code.

    - Convert to new fallthrough; annotations.

    - Replace zero-length arrays with flexible-arrays.

    - QDIO debugfs and other small improvements.

    - Drop 2-level paging support optimization for compat tasks. Varios mm
    cleanups.

    - Remove broken and unused hibernate / power management support.

    - Remove fake numa support which does not bring any benefits.

    - Exclude offline CPUs from CPU topology masks to be more consistent
    with other architectures.

    - Prevent last branching instruction address leaking to userspace.

    - Other small various fixes and improvements all over the code.

    * tag 's390-5.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (57 commits)
    s390/mm: cleanup init_new_context() callback
    s390/mm: cleanup virtual memory constants usage
    s390/mm: remove page table downgrade support
    s390/qdio: set qdio_irq->cdev at allocation time
    s390/qdio: remove unused function declarations
    s390/ccwgroup: remove pm support
    s390/ap: remove power management code from ap bus and drivers
    s390/zcrypt: use kvmalloc instead of kmalloc for 256k alloc
    s390/mm: cleanup arch_get_unmapped_area() and friends
    s390/ism: remove pm support
    s390/cio: use fallthrough;
    s390/vfio: use fallthrough;
    s390/zcrypt: use fallthrough;
    s390: use fallthrough;
    s390/cpum_sf: Fix wrong page count in error message
    s390/diag: fix display of diagnose call statistics
    s390/ap: Remove ap device suspend and resume callbacks
    s390/pci: Improve handling of unset UID
    s390/pci: Fix zpci_alloc_domain() over allocation
    s390/qdio: pass ISC as parameter to chsc_sadc()
    ...

    Linus Torvalds
     

23 Mar, 2020

1 commit

  • Hibernation is known to be broken for many years on s390. Given that
    there aren't any real use cases, remove the code instead of spending
    time to fix and maintain it.

    Without hibernate support it doesn't make too much sense to keep power
    management support; therefore remove it completely.

    Acked-by: Christian Borntraeger
    Acked-by: Peter Oberparleiter
    Signed-off-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik

    Heiko Carstens
     

12 Mar, 2020

1 commit

  • Every time a new architecture defines the IMA architecture specific
    functions - arch_ima_get_secureboot() and arch_ima_get_policy(), the IMA
    include file needs to be updated. To avoid this "noise", this patch
    defines a new IMA Kconfig IMA_SECURE_AND_OR_TRUSTED_BOOT option, allowing
    the different architectures to select it.

    Suggested-by: Linus Torvalds
    Signed-off-by: Nayna Jain
    Acked-by: Ard Biesheuvel
    Acked-by: Philipp Rudo (s390)
    Acked-by: Michael Ellerman (powerpc)
    Signed-off-by: Mimi Zohar

    Nayna Jain
     

11 Mar, 2020

1 commit


10 Mar, 2020

1 commit


27 Feb, 2020

1 commit

  • It turned out that fake numa support is rather useless on s390, since
    there are no scenarios where there is any performance or other benefit
    when used.

    However it does provide maintenance cost and breaks from time to time.
    Therefore remove it.

    CONFIG_NUMA is still supported with a very small backend and only one
    node. This way userspace applications which require NUMA interfaces
    continue to work.

    Note that NODES_SHIFT is set to 1 (= 2 nodes) instead of 0 (= 1 node),
    since there is quite a bit of kernel code which assumes that more than
    one node is possible if CONFIG_NUMA is enabled.

    Signed-off-by: Heiko Carstens
    Signed-off-by: Vasily Gorbik

    Heiko Carstens
     

06 Feb, 2020

1 commit

  • Pull more s390 updates from Vasily Gorbik:
    "The second round of s390 fixes and features for 5.6:

    - Add KPROBES_ON_FTRACE support

    - Add EP11 AES secure keys support

    - PAES rework and prerequisites for paes-s390 ciphers selftests

    - Fix page table upgrade for hugetlbfs"

    * tag 's390-5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/pkey/zcrypt: Support EP11 AES secure keys
    s390/zcrypt: extend EP11 card and queue sysfs attributes
    s390/zcrypt: add new low level ep11 functions support file
    s390/zcrypt: ep11 structs rework, export zcrypt_send_ep11_cprb
    s390/zcrypt: enable card/domain autoselect on ep11 cprbs
    s390/crypto: enable clear key values for paes ciphers
    s390/pkey: Add support for key blob with clear key value
    s390/crypto: Rework on paes implementation
    s390: support KPROBES_ON_FTRACE
    s390/mm: fix dynamic pagetable upgrade for hugetlbfs

    Linus Torvalds
     

04 Feb, 2020

2 commits

  • Towards a more consistent naming scheme.

    Link: http://lkml.kernel.org/r/20200116064531.483522-9-aneesh.kumar@linux.ibm.com
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Towards a more consistent naming scheme.

    [akpm@linux-foundation.org: fix sparc64 Kconfig]
    Link: http://lkml.kernel.org/r/20200116064531.483522-7-aneesh.kumar@linux.ibm.com
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     

30 Jan, 2020

1 commit