12 Dec, 2020

1 commit

  • With extra warnings enabled, clang complains about the redundant
    -mhard-float argument:

    clang: error: argument unused during compilation: '-mhard-float' [-Werror,-Wunused-command-line-argument]

    Move this into the gcc-only part of the Makefile.

    Link: https://lkml.kernel.org/r/20201203223652.1320700-1-arnd@kernel.org
    Fixes: 4185b3b92792 ("selftests/fpu: Add an FPU selftest")
    Signed-off-by: Arnd Bergmann
    Cc: Nathan Chancellor
    Cc: Nick Desaulniers
    Cc: Petteri Aimonen
    Cc: Borislav Petkov
    Cc: Arnd Bergmann
    Cc: Andy Shevchenko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     

19 Oct, 2020

1 commit

  • …/kernel/git/shuah/linux-kselftest

    Pull more Kunit updates from Shuah Khan:

    - add Kunit to kernel_init() and remove KUnit from init calls entirely.

    This addresses the concern that Kunit would not work correctly during
    late init phase.

    - add a linker section where KUnit can put references to its test
    suites.

    This is the first step in transitioning to dispatching all KUnit
    tests from a centralized executor rather than having each as its own
    separate late_initcall.

    - add a centralized executor to dispatch tests rather than relying on
    late_initcall to schedule each test suite separately. Centralized
    execution is for built-in tests only; modules will execute tests when
    loaded.

    - convert bitfield test to use KUnit framework

    - Documentation updates for naming guidelines and how
    kunit_test_suite() works.

    - add test plan to KUnit TAP format

    * tag 'linux-kselftest-kunit-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    lib: kunit: Fix compilation test when using TEST_BIT_FIELD_COMPILE
    lib: kunit: add bitfield test conversion to KUnit
    Documentation: kunit: add a brief blurb about kunit_test_suite
    kunit: test: add test plan to KUnit TAP format
    init: main: add KUnit to kernel init
    kunit: test: create a single centralized executor for all tests
    vmlinux.lds.h: add linker section for KUnit test suites
    Documentation: kunit: Add naming guidelines

    Linus Torvalds
     

17 Oct, 2020

1 commit

  • Patch series "add fault injection to user memory access", v3.

    The goal of this series is to improve testing of fault-tolerance in usages
    of user memory access functions, by adding support for fault injection.

    syzkaller/syzbot are using the existing fault injection modes and will use
    this particular feature also.

    The first patch adds failure injection capability for usercopy functions.
    The second changes usercopy functions to use this new failure capability
    (copy_from_user, ...). The third patch adds get/put/clear_user failures
    to x86.

    This patch (of 3):

    Add a failure injection capability to improve testing of fault-tolerance
    in usages of user memory access functions.

    Add CONFIG_FAULT_INJECTION_USERCOPY to enable faults in usercopy
    functions. The should_fail_usercopy function is to be called by these
    functions (copy_from_user, get_user, ...) in order to fail or not.

    Signed-off-by: Albert van der Linde
    Signed-off-by: Andrew Morton
    Reviewed-by: Akinobu Mita
    Reviewed-by: Alexander Potapenko
    Cc: Borislav Petkov
    Cc: Ingo Molnar
    Cc: Jonathan Corbet
    Cc: Thomas Gleixner
    Cc: Arnd Bergmann
    Cc: Peter Zijlstra (Intel)
    Cc: "H. Peter Anvin"
    Cc: Al Viro
    Cc: Andrey Konovalov
    Cc: Dmitry Vyukov
    Cc: Marco Elver
    Cc: Christoph Hellwig
    Link: http://lkml.kernel.org/r/20200831171733.955393-1-alinde@google.com
    Link: http://lkml.kernel.org/r/20200831171733.955393-2-alinde@google.com
    Signed-off-by: Linus Torvalds

    Albert van der Linde
     

14 Oct, 2020

3 commits

  • Here is a very rare race which leaks memory:

    Page P0 is allocated to the page cache. Page P1 is free.

    Thread A Thread B Thread C
    find_get_entry():
    xas_load() returns P0
    Removes P0 from page cache
    P0 finds its buddy P1
    alloc_pages(GFP_KERNEL, 1) returns P0
    P0 has refcount 1
    page_cache_get_speculative(P0)
    P0 has refcount 2
    __free_pages(P0)
    P0 has refcount 1
    put_page(P0)
    P1 is not freed

    Fix this by freeing all the pages in __free_pages() that won't be freed
    by the call to put_page(). It's usually not a good idea to split a page,
    but this is a very unlikely scenario.

    Fixes: e286781d5f2e ("mm: speculative page references")
    Signed-off-by: Matthew Wilcox (Oracle)
    Signed-off-by: Andrew Morton
    Acked-by: Mike Rapoport
    Cc: Nick Piggin
    Cc: Hugh Dickins
    Cc: Peter Zijlstra
    Link: https://lkml.kernel.org/r/20200926213919.26642-1-willy@infradead.org
    Signed-off-by: Linus Torvalds

    Matthew Wilcox (Oracle)
     
  • Transfer all previous tests for KASAN to KUnit so they can be run more
    easily. Using kunit_tool, developers can run these tests with their other
    KUnit tests and see "pass" or "fail" with the appropriate KASAN report
    instead of needing to parse each KASAN report to test KASAN
    functionalities. All KASAN reports are still printed to dmesg.

    Stack tests do not work properly when KASAN_STACK is enabled so those
    tests use a check for "if IS_ENABLED(CONFIG_KASAN_STACK)" so they only run
    if stack instrumentation is enabled. If KASAN_STACK is not enabled, KUnit
    will print a statement to let the user know this test was not run with
    KASAN_STACK enabled.

    copy_user_test and kasan_rcu_uaf cannot be run in KUnit so there is a
    separate test file for those tests, which can be run as before as a
    module.

    [trishalfonso@google.com: v14]
    Link: https://lkml.kernel.org/r/20200915035828.570483-4-davidgow@google.com

    Signed-off-by: Patricia Alfonso
    Signed-off-by: David Gow
    Signed-off-by: Andrew Morton
    Tested-by: Andrey Konovalov
    Reviewed-by: Brendan Higgins
    Reviewed-by: Andrey Konovalov
    Reviewed-by: Dmitry Vyukov
    Cc: Andrey Ryabinin
    Cc: Ingo Molnar
    Cc: Juri Lelli
    Cc: Peter Zijlstra
    Cc: Shuah Khan
    Cc: Vincent Guittot
    Link: https://lkml.kernel.org/r/20200910070331.3358048-4-davidgow@google.com
    Signed-off-by: Linus Torvalds

    Patricia Alfonso
     
  • This adds the conversion of the runtime tests of test_bitfield,
    from `lib/test_bitfield.c` to KUnit tests.

    Code Style Documentation: [0]

    Signed-off-by: Vitor Massaru Iha
    Link: [0] https://lore.kernel.org/linux-kselftest/20200620054944.167330-1-davidgow@google.com/T/#u
    Reviewed-by: Brendan Higgins
    Signed-off-by: Shuah Khan

    Vitor Massaru Iha
     

20 Aug, 2020

1 commit

  • gcc can transform the loop in a naive implementation of memset/memcpy
    etc into a call to the function itself. This optimization is enabled by
    -ftree-loop-distribute-patterns.

    This has been the case for a while, but gcc-10.x enables this option at
    -O2 rather than -O3 as in previous versions.

    Add -ffreestanding, which implicitly disables this optimization with
    gcc. It is unclear whether clang performs such optimizations, but
    hopefully it will also not do so in a freestanding environment.

    Signed-off-by: Arvind Sankar
    Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888
    Signed-off-by: Linus Torvalds

    Arvind Sankar
     

13 Aug, 2020

1 commit

  • Add tests of GENMASK and GENMASK_ULL.

    A few test cases that should fail compilation are provided under #ifdef
    TEST_GENMASK_FAILURES

    [rd.dunlap@gmail.com: add MODULE_LICENSE()]
    Link: http://lkml.kernel.org/r/dfc74524-0789-2827-4eff-476ddab65699@gmail.com
    [weiyongjun1@huawei.com: make some functions static]
    Link: http://lkml.kernel.org/r/20200702150336.4756-1-weiyongjun1@huawei.com

    Suggested-by: Andy Shevchenko
    Signed-off-by: Rikard Falkeborn
    Signed-off-by: Randy Dunlap
    Signed-off-by: Wei Yongjun
    Signed-off-by: Andrew Morton
    Reviewed-by: Andy Shevchenko
    Acked-by: William Breathitt Gray
    Cc: Emil Velikov
    Cc: Syed Nayyar Waris
    Cc: Andy Shevchenko
    Cc: Arnd Bergmann
    Cc: Geert Uytterhoeven
    Cc: Kees Cook
    Cc: Linus Walleij
    Cc: Masahiro Yamada
    Link: http://lkml.kernel.org/r/20200621054210.14804-2-rikard.falkeborn@gmail.com
    Link: http://lkml.kernel.org/r/20200608221823.35799-2-rikard.falkeborn@gmail.com
    Signed-off-by: Linus Torvalds

    Rikard Falkeborn
     

10 Aug, 2020

2 commits

  • Pull Kbuild updates from Masahiro Yamada:

    - run the checker (e.g. sparse) after the compiler

    - remove unneeded cc-option tests for old compiler flags

    - fix tar-pkg to install dtbs

    - introduce ccflags-remove-y and asflags-remove-y syntax

    - allow to trace functions in sub-directories of lib/

    - introduce hostprogs-always-y and userprogs-always-y syntax

    - various Makefile cleanups

    * tag 'kbuild-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: stop filtering out $(GCC_PLUGINS_CFLAGS) from cc-option base
    kbuild: include scripts/Makefile.* only when relevant CONFIG is enabled
    kbuild: introduce hostprogs-always-y and userprogs-always-y
    kbuild: sort hostprogs before passing it to ifneq
    kbuild: move host .so build rules to scripts/gcc-plugins/Makefile
    kbuild: Replace HTTP links with HTTPS ones
    kbuild: trace functions in subdirectories of lib/
    kbuild: introduce ccflags-remove-y and asflags-remove-y
    kbuild: do not export LDFLAGS_vmlinux
    kbuild: always create directories of targets
    powerpc/boot: add DTB to 'targets'
    kbuild: buildtar: add dtbs support
    kbuild: remove cc-option test of -ffreestanding
    kbuild: remove cc-option test of -fno-stack-protector
    Revert "kbuild: Create directory for target DTB"
    kbuild: run the checker after the compiler

    Linus Torvalds
     
  • CFLAGS_REMOVE_.o filters out flags when compiling a particular
    object, but there is no convenient way to do that for every object in
    a directory.

    Add ccflags-remove-y and asflags-remove-y to make it easily.

    Use ccflags-remove-y to clean up some Makefiles.

    The add/remove order works as follows:

    [1] KBUILD_CFLAGS specifies compiler flags used globally

    [2] ccflags-y adds compiler flags for all objects in the
    current Makefile

    [3] ccflags-remove-y removes compiler flags for all objects in the
    current Makefile (New feature)

    [4] CFLAGS_ adds compiler flags per file.

    [5] CFLAGS_REMOVE_ removes compiler flags per file.

    Having [3] before [4] allows us to remove flags from most (but not all)
    objects in the current Makefile.

    For example, kernel/trace/Makefile removes $(CC_FLAGS_FTRACE)
    from all objects in the directory, then adds it back to
    trace_selftest_dynamic.o and CFLAGS_trace_kprobe_selftest.o

    The same applies to lib/livepatch/Makefile.

    Please note ccflags-remove-y has no effect to the sub-directories.
    In contrast, the previous notation got rid of compiler flags also from
    all the sub-directories.

    The following are not affected because they have no sub-directories:

    arch/arm/boot/compressed/
    arch/powerpc/xmon/
    arch/sh/
    kernel/trace/

    However, lib/ has several sub-directories.

    To keep the behavior, I added ccflags-remove-y to all Makefiles
    in subdirectories of lib/, except the following:

    lib/vdso/Makefile - Kbuild does not descend into this Makefile
    lib/raid/test/Makefile - This is not used for the kernel build

    I think commit 2464a609ded0 ("ftrace: do not trace library functions")
    excluded too much. In the next commit, I will remove ccflags-remove-y
    from the sub-directories of lib/.

    Suggested-by: Sami Tolvanen
    Signed-off-by: Masahiro Yamada
    Acked-by: Steven Rostedt (VMware)
    Acked-by: Michael Ellerman (powerpc)
    Acked-by: Brendan Higgins (KUnit)
    Tested-by: Anders Roxell

    Masahiro Yamada
     

08 Aug, 2020

1 commit

  • The functionality in lib/ioremap.c deals with pagetables, vmalloc and
    caches, so it naturally belongs to mm/ Moving it there will also allow
    declaring p?d_alloc_track functions in an header file inside mm/ rather
    than having those declarations in include/linux/mm.h

    Suggested-by: Andrew Morton
    Signed-off-by: Mike Rapoport
    Signed-off-by: Andrew Morton
    Reviewed-by: Pekka Enberg
    Cc: Abdul Haleem
    Cc: Andy Lutomirski
    Cc: Arnd Bergmann
    Cc: Christophe Leroy
    Cc: Joerg Roedel
    Cc: Joerg Roedel
    Cc: Max Filippov
    Cc: Peter Zijlstra (Intel)
    Cc: Satheesh Rajendran
    Cc: Stafford Horne
    Cc: Stephen Rothwell
    Cc: Steven Rostedt
    Cc: Geert Uytterhoeven
    Cc: Matthew Wilcox
    Link: http://lkml.kernel.org/r/20200627143453.31835-8-rppt@kernel.org
    Signed-off-by: Linus Torvalds

    Mike Rapoport
     

06 Aug, 2020

1 commit

  • Pull networking updates from David Miller:

    1) Support 6Ghz band in ath11k driver, from Rajkumar Manoharan.

    2) Support UDP segmentation in code TSO code, from Eric Dumazet.

    3) Allow flashing different flash images in cxgb4 driver, from Vishal
    Kulkarni.

    4) Add drop frames counter and flow status to tc flower offloading,
    from Po Liu.

    5) Support n-tuple filters in cxgb4, from Vishal Kulkarni.

    6) Various new indirect call avoidance, from Eric Dumazet and Brian
    Vazquez.

    7) Fix BPF verifier failures on 32-bit pointer arithmetic, from
    Yonghong Song.

    8) Support querying and setting hardware address of a port function via
    devlink, use this in mlx5, from Parav Pandit.

    9) Support hw ipsec offload on bonding slaves, from Jarod Wilson.

    10) Switch qca8k driver over to phylink, from Jonathan McDowell.

    11) In bpftool, show list of processes holding BPF FD references to
    maps, programs, links, and btf objects. From Andrii Nakryiko.

    12) Several conversions over to generic power management, from Vaibhav
    Gupta.

    13) Add support for SO_KEEPALIVE et al. to bpf_setsockopt(), from Dmitry
    Yakunin.

    14) Various https url conversions, from Alexander A. Klimov.

    15) Timestamping and PHC support for mscc PHY driver, from Antoine
    Tenart.

    16) Support bpf iterating over tcp and udp sockets, from Yonghong Song.

    17) Support 5GBASE-T i40e NICs, from Aleksandr Loktionov.

    18) Add kTLS RX HW offload support to mlx5e, from Tariq Toukan.

    19) Fix the ->ndo_start_xmit() return type to be netdev_tx_t in several
    drivers. From Luc Van Oostenryck.

    20) XDP support for xen-netfront, from Denis Kirjanov.

    21) Support receive buffer autotuning in MPTCP, from Florian Westphal.

    22) Support EF100 chip in sfc driver, from Edward Cree.

    23) Add XDP support to mvpp2 driver, from Matteo Croce.

    24) Support MPTCP in sock_diag, from Paolo Abeni.

    25) Commonize UDP tunnel offloading code by creating udp_tunnel_nic
    infrastructure, from Jakub Kicinski.

    26) Several pci_ --> dma_ API conversions, from Christophe JAILLET.

    27) Add FLOW_ACTION_POLICE support to mlxsw, from Ido Schimmel.

    28) Add SK_LOOKUP bpf program type, from Jakub Sitnicki.

    29) Refactor a lot of networking socket option handling code in order to
    avoid set_fs() calls, from Christoph Hellwig.

    30) Add rfc4884 support to icmp code, from Willem de Bruijn.

    31) Support TBF offload in dpaa2-eth driver, from Ioana Ciornei.

    32) Support XDP_REDIRECT in qede driver, from Alexander Lobakin.

    33) Support PCI relaxed ordering in mlx5 driver, from Aya Levin.

    34) Support TCP syncookies in MPTCP, from Flowian Westphal.

    35) Fix several tricky cases of PMTU handling wrt. briding, from Stefano
    Brivio.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2056 commits)
    net: thunderx: initialize VF's mailbox mutex before first usage
    usb: hso: remove bogus check for EINPROGRESS
    usb: hso: no complaint about kmalloc failure
    hso: fix bailout in error case of probe
    ip_tunnel_core: Fix build for archs without _HAVE_ARCH_IPV6_CSUM
    selftests/net: relax cpu affinity requirement in msg_zerocopy test
    mptcp: be careful on subflow creation
    selftests: rtnetlink: make kci_test_encap() return sub-test result
    selftests: rtnetlink: correct the final return value for the test
    net: dsa: sja1105: use detected device id instead of DT one on mismatch
    tipc: set ub->ifindex for local ipv6 address
    ipv6: add ipv6_dev_find()
    net: openvswitch: silence suspicious RCU usage warning
    Revert "vxlan: fix tos value before xmit"
    ptp: only allow phase values lower than 1 period
    farsync: switch from 'pci_' to 'dma_' API
    wan: wanxl: switch from 'pci_' to 'dma_' API
    hv_netvsc: do not use VF device if link is down
    dpaa2-eth: Fix passing zero to 'PTR_ERR' warning
    net: macb: Properly handle phylink on at91sam9x
    ...

    Linus Torvalds
     

04 Aug, 2020

1 commit


31 Jul, 2020

1 commit

  • - Add unzstd() and the zstd decompress interface.

    - Add zstd support to decompress_method().

    The decompress_method() and unzstd() functions are used to decompress
    the initramfs and the initrd. The __decompress() function is used in
    the preboot environment to decompress a zstd compressed kernel.

    The zstd decompression function allows the input and output buffers to
    overlap because that is used by x86 kernel decompression.

    Signed-off-by: Nick Terrell
    Signed-off-by: Ingo Molnar
    Tested-by: Sedat Dilek
    Reviewed-by: Kees Cook
    Link: https://lore.kernel.org/r/20200730190841.2071656-3-nickrterrell@gmail.com

    Nick Terrell
     

29 Jul, 2020

1 commit

  • The pldmfw library is used to implement common logic needed to flash
    devices based on firmware files using the format described by the PLDM
    for Firmware Update standard.

    This library consists of logic to parse the PLDM file format from
    a firmware file object, as well as common logic for sending the relevant
    PLDM header data to the device firmware.

    A simple ops table is provided so that device drivers can implement
    device specific hardware interactions while keeping the common logic to
    the pldmfw library.

    This library will be used by the Intel ice networking driver as part of
    implementing device flash update via devlink. The library aims to be
    vendor and device agnostic. For this reason, it has been placed in
    lib/pldmfw, in the hopes that other devices which use the PLDM firmware
    file format may benefit from it in the future. However, do note that not
    all features defined in the PLDM standard have been implemented.

    Signed-off-by: Jacob Keller
    Signed-off-by: David S. Miller

    Jacob Keller
     

07 Jul, 2020

1 commit

  • Some Makefiles already pass -fno-stack-protector unconditionally.
    For example, arch/arm64/kernel/vdso/Makefile, arch/x86/xen/Makefile.

    No problem report so far about hard-coding this option. So, we can
    assume all supported compilers know -fno-stack-protector.

    GCC 4.8 and Clang support this option (https://godbolt.org/z/_HDGzN)

    Get rid of cc-option from -fno-stack-protector.

    Remove CONFIG_CC_HAS_STACKPROTECTOR_NONE, which is always 'y'.

    Note:
    arch/mips/vdso/Makefile adds -fno-stack-protector twice, first
    unconditionally, and second conditionally. I removed the second one.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Kees Cook
    Acked-by: Ard Biesheuvel
    Reviewed-by: Nick Desaulniers

    Masahiro Yamada
     

29 Jun, 2020

1 commit

  • Add a selftest for the usage of FPU code in kernel mode.

    Currently only implemented for x86. In the future, kernel FPU testing
    could be unified between the different architectures supporting it.

    [ bp:

    - Split out from a conglomerate patch, put comments over statements.
    - run the test only on debugfs write.
    - Add bare-minimum run_test_fpu.sh, run 1000 iterations on all CPUs
    by default.
    - Add conditionally -msse2 so that clang doesn't generate library
    calls.
    - Use cc-option to detect gcc 7.1 not supporting -mpreferred-stack-boundary=3 (amluto).
    - Document stuff so that we don't forget.
    - Fix:
    ld: lib/test_fpu.o: in function `test_fpu_get':
    >> test_fpu.c:(.text+0x16e): undefined reference to `__sanitizer_cov_trace_cmpd'
    >> ld: test_fpu.c:(.text+0x1a7): undefined reference to `__sanitizer_cov_trace_cmpd'
    ld: test_fpu.c:(.text+0x1e0): undefined reference to `__sanitizer_cov_trace_cmpd'
    ]

    Reported-by: kernel test robot
    Signed-off-by: Petteri Aimonen
    Signed-off-by: Borislav Petkov
    Reviewed-by: Nick Desaulniers
    Link: https://lkml.kernel.org/r/20200624114646.28953-3-bp@alien8.de

    Petteri Aimonen
     

12 Jun, 2020

1 commit

  • Merge the state of the locking kcsan branch before the read/write_once()
    and the atomics modifications got merged.

    Squash the fallout of the rebase on top of the read/write once and atomic
    fallback work into the merge. The history of the original branch is
    preserved in tag locking-kcsan-2020-06-02.

    Signed-off-by: Thomas Gleixner

    Thomas Gleixner
     

09 Jun, 2020

1 commit

  • Instead of enabling dynamic debug globally with CONFIG_DYNAMIC_DEBUG,
    CONFIG_DYNAMIC_DEBUG_CORE will only enable core function of dynamic
    debug. With the DYNAMIC_DEBUG_MODULE defined for any modules, dynamic
    debug will be tied to them.

    This is useful for people who only want to enable dynamic debug for
    kernel modules without worrying about kernel image size and memory
    consumption is increasing too much.

    [orson.zhai@unisoc.com: v2]
    Link: http://lkml.kernel.org/r/1587408228-10861-1-git-send-email-orson.unisoc@gmail.com

    Signed-off-by: Orson Zhai
    Signed-off-by: Andrew Morton
    Acked-by: Greg Kroah-Hartman
    Acked-by: Petr Mladek
    Cc: Jonathan Corbet
    Cc: Sergey Senozhatsky
    Cc: Steven Rostedt
    Cc: Jason Baron
    Cc: Randy Dunlap
    Link: http://lkml.kernel.org/r/1586521984-5890-1-git-send-email-orson.unisoc@gmail.com
    Signed-off-by: Linus Torvalds

    Orson Zhai
     

05 Jun, 2020

1 commit

  • Test some bit clears/sets to make sure assembly doesn't change, and that
    the set_bit and clear_bit functions work and don't cause sparse warnings.

    Instruct Kbuild to build this file with extra warning level -Wextra, to
    catch new issues, and also doesn't hurt to build with C=1.

    This was used to test changes to arch/x86/include/asm/bitops.h.

    In particular, sparse (C=1) was very concerned when the last bit before a
    natural boundary, like 7, or 31, was being tested, as this causes sign
    extension (0xffffff7f) for instance when clearing bit 7.

    Recommended usage:

    make defconfig
    scripts/config -m CONFIG_TEST_BITOPS
    make modules_prepare
    make C=1 W=1 lib/test_bitops.ko
    objdump -S -d lib/test_bitops.ko
    insmod lib/test_bitops.ko
    rmmod lib/test_bitops.ko

    , there should be no compiler/sparse warnings and no
    error messages in log.

    Link: http://lkml.kernel.org/r/20200310221747.2848474-2-jesse.brandeburg@intel.com
    Signed-off-by: Jesse Brandeburg
    Reviewed-by: Andy Shevchenko
    Cc: Thomas Gleixner
    CcL Ingo Molnar
    Signed-off-by: Andrew Morton
    Cc: Borislav Petkov
    Cc: Rasmus Villemoes
    Cc: Dan Williams
    Cc: Peter Zijlstra
    Cc: Wei Yang
    Cc: Christian Brauner
    Signed-off-by: Linus Torvalds

    Jesse Brandeburg
     

03 Jun, 2020

1 commit

  • Pull hmm updates from Jason Gunthorpe:
    "This series adds a selftest for hmm_range_fault() and several of the
    DEVICE_PRIVATE migration related actions, and another simplification
    for hmm_range_fault()'s API.

    - Simplify hmm_range_fault() with a simpler return code, no
    HMM_PFN_SPECIAL, and no customizable output PFN format

    - Add a selftest for hmm_range_fault() and DEVICE_PRIVATE related
    functionality"

    * tag 'for-linus-hmm' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
    MAINTAINERS: add HMM selftests
    mm/hmm/test: add selftests for HMM
    mm/hmm/test: add selftest driver for HMM
    mm/hmm: remove the customizable pfn format from hmm_range_fault
    mm/hmm: remove HMM_PFN_SPECIAL
    drm/amdgpu: remove dead code after hmm_range_fault()
    mm/hmm: make hmm_range_fault return 0 or -1

    Linus Torvalds
     

20 May, 2020

1 commit

  • This driver is for testing device private memory migration and devices
    which use hmm_range_fault() to access system memory via device page tables.

    Link: https://lore.kernel.org/r/20200422195028.3684-2-rcampbell@nvidia.com
    Link: https://lore.kernel.org/r/20200516010424.2013-1-rcampbell@nvidia.com
    Signed-off-by: Ralph Campbell
    Signed-off-by: Jérôme Glisse
    Link: https://lore.kernel.org/r/20200509030225.14592-1-weiyongjun1@huawei.com
    Link: https://lore.kernel.org/r/20200509030234.14747-1-weiyongjun1@huawei.com
    Signed-off-by: Wei Yongjun
    Link: https://lore.kernel.org/r/20200511183704.GA225608@mwanda
    Signed-off-by: Dan Carpenter
    Signed-off-by: Jason Gunthorpe

    Ralph Campbell
     

09 May, 2020

2 commits

  • Add a KUnit test for the linear_ranges helper.

    Signed-off-by: Matti Vaittinen
    Reviewed-by: Brendan Higgins
    Link: https://lore.kernel.org/r/311fea741bafdcd33804d3187c1642e24275e3e5.1588944082.git.matti.vaittinen@fi.rohmeurope.com
    Signed-off-by: Mark Brown

    Matti Vaittinen
     
  • Many devices have control registers which control some measurable
    property. Often a register contains control field so that change in
    this field causes linear change in the controlled property. It is not
    a rare case that user wants to give 'meaningful' control values and
    driver needs to convert them to register field values. Even more
    often user wants to 'see' the currently set value - again in
    meaningful units - and driver needs to convert the values it reads
    from register to these meaningful units. Examples of this include:

    - regulators, voltage/current configurations
    - power, voltage/current configurations
    - clk(?) NCOs

    and maybe others I can't think of right now.

    Provide a linear_range helper which can do conversion from user value
    to register value 'selector'.

    The idea here is stolen from regulator framework and patches refactoring
    the regulator helpers to use this are following.

    Current implementation does not support inversely proportional ranges
    but it might be useful if we could support also inversely proportional
    ranges?

    Signed-off-by: Matti Vaittinen
    Reviewed-by: Mark Brown
    Reviewed-by: Linus Walleij
    Reviewed-by: Andy Shevchenko
    Link: https://lore.kernel.org/r/59259bc475e0c800eb4bb163f02528c7c01f7b3a.1588944082.git.matti.vaittinen@fi.rohmeurope.com
    Signed-off-by: Mark Brown

    Matti Vaittinen
     

13 Apr, 2020

1 commit


08 Apr, 2020

4 commits

  • Patch series "ubsan: Split out bounds checker", v5.

    This splits out the bounds checker so it can be individually used. This
    is enabled in Android and hopefully for syzbot. Includes LKDTM tests for
    behavioral corner-cases (beyond just the bounds checker), and adjusts
    ubsan and kasan slightly for correct panic handling.

    This patch (of 6):

    The Undefined Behavior Sanitizer can operate in two modes: warning
    reporting mode via lib/ubsan.c handler calls, or trap mode, which uses
    __builtin_trap() as the handler. Using lib/ubsan.c means the kernel image
    is about 5% larger (due to all the debugging text and reporting structures
    to capture details about the warning conditions). Using the trap mode,
    the image size changes are much smaller, though at the loss of the
    "warning only" mode.

    In order to give greater flexibility to system builders that want minimal
    changes to image size and are prepared to deal with kernel code being
    aborted and potentially destabilizing the system, this introduces
    CONFIG_UBSAN_TRAP. The resulting image sizes comparison:

    text data bss dec hex filename
    19533663 6183037 18554956 44271656 2a38828 vmlinux.stock
    19991849 7618513 18874448 46484810 2c54d4a vmlinux.ubsan
    19712181 6284181 18366540 44362902 2a4ec96 vmlinux.ubsan-trap

    CONFIG_UBSAN=y: image +4.8% (text +2.3%, data +18.9%)
    CONFIG_UBSAN_TRAP=y: image +0.2% (text +0.9%, data +1.6%)

    Additionally adjusts the CONFIG_UBSAN Kconfig help for clarity and removes
    the mention of non-existing boot param "ubsan_handle".

    Suggested-by: Elena Petrova
    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Acked-by: Dmitry Vyukov
    Cc: Andrey Ryabinin
    Cc: Andrey Konovalov
    Cc: Alexander Potapenko
    Cc: Dan Carpenter
    Cc: "Gustavo A. R. Silva"
    Cc: Arnd Bergmann
    Cc: Ard Biesheuvel
    Link: http://lkml.kernel.org/r/20200227193516.32566-2-keescook@chromium.org
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Clang may replace stackdepot_memcmp() with a call to instrumented bcmp(),
    which is exactly what we wanted to avoid creating stackdepot_memcmp().
    Building the file with -fno-builtin prevents such optimizations.

    This patch has been previously mailed as part of KMSAN RFC patch series.

    Signed-off-by: Alexander Potapenko
    Signed-off-by: Andrew Morton
    Cc: Vegard Nossum
    Cc: Dmitry Vyukov
    Cc: Marco Elver
    Cc: Andrey Konovalov
    Cc: Sergey Senozhatsky
    Cc: Arnd Bergmann
    Cc: Andrey Ryabinin
    Link: http://lkml.kernel.org/r/20200220141916.55455-2-glider@google.com
    Signed-off-by: Linus Torvalds

    Alexander Potapenko
     
  • The tests for initializing a variable defined between a switch statement's
    test and its first "case" statement are currently not initialized in
    Clang[1] nor the proposed auto-initialization feature in GCC.

    We should retain the test (so that we can evaluate compiler fixes), but
    mark it as an "expected fail". The rest of the kernel source will be
    adjusted to avoid this corner case.

    Also disable -Wswitch-unreachable for the test so that the intentionally
    broken code won't trigger warnings for GCC (nor future Clang) when
    initialization happens this unhandled place.

    [1] https://bugs.llvm.org/show_bug.cgi?id=44916

    Suggested-by: Alexander Potapenko
    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Cc: Jann Horn
    Cc: Ard Biesheuvel
    Link: http://lkml.kernel.org/r/202002191358.2897A07C6@keescook
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • CONFIG_TEST_LOCKUP=m adds module "test_lockup" that helps to make sure
    that watchdogs and lockup detectors are working properly.

    Depending on module parameters test_lockup could emulate soft or hard
    lockup, "hung task", hold arbitrary lock, allocate bunch of pages.

    Also it could generate series of lockups with cooling-down periods, in
    this way it could be used as "ping" for locks or page allocator. Loop
    checks signals between iteration thus could be stopped by ^C.

    # modinfo test_lockup
    ...
    parm: time_secs:lockup time in seconds, default 0 (uint)
    parm: time_nsecs:nanoseconds part of lockup time, default 0 (uint)
    parm: cooldown_secs:cooldown time between iterations in seconds, default 0 (uint)
    parm: cooldown_nsecs:nanoseconds part of cooldown, default 0 (uint)
    parm: iterations:lockup iterations, default 1 (uint)
    parm: all_cpus:trigger lockup at all cpus at once (bool)
    parm: state:wait in 'R' running (default), 'D' uninterruptible, 'K' killable, 'S' interruptible state (charp)
    parm: use_hrtimer:use high-resolution timer for sleeping (bool)
    parm: iowait:account sleep time as iowait (bool)
    parm: lock_read:lock read-write locks for read (bool)
    parm: lock_single:acquire locks only at one cpu (bool)
    parm: reacquire_locks:release and reacquire locks/irq/preempt between iterations (bool)
    parm: touch_softlockup:touch soft-lockup watchdog between iterations (bool)
    parm: touch_hardlockup:touch hard-lockup watchdog between iterations (bool)
    parm: call_cond_resched:call cond_resched() between iterations (bool)
    parm: measure_lock_wait:measure lock wait time (bool)
    parm: lock_wait_threshold:print lock wait time longer than this in nanoseconds, default off (ulong)
    parm: disable_irq:disable interrupts: generate hard-lockups (bool)
    parm: disable_softirq:disable bottom-half irq handlers (bool)
    parm: disable_preempt:disable preemption: generate soft-lockups (bool)
    parm: lock_rcu:grab rcu_read_lock: generate rcu stalls (bool)
    parm: lock_mmap_sem:lock mm->mmap_sem: block procfs interfaces (bool)
    parm: lock_rwsem_ptr:lock rw_semaphore at address (ulong)
    parm: lock_mutex_ptr:lock mutex at address (ulong)
    parm: lock_spinlock_ptr:lock spinlock at address (ulong)
    parm: lock_rwlock_ptr:lock rwlock at address (ulong)
    parm: alloc_pages_nr:allocate and free pages under locks (uint)
    parm: alloc_pages_order:page order to allocate (uint)
    parm: alloc_pages_gfp:allocate pages with this gfp_mask, default GFP_KERNEL (uint)
    parm: alloc_pages_atomic:allocate pages with GFP_ATOMIC (bool)
    parm: reallocate_pages:free and allocate pages between iterations (bool)

    Parameters for locking by address are unsafe and taints kernel. With
    CONFIG_DEBUG_SPINLOCK=y they at least check magics for embedded spinlocks.

    Examples:

    task hang in D-state:
    modprobe test_lockup time_secs=1 iterations=60 state=D

    task hang in io-wait D-state:
    modprobe test_lockup time_secs=1 iterations=60 state=D iowait

    softlockup:
    modprobe test_lockup time_secs=1 iterations=60 state=R

    hardlockup:
    modprobe test_lockup time_secs=1 iterations=60 state=R disable_irq

    system-wide hardlockup:
    modprobe test_lockup time_secs=1 iterations=60 state=R \
    disable_irq all_cpus

    rcu stall:
    modprobe test_lockup time_secs=1 iterations=60 state=R \
    lock_rcu touch_softlockup

    lock mmap_sem / block procfs interfaces:
    modprobe test_lockup time_secs=1 iterations=60 state=S lock_mmap_sem

    lock tasklist_lock for read / block forks:
    TASKLIST_LOCK=$(awk '$3 == "tasklist_lock" {print "0x"$1}' /proc/kallsyms)
    modprobe test_lockup time_secs=1 iterations=60 state=R \
    disable_irq lock_read lock_rwlock_ptr=$TASKLIST_LOCK

    lock namespace_sem / block vfs mount operations:
    NAMESPACE_SEM=$(awk '$3 == "namespace_sem" {print "0x"$1}' /proc/kallsyms)
    modprobe test_lockup time_secs=1 iterations=60 state=S \
    lock_rwsem_ptr=$NAMESPACE_SEM

    lock cgroup mutex / block cgroup operations:
    CGROUP_MUTEX=$(awk '$3 == "cgroup_mutex" {print "0x"$1}' /proc/kallsyms)
    modprobe test_lockup time_secs=1 iterations=60 state=S \
    lock_mutex_ptr=$CGROUP_MUTEX

    ping cgroup_mutex every second and measure maximum lock wait time:
    modprobe test_lockup cooldown_secs=1 iterations=60 state=S \
    lock_mutex_ptr=$CGROUP_MUTEX reacquire_locks measure_lock_wait

    [linux@roeck-us.net: rename disable_irq to fix build error]
    Link: http://lkml.kernel.org/r/20200317133614.23152-1-linux@roeck-us.net
    Signed-off-by: Konstantin Khlebnikov
    Signed-off-by: Guenter Roeck
    Signed-off-by: Andrew Morton
    Cc: Sasha Levin
    Cc: Petr Mladek
    Cc: Kees Cook
    Cc: Peter Zijlstra
    Cc: Greg Kroah-Hartman
    Cc: Steven Rostedt
    Cc: Sergey Senozhatsky
    Cc: Dmitry Monakhov
    Cc: Guenter Roeck
    Link: http://lkml.kernel.org/r/158132859146.2797.525923171323227836.stgit@buzz
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     

21 Mar, 2020

1 commit


06 Mar, 2020

1 commit

  • Supports push, pop and converting an array into a heap. If the sense of
    the compare function is inverted then it can provide a max-heap.

    Based-on-work-by: Peter Zijlstra (Intel)
    Signed-off-by: Ian Rogers
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Ingo Molnar
    Link: https://lkml.kernel.org/r/20200214075133.181299-3-irogers@google.com

    Ian Rogers
     

12 Feb, 2020

1 commit

  • Pull tracing fixes from Steven Rostedt:
    "Various fixes:

    - Fix an uninitialized variable

    - Fix compile bug to bootconfig userspace tool (in tools directory)

    - Suppress some error messages of bootconfig userspace tool

    - Remove unneded CONFIG_LIBXBC from bootconfig

    - Allocate bootconfig xbc_nodes dynamically. To ease complaints about
    taking up static memory at boot up

    - Use of parse_args() to parse bootconfig instead of strstr() usage
    Prevents issues of double quotes containing the interested string

    - Fix missing ring_buffer_nest_end() on synthetic event error path

    - Return zero not -EINVAL on soft disabled synthetic event (soft
    disabling must be the same as hard disabling, which returns zero)

    - Consolidate synthetic event code (remove duplicate code)"

    * tag 'trace-v5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
    tracing: Consolidate trace() functions
    tracing: Don't return -EINVAL when tracing soft disabled synth events
    tracing: Add missing nest end to synth_event_trace_start() error case
    tools/bootconfig: Suppress non-error messages
    bootconfig: Allocate xbc_nodes array dynamically
    bootconfig: Use parse_args() to find bootconfig and '--'
    tracing/kprobe: Fix uninitialized variable bug
    bootconfig: Remove unneeded CONFIG_LIBXBC
    tools/bootconfig: Fix wrong __VA_ARGS__ usage

    Linus Torvalds
     

11 Feb, 2020

1 commit

  • Since there is no user except CONFIG_BOOT_CONFIG and no plan
    to use it from other functions, CONFIG_LIBXBC can be removed
    and we can use CONFIG_BOOT_CONFIG directly.

    Link: http://lkml.kernel.org/r/158098769281.939.16293492056419481105.stgit@devnote2

    Suggested-by: Geert Uytterhoeven
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt (VMware)

    Masami Hiramatsu
     

10 Feb, 2020

1 commit

  • Pull more Kbuild updates from Masahiro Yamada:

    - fix randconfig to generate a sane .config

    - rename hostprogs-y / always to hostprogs / always-y, which are more
    natual syntax.

    - optimize scripts/kallsyms

    - fix yes2modconfig and mod2yesconfig

    - make multiple directory targets ('make foo/ bar/') work

    * tag 'kbuild-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: make multiple directory targets work
    kconfig: Invalidate all symbols after changing to y or m.
    kallsyms: fix type of kallsyms_token_table[]
    scripts/kallsyms: change table to store (strcut sym_entry *)
    scripts/kallsyms: rename local variables in read_symbol()
    kbuild: rename hostprogs-y/always to hostprogs/always-y
    kbuild: fix the document to use extra-y for vmlinux.lds
    kconfig: fix broken dependency in randconfig-generated .config

    Linus Torvalds
     

06 Feb, 2020

1 commit

  • Pull tracing updates from Steven Rostedt:

    - Added new "bootconfig".

    This looks for a file appended to initrd to add boot config options,
    and has been discussed thoroughly at Linux Plumbers.

    Very useful for adding kprobes at bootup.

    Only enabled if "bootconfig" is on the real kernel command line.

    - Created dynamic event creation.

    Merges common code between creating synthetic events and kprobe
    events.

    - Rename perf "ring_buffer" structure to "perf_buffer"

    - Rename ftrace "ring_buffer" structure to "trace_buffer"

    Had to rename existing "trace_buffer" to "array_buffer"

    - Allow trace_printk() to work withing (some) tracing code.

    - Sort of tracing configs to be a little better organized

    - Fixed bug where ftrace_graph hash was not being protected properly

    - Various other small fixes and clean ups

    * tag 'trace-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (88 commits)
    bootconfig: Show the number of nodes on boot message
    tools/bootconfig: Show the number of bootconfig nodes
    bootconfig: Add more parse error messages
    bootconfig: Use bootconfig instead of boot config
    ftrace: Protect ftrace_graph_hash with ftrace_sync
    ftrace: Add comment to why rcu_dereference_sched() is open coded
    tracing: Annotate ftrace_graph_notrace_hash pointer with __rcu
    tracing: Annotate ftrace_graph_hash pointer with __rcu
    bootconfig: Only load bootconfig if "bootconfig" is on the kernel cmdline
    tracing: Use seq_buf for building dynevent_cmd string
    tracing: Remove useless code in dynevent_arg_pair_add()
    tracing: Remove check_arg() callbacks from dynevent args
    tracing: Consolidate some synth_event_trace code
    tracing: Fix now invalid var_ref_vals assumption in trace action
    tracing: Change trace_boot to use synth_event interface
    tracing: Move tracing selftests to bottom of menu
    tracing: Move mmio tracer config up with the other tracers
    tracing: Move tracing test module configs together
    tracing: Move all function tracing configs together
    tracing: Documentation for in-kernel synthetic event API
    ...

    Linus Torvalds
     

04 Feb, 2020

1 commit

  • In old days, the "host-progs" syntax was used for specifying host
    programs. It was renamed to the current "hostprogs-y" in 2004.

    It is typically useful in scripts/Makefile because it allows Kbuild to
    selectively compile host programs based on the kernel configuration.

    This commit renames like follows:

    always -> always-y
    hostprogs-y -> hostprogs

    So, scripts/Makefile will look like this:

    always-$(CONFIG_BUILD_BIN2C) += ...
    always-$(CONFIG_KALLSYMS) += ...
    ...
    hostprogs := $(always-y) $(always-m)

    I think this makes more sense because a host program is always a host
    program, irrespective of the kernel configuration. We want to specify
    which ones to compile by CONFIG options, so always-y will be handier.

    The "always", "hostprogs-y", "hostprogs-m" will be kept for backward
    compatibility for a while.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

01 Feb, 2020

2 commits

  • Don't instrument 3 more files that contain debugging facilities and
    produce large amounts of uninteresting coverage for every syscall.

    The following snippets are sprinkled all over the place in kcov traces
    in a debugging kernel. We already try to disable instrumentation of
    stack unwinding code and of most debug facilities. I guess we did not
    use fault-inject.c at the time, and stacktrace.c was somehow missed (or
    something has changed in kernel/configs). This change both speeds up
    kcov (kernel doesn't need to store these PCs, user-space doesn't need to
    process them) and frees trace buffer capacity for more useful coverage.

    should_fail
    lib/fault-inject.c:149
    fail_dump
    lib/fault-inject.c:45

    stack_trace_save
    kernel/stacktrace.c:124
    stack_trace_consume_entry
    kernel/stacktrace.c:86
    stack_trace_consume_entry
    kernel/stacktrace.c:89
    ... a hundred frames skipped ...
    stack_trace_consume_entry
    kernel/stacktrace.c:93
    stack_trace_consume_entry
    kernel/stacktrace.c:86

    Link: http://lkml.kernel.org/r/20200116111449.217744-1-dvyukov@gmail.com
    Signed-off-by: Dmitry Vyukov
    Reviewed-by: Andrey Konovalov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Vyukov
     
  • Patch series "S390 hardware support for kernel zlib", v3.

    With IBM z15 mainframe the new DFLTCC instruction is available. It
    implements deflate algorithm in hardware (Nest Acceleration Unit - NXU)
    with estimated compression and decompression performance orders of
    magnitude faster than the current zlib.

    This patchset adds s390 hardware compression support to kernel zlib.
    The code is based on the userspace zlib implementation:

    https://github.com/madler/zlib/pull/410

    The coding style is also preserved for future maintainability. There is
    only limited set of userspace zlib functions represented in kernel.
    Apart from that, all the memory allocation should be performed in
    advance. Thus, the workarea structures are extended with the parameter
    lists required for the DEFLATE CONVENTION CALL instruction.

    Since kernel zlib itself does not support gzip headers, only Adler-32
    checksum is processed (also can be produced by DFLTCC facility). Like
    it was implemented for userspace, kernel zlib will compress in hardware
    on level 1, and in software on all other levels. Decompression will
    always happen in hardware (when enabled).

    Two DFLTCC compression calls produce the same results only when they
    both are made on machines of the same generation, and when the
    respective buffers have the same offset relative to the start of the
    page. Therefore care should be taken when using hardware compression
    when reproducible results are desired. However it does always produce
    the standard conform output which can be inflated anyway.

    The new kernel command line parameter 'dfltcc' is introduced to
    configure s390 zlib hardware support:

    Format: { on | off | def_only | inf_only | always }
    on: s390 zlib hardware support for compression on
    level 1 and decompression (default)
    off: No s390 zlib hardware support
    def_only: s390 zlib hardware support for deflate
    only (compression on level 1)
    inf_only: s390 zlib hardware support for inflate
    only (decompression)
    always: Same as 'on' but ignores the selected compression
    level always using hardware support (used for debugging)

    The main purpose of the integration of the NXU support into the kernel
    zlib is the use of hardware deflate in btrfs filesystem with on-the-fly
    compression enabled. Apart from that, hardware support can also be used
    during boot for decompressing the kernel or the ramdisk image

    With the patch for btrfs expanding zlib buffer from 1 to 4 pages (patch
    6) the following performance results have been achieved using the
    ramdisk with btrfs. These are relative numbers based on throughput rate
    and compression ratio for zlib level 1:

    Input data Deflate rate Inflate rate Compression ratio
    NXU/Software NXU/Software NXU/Software
    stream of zeroes 1.46 1.02 1.00
    random ASCII data 10.44 3.00 0.96
    ASCII text (dickens) 6,21 3.33 0.94
    binary data (vmlinux) 8,37 3.90 1.02

    This means that s390 hardware deflate can provide up to 10 times faster
    compression (on level 1) and up to 4 times faster decompression (refers
    to all compression levels) for btrfs zlib.

    Disclaimer: Performance results are based on IBM internal tests using DD
    command-line utility on btrfs on a Fedora 30 based internal driver in
    native LPAR on a z15 system. Results may vary based on individual
    workload, configuration and software levels.

    This patch (of 9):

    Create zlib_dfltcc library with the s390 DEFLATE CONVERSION CALL
    implementation and related compression functions. Update zlib_deflate
    functions with the hooks for s390 hardware support and adjust workspace
    structures with extra parameter lists required for hardware deflate.

    Link: http://lkml.kernel.org/r/20200103223334.20669-2-zaslonko@linux.ibm.com
    Signed-off-by: Ilya Leoshkevich
    Signed-off-by: Mikhail Zaslonko
    Co-developed-by: Ilya Leoshkevich
    Cc: Chris Mason
    Cc: Christian Borntraeger
    Cc: David Sterba
    Cc: Eduard Shishkin
    Cc: Heiko Carstens
    Cc: Josef Bacik
    Cc: Richard Purdie
    Cc: Vasily Gorbik
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mikhail Zaslonko
     

24 Jan, 2020

1 commit


14 Jan, 2020

1 commit

  • Extra Boot Config (XBC) allows admin to pass a tree-structured
    boot configuration file when boot up the kernel. This extends
    the kernel command line in an efficient way.

    Boot config will contain some key-value commands, e.g.

    key.word = value1
    another.key.word = value2

    It can fold same keys with braces, also you can write array
    data. For example,

    key {
    word1 {
    setting1 = data
    setting2
    }
    word2.array = "val1", "val2"
    }

    User can access these key-value pair and tree structure via
    SKC APIs.

    Link: http://lkml.kernel.org/r/157867221257.17873.1775090991929862549.stgit@devnote2

    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt (VMware)

    Masami Hiramatsu