28 Nov, 2020

1 commit


13 Nov, 2020

1 commit

  • Since Grub may align the size of initrd to 4 if user pass
    initrd from cpio, we have to check the preceding 3 bytes as well.

    Link: https://lkml.kernel.org/r/160520205132.303174.4876760192433315429.stgit@devnote2

    Cc: stable@vger.kernel.org
    Fixes: 85c46b78da58 ("bootconfig: Add bootconfig magic word for indicating bootconfig explicitly")
    Reported-by: Chen Yu
    Tested-by: Chen Yu
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt (VMware)

    Masami Hiramatsu
     

03 Nov, 2020

1 commit

  • Currently, LOG_BUF_SHIFT defaults to 17, which is 2 ^ 17 bytes = 128 KB,
    and LOG_CPU_MAX_BUF_SHIFT defaults to 12, which is 2 ^ 12 bytes = 4 KB.

    Half of 128 KB is 64 KB, so more than 16 CPUs are required for the value
    to be used, as then the sum of contributions is greater than 64 KB for
    the first time. My guess is, that the description was written with the
    configuration values used in the SUSE in mind.

    Fixes: 23b2899f7f194f06e ("printk: allow increasing the ring buffer depending on the number of CPUs")
    Cc: Luis R. Rodriguez
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Paul Menzel
    Reviewed-by: Petr Mladek
    Signed-off-by: Petr Mladek
    Link: https://lore.kernel.org/r/20200811092924.6256-1-pmenzel@molgen.mpg.de

    Paul Menzel
     

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
     

16 Oct, 2020

2 commits

  • Pull networking updates from Jakub Kicinski:

    - Add redirect_neigh() BPF packet redirect helper, allowing to limit
    stack traversal in common container configs and improving TCP
    back-pressure.

    Daniel reports ~10Gbps => ~15Gbps single stream TCP performance gain.

    - Expand netlink policy support and improve policy export to user
    space. (Ge)netlink core performs request validation according to
    declared policies. Expand the expressiveness of those policies
    (min/max length and bitmasks). Allow dumping policies for particular
    commands. This is used for feature discovery by user space (instead
    of kernel version parsing or trial and error).

    - Support IGMPv3/MLDv2 multicast listener discovery protocols in
    bridge.

    - Allow more than 255 IPv4 multicast interfaces.

    - Add support for Type of Service (ToS) reflection in SYN/SYN-ACK
    packets of TCPv6.

    - In Multi-patch TCP (MPTCP) support concurrent transmission of data on
    multiple subflows in a load balancing scenario. Enhance advertising
    addresses via the RM_ADDR/ADD_ADDR options.

    - Support SMC-Dv2 version of SMC, which enables multi-subnet
    deployments.

    - Allow more calls to same peer in RxRPC.

    - Support two new Controller Area Network (CAN) protocols - CAN-FD and
    ISO 15765-2:2016.

    - Add xfrm/IPsec compat layer, solving the 32bit user space on 64bit
    kernel problem.

    - Add TC actions for implementing MPLS L2 VPNs.

    - Improve nexthop code - e.g. handle various corner cases when nexthop
    objects are removed from groups better, skip unnecessary
    notifications and make it easier to offload nexthops into HW by
    converting to a blocking notifier.

    - Support adding and consuming TCP header options by BPF programs,
    opening the doors for easy experimental and deployment-specific TCP
    option use.

    - Reorganize TCP congestion control (CC) initialization to simplify
    life of TCP CC implemented in BPF.

    - Add support for shipping BPF programs with the kernel and loading
    them early on boot via the User Mode Driver mechanism, hence reusing
    all the user space infra we have.

    - Support sleepable BPF programs, initially targeting LSM and tracing.

    - Add bpf_d_path() helper for returning full path for given 'struct
    path'.

    - Make bpf_tail_call compatible with bpf-to-bpf calls.

    - Allow BPF programs to call map_update_elem on sockmaps.

    - Add BPF Type Format (BTF) support for type and enum discovery, as
    well as support for using BTF within the kernel itself (current use
    is for pretty printing structures).

    - Support listing and getting information about bpf_links via the bpf
    syscall.

    - Enhance kernel interfaces around NIC firmware update. Allow
    specifying overwrite mask to control if settings etc. are reset
    during update; report expected max time operation may take to users;
    support firmware activation without machine reboot incl. limits of
    how much impact reset may have (e.g. dropping link or not).

    - Extend ethtool configuration interface to report IEEE-standard
    counters, to limit the need for per-vendor logic in user space.

    - Adopt or extend devlink use for debug, monitoring, fw update in many
    drivers (dsa loop, ice, ionic, sja1105, qed, mlxsw, mv88e6xxx,
    dpaa2-eth).

    - In mlxsw expose critical and emergency SFP module temperature alarms.
    Refactor port buffer handling to make the defaults more suitable and
    support setting these values explicitly via the DCBNL interface.

    - Add XDP support for Intel's igb driver.

    - Support offloading TC flower classification and filtering rules to
    mscc_ocelot switches.

    - Add PTP support for Marvell Octeontx2 and PP2.2 hardware, as well as
    fixed interval period pulse generator and one-step timestamping in
    dpaa-eth.

    - Add support for various auth offloads in WiFi APs, e.g. SAE (WPA3)
    offload.

    - Add Lynx PHY/PCS MDIO module, and convert various drivers which have
    this HW to use it. Convert mvpp2 to split PCS.

    - Support Marvell Prestera 98DX3255 24-port switch ASICs, as well as
    7-port Mediatek MT7531 IP.

    - Add initial support for QCA6390 and IPQ6018 in ath11k WiFi driver,
    and wcn3680 support in wcn36xx.

    - Improve performance for packets which don't require much offloads on
    recent Mellanox NICs by 20% by making multiple packets share a
    descriptor entry.

    - Move chelsio inline crypto drivers (for TLS and IPsec) from the
    crypto subtree to drivers/net. Move MDIO drivers out of the phy
    directory.

    - Clean up a lot of W=1 warnings, reportedly the actively developed
    subsections of networking drivers should now build W=1 warning free.

    - Make sure drivers don't use in_interrupt() to dynamically adapt their
    code. Convert tasklets to use new tasklet_setup API (sadly this
    conversion is not yet complete).

    * tag 'net-next-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2583 commits)
    Revert "bpfilter: Fix build error with CONFIG_BPFILTER_UMH"
    net, sockmap: Don't call bpf_prog_put() on NULL pointer
    bpf, selftest: Fix flaky tcp_hdr_options test when adding addr to lo
    bpf, sockmap: Add locking annotations to iterator
    netfilter: nftables: allow re-computing sctp CRC-32C in 'payload' statements
    net: fix pos incrementment in ipv6_route_seq_next
    net/smc: fix invalid return code in smcd_new_buf_create()
    net/smc: fix valid DMBE buffer sizes
    net/smc: fix use-after-free of delayed events
    bpfilter: Fix build error with CONFIG_BPFILTER_UMH
    cxgb4/ch_ipsec: Replace the module name to ch_ipsec from chcr
    net: sched: Fix suspicious RCU usage while accessing tcf_tunnel_info
    bpf: Fix register equivalence tracking.
    rxrpc: Fix loss of final ack on shutdown
    rxrpc: Fix bundle counting for exclusive connections
    netfilter: restore NF_INET_NUMHOOKS
    ibmveth: Identify ingress large send packets.
    ibmveth: Switch order of ibmveth_helper calls.
    cxgb4: handle 4-tuple PEDIT to NAT mode translation
    selftests: Add VRF route leaking tests
    ...

    Linus Torvalds
     
  • Pull trivial updates from Jiri Kosina:
    "The latest advances in computer science from the trivial queue"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial:
    xtensa: fix Kconfig typo
    spelling.txt: Remove some duplicate entries
    mtd: rawnand: oxnas: cleanup/simplify code
    selftests: vm: add fragment CONFIG_GUP_BENCHMARK
    perf: Fix opt help text for --no-bpf-event
    HID: logitech-dj: Fix spelling in comment
    bootconfig: Fix kernel message mentioning CONFIG_BOOT_CONFIG
    MAINTAINERS: rectify MMP SUPPORT after moving cputype.h
    scif: Fix spelling of EACCES
    printk: fix global comment
    lib/bitmap.c: fix spello
    fs: Fix missing 'bit' in comment

    Linus Torvalds
     

14 Oct, 2020

2 commits

  • Pull printk updates from Petr Mladek:
    "The big new thing is the fully lockless ringbuffer implementation,
    including the support for continuous lines. It will allow to store and
    read messages in any situation wihtout the risk of deadlocks and
    without the need of temporary per-CPU buffers.

    The access is still serialized by logbuf_lock. It synchronizes few
    more operations, for example, temporary buffer for formatting the
    message, syslog and kmsg_dump operations. The lock removal is being
    discussed and should be ready for the next release.

    The continuous lines are handled exactly the same way as before to
    avoid regressions in user space. It means that they are appended to
    the last message when the caller is the same. Only the last message
    can be extended.

    The data ring includes plain text of the messages. Except for an
    integer at the beginning of each message that points back to the
    descriptor ring with other metadata.

    The dictionary has to stay. journalctl uses it to filter the log. It
    allows to show messages related to a given device. The dictionary
    values are stored in the descriptor ring with the other metadata.

    This is the first part of the printk rework as discussed at Plumbers
    2019, see https://lore.kernel.org/r/87k1acz5rx.fsf@linutronix.de. The
    next big step will be handling consoles by kthreads during the normal
    system operation. It will require special handling of situations when
    the kthreads could not get scheduled, for example, early boot,
    suspend, panic.

    Other changes:

    - Add John Ogness as a reviewer for printk subsystem. He is author of
    the rework and is familiar with the code and history.

    - Fix locking in serial8250_do_startup() to prevent lockdep report.

    - Few code cleanups"

    * tag 'printk-for-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux: (27 commits)
    printk: Use fallthrough pseudo-keyword
    printk: reduce setup_text_buf size to LOG_LINE_MAX
    printk: avoid and/or handle record truncation
    printk: remove dict ring
    printk: move dictionary keys to dev_printk_info
    printk: move printk_info into separate array
    printk: reimplement log_cont using record extension
    printk: ringbuffer: add finalization/extension support
    printk: ringbuffer: change representation of states
    printk: ringbuffer: clear initial reserved fields
    printk: ringbuffer: add BLK_DATALESS() macro
    printk: ringbuffer: relocate get_data()
    printk: ringbuffer: avoid memcpy() on state_var
    printk: ringbuffer: fix setting state in desc_read()
    kernel.h: Move oops_in_progress to printk.h
    scripts/gdb: update for lockless printk ringbuffer
    scripts/gdb: add utils.read_ulong()
    docs: vmcoreinfo: add lockless printk ringbuffer vmcoreinfo
    printk: reduce LOG_BUF_SHIFT range for H8300
    printk: ringbuffer: support dataless records
    ...

    Linus Torvalds
     
  • Pull io_uring updates from Jens Axboe:

    - Add blkcg accounting for io-wq offload (Dennis)

    - A use-after-free fix for io-wq (Hillf)

    - Cancelation fixes and improvements

    - Use proper files_struct references for offload

    - Cleanup of io_uring_get_socket() since that can now go into our own
    header

    - SQPOLL fixes and cleanups, and support for sharing the thread

    - Improvement to how page accounting is done for registered buffers and
    huge pages, accounting the real pinned state

    - Series cleaning up the xarray code (Willy)

    - Various cleanups, refactoring, and improvements (Pavel)

    - Use raw spinlock for io-wq (Sebastian)

    - Add support for ring restrictions (Stefano)

    * tag 'io_uring-5.10-2020-10-12' of git://git.kernel.dk/linux-block: (62 commits)
    io_uring: keep a pointer ref_node in file_data
    io_uring: refactor *files_register()'s error paths
    io_uring: clean file_data access in files_register
    io_uring: don't delay io_init_req() error check
    io_uring: clean leftovers after splitting issue
    io_uring: remove timeout.list after hrtimer cancel
    io_uring: use a separate struct for timeout_remove
    io_uring: improve submit_state.ios_left accounting
    io_uring: simplify io_file_get()
    io_uring: kill extra check in fixed io_file_get()
    io_uring: clean up ->files grabbing
    io_uring: don't io_prep_async_work() linked reqs
    io_uring: Convert advanced XArray uses to the normal API
    io_uring: Fix XArray usage in io_uring_add_task_file
    io_uring: Fix use of XArray in __io_uring_files_cancel
    io_uring: fix break condition for __io_uring_register() waiting
    io_uring: no need to call xa_destroy() on empty xarray
    io_uring: batch account ->req_issue and task struct references
    io_uring: kill callback_head argument for io_req_task_work_add()
    io_uring: move req preps out of io_issue_sqe()
    ...

    Linus Torvalds
     

13 Oct, 2020

1 commit

  • Pull documentation updates from Jonathan Corbet:
    "As hoped, things calmed down for docs this cycle; fewer changes and
    almost no conflicts at all. This includes:

    - A reworked and expanded user-mode Linux document

    - Some simplifications and improvements for submitting-patches.rst

    - An emergency fix for (some) problems with Sphinx 3.x

    - Some welcome automarkup improvements to automatically generate
    cross-references to struct definitions and other documents

    - The usual collection of translation updates, typo fixes, etc"

    * tag 'docs-5.10' of git://git.lwn.net/linux: (81 commits)
    gpiolib: Update indentation in driver.rst for code excerpts
    Documentation/admin-guide: tainted-kernels: Fix typo occured
    Documentation: better locations for sysfs-pci, sysfs-tagging
    docs: programming-languages: refresh blurb on clang support
    Documentation: kvm: fix a typo
    Documentation: Chinese translation of Documentation/arm64/amu.rst
    doc: zh_CN: index files in arm64 subdirectory
    mailmap: add entry for
    doc: seq_file: clarify role of *pos in ->next()
    docs: trace: ring-buffer-design.rst: use the new SPDX tag
    Documentation: kernel-parameters: clarify "module." parameters
    Fix references to nommu-mmap.rst
    docs: rewrite admin-guide/sysctl/abi.rst
    docs: fb: Remove vesafb scrollback boot option
    docs: fb: Remove sstfb scrollback boot option
    docs: fb: Remove matroxfb scrollback boot option
    docs: fb: Remove framebuffer scrollback boot option
    docs: replace the old User Mode Linux HowTo with a new one
    Documentation/admin-guide: blockdev/ramdisk: remove use of "rdev"
    Documentation/admin-guide: README & svga: remove use of "rdev"
    ...

    Linus Torvalds
     

12 Oct, 2020

1 commit


10 Oct, 2020

1 commit

  • Although we have not seen any actual examples where KUnit doesn't work
    because it runs in the late init phase of the kernel, it has been a
    concern for some time that this could potentially be an issue in the
    future. So, remove KUnit from init calls entirely, instead call directly
    from kernel_init() so that KUnit runs after late init.

    Co-developed-by: Alan Maguire
    Signed-off-by: Alan Maguire
    Signed-off-by: Brendan Higgins
    Reviewed-by: Stephen Boyd
    Reviewed-by: Kees Cook
    Reviewed-by: Luis Chamberlain
    Signed-off-by: Shuah Khan

    Brendan Higgins
     

01 Oct, 2020

1 commit

  • Grab actual references to the files_struct. To avoid circular references
    issues due to this, we add a per-task note that keeps track of what
    io_uring contexts a task has used. When the tasks execs or exits its
    assigned files, we cancel requests based on this tracking.

    With that, we can grab proper references to the files table, and no
    longer need to rely on stashing away ring_fd and ring_file to check
    if the ring_fd may have been closed.

    Cc: stable@vger.kernel.org # v5.5+
    Reviewed-by: Pavel Begunkov
    Signed-off-by: Jens Axboe

    Jens Axboe
     

25 Sep, 2020

1 commit

  • nommu-mmap.rst was moved to Documentation/admin-guide/mm; this patch
    updates the remaining stale references to Documentation/mm.

    Fixes: 800c02f5d030 ("docs: move nommu-mmap.txt to admin-guide and rename to ReST")
    Signed-off-by: Stephen Kitt
    Link: https://lore.kernel.org/r/20200812092230.27541-1-steve@sk2.org
    Signed-off-by: Jonathan Corbet

    Stephen Kitt
     

23 Sep, 2020

1 commit

  • Two minor conflicts:

    1) net/ipv4/route.c, adding a new local variable while
    moving another local variable and removing it's
    initial assignment.

    2) drivers/net/dsa/microchip/ksz9477.c, overlapping changes.
    One pretty prints the port mode differently, whilst another
    changes the driver to try and obtain the port mode from
    the port node rather than the switch node.

    Signed-off-by: David S. Miller

    David S. Miller
     

19 Sep, 2020

2 commits

  • This eliminates the following sparse warning:

    init/main.c:306:6: warning: symbol 'xbc_namebuf' was not declared.
    Should it be static?

    Link: https://lkml.kernel.org/r/20200915070324.2239473-1-yanaijie@huawei.com

    Reported-by: Hulk Robot
    Acked-by: Masami Hiramatsu
    Signed-off-by: Jason Yan
    Signed-off-by: Steven Rostedt (VMware)

    Jason Yan
     
  • Since kprobe_event= cmdline option allows user to put kprobes on the
    functions in initmem, kprobe has to make such probes gone after boot.
    Currently the probes on the init functions in modules will be handled
    by module callback, but the kernel init text isn't handled.
    Without this, kprobes may access non-exist text area to disable or
    remove it.

    Link: https://lkml.kernel.org/r/159972810544.428528.1839307531600646955.stgit@devnote2

    Fixes: 970988e19eb0 ("tracing/kprobe: Add kprobe_event= boot parameter")
    Cc: Jonathan Corbet
    Cc: Shuah Khan
    Cc: Randy Dunlap
    Cc: Ingo Molnar
    Cc: stable@vger.kernel.org
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt (VMware)

    Masami Hiramatsu
     

08 Sep, 2020

1 commit

  • The .bss section for the h8300 is relatively small. A value of
    CONFIG_LOG_BUF_SHIFT that is larger than 19 will create a static
    printk ringbuffer that is too large. Limit the range appropriately
    for the H8300.

    Reported-by: kernel test robot
    Signed-off-by: John Ogness
    Reviewed-by: Sergey Senozhatsky
    Acked-by: Steven Rostedt (VMware)
    Signed-off-by: Petr Mladek
    Link: https://lore.kernel.org/r/20200812073122.25412-1-john.ogness@linutronix.de

    John Ogness
     

05 Sep, 2020

2 commits

  • We got slightly different patches removing a double word
    in a comment in net/ipv4/raw.c - picked the version from net.

    Simple conflict in drivers/net/ethernet/ibm/ibmvnic.c. Use cached
    values instead of VNIC login response buffer (following what
    commit 507ebe6444a4 ("ibmvnic: Fix use-after-free of VNIC login
    response buffer") did).

    Signed-off-by: Jakub Kicinski

    Jakub Kicinski
     
  • init_stat() returns 0 on success, same as vfs_lstat(). When it replaced
    vfs_lstat(), the '!' was dropped.

    Fixes: 716308a5331b ("init: add an init_stat helper")
    Signed-off-by: Barret Rhoden
    Reviewed-by: Christoph Hellwig
    Signed-off-by: Linus Torvalds

    Barret Rhoden
     

01 Sep, 2020

1 commit


29 Aug, 2020

1 commit

  • Introduce sleepable BPF programs that can request such property for themselves
    via BPF_F_SLEEPABLE flag at program load time. In such case they will be able
    to use helpers like bpf_copy_from_user() that might sleep. At present only
    fentry/fexit/fmod_ret and lsm programs can request to be sleepable and only
    when they are attached to kernel functions that are known to allow sleeping.

    The non-sleepable programs are relying on implicit rcu_read_lock() and
    migrate_disable() to protect life time of programs, maps that they use and
    per-cpu kernel structures used to pass info between bpf programs and the
    kernel. The sleepable programs cannot be enclosed into rcu_read_lock().
    migrate_disable() maps to preempt_disable() in non-RT kernels, so the progs
    should not be enclosed in migrate_disable() as well. Therefore
    rcu_read_lock_trace is used to protect the life time of sleepable progs.

    There are many networking and tracing program types. In many cases the
    'struct bpf_prog *' pointer itself is rcu protected within some other kernel
    data structure and the kernel code is using rcu_dereference() to load that
    program pointer and call BPF_PROG_RUN() on it. All these cases are not touched.
    Instead sleepable bpf programs are allowed with bpf trampoline only. The
    program pointers are hard-coded into generated assembly of bpf trampoline and
    synchronize_rcu_tasks_trace() is used to protect the life time of the program.
    The same trampoline can hold both sleepable and non-sleepable progs.

    When rcu_read_lock_trace is held it means that some sleepable bpf program is
    running from bpf trampoline. Those programs can use bpf arrays and preallocated
    hash/lru maps. These map types are waiting on programs to complete via
    synchronize_rcu_tasks_trace();

    Updates to trampoline now has to do synchronize_rcu_tasks_trace() and
    synchronize_rcu_tasks() to wait for sleepable progs to finish and for
    trampoline assembly to finish.

    This is the first step of introducing sleepable progs. Eventually dynamically
    allocated hash maps can be allowed and networking program types can become
    sleepable too.

    Signed-off-by: Alexei Starovoitov
    Signed-off-by: Daniel Borkmann
    Reviewed-by: Josef Bacik
    Acked-by: Andrii Nakryiko
    Acked-by: KP Singh
    Link: https://lore.kernel.org/bpf/20200827220114.69225-3-alexei.starovoitov@gmail.com

    Alexei Starovoitov
     

20 Aug, 2020

1 commit

  • Add kernel module with user mode driver that populates bpffs with
    BPF iterators.

    $ mount bpffs /my/bpffs/ -t bpf
    $ ls -la /my/bpffs/
    total 4
    drwxrwxrwt 2 root root 0 Jul 2 00:27 .
    drwxr-xr-x 19 root root 4096 Jul 2 00:09 ..
    -rw------- 1 root root 0 Jul 2 00:27 maps.debug
    -rw------- 1 root root 0 Jul 2 00:27 progs.debug

    The user mode driver will load BPF Type Formats, create BPF maps, populate BPF
    maps, load two BPF programs, attach them to BPF iterators, and finally send two
    bpf_link IDs back to the kernel.
    The kernel will pin two bpf_links into newly mounted bpffs instance under
    names "progs.debug" and "maps.debug". These two files become human readable.

    $ cat /my/bpffs/progs.debug
    id name attached
    11 dump_bpf_map bpf_iter_bpf_map
    12 dump_bpf_prog bpf_iter_bpf_prog
    27 test_pkt_access
    32 test_main test_pkt_access test_pkt_access
    33 test_subprog1 test_pkt_access_subprog1 test_pkt_access
    34 test_subprog2 test_pkt_access_subprog2 test_pkt_access
    35 test_subprog3 test_pkt_access_subprog3 test_pkt_access
    36 new_get_skb_len get_skb_len test_pkt_access
    37 new_get_skb_ifindex get_skb_ifindex test_pkt_access
    38 new_get_constant get_constant test_pkt_access

    The BPF program dump_bpf_prog() in iterators.bpf.c is printing this data about
    all BPF programs currently loaded in the system. This information is unstable
    and will change from kernel to kernel as ".debug" suffix conveys.

    Signed-off-by: Alexei Starovoitov
    Signed-off-by: Daniel Borkmann
    Link: https://lore.kernel.org/bpf/20200819042759.51280-4-alexei.starovoitov@gmail.com

    Alexei Starovoitov
     

15 Aug, 2020

1 commit

  • Pull OpenRISC updates from Stafford Horne:
    "A few patches all over the place during this cycle, mostly bug and
    sparse warning fixes for OpenRISC, but a few enhancements too. Note,
    there are 2 non OpenRISC specific fixups.

    Non OpenRISC fixes:

    - In init we need to align the init_task correctly to fix an issue
    with MUTEX_FLAGS, reviewed by Peter Z. No one picked this up so I
    kept it on my tree.

    - In asm-generic/io.h I fixed up some sparse warnings, OK'd by Arnd.
    Arnd asked to merge it via my tree.

    OpenRISC fixes:

    - Many fixes for OpenRISC sprase warnings.

    - Add support OpenRISC SMP tlb flushing rather than always flushing
    the entire TLB on every CPU.

    - Fix bug when dumping stack via /proc/xxx/stack of user threads"

    * tag 'for-linus' of git://github.com/openrisc/linux:
    openrisc: uaccess: Add user address space check to access_ok
    openrisc: signal: Fix sparse address space warnings
    openrisc: uaccess: Remove unused macro __addr_ok
    openrisc: uaccess: Use static inline function in access_ok
    openrisc: uaccess: Fix sparse address space warnings
    openrisc: io: Fixup defines and move include to the end
    asm-generic/io.h: Fix sparse warnings on big-endian architectures
    openrisc: Implement proper SMP tlb flushing
    openrisc: Fix oops caused when dumping stack
    openrisc: Add support for external initrd images
    init: Align init_task to avoid conflict with MUTEX_FLAGS
    openrisc: fix __user in raw_copy_to_user()'s prototype

    Linus Torvalds
     

11 Aug, 2020

1 commit

  • Pull locking updates from Thomas Gleixner:
    "A set of locking fixes and updates:

    - Untangle the header spaghetti which causes build failures in
    various situations caused by the lockdep additions to seqcount to
    validate that the write side critical sections are non-preemptible.

    - The seqcount associated lock debug addons which were blocked by the
    above fallout.

    seqcount writers contrary to seqlock writers must be externally
    serialized, which usually happens via locking - except for strict
    per CPU seqcounts. As the lock is not part of the seqcount, lockdep
    cannot validate that the lock is held.

    This new debug mechanism adds the concept of associated locks.
    sequence count has now lock type variants and corresponding
    initializers which take a pointer to the associated lock used for
    writer serialization. If lockdep is enabled the pointer is stored
    and write_seqcount_begin() has a lockdep assertion to validate that
    the lock is held.

    Aside of the type and the initializer no other code changes are
    required at the seqcount usage sites. The rest of the seqcount API
    is unchanged and determines the type at compile time with the help
    of _Generic which is possible now that the minimal GCC version has
    been moved up.

    Adding this lockdep coverage unearthed a handful of seqcount bugs
    which have been addressed already independent of this.

    While generally useful this comes with a Trojan Horse twist: On RT
    kernels the write side critical section can become preemtible if
    the writers are serialized by an associated lock, which leads to
    the well known reader preempts writer livelock. RT prevents this by
    storing the associated lock pointer independent of lockdep in the
    seqcount and changing the reader side to block on the lock when a
    reader detects that a writer is in the write side critical section.

    - Conversion of seqcount usage sites to associated types and
    initializers"

    * tag 'locking-urgent-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
    locking/seqlock, headers: Untangle the spaghetti monster
    locking, arch/ia64: Reduce header dependencies by moving XTP bits into the new header
    x86/headers: Remove APIC headers from
    seqcount: More consistent seqprop names
    seqcount: Compress SEQCNT_LOCKNAME_ZERO()
    seqlock: Fold seqcount_LOCKNAME_init() definition
    seqlock: Fold seqcount_LOCKNAME_t definition
    seqlock: s/__SEQ_LOCKDEP/__SEQ_LOCK/g
    hrtimer: Use sequence counter with associated raw spinlock
    kvm/eventfd: Use sequence counter with associated spinlock
    userfaultfd: Use sequence counter with associated spinlock
    NFSv4: Use sequence counter with associated spinlock
    iocost: Use sequence counter with associated spinlock
    raid5: Use sequence counter with associated spinlock
    vfs: Use sequence counter with associated spinlock
    timekeeping: Use sequence counter with associated raw spinlock
    xfrm: policy: Use sequence counters with associated lock
    netfilter: nft_set_rbtree: Use sequence counter with associated rwlock
    netfilter: conntrack: Use sequence counter with associated spinlock
    sched: tasks: Use sequence counter with associated spinlock
    ...

    Linus Torvalds
     

08 Aug, 2020

5 commits

  • Pull tracing updates from Steven Rostedt:

    - The biggest news in that the tracing ring buffer can now time events
    that interrupted other ring buffer events.

    Before this change, if an interrupt came in while recording another
    event, and that interrupt also had an event, those events would all
    have the same time stamp as the event it interrupted.

    Now, with the new design, those events will have a unique time stamp
    and rightfully display the time for those events that were recorded
    while interrupting another event.

    - Bootconfig how has an "override" operator that lets the users have a
    default config, but then add options to override the default.

    - A fix was made to properly filter function graph tracing to the
    ftrace PIDs. This came in at the end of the -rc cycle, and needs to
    be backported.

    - Several clean ups, performance updates, and minor fixes as well.

    * tag 'trace-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (39 commits)
    tracing: Add trace_array_init_printk() to initialize instance trace_printk() buffers
    kprobes: Fix compiler warning for !CONFIG_KPROBES_ON_FTRACE
    tracing: Use trace_sched_process_free() instead of exit() for pid tracing
    bootconfig: Fix to find the initargs correctly
    Documentation: bootconfig: Add bootconfig override operator
    tools/bootconfig: Add testcases for value override operator
    lib/bootconfig: Add override operator support
    kprobes: Remove show_registers() function prototype
    tracing/uprobe: Remove dead code in trace_uprobe_register()
    kprobes: Fix NULL pointer dereference at kprobe_ftrace_handler
    ftrace: Fix ftrace_trace_task return value
    tracepoint: Use __used attribute definitions from compiler_attributes.h
    tracepoint: Mark __tracepoint_string's __used
    trace : Have tracing buffer info use kvzalloc instead of kzalloc
    tracing: Remove outdated comment in stack handling
    ftrace: Do not let direct or IPMODIFY ftrace_ops be added to module and set trampolines
    ftrace: Setup correct FTRACE_FL_REGS flags for module
    tracing/hwlat: Honor the tracing_cpumask
    tracing/hwlat: Drop the duplicate assignment in start_kthread()
    tracing: Save one trace_event->type by using __TRACE_LAST_TYPE
    ...

    Linus Torvalds
     
  • Merge misc updates from Andrew Morton:

    - a few MM hotfixes

    - kthread, tools, scripts, ntfs and ocfs2

    - some of MM

    Subsystems affected by this patch series: kthread, tools, scripts, ntfs,
    ocfs2 and mm (hofixes, pagealloc, slab-generic, slab, slub, kcsan,
    debug, pagecache, gup, swap, shmem, memcg, pagemap, mremap, mincore,
    sparsemem, vmalloc, kasan, pagealloc, hugetlb and vmscan).

    * emailed patches from Andrew Morton : (162 commits)
    mm: vmscan: consistent update to pgrefill
    mm/vmscan.c: fix typo
    khugepaged: khugepaged_test_exit() check mmget_still_valid()
    khugepaged: retract_page_tables() remember to test exit
    khugepaged: collapse_pte_mapped_thp() protect the pmd lock
    khugepaged: collapse_pte_mapped_thp() flush the right range
    mm/hugetlb: fix calculation of adjust_range_if_pmd_sharing_possible
    mm: thp: replace HTTP links with HTTPS ones
    mm/page_alloc: fix memalloc_nocma_{save/restore} APIs
    mm/page_alloc.c: skip setting nodemask when we are in interrupt
    mm/page_alloc: fallbacks at most has 3 elements
    mm/page_alloc: silence a KASAN false positive
    mm/page_alloc.c: remove unnecessary end_bitidx for [set|get]_pfnblock_flags_mask()
    mm/page_alloc.c: simplify pageblock bitmap access
    mm/page_alloc.c: extract the common part in pfn_to_bitidx()
    mm/page_alloc.c: replace the definition of NR_MIGRATETYPE_BITS with PB_migratetype_bits
    mm/shuffle: remove dynamic reconfiguration
    mm/memory_hotplug: document why shuffle_zone() is relevant
    mm/page_alloc: remove nr_free_pagecache_pages()
    mm: remove vm_total_pages
    ...

    Linus Torvalds
     
  • This patch prepares Software Tag-Based KASAN for stack tagging support.

    With stack tagging enabled, KASAN tags stack variable in each function in
    its prologue. In start_kernel() stack variables get tagged before KASAN
    is enabled via setup_arch()->kasan_init(). As the result the tags for
    start_kernel()'s stack variables end up in the temporary shadow memory.
    Later when KASAN gets enabled, switched to normal shadow, and starts
    checking tags, this leads to false-positive reports, as proper tags are
    missing in normal shadow.

    Disable KASAN instrumentation for start_kernel(). Also disable it for
    arm64's setup_arch() as a precaution (it doesn't have any stack variables
    right now).

    [andreyknvl@google.com: reorder attributes for start_kernel()]
    Link: http://lkml.kernel.org/r/26fb6165a17abcf61222eda5184c030fb6b133d1.1596544734.git.andreyknvl@google.com

    Signed-off-by: Andrey Konovalov
    Signed-off-by: Andrew Morton
    Acked-by: Catalin Marinas [arm64]
    Cc: Alexander Potapenko
    Cc: Andrey Ryabinin
    Cc: Dmitry Vyukov
    Cc: Elena Petrova
    Cc: Marco Elver
    Cc: Vincenzo Frascino
    Cc: Walter Wu
    Cc: Ard Biesheuvel
    Link: http://lkml.kernel.org/r/55d432671a92e931ab8234b03dc36b14d4c21bfb.1596199677.git.andreyknvl@google.com
    Signed-off-by: Linus Torvalds

    Andrey Konovalov
     
  • Patch series "mm: Expand CONFIG_SLAB_FREELIST_HARDENED to include SLAB"

    In reviewing Vlastimil Babka's latest slub debug series, I realized[1]
    that several checks under CONFIG_SLAB_FREELIST_HARDENED weren't being
    applied to SLAB. Fix this by expanding the Kconfig coverage, and adding a
    simple double-free test for SLAB.

    This patch (of 2):

    Include SLAB caches when performing kmem_cache pointer verification. A
    defense against such corruption[1] should be applied to all the
    allocators. With this added, the "SLAB_FREE_CROSS" and "SLAB_FREE_PAGE"
    LKDTM tests now pass on SLAB:

    lkdtm: Performing direct entry SLAB_FREE_CROSS
    lkdtm: Attempting cross-cache slab free ...
    ------------[ cut here ]------------
    cache_from_obj: Wrong slab cache. lkdtm-heap-b but object is from lkdtm-heap-a
    WARNING: CPU: 2 PID: 2195 at mm/slab.h:530 kmem_cache_free+0x8d/0x1d0
    ...
    lkdtm: Performing direct entry SLAB_FREE_PAGE
    lkdtm: Attempting non-Slab slab free ...
    ------------[ cut here ]------------
    virt_to_cache: Object is not a Slab page!
    WARNING: CPU: 1 PID: 2202 at mm/slab.h:489 kmem_cache_free+0x196/0x1d0

    Additionally clean up neighboring Kconfig entries for clarity,
    readability, and redundant option removal.

    [1] https://github.com/ThomasKing2014/slides/raw/master/Building%20universal%20Android%20rooting%20with%20a%20type%20confusion%20vulnerability.pdf

    Fixes: 598a0717a816 ("mm/slab: validate cache membership under freelist hardening")
    Signed-off-by: Kees Cook
    Signed-off-by: Andrew Morton
    Acked-by: Vlastimil Babka
    Cc: Alexander Popov
    Cc: Christoph Lameter
    Cc: David Rientjes
    Cc: Jann Horn
    Cc: Joonsoo Kim
    Cc: Matthew Garrett
    Cc: Pekka Enberg
    Cc: Roman Gushchin
    Cc: Vijayanand Jitta
    Cc: Vinayak Menon
    Link: http://lkml.kernel.org/r/20200625215548.389774-1-keescook@chromium.org
    Link: http://lkml.kernel.org/r/20200625215548.389774-2-keescook@chromium.org
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • Pull init and set_fs() cleanups from Al Viro:
    "Christoph's 'getting rid of ksys_...() uses under KERNEL_DS' series"

    * 'hch.init_path' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (50 commits)
    init: add an init_dup helper
    init: add an init_utimes helper
    init: add an init_stat helper
    init: add an init_mknod helper
    init: add an init_mkdir helper
    init: add an init_symlink helper
    init: add an init_link helper
    init: add an init_eaccess helper
    init: add an init_chmod helper
    init: add an init_chown helper
    init: add an init_chroot helper
    init: add an init_chdir helper
    init: add an init_rmdir helper
    init: add an init_unlink helper
    init: add an init_umount helper
    init: add an init_mount helper
    init: mark create_dev as __init
    init: mark console_on_rootfs as __init
    init: initialize ramdisk_execute_command at compile time
    devtmpfs: refactor devtmpfsd()
    ...

    Linus Torvalds
     

05 Aug, 2020

6 commits

  • Pull documentation updates from Jonathan Corbet:
    "It's been a busy cycle for documentation - hopefully the busiest for a
    while to come. Changes include:

    - Some new Chinese translations

    - Progress on the battle against double words words and non-HTTPS
    URLs

    - Some block-mq documentation

    - More RST conversions from Mauro. At this point, that task is
    essentially complete, so we shouldn't see this kind of churn again
    for a while. Unless we decide to switch to asciidoc or
    something...:)

    - Lots of typo fixes, warning fixes, and more"

    * tag 'docs-5.9' of git://git.lwn.net/linux: (195 commits)
    scripts/kernel-doc: optionally treat warnings as errors
    docs: ia64: correct typo
    mailmap: add entry for
    doc/zh_CN: add cpu-load Chinese version
    Documentation/admin-guide: tainted-kernels: fix spelling mistake
    MAINTAINERS: adjust kprobes.rst entry to new location
    devices.txt: document rfkill allocation
    PCI: correct flag name
    docs: filesystems: vfs: correct flag name
    docs: filesystems: vfs: correct sync_mode flag names
    docs: path-lookup: markup fixes for emphasis
    docs: path-lookup: more markup fixes
    docs: path-lookup: fix HTML entity mojibake
    CREDITS: Replace HTTP links with HTTPS ones
    docs: process: Add an example for creating a fixes tag
    doc/zh_CN: add Chinese translation prefer section
    doc/zh_CN: add clearing-warn-once Chinese version
    doc/zh_CN: add admin-guide index
    doc:it_IT: process: coding-style.rst: Correct __maybe_unused compiler label
    futex: MAINTAINERS: Re-add selftests directory
    ...

    Linus Torvalds
     
  • Add a simple helper to grab a reference to a file and install it at
    the next available fd, and switch the early init code over to it.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Pull execve updates from Eric Biederman:
    "During the development of v5.7 I ran into bugs and quality of
    implementation issues related to exec that could not be easily fixed
    because of the way exec is implemented. So I have been diggin into
    exec and cleaning up what I can.

    This cycle I have been looking at different ideas and different
    implementations to see what is possible to improve exec, and cleaning
    the way exec interfaces with in kernel users. Only cleaning up the
    interfaces of exec with rest of the kernel has managed to stabalize
    and make it through review in time for v5.9-rc1 resulting in 2 sets of
    changes this cycle.

    - Implement kernel_execve

    - Make the user mode driver code a better citizen

    With kernel_execve the code size got a little larger as the copying of
    parameters from userspace and copying of parameters from userspace is
    now separate. The good news is kernel threads no longer need to play
    games with set_fs to use exec. Which when combined with the rest of
    Christophs set_fs changes should security bugs with set_fs much more
    difficult"

    * 'exec-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace: (23 commits)
    exec: Implement kernel_execve
    exec: Factor bprm_stack_limits out of prepare_arg_pages
    exec: Factor bprm_execve out of do_execve_common
    exec: Move bprm_mm_init into alloc_bprm
    exec: Move initialization of bprm->filename into alloc_bprm
    exec: Factor out alloc_bprm
    exec: Remove unnecessary spaces from binfmts.h
    umd: Stop using split_argv
    umd: Remove exit_umh
    bpfilter: Take advantage of the facilities of struct pid
    exit: Factor thread_group_exited out of pidfd_poll
    umd: Track user space drivers with struct pid
    bpfilter: Move bpfilter_umh back into init data
    exec: Remove do_execve_file
    umh: Stop calling do_execve_file
    umd: Transform fork_usermode_blob into fork_usermode_driver
    umd: Rename umd_info.cmdline umd_info.driver_name
    umd: For clarity rename umh_info umd_info
    umh: Separate the user mode driver and the user mode helper support
    umh: Remove call_usermodehelper_setup_file.
    ...

    Linus Torvalds
     
  • Pull seccomp updates from Kees Cook:
    "There are a bunch of clean ups and selftest improvements along with
    two major updates to the SECCOMP_RET_USER_NOTIF filter return:
    EPOLLHUP support to more easily detect the death of a monitored
    process, and being able to inject fds when intercepting syscalls that
    expect an fd-opening side-effect (needed by both container folks and
    Chrome). The latter continued the refactoring of __scm_install_fd()
    started by Christoph, and in the process found and fixed a handful of
    bugs in various callers.

    - Improved selftest coverage, timeouts, and reporting

    - Add EPOLLHUP support for SECCOMP_RET_USER_NOTIF (Christian Brauner)

    - Refactor __scm_install_fd() into __receive_fd() and fix buggy
    callers

    - Introduce 'addfd' command for SECCOMP_RET_USER_NOTIF (Sargun
    Dhillon)"

    * tag 'seccomp-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux: (30 commits)
    selftests/seccomp: Test SECCOMP_IOCTL_NOTIF_ADDFD
    seccomp: Introduce addfd ioctl to seccomp user notifier
    fs: Expand __receive_fd() to accept existing fd
    pidfd: Replace open-coded receive_fd()
    fs: Add receive_fd() wrapper for __receive_fd()
    fs: Move __scm_install_fd() to __receive_fd()
    net/scm: Regularize compat handling of scm_detach_fds()
    pidfd: Add missing sock updates for pidfd_getfd()
    net/compat: Add missing sock updates for SCM_RIGHTS
    selftests/seccomp: Check ENOSYS under tracing
    selftests/seccomp: Refactor to use fixture variants
    selftests/harness: Clean up kern-doc for fixtures
    seccomp: Use -1 marker for end of mode 1 syscall list
    seccomp: Fix ioctl number for SECCOMP_IOCTL_NOTIF_ID_VALID
    selftests/seccomp: Rename user_trap_syscall() to user_notif_syscall()
    selftests/seccomp: Make kcmp() less required
    seccomp: Use pr_fmt
    selftests/seccomp: Improve calibration loop
    selftests/seccomp: use 90s as timeout
    selftests/seccomp: Expand benchmark to per-filter measurements
    ...

    Linus Torvalds
     
  • Since the parse_args() stops parsing at '--', bootconfig_params()
    will never get the '--' as param and initargs_found never be true.
    In the result, if we pass some init arguments via the bootconfig,
    those are always appended to the kernel command line with '--'
    even if the kernel command line already has '--'.

    To fix this correctly, check the return value of parse_args()
    and set initargs_found true if the return value is not an error
    but a valid address.

    Link: https://lkml.kernel.org/r/159650953285.270383.14822353843556363851.stgit@devnote2

    Fixes: f61872bb58a1 ("bootconfig: Use parse_args() to find bootconfig and '--'")
    Cc: stable@vger.kernel.org
    Reported-by: Arvind Sankar
    Suggested-by: Arvind Sankar
    Signed-off-by: Masami Hiramatsu
    Signed-off-by: Steven Rostedt (VMware)

    Masami Hiramatsu
     
  • Pull automatic variable initialization updates from Kees Cook:
    "This adds the "zero" init option from Clang, which is being used
    widely in production builds of Android and Chrome OS (though it also
    keeps the "pattern" init, which is better for debug builds).

    - Introduce CONFIG_INIT_STACK_ALL_ZERO (Alexander Potapenko)"

    * tag 'var-init-v5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    security: allow using Clang's zero initialization for stack variables

    Linus Torvalds
     

04 Aug, 2020

3 commits

  • When booting on 32-bit machines (seen on OpenRISC) I saw this warning
    with CONFIG_DEBUG_MUTEXES turned on.

    ------------[ cut here ]------------
    WARNING: CPU: 0 PID: 0 at kernel/locking/mutex.c:1242 __mutex_unlock_slowpath+0x328/0x3ec
    DEBUG_LOCKS_WARN_ON(__owner_task(owner) != current)
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper Not tainted 5.8.0-rc1-simple-smp-00005-g2864e2171db4-dirty #179
    Call trace:
    [] dump_stack+0x34/0x48
    [] __warn+0x104/0x158
    [] ? __mutex_unlock_slowpath+0x328/0x3ec
    [] warn_slowpath_fmt+0x7c/0x94
    [] __mutex_unlock_slowpath+0x328/0x3ec
    [] mutex_unlock+0x18/0x28
    [] __cpuhp_setup_state_cpuslocked.part.0+0x29c/0x2f4
    [] ? page_alloc_cpu_dead+0x0/0x30
    [] ? start_kernel+0x0/0x684
    [] __cpuhp_setup_state+0x4c/0x5c
    [] page_alloc_init+0x34/0x68
    [] ? start_kernel+0x1a0/0x684
    [] ? early_init_dt_scan_nodes+0x60/0x70
    irq event stamp: 0

    I traced this to kernel/locking/mutex.c storing 3 bits of MUTEX_FLAGS in
    the task_struct pointer (mutex.owner). There is a comment saying that
    task_structs are always aligned to L1_CACHE_BYTES. This is not true for
    the init_task.

    On 64-bit machines this is not a problem because symbol addresses are
    naturally aligned to 64-bits providing 3 bits for MUTEX_FLAGS. Howerver,
    for 32-bit machines the symbol address only has 2 bits available.

    Fix this by setting init_task alignment to at least L1_CACHE_BYTES.

    Signed-off-by: Stafford Horne
    Acked-by: Peter Zijlstra (Intel)

    Stafford Horne
     
  • Pull x86 cleanups from Ingo Molnar:
    "Misc cleanups all around the place"

    * tag 'x86-cleanups-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/ioperm: Initialize pointer bitmap with NULL rather than 0
    x86: uv: uv_hub.h: Delete duplicated word
    x86: cmpxchg_32.h: Delete duplicated word
    x86: bootparam.h: Delete duplicated word
    x86/mm: Remove the unused mk_kernel_pgd() #define
    x86/tsc: Remove unused "US_SCALE" and "NS_SCALE" leftover macros
    x86/ioapic: Remove unused "IOAPIC_AUTO" define
    x86/mm: Drop unused MAX_PHYSADDR_BITS
    x86/msr: Move the F15h MSRs where they belong
    x86/idt: Make idt_descr static
    initrd: Remove erroneous comment
    x86/mm/32: Fix -Wmissing prototypes warnings for init.c
    cpu/speculation: Add prototype for cpu_show_srbds()
    x86/mm: Fix -Wmissing-prototypes warnings for arch/x86/mm/init.c
    x86/asm: Unify __ASSEMBLY__ blocks
    x86/cpufeatures: Mark two free bits in word 3
    x86/msr: Lift AMD family 0x15 power-specific MSRs

    Linus Torvalds
     
  • Pull x86 boot updates from Ingo Molnar:
    "The main change in this cycle was to add support for ZSTD-compressed
    kernel and initrd images.

    ZSTD has a very fast decompressor, yet it compresses better than gzip"

    * tag 'x86-boot-2020-08-03' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Documentation: dontdiff: Add zstd compressed files
    .gitignore: Add ZSTD-compressed files
    x86: Add support for ZSTD compressed kernel
    x86: Bump ZO_z_extra_bytes margin for zstd
    usr: Add support for zstd compressed initramfs
    init: Add support for zstd compressed kernel
    lib: Add zstd support to decompress
    lib: Prepare zstd for preboot environment, improve performance

    Linus Torvalds
     

31 Jul, 2020

2 commits

  • - Add the zstd and zstd22 cmds to scripts/Makefile.lib

    - Add the HAVE_KERNEL_ZSTD and KERNEL_ZSTD options

    Architecture specific support is still needed for 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-4-nickrterrell@gmail.com

    Nick Terrell
     
  • Add a simple helper to set timestamps with a kernel space file name and
    switch the early init code over to it.

    Signed-off-by: Christoph Hellwig

    Christoph Hellwig