31 Jan, 2020

15 commits

  • BPF dispatcher functions are patched at runtime to perform direct
    instead of indirect calls. Disable CFI for the dispatcher functions
    to avoid conflicts.

    (re-add due to merge conflicts previously)

    Bug: 145210207
    Signed-off-by: Sami Tolvanen
    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I7edf6052e121d16ccb0f3d3492ff4eefedfa509e

    Sami Tolvanen
     
  • …net-next") into android-common

    Baby steps in the 5.6-rc1 merge cycle to make things easier to review
    and debug.

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I4c44b3c32065ea0ed8175b31665f2a4195a27300

    Greg Kroah-Hartman
     
  • This reverts commit aa2cc4ed1566972b2afb391239364c0f498ca371.

    It conflicts with the upstream BPF changes so needs to be dropped for
    now as it will show up throught the BPF tree.

    Cc: Sami Tolvanen
    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I0a38cbaf388c3362f8fd7fad7139b16ea9967fe7

    Greg Kroah-Hartman
     
  • This reverts commit 22cf3ea7201b8b16ac3c1c54f470f9f7570365e2.

    It conflicts with the BPF merge and will come in through the upstream
    tree.

    Cc: Sami Tolvanen
    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I404d2e9efcd6057d481be2562cb9b2a559b70e58

    Greg Kroah-Hartman
     
  • This reverts commit 3ea9abc389264545d07d84ff0ac8b5b3320c9e4c.

    It conflicts with the BPF merge from upstream and will come in through
    that tree.

    Cc: Sami Tolvanen
    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I59c2176184c955d240b571d000460d89c6d2f80d

    Greg Kroah-Hartman
     
  • This reverts commit f6a4d900cc5031dc4521a50b795c6e0b5365f96a.

    It conflicts with the BPF merge and will come in through that tree
    instead.

    Cc: Sami Tolvanen
    Signed-off-by: Greg Kroah-Hartman
    Change-Id: Idffa84def2a994a306c79803d49b7461adfae44c

    Greg Kroah-Hartman
     
  • This reverts commit cedd91c6f4c46fe002ec1a33139620321a62a399.

    It conflicts with the BPF merge and will have to be added back later "by
    hand".

    Cc: Sami Tolvanen
    Signed-off-by: Greg Kroah-Hartman
    Change-Id: I9b070d804c16b12a416ddc630c4440ea85f5531b

    Greg Kroah-Hartman
     
  • …kernel/git/herbert/crypto-2.6") into android-mainline

    Baby steps in the 5.6-rc1 merge cycle to make things easier to review
    and debug.

    Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
    Change-Id: I6d63f7c9484210bae7474a809defd1aaa58e15f8

    Greg Kroah-Hartman
     
  • …cm/fs/fscrypt/fscrypt") into android-mainline

    Merge the upstream merge of fscrypt-for-linus, to resolve conflicts
    between the fscrypt changes that went upstream in 5.6 and the inline
    crypto and hardware-wrapped key support that is currently being carried
    in the Android common kernels.

    Conflicts:
    fs/crypto/Kconfig
    fs/crypto/bio.c
    fs/crypto/fname.c
    fs/crypto/fscrypt_private.h
    fs/crypto/keyring.c
    fs/crypto/keysetup.c
    include/uapi/linux/fscrypt.h

    Merge resolution notes:

    - In fscrypt_zeroout_range(), split the inline crypto case into a
    separate function fscrypt_zeroout_range_inlinecrypt(), as mixing the
    two cases together became much harder due to the upstream changes.

    - Allow the size of fscrypt-provisioning keys to be up to
    FSCRYPT_MAX_HW_WRAPPED_KEY_SIZE rather than FSCRYPT_MAX_KEY_SIZE.

    Change-Id: Ib1e6b9eda8fb5dcfc6bdc8fa89d93f72b088c5f6
    Signed-off-by: Eric Biggers <ebiggers@google.com>

    Eric Biggers
     
  • BPF dispatcher functions are patched at runtime to perform direct
    instead of indirect calls. Disable CFI for the dispatcher functions
    to avoid conflicts.

    Bug: 145210207
    Change-Id: I61dc7ce8a549145a79b7e69c646888578e0641ba
    Signed-off-by: Sami Tolvanen

    Sami Tolvanen
     
  • >From Intel 64 and IA-32 Architectures Optimization Reference Manual,
    3.4.1.4 Code Alignment, Assembly/Compiler Coding Rule 11: All branch
    targets should be 16-byte aligned.

    This commits aligns branch targets according to the Intel manual.

    The nops used to align branch targets make the dispatcher larger, and
    therefore the number of supported dispatch points/programs are
    descreased from 64 to 48.

    Signed-off-by: Björn Töpel
    Signed-off-by: Alexei Starovoitov
    Link: https://lore.kernel.org/bpf/20191213175112.30208-7-bjorn.topel@gmail.com
    (cherry picked from commit 116eb788f57c9c35c40b29cfaa2607020de99a84)
    Bug: 145210207
    Change-Id: I04996cd41bf109aaa63b5aa23773c34ef1f90d8b
    Signed-off-by: Sami Tolvanen

    Björn Töpel
     
  • This commit adds a BPF dispatcher for XDP. The dispatcher is updated
    from the XDP control-path, dev_xdp_install(), and used when an XDP
    program is run via bpf_prog_run_xdp().

    Signed-off-by: Björn Töpel
    Signed-off-by: Alexei Starovoitov
    Link: https://lore.kernel.org/bpf/20191213175112.30208-4-bjorn.topel@gmail.com
    (cherry picked from commit 7e6897f95935973c3253fd756135b5ea58043dc8)
    Bug: 145210207
    Change-Id: Icc5baa51e9392714ff38a5b3dbce7e5dba027a11
    Signed-off-by: Sami Tolvanen

    Björn Töpel
     
  • The BPF dispatcher is a multi-way branch code generator, mainly
    targeted for XDP programs. When an XDP program is executed via the
    bpf_prog_run_xdp(), it is invoked via an indirect call. The indirect
    call has a substantial performance impact, when retpolines are
    enabled. The dispatcher transform indirect calls to direct calls, and
    therefore avoids the retpoline. The dispatcher is generated using the
    BPF JIT, and relies on text poking provided by bpf_arch_text_poke().

    The dispatcher hijacks a trampoline function it via the __fentry__ nop
    of the trampoline. One dispatcher instance currently supports up to 64
    dispatch points. A user creates a dispatcher with its corresponding
    trampoline with the DEFINE_BPF_DISPATCHER macro.

    Signed-off-by: Björn Töpel
    Signed-off-by: Alexei Starovoitov
    Link: https://lore.kernel.org/bpf/20191213175112.30208-3-bjorn.topel@gmail.com
    (cherry picked from commit 75ccbef6369e94ecac696a152a998a978d41376b)
    Bug: 145210207
    Change-Id: Ieb954fd4c968e41f1c1b9ea03ab89fd1f73df5cd
    Signed-off-by: Sami Tolvanen

    Björn Töpel
     
  • Refactor the image allocation in the BPF trampoline code into a
    separate function, so it can be shared with the BPF dispatcher in
    upcoming commits.

    Signed-off-by: Björn Töpel
    Signed-off-by: Alexei Starovoitov
    Link: https://lore.kernel.org/bpf/20191213175112.30208-2-bjorn.topel@gmail.com
    (cherry picked from commit 98e8627efcada18ac043a77b9101b4b4c768090b)
    Bug: 145210207
    Change-Id: I146fc21c66fc40b631d8f27fe13205b1b4bf97d3
    Signed-off-by: Sami Tolvanen

    Björn Töpel
     
  • This reverts commit 788bbf4f261fc558b714bdedd4122d7115efc940.

    Reason for revert: fixes a conflict with upcoming upstream BPF changes.
    Bug: 145210207
    Change-Id: I3bbc1279fc613be0d2e833008413ad3561b851df
    Signed-off-by: Sami Tolvanen

    Sami Tolvanen
     

30 Jan, 2020

2 commits


29 Jan, 2020

11 commits

  • Pull networking updates from David Miller:

    1) Add WireGuard

    2) Add HE and TWT support to ath11k driver, from John Crispin.

    3) Add ESP in TCP encapsulation support, from Sabrina Dubroca.

    4) Add variable window congestion control to TIPC, from Jon Maloy.

    5) Add BCM84881 PHY driver, from Russell King.

    6) Start adding netlink support for ethtool operations, from Michal
    Kubecek.

    7) Add XDP drop and TX action support to ena driver, from Sameeh
    Jubran.

    8) Add new ipv4 route notifications so that mlxsw driver does not have
    to handle identical routes itself. From Ido Schimmel.

    9) Add BPF dynamic program extensions, from Alexei Starovoitov.

    10) Support RX and TX timestamping in igc, from Vinicius Costa Gomes.

    11) Add support for macsec HW offloading, from Antoine Tenart.

    12) Add initial support for MPTCP protocol, from Christoph Paasch,
    Matthieu Baerts, Florian Westphal, Peter Krystad, and many others.

    13) Add Octeontx2 PF support, from Sunil Goutham, Geetha sowjanya, Linu
    Cherian, and others.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1469 commits)
    net: phy: add default ARCH_BCM_IPROC for MDIO_BCM_IPROC
    udp: segment looped gso packets correctly
    netem: change mailing list
    qed: FW 8.42.2.0 debug features
    qed: rt init valid initialization changed
    qed: Debug feature: ilt and mdump
    qed: FW 8.42.2.0 Add fw overlay feature
    qed: FW 8.42.2.0 HSI changes
    qed: FW 8.42.2.0 iscsi/fcoe changes
    qed: Add abstraction for different hsi values per chip
    qed: FW 8.42.2.0 Additional ll2 type
    qed: Use dmae to write to widebus registers in fw_funcs
    qed: FW 8.42.2.0 Parser offsets modified
    qed: FW 8.42.2.0 Queue Manager changes
    qed: FW 8.42.2.0 Expose new registers and change windows
    qed: FW 8.42.2.0 Internal ram offsets modifications
    MAINTAINERS: Add entry for Marvell OcteonTX2 Physical Function driver
    Documentation: net: octeontx2: Add RVU HW and drivers overview
    octeontx2-pf: ethtool RSS config support
    octeontx2-pf: Add basic ethtool support
    ...

    Linus Torvalds
     
  • Pull crypto updates from Herbert Xu:
    "API:
    - Removed CRYPTO_TFM_RES flags
    - Extended spawn grabbing to all algorithm types
    - Moved hash descsize verification into API code

    Algorithms:
    - Fixed recursive pcrypt dead-lock
    - Added new 32 and 64-bit generic versions of poly1305
    - Added cryptogams implementation of x86/poly1305

    Drivers:
    - Added support for i.MX8M Mini in caam
    - Added support for i.MX8M Nano in caam
    - Added support for i.MX8M Plus in caam
    - Added support for A33 variant of SS in sun4i-ss
    - Added TEE support for Raven Ridge in ccp
    - Added in-kernel API to submit TEE commands in ccp
    - Added AMD-TEE driver
    - Added support for BCM2711 in iproc-rng200
    - Added support for AES256-GCM based ciphers for chtls
    - Added aead support on SEC2 in hisilicon"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (244 commits)
    crypto: arm/chacha - fix build failured when kernel mode NEON is disabled
    crypto: caam - add support for i.MX8M Plus
    crypto: x86/poly1305 - emit does base conversion itself
    crypto: hisilicon - fix spelling mistake "disgest" -> "digest"
    crypto: chacha20poly1305 - add back missing test vectors and test chunking
    crypto: x86/poly1305 - fix .gitignore typo
    tee: fix memory allocation failure checks on drv_data and amdtee
    crypto: ccree - erase unneeded inline funcs
    crypto: ccree - make cc_pm_put_suspend() void
    crypto: ccree - split overloaded usage of irq field
    crypto: ccree - fix PM race condition
    crypto: ccree - fix FDE descriptor sequence
    crypto: ccree - cc_do_send_request() is void func
    crypto: ccree - fix pm wrongful error reporting
    crypto: ccree - turn errors to debug msgs
    crypto: ccree - fix AEAD decrypt auth fail
    crypto: ccree - fix typo in comment
    crypto: ccree - fix typos in error msgs
    crypto: atmel-{aes,sha,tdes} - Retire crypto_platform_data
    crypto: x86/sha - Eliminate casts on asm implementations
    ...

    Linus Torvalds
     
  • Pull fsverity updates from Eric Biggers:

    - Optimize fs-verity sequential read performance by implementing
    readahead of Merkle tree pages. This allows the Merkle tree to be
    read in larger chunks.

    - Optimize FS_IOC_ENABLE_VERITY performance in the uncached case by
    implementing readahead of data pages.

    - Allocate the hash requests from a mempool in order to eliminate the
    possibility of allocation failures during I/O.

    * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
    fs-verity: use u64_to_user_ptr()
    fs-verity: use mempool for hash requests
    fs-verity: implement readahead of Merkle tree pages
    fs-verity: implement readahead for FS_IOC_ENABLE_VERITY

    Linus Torvalds
     
  • Pull fscrypt updates from Eric Biggers:

    - Extend the FS_IOC_ADD_ENCRYPTION_KEY ioctl to allow the raw key to be
    provided via a keyring key.

    - Prepare for the new dirhash method (SipHash of plaintext name) that
    will be used by directories that are both encrypted and casefolded.

    - Switch to a new format for "no-key names" that prepares for the new
    dirhash method, and also fixes a longstanding bug where multiple
    filenames could map to the same no-key name.

    - Allow the crypto algorithms used by fscrypt to be built as loadable
    modules when the fscrypt-capable filesystems are.

    - Optimize fscrypt_zeroout_range().

    - Various cleanups.

    * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt: (26 commits)
    fscrypt: improve format of no-key names
    ubifs: allow both hash and disk name to be provided in no-key names
    ubifs: don't trigger assertion on invalid no-key filename
    fscrypt: clarify what is meant by a per-file key
    fscrypt: derive dirhash key for casefolded directories
    fscrypt: don't allow v1 policies with casefolding
    fscrypt: add "fscrypt_" prefix to fname_encrypt()
    fscrypt: don't print name of busy file when removing key
    ubifs: use IS_ENCRYPTED() instead of ubifs_crypt_is_encrypted()
    fscrypt: document gfp_flags for bounce page allocation
    fscrypt: optimize fscrypt_zeroout_range()
    fscrypt: remove redundant bi_status check
    fscrypt: Allow modular crypto algorithms
    fscrypt: include in UAPI header
    fscrypt: don't check for ENOKEY from fscrypt_get_encryption_info()
    fscrypt: remove fscrypt_is_direct_key_policy()
    fscrypt: move fscrypt_valid_enc_modes() to policy.c
    fscrypt: check for appropriate use of DIRECT_KEY flag earlier
    fscrypt: split up fscrypt_supported_policy() by policy version
    fscrypt: introduce fscrypt_needs_contents_encryption()
    ...

    Linus Torvalds
     
  • Pull btrfs updates from David Sterba:
    "Features, highlights:

    - async discard
    - "mount -o discard=async" to enable it
    - freed extents are not discarded immediatelly, but grouped
    together and trimmed later, with IO rate limiting
    - the "sync" mode submits short extents that could have been
    ignored completely by the device, for SATA prior to 3.1 the
    requests are unqueued and have a big impact on performance
    - the actual discard IO requests have been moved out of
    transaction commit to a worker thread, improving commit latency
    - IO rate and request size can be tuned by sysfs files, for now
    enabled only with CONFIG_BTRFS_DEBUG as we might need to
    add/delete the files and don't have a stable-ish ABI for
    general use, defaults are conservative

    - export device state info in sysfs, eg. missing, writeable

    - no discard of extents known to be untouched on disk (eg. after
    reservation)

    - device stats reset is logged with process name and PID that called
    the ioctl

    Fixes:

    - fix missing hole after hole punching and fsync when using NO_HOLES

    - writeback: range cyclic mode could miss some dirty pages and lead
    to OOM

    - two more corner cases for metadata_uuid change after power loss
    during the change

    - fix infinite loop during fsync after mix of rename operations

    Core changes:

    - qgroup assign returns ENOTCONN when quotas not enabled, used to
    return EINVAL that was confusing

    - device closing does not need to allocate memory anymore

    - snapshot aware code got removed, disabled for years due to
    performance problems, reimplmentation will allow to select wheter
    defrag breaks or does not break COW on shared extents

    - tree-checker:
    - check leaf chunk item size, cross check against number of
    stripes
    - verify location keys for DIR_ITEM, DIR_INDEX and XATTR items

    - new self test for physical -> logical mapping code, used for super
    block range exclusion

    - assertion helpers/macros updated to avoid objtool "unreachable
    code" reports on older compilers or config option combinations"

    * tag 'for-5.6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (84 commits)
    btrfs: free block groups after free'ing fs trees
    btrfs: Fix split-brain handling when changing FSID to metadata uuid
    btrfs: Handle another split brain scenario with metadata uuid feature
    btrfs: Factor out metadata_uuid code from find_fsid.
    btrfs: Call find_fsid from find_fsid_inprogress
    Btrfs: fix infinite loop during fsync after rename operations
    btrfs: set trans->drity in btrfs_commit_transaction
    btrfs: drop log root for dropped roots
    btrfs: sysfs, add devid/dev_state kobject and device attributes
    btrfs: Refactor btrfs_rmap_block to improve readability
    btrfs: Add self-tests for btrfs_rmap_block
    btrfs: selftests: Add support for dummy devices
    btrfs: Move and unexport btrfs_rmap_block
    btrfs: separate definition of assertion failure handlers
    btrfs: device stats, log when stats are zeroed
    btrfs: fix improper setting of scanned for range cyclic write cache pages
    btrfs: safely advance counter when looking up bio csums
    btrfs: remove unused member btrfs_device::work
    btrfs: remove unnecessary wrapper get_alloc_profile
    btrfs: add correction to handle -1 edge case in async discard
    ...

    Linus Torvalds
     
  • Pull misc x86 updates from Ingo Molnar:
    "Misc changes:

    - Enhance #GP fault printouts by distinguishing between canonical and
    non-canonical address faults, and also add KASAN fault decoding.

    - Fix/enhance the x86 NMI handler by putting the duration check into
    a direct function call instead of an irq_work which we know to be
    broken in some cases.

    - Clean up do_general_protection() a bit"

    * 'x86-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/nmi: Remove irq_work from the long duration NMI handler
    x86/traps: Cleanup do_general_protection()
    x86/kasan: Print original address on #GP
    x86/dumpstack: Introduce die_addr() for die() with #GP fault address
    x86/traps: Print address on #GP
    x86/insn-eval: Add support for 64-bit kernel mode

    Linus Torvalds
     
  • Pull x86 resource control updates from Ingo Molnar:
    "The main change in this tree is the extension of the resctrl procfs
    ABI with a new file that helps tooling to navigate from tasks back to
    resctrl groups: /proc/{pid}/cpu_resctrl_groups.

    Also fix static key usage for certain feature combinations and
    simplify the task exit resctrl case"

    * 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/resctrl: Add task resctrl information display
    x86/resctrl: Check monitoring static key in the MBM overflow handler
    x86/resctrl: Do not reconfigure exiting tasks

    Linus Torvalds
     
  • Pull scheduler updates from Ingo Molnar:
    "These were the main changes in this cycle:

    - More -rt motivated separation of CONFIG_PREEMPT and
    CONFIG_PREEMPTION.

    - Add more low level scheduling topology sanity checks and warnings
    to filter out nonsensical topologies that break scheduling.

    - Extend uclamp constraints to influence wakeup CPU placement

    - Make the RT scheduler more aware of asymmetric topologies and CPU
    capacities, via uclamp metrics, if CONFIG_UCLAMP_TASK=y

    - Make idle CPU selection more consistent

    - Various fixes, smaller cleanups, updates and enhancements - please
    see the git log for details"

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (58 commits)
    sched/fair: Define sched_idle_cpu() only for SMP configurations
    sched/topology: Assert non-NUMA topology masks don't (partially) overlap
    idle: fix spelling mistake "iterrupts" -> "interrupts"
    sched/fair: Remove redundant call to cpufreq_update_util()
    sched/psi: create /proc/pressure and /proc/pressure/{io|memory|cpu} only when psi enabled
    sched/fair: Fix sgc->{min,max}_capacity calculation for SD_OVERLAP
    sched/fair: calculate delta runnable load only when it's needed
    sched/cputime: move rq parameter in irqtime_account_process_tick
    stop_machine: Make stop_cpus() static
    sched/debug: Reset watchdog on all CPUs while processing sysrq-t
    sched/core: Fix size of rq::uclamp initialization
    sched/uclamp: Fix a bug in propagating uclamp value in new cgroups
    sched/fair: Load balance aggressively for SCHED_IDLE CPUs
    sched/fair : Improve update_sd_pick_busiest for spare capacity case
    watchdog: Remove soft_lockup_hrtimer_cnt and related code
    sched/rt: Make RT capacity-aware
    sched/fair: Make EAS wakeup placement consider uclamp restrictions
    sched/fair: Make task_fits_capacity() consider uclamp restrictions
    sched/uclamp: Rename uclamp_util_with() into uclamp_rq_util_with()
    sched/uclamp: Make uclamp util helpers use and return UL values
    ...

    Linus Torvalds
     
  • Pull perf updates from Ingo Molnar:
    "Kernel side changes:

    - Ftrace is one of the last W^X violators (after this only KLP is
    left). These patches move it over to the generic text_poke()
    interface and thereby get rid of this oddity. This requires a
    surprising amount of surgery, by Peter Zijlstra.

    - x86/AMD PMUs: add support for 'Large Increment per Cycle Events' to
    count certain types of events that have a special, quirky hw ABI
    (by Kim Phillips)

    - kprobes fixes by Masami Hiramatsu

    Lots of tooling updates as well, the following subcommands were
    updated: annotate/report/top, c2c, clang, record, report/top TUI,
    sched timehist, tests; plus updates were done to the gtk ui, libperf,
    headers and the parser"

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (57 commits)
    perf/x86/amd: Add support for Large Increment per Cycle Events
    perf/x86/amd: Constrain Large Increment per Cycle events
    perf/x86/intel/rapl: Add Comet Lake support
    tracing: Initialize ret in syscall_enter_define_fields()
    perf header: Use last modification time for timestamp
    perf c2c: Fix return type for histogram sorting comparision functions
    perf beauty sockaddr: Fix augmented syscall format warning
    perf/ui/gtk: Fix gtk2 build
    perf ui gtk: Add missing zalloc object
    perf tools: Use %define api.pure full instead of %pure-parser
    libperf: Setup initial evlist::all_cpus value
    perf report: Fix no libunwind compiled warning break s390 issue
    perf tools: Support --prefix/--prefix-strip
    perf report: Clarify in help that --children is default
    tools build: Fix test-clang.cpp with Clang 8+
    perf clang: Fix build with Clang 9
    kprobes: Fix optimize_kprobe()/unoptimize_kprobe() cancellation logic
    tools lib: Fix builds when glibc contains strlcpy()
    perf report/top: Make 'e' visible in the help and make it toggle showing callchains
    perf report/top: Do not offer annotation for symbols without samples
    ...

    Linus Torvalds
     
  • Pull EFI updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Cleanup of the GOP [graphics output] handling code in the EFI stub

    - Complete refactoring of the mixed mode handling in the x86 EFI stub

    - Overhaul of the x86 EFI boot/runtime code

    - Increase robustness for mixed mode code

    - Add the ability to disable DMA at the root port level in the EFI
    stub

    - Get rid of RWX mappings in the EFI memory map and page tables,
    where possible

    - Move the support code for the old EFI memory mapping style into its
    only user, the SGI UV1+ support code.

    - plus misc fixes, updates, smaller cleanups.

    ... and due to interactions with the RWX changes, another round of PAT
    cleanups make a guest appearance via the EFI tree - with no side
    effects intended"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (75 commits)
    efi/x86: Disable instrumentation in the EFI runtime handling code
    efi/libstub/x86: Fix EFI server boot failure
    efi/x86: Disallow efi=old_map in mixed mode
    x86/boot/compressed: Relax sed symbol type regex for LLVM ld.lld
    efi/x86: avoid KASAN false positives when accessing the 1: 1 mapping
    efi: Fix handling of multiple efi_fake_mem= entries
    efi: Fix efi_memmap_alloc() leaks
    efi: Add tracking for dynamically allocated memmaps
    efi: Add a flags parameter to efi_memory_map
    efi: Fix comment for efi_mem_type() wrt absent physical addresses
    efi/arm: Defer probe of PCIe backed efifb on DT systems
    efi/x86: Limit EFI old memory map to SGI UV machines
    efi/x86: Avoid RWX mappings for all of DRAM
    efi/x86: Don't map the entire kernel text RW for mixed mode
    x86/mm: Fix NX bit clearing issue in kernel_map_pages_in_pgd
    efi/libstub/x86: Fix unused-variable warning
    efi/libstub/x86: Use mandatory 16-byte stack alignment in mixed mode
    efi/libstub/x86: Use const attribute for efi_is_64bit()
    efi: Allow disabling PCI busmastering on bridges during boot
    efi/x86: Allow translating 64-bit arguments for mixed mode calls
    ...

    Linus Torvalds
     
  • Pull RCU updates from Ingo Molnar:
    "The RCU changes in this cycle were:
    - Expedited grace-period updates
    - kfree_rcu() updates
    - RCU list updates
    - Preemptible RCU updates
    - Torture-test updates
    - Miscellaneous fixes
    - Documentation updates"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (69 commits)
    rcu: Remove unused stop-machine #include
    powerpc: Remove comment about read_barrier_depends()
    .mailmap: Add entries for old paulmck@kernel.org addresses
    srcu: Apply *_ONCE() to ->srcu_last_gp_end
    rcu: Switch force_qs_rnp() to for_each_leaf_node_cpu_mask()
    rcu: Move rcu_{expedited,normal} definitions into rcupdate.h
    rcu: Move gp_state_names[] and gp_state_getname() to tree_stall.h
    rcu: Remove the declaration of call_rcu() in tree.h
    rcu: Fix tracepoint tracking RCU CPU kthread utilization
    rcu: Fix harmless omission of "CONFIG_" from #if condition
    rcu: Avoid tick_dep_set_cpu() misordering
    rcu: Provide wrappers for uses of ->rcu_read_lock_nesting
    rcu: Use READ_ONCE() for ->expmask in rcu_read_unlock_special()
    rcu: Clear ->rcu_read_unlock_special only once
    rcu: Clear .exp_hint only when deferred quiescent state has been reported
    rcu: Rename some instance of CONFIG_PREEMPTION to CONFIG_PREEMPT_RCU
    rcu: Remove kfree_call_rcu_nobatch()
    rcu: Remove kfree_rcu() special casing and lazy-callback handling
    rcu: Add support for debug_objects debugging for kfree_rcu()
    rcu: Add multiple in-flight batches of kfree_rcu() work
    ...

    Linus Torvalds
     

28 Jan, 2020

12 commits

  • Multicast and broadcast packets can be looped from egress to ingress
    pre segmentation with dev_loopback_xmit. That function unconditionally
    sets ip_summed to CHECKSUM_UNNECESSARY.

    udp_rcv_segment segments gso packets in the udp rx path. Segmentation
    usually executes on egress, and does not expect packets of this type.
    __udp_gso_segment interprets !CHECKSUM_PARTIAL as CHECKSUM_NONE. But
    the offsets are not correct for gso_make_checksum.

    UDP GSO packets are of type CHECKSUM_PARTIAL, with their uh->check set
    to the correct pseudo header checksum. Reset ip_summed to this type.
    (CHECKSUM_PARTIAL is allowed on ingress, see comments in skbuff.h)

    Reported-by: syzbot
    Fixes: cf329aa42b66 ("udp: cope with UDP GRO packet misdirection")
    Signed-off-by: Willem de Bruijn
    Signed-off-by: David S. Miller

    Willem de Bruijn
     
  • Pull irq updates from Thomas Gleixner:
    "The interrupt departement provides:

    - A mechanism to shield isolated tasks from managed interrupts:

    The affinity of managed interrupts is completely controlled by the
    kernel and user space has no influence on them. The reason is that
    the automatically assigned affinity correlates to the multi-queue
    CPU handling of block devices.

    If the generated affinity mask spaws both housekeeping and isolated
    CPUs the interrupt could be routed to an isolated CPU which would
    then be disturbed by I/O submitted by a housekeeping CPU.

    The new mechamism ensures that as long as one housekeeping CPU is
    online in the assigned affinity mask the interrupt is routed to a
    housekeeping CPU.

    If there is no online housekeeping CPU in the affinity mask, then
    the interrupt is routed to an isolated CPU to keep the device queue
    intact, but unless the isolated CPU submits I/O by itself these
    interrupts are not raised.

    - A small addon to the device tree irqdomain core code to avoid
    duplication in irq chip drivers

    - Conversion of the SiFive PLIC to hierarchical domains

    - The usual pile of new irq chip drivers: SiFive GPIO, Aspeed SCI,
    NXP INTMUX, Meson A1 GPIO

    - The first cut of support for the new ARM GICv4.1

    - The usual pile of fixes and improvements in core and driver code"

    * tag 'irq-core-2020-01-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
    genirq, sched/isolation: Isolate from handling managed interrupts
    irqchip/gic-v4.1: Allow direct invalidation of VLPIs
    irqchip/gic-v4.1: Suppress per-VLPI doorbell
    irqchip/gic-v4.1: Add VPE INVALL callback
    irqchip/gic-v4.1: Add VPE eviction callback
    irqchip/gic-v4.1: Add VPE residency callback
    irqchip/gic-v4.1: Add mask/unmask doorbell callbacks
    irqchip/gic-v4.1: Plumb skeletal VPE irqchip
    irqchip/gic-v4.1: Implement the v4.1 flavour of VMOVP
    irqchip/gic-v4.1: Don't use the VPE proxy if RVPEID is set
    irqchip/gic-v4.1: Implement the v4.1 flavour of VMAPP
    irqchip/gic-v4.1: VPE table (aka GICR_VPROPBASER) allocation
    irqchip/gic-v3: Add GICv4.1 VPEID size discovery
    irqchip/gic-v3: Detect GICv4.1 supporting RVPEID
    irqchip/gic-v3-its: Fix get_vlpi_map() breakage with doorbells
    irqdomain: Fix a memory leak in irq_domain_push_irq()
    irqchip: Add NXP INTMUX interrupt multiplexer support
    dt-bindings: interrupt-controller: Add binding for NXP INTMUX interrupt multiplexer
    irqchip: Define EXYNOS_IRQ_COMBINER
    irqchip/meson-gpio: Add support for meson a1 SoCs
    ...

    Linus Torvalds
     
  • Pull core SMP updates from Thomas Gleixner:
    "A small set of SMP core code changes:

    - Rework the smp function call core code to avoid the allocation of
    an additional cpumask

    - Remove the not longer required GFP argument from on_each_cpu_cond()
    and on_each_cpu_cond_mask() and fixup the callers"

    * tag 'smp-core-2020-01-28' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    smp: Remove allocation mask from on_each_cpu_cond.*()
    smp: Add a smp_cond_func_t argument to smp_call_function_many()
    smp: Use smp_cond_func_t as type for the conditional function

    Linus Torvalds
     
  • Pull timer updates from Thomas Gleixner:
    "The timekeeping and timers departement provides:

    - Time namespace support:

    If a container migrates from one host to another then it expects
    that clocks based on MONOTONIC and BOOTTIME are not subject to
    disruption. Due to different boot time and non-suspended runtime
    these clocks can differ significantly on two hosts, in the worst
    case time goes backwards which is a violation of the POSIX
    requirements.

    The time namespace addresses this problem. It allows to set offsets
    for clock MONOTONIC and BOOTTIME once after creation and before
    tasks are associated with the namespace. These offsets are taken
    into account by timers and timekeeping including the VDSO.

    Offsets for wall clock based clocks (REALTIME/TAI) are not provided
    by this mechanism. While in theory possible, the overhead and code
    complexity would be immense and not justified by the esoteric
    potential use cases which were discussed at Plumbers '18.

    The overhead for tasks in the root namespace (ie where host time
    offsets = 0) is in the noise and great effort was made to ensure
    that especially in the VDSO. If time namespace is disabled in the
    kernel configuration the code is compiled out.

    Kudos to Andrei Vagin and Dmitry Sofanov who implemented this
    feature and kept on for more than a year addressing review
    comments, finding better solutions. A pleasant experience.

    - Overhaul of the alarmtimer device dependency handling to ensure
    that the init/suspend/resume ordering is correct.

    - A new clocksource/event driver for Microchip PIT64

    - Suspend/resume support for the Hyper-V clocksource

    - The usual pile of fixes, updates and improvements mostly in the
    driver code"

    * tag 'timers-core-2020-01-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (71 commits)
    alarmtimer: Make alarmtimer_get_rtcdev() a stub when CONFIG_RTC_CLASS=n
    alarmtimer: Use wakeup source from alarmtimer platform device
    alarmtimer: Make alarmtimer platform device child of RTC device
    alarmtimer: Update alarmtimer_get_rtcdev() docs to reflect reality
    hrtimer: Add missing sparse annotation for __run_timer()
    lib/vdso: Only read hrtimer_res when needed in __cvdso_clock_getres()
    MIPS: vdso: Define BUILD_VDSO32 when building a 32bit kernel
    clocksource/drivers/hyper-v: Set TSC clocksource as default w/ InvariantTSC
    clocksource/drivers/hyper-v: Untangle stimers and timesync from clocksources
    clocksource/drivers/timer-microchip-pit64b: Fix sparse warning
    clocksource/drivers/exynos_mct: Rename Exynos to lowercase
    clocksource/drivers/timer-ti-dm: Fix uninitialized pointer access
    clocksource/drivers/timer-ti-dm: Switch to platform_get_irq
    clocksource/drivers/timer-ti-dm: Convert to devm_platform_ioremap_resource
    clocksource/drivers/em_sti: Fix variable declaration in em_sti_probe
    clocksource/drivers/em_sti: Convert to devm_platform_ioremap_resource
    clocksource/drivers/bcm2835_timer: Fix memory leak of timer
    clocksource/drivers/cadence-ttc: Use ttc driver as platform driver
    clocksource/drivers/timer-microchip-pit64b: Add Microchip PIT64B support
    clocksource/drivers/hyper-v: Reserve PAGE_SIZE space for tsc page
    ...

    Linus Torvalds
     
  • Pull timer fixes from Thomas Gleixner:
    "Two fixes for the generic VDSO code which missed 5.5:

    - Make the update to the coarse timekeeper unconditional.

    This is required because the coarse timekeeper interfaces in the
    VDSO do not depend on a VDSO capable clocksource. If the system
    does not have a VDSO capable clocksource and the update is
    depending on the VDSO capable clocksource, the coarse VDSO
    interfaces would operate on stale data forever.

    - Invert the logic of __arch_update_vdso_data() to avoid further head
    scratching.

    Tripped over this several times while analyzing the update problem
    above"

    * tag 'timers-urgent-2020-01-27' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    lib/vdso: Update coarse timekeeper unconditionally
    lib/vdso: Make __arch_update_vdso_data() logic understandable

    Linus Torvalds
     
  • Pull SELinux update from Paul Moore:
    "This is one of the bigger SELinux pull requests in recent years with
    28 patches. Everything is passing our test suite and the highlights
    are below:

    - Mark CONFIG_SECURITY_SELINUX_DISABLE as deprecated. We're some time
    away from actually attempting to remove this in the kernel, but the
    only distro we know that still uses it (Fedora) is working on
    moving away from this so we want to at least let people know we are
    planning to remove it.

    - Reorder the SELinux hooks to help prevent bad things when SELinux
    is disabled at runtime. The proper fix is to remove the
    CONFIG_SECURITY_SELINUX_DISABLE functionality (see above) and just
    take care of it at boot time (e.g. "selinux=0").

    - Add SELinux controls for the kernel lockdown functionality,
    introducing a new SELinux class/permissions: "lockdown { integrity
    confidentiality }".

    - Add a SELinux control for move_mount(2) that reuses the "file {
    mounton }" permission.

    - Improvements to the SELinux security label data store lookup
    functions to speed up translations between our internal label
    representations and the visible string labels (both directions).

    - Revisit a previous fix related to SELinux inode auditing and
    permission caching and do it correctly this time.

    - Fix the SELinux access decision cache to cleanup properly on error.
    In some extreme cases this could limit the cache size and result in
    a decrease in performance.

    - Enable SELinux per-file labeling for binderfs.

    - The SELinux initialized and disabled flags were wrapped with
    accessors to ensure they are accessed correctly.

    - Mark several key SELinux structures with __randomize_layout.

    - Changes to the LSM build configuration to only build
    security/lsm_audit.c when needed.

    - Changes to the SELinux build configuration to only build the IB
    object cache when CONFIG_SECURITY_INFINIBAND is enabled.

    - Move a number of single-caller functions into their callers.

    - Documentation fixes (/selinux -> /sys/fs/selinux).

    - A handful of cleanup patches that aren't worth mentioning on their
    own, the individual descriptions have plenty of detail"

    * tag 'selinux-pr-20200127' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux: (28 commits)
    selinux: fix regression introduced by move_mount(2) syscall
    selinux: do not allocate ancillary buffer on first load
    selinux: remove redundant allocation and helper functions
    selinux: remove redundant selinux_nlmsg_perm
    selinux: fix wrong buffer types in policydb.c
    selinux: reorder hooks to make runtime disable less broken
    selinux: treat atomic flags more carefully
    selinux: make default_noexec read-only after init
    selinux: move ibpkeys code under CONFIG_SECURITY_INFINIBAND.
    selinux: remove redundant msg_msg_alloc_security
    Documentation,selinux: fix references to old selinuxfs mount point
    selinux: deprecate disabling SELinux and runtime
    selinux: allow per-file labelling for binderfs
    selinuxfs: use scnprintf to get real length for inode
    selinux: remove set but not used variable 'sidtab'
    selinux: ensure the policy has been loaded before reading the sidtab stats
    selinux: ensure we cleanup the internal AVC counters on error in avc_update()
    selinux: randomize layout of key structures
    selinux: clean up selinux_enabled/disabled/enforcing_boot
    selinux: remove unnecessary selinux cred request
    ...

    Linus Torvalds
     
  • Pull cgroup updates from Tejun Heo:

    - cgroup2 interface for hugetlb controller. I think this was the last
    remaining bit which was missing from cgroup2

    - fixes for race and a spurious warning in threaded cgroup handling

    - other minor changes

    * 'for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
    iocost: Fix iocost_monitor.py due to helper type mismatch
    cgroup: Prevent double killing of css when enabling threaded cgroup
    cgroup: fix function name in comment
    mm: hugetlb controller for cgroups v2

    Linus Torvalds
     
  • Pull workqueue updates from Tejun Heo:
    "Just a couple tracepoint patches"

    * 'for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
    workqueue: remove workqueue_work event class
    workqueue: add worker function to workqueue_execute_end tracepoint

    Linus Torvalds
     
  • Pull ioremap updates from Christoph Hellwig:
    "Remove the ioremap_nocache API (plus wrappers) that are always
    identical to ioremap"

    * tag 'ioremap-5.6' of git://git.infradead.org/users/hch/ioremap:
    remove ioremap_nocache and devm_ioremap_nocache
    MIPS: define ioremap_nocache to ioremap

    Linus Torvalds
     
  • Pull block driver updates from Jens Axboe:
    "Like the core side, not a lot of changes here, just two main items:

    - Series of patches (via Coly) with fixes for bcache (Coly,
    Christoph)

    - MD pull request from Song"

    * tag 'for-5.6/drivers-2020-01-27' of git://git.kernel.dk/linux-block: (31 commits)
    bcache: reap from tail of c->btree_cache in bch_mca_scan()
    bcache: reap c->btree_cache_freeable from the tail in bch_mca_scan()
    bcache: remove member accessed from struct btree
    bcache: print written and keys in trace_bcache_btree_write
    bcache: avoid unnecessary btree nodes flushing in btree_flush_write()
    bcache: add code comments for state->pool in __btree_sort()
    lib: crc64: include for 'crc64_be'
    bcache: use read_cache_page_gfp to read the superblock
    bcache: store a pointer to the on-disk sb in the cache and cached_dev structures
    bcache: return a pointer to the on-disk sb from read_super
    bcache: transfer the sb_page reference to register_{bdev,cache}
    bcache: fix use-after-free in register_bcache()
    bcache: properly initialize 'path' and 'err' in register_bcache()
    bcache: rework error unwinding in register_bcache
    bcache: use a separate data structure for the on-disk super block
    bcache: cached_dev_free needs to put the sb page
    md/raid1: introduce wait_for_serialization
    md/raid1: use bucket based mechanism for IO serialization
    md: introduce a new struct for IO serialization
    md: don't destroy serial_info_pool if serialize_policy is true
    ...

    Linus Torvalds
     
  • Pull core block updates from Jens Axboe:
    "This may be the most quiet round we've had in years. I'm not
    complaining. Really not a lot to detail here, outside of spelling and
    documentation improvements/fixes, we have:

    - Allow t10-pi to be modular (Herbert)

    - Remove dead code in bfq (Alex)

    - Mark zone management requests with REQ_SYNC (Chaitanya)

    - BFQ division improvement (Wen)

    - Small series improving plugging (Pavel)"

    * tag 'for-5.6/block-2020-01-27' of git://git.kernel.dk/linux-block:
    partitions/ldm: fix spelling mistake "to" -> "too"
    block, bfq: improve arithmetic division in bfq_delta()
    block/bfq: remove unused bfq_class_rt which never used
    block: mark zone-mgmt bios with REQ_SYNC
    blk-mq: Document functions for sending request
    block: Allow t10-pi to be modular
    blk-mq: optimise blk_mq_flush_plug_list()
    list: introduce list_for_each_continue()
    blk-mq: optimise rq sort function

    Linus Torvalds
     
  • Pull device properties framework updates from Rafael Wysocki:
    "Add support for reference properties in sofrware nodes (Dmitry
    Torokhov) and a basic test for property entries along with fixes on
    top of it (Dmitry Torokhov, Qian Cai, Alan Maguire)"

    * tag 'devprop-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    software node: introduce CONFIG_KUNIT_DRIVER_PE_TEST
    usb: dwc3: use proper initializers for property entries
    drivers/base/test: fix global-out-of-bounds error
    software node: add basic tests for property entries
    software node: remove separate handling of references
    platform/x86: intel_cht_int33fe: use inline reference properties
    software node: implement reference properties
    software node: allow embedding of small arrays into property_entry
    software node: replace is_array with is_inline

    Linus Torvalds