01 Apr, 2020

6 commits

  • Pull networking updates from David Miller:
    "Highlights:

    1) Fix the iwlwifi regression, from Johannes Berg.

    2) Support BSS coloring and 802.11 encapsulation offloading in
    hardware, from John Crispin.

    3) Fix some potential Spectre issues in qtnfmac, from Sergey
    Matyukevich.

    4) Add TTL decrement action to openvswitch, from Matteo Croce.

    5) Allow paralleization through flow_action setup by not taking the
    RTNL mutex, from Vlad Buslov.

    6) A lot of zero-length array to flexible-array conversions, from
    Gustavo A. R. Silva.

    7) Align XDP statistics names across several drivers for consistency,
    from Lorenzo Bianconi.

    8) Add various pieces of infrastructure for offloading conntrack, and
    make use of it in mlx5 driver, from Paul Blakey.

    9) Allow using listening sockets in BPF sockmap, from Jakub Sitnicki.

    10) Lots of parallelization improvements during configuration changes
    in mlxsw driver, from Ido Schimmel.

    11) Add support to devlink for generic packet traps, which report
    packets dropped during ACL processing. And use them in mlxsw
    driver. From Jiri Pirko.

    12) Support bcmgenet on ACPI, from Jeremy Linton.

    13) Make BPF compatible with RT, from Thomas Gleixnet, Alexei
    Starovoitov, and your's truly.

    14) Support XDP meta-data in virtio_net, from Yuya Kusakabe.

    15) Fix sysfs permissions when network devices change namespaces, from
    Christian Brauner.

    16) Add a flags element to ethtool_ops so that drivers can more simply
    indicate which coalescing parameters they actually support, and
    therefore the generic layer can validate the user's ethtool
    request. Use this in all drivers, from Jakub Kicinski.

    17) Offload FIFO qdisc in mlxsw, from Petr Machata.

    18) Support UDP sockets in sockmap, from Lorenz Bauer.

    19) Fix stretch ACK bugs in several TCP congestion control modules,
    from Pengcheng Yang.

    20) Support virtual functiosn in octeontx2 driver, from Tomasz
    Duszynski.

    21) Add region operations for devlink and use it in ice driver to dump
    NVM contents, from Jacob Keller.

    22) Add support for hw offload of MACSEC, from Antoine Tenart.

    23) Add support for BPF programs that can be attached to LSM hooks,
    from KP Singh.

    24) Support for multiple paths, path managers, and counters in MPTCP.
    From Peter Krystad, Paolo Abeni, Florian Westphal, Davide Caratti,
    and others.

    25) More progress on adding the netlink interface to ethtool, from
    Michal Kubecek"

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (2121 commits)
    net: ipv6: rpl_iptunnel: Fix potential memory leak in rpl_do_srh_inline
    cxgb4/chcr: nic-tls stats in ethtool
    net: dsa: fix oops while probing Marvell DSA switches
    net/bpfilter: remove superfluous testing message
    net: macb: Fix handling of fixed-link node
    net: dsa: ksz: Select KSZ protocol tag
    netdevsim: dev: Fix memory leak in nsim_dev_take_snapshot_write
    net: stmmac: add EHL 2.5Gbps PCI info and PCI ID
    net: stmmac: add EHL PSE0 & PSE1 1Gbps PCI info and PCI ID
    net: stmmac: create dwmac-intel.c to contain all Intel platform
    net: dsa: bcm_sf2: Support specifying VLAN tag egress rule
    net: dsa: bcm_sf2: Add support for matching VLAN TCI
    net: dsa: bcm_sf2: Move writing of CFP_DATA(5) into slicing functions
    net: dsa: bcm_sf2: Check earlier for FLOW_EXT and FLOW_MAC_EXT
    net: dsa: bcm_sf2: Disable learning for ASP port
    net: dsa: b53: Deny enslaving port 7 for 7278 into a bridge
    net: dsa: b53: Prevent tagged VLAN on port 7 for 7278
    net: dsa: b53: Restore VLAN entries upon (re)configuration
    net: dsa: bcm_sf2: Fix overflow checks
    hv_netvsc: Remove unnecessary round_up for recv_completion_cnt
    ...

    Linus Torvalds
     
  • Pull SELinux updates from Paul Moore:
    "We've got twenty SELinux patches for the v5.7 merge window, the
    highlights are below:

    - Deprecate setting /sys/fs/selinux/checkreqprot to 1.

    This flag was originally created to deal with legacy userspace and
    the READ_IMPLIES_EXEC personality flag. We changed the default from
    1 to 0 back in Linux v4.4 and now we are taking the next step of
    deprecating it, at some point in the future we will take the final
    step of rejecting 1.

    - Allow kernfs symlinks to inherit the SELinux label of the parent
    directory. In order to preserve backwards compatibility this is
    protected by the genfs_seclabel_symlinks SELinux policy capability.

    - Optimize how we store filename transitions in the kernel, resulting
    in some significant improvements to policy load times.

    - Do a better job calculating our internal hash table sizes which
    resulted in additional policy load improvements and likely general
    SELinux performance improvements as well.

    - Remove the unused initial SIDs (labels) and improve how we handle
    initial SIDs.

    - Enable per-file labeling for the bpf filesystem.

    - Ensure that we properly label NFS v4.2 filesystems to avoid a
    temporary unlabeled condition.

    - Add some missing XFS quota command types to the SELinux quota
    access controls.

    - Fix a problem where we were not updating the seq_file position
    index correctly in selinuxfs.

    - We consolidate some duplicated code into helper functions.

    - A number of list to array conversions.

    - Update Stephen Smalley's email address in MAINTAINERS"

    * tag 'selinux-pr-20200330' of git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux:
    selinux: clean up indentation issue with assignment statement
    NFS: Ensure security label is set for root inode
    MAINTAINERS: Update my email address
    selinux: avtab_init() and cond_policydb_init() return void
    selinux: clean up error path in policydb_init()
    selinux: remove unused initial SIDs and improve handling
    selinux: reduce the use of hard-coded hash sizes
    selinux: Add xfs quota command types
    selinux: optimize storage of filename transitions
    selinux: factor out loop body from filename_trans_read()
    security: selinux: allow per-file labeling for bpffs
    selinux: generalize evaluate_cond_node()
    selinux: convert cond_expr to array
    selinux: convert cond_av_list to array
    selinux: convert cond_list to array
    selinux: sel_avc_get_stat_idx should increase position index
    selinux: allow kernfs symlinks to inherit parent directory context
    selinux: simplify evaluate_cond_node()
    Documentation,selinux: deprecate setting checkreqprot to 1
    selinux: move status variables out of selinux_ss

    Linus Torvalds
     
  • Pull cifs updates from Steve French:
    "First part of cifs/smb3 changes for merge window (others are still
    being tested). Various RDMA (smbdirect) fixes, addition of SMB3.1.1
    POSIX support in readdir, 3 fixes for stable, and a fix for flock.

    Summary:

    New feature:
    - SMB3.1.1 POSIX support in readdir

    Fixes:
    - various RDMA (smbdirect) fixes
    - fix for flock
    - fallocate fix
    - some improved mount warnings
    - two timestamp related fixes
    - reconnect fix
    - three fixes for stable"

    * tag '5.7-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6: (28 commits)
    cifs: update internal module version number
    cifs: Allocate encryption header through kmalloc
    cifs: smbd: Check and extend sender credits in interrupt context
    cifs: smbd: Calculate the correct maximum packet size for segmented SMBDirect send/receive
    smb3: use SMB2_SIGNATURE_SIZE define
    CIFS: Fix bug which the return value by asynchronous read is error
    CIFS: check new file size when extending file by fallocate
    SMB3: Minor cleanup of protocol definitions
    SMB3: Additional compression structures
    SMB3: Add new compression flags
    cifs: smb2pdu.h: Replace zero-length array with flexible-array member
    cifs: clear PF_MEMALLOC before exiting demultiplex thread
    cifs: cifspdu.h: Replace zero-length array with flexible-array member
    CIFS: Warn less noisily on default mount
    fs/cifs: fix gcc warning in sid_to_id
    cifs: allow unlock flock and OFD lock across fork
    cifs: do d_move in rename
    cifs: add SMB2_open() arg to return POSIX data
    cifs: plumb smb2 POSIX dir enumeration
    cifs: add smb2 POSIX info level
    ...

    Linus Torvalds
     
  • Pull gfs2 updates from Bob Peterson:
    "We've got a lot of patches (39) for this merge window. Most of these
    patches are related to corruption that occurs when journals are
    replayed. For example:

    1. A node fails while writing to the file system.
    2. Other nodes use the metadata that was once used by the failed
    node.
    3. When the node returns to the cluster, its journal is replayed, but
    the older metadata blocks overwrite the changes from step 2.

    Summary:

    - Fixed the recovery sequence to prevent corruption during journal
    replay.

    - Many bug fixes found during recovery testing.

    - New improved file system withdraw sequence.

    - Fixed how resource group buffers are managed.

    - Fixed how metadata revokes are tracked and written.

    - Improve processing of IO errors hit by daemons like logd and
    quotad.

    - Improved error checking in metadata writes.

    - Fixed how qadata quota data structures are managed"

    * tag 'gfs2-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2: (39 commits)
    gfs2: Fix oversight in gfs2_ail1_flush
    gfs2: change from write to read lock for sd_log_flush_lock in journal replay
    gfs2: instrumentation wrt ail1 stuck
    gfs2: don't lock sd_log_flush_lock in try_rgrp_unlink
    gfs2: Remove unnecessary gfs2_qa_{get,put} pairs
    gfs2: Split gfs2_rsqa_delete into gfs2_rs_delete and gfs2_qa_put
    gfs2: Change inode qa_data to allow multiple users
    gfs2: eliminate gfs2_rsqa_alloc in favor of gfs2_qa_alloc
    gfs2: Switch to list_{first,last}_entry
    gfs2: Clean up inode initialization and teardown
    gfs2: Additional information when gfs2_ail1_flush withdraws
    gfs2: leaf_dealloc needs to allocate one more revoke
    gfs2: allow journal replay to hold sd_log_flush_lock
    gfs2: don't allow releasepage to free bd still used for revokes
    gfs2: flesh out delayed withdraw for gfs2_log_flush
    gfs2: Do proper error checking for go_sync family of glops functions
    gfs2: Don't demote a glock until its revokes are written
    gfs2: drain the ail2 list after io errors
    gfs2: Withdraw in gfs2_ail1_flush if write_cache_pages fails
    gfs2: Do log_flush in gfs2_ail_empty_gl even if ail list is empty
    ...

    Linus Torvalds
     
  • Pull btrfs updates from David Sterba:
    "A number of core changes that make things work better in general, code
    is simpler and cleaner.

    Core changes:

    - per-inode file extent tree, for in memory tracking of contiguous
    extent ranges to make sure i_size adjustments are accurate

    - tree root structures are protected by reference counts, replacing
    SRCU that did not cover some cases

    - leak detector for tree root structures

    - per-transaction pinned extent tracking

    - buffer heads are replaced by bios for super block access

    - speedup of extent back reference resolution, on an example test
    scenario the runtime of send went down from a hour to minutes

    - factor out locking scheme used for subvolume writer and NOCOW
    exclusion, abstracted as DREW lock, double reader-writer exclusion
    (allow either readers or writers)

    - cleanup and abstract extent allocation policies, preparation for
    zoned device support

    - make reflink/clone_range work on inline extents

    - add more cancellation point for relocation, improves long response
    from 'balance cancel'

    - add page migration callback for data pages

    - switch to guid for uuids, with additional cleanups of the interface

    - make ranged full fsyncs more efficient

    - removal of obsolete ioctl flag BTRFS_SUBVOL_CREATE_ASYNC

    - remove b-tree readahead from delayed refs paths, avoiding seek and
    read unnecessary blocks

    Features:

    - v2 of ioctl to delete subvolumes, allowing to delete by id and more
    future extensions

    Fixes:

    - fix qgroup rescan worker that could block umount

    - fix crash during unmount due to race with delayed inode workers

    - fix dellaloc flushing logic that could create unnecessary chunks
    under heavy load

    - fix missing file extent item for hole after ranged fsync

    - several fixes in relocation error handling

    Other:

    - more documentation of relocation, device replace, space
    reservations

    - many random cleanups"

    * tag 'for-5.7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (210 commits)
    btrfs: fix missing semaphore unlock in btrfs_sync_file
    btrfs: use nofs allocations for running delayed items
    btrfs: sysfs: Use scnprintf() instead of snprintf()
    btrfs: do not resolve backrefs for roots that are being deleted
    btrfs: track reloc roots based on their commit root bytenr
    btrfs: restart relocate_tree_blocks properly
    btrfs: reloc: reorder reservation before root selection
    btrfs: do not readahead in build_backref_tree
    btrfs: do not use readahead for running delayed refs
    btrfs: Remove async_transid from btrfs_mksubvol/create_subvol/create_snapshot
    btrfs: Remove transid argument from btrfs_ioctl_snap_create_transid
    btrfs: Remove BTRFS_SUBVOL_CREATE_ASYNC support
    btrfs: kill the subvol_srcu
    btrfs: make btrfs_cleanup_fs_roots use the radix tree lock
    btrfs: don't take an extra root ref at allocation time
    btrfs: hold a ref on the root on the dead roots list
    btrfs: make inodes hold a ref on their roots
    btrfs: move the root freeing stuff into btrfs_put_root
    btrfs: move ino_cache_inode dropping out of btrfs_free_fs_root
    btrfs: make the extent buffer leak check per fs info
    ...

    Linus Torvalds
     
  • Pull fscrypt updates from Eric Biggers:
    "Add an ioctl FS_IOC_GET_ENCRYPTION_NONCE which retrieves a file's
    encryption nonce.

    This makes it easier to write automated tests which verify that
    fscrypt is doing the encryption correctly"

    * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
    ubifs: wire up FS_IOC_GET_ENCRYPTION_NONCE
    f2fs: wire up FS_IOC_GET_ENCRYPTION_NONCE
    ext4: wire up FS_IOC_GET_ENCRYPTION_NONCE
    fscrypt: add FS_IOC_GET_ENCRYPTION_NONCE ioctl

    Linus Torvalds
     

31 Mar, 2020

10 commits

  • When using NFSv4.2, the security label for the root inode should be set
    via a call to nfs_setsecurity() during the mount process, otherwise the
    inode will appear as unlabeled for up to acdirmin seconds. Currently
    the label for the root inode is allocated, retrieved, and freed entirely
    witin nfs4_proc_get_root().

    Add a field for the label to the nfs_fattr struct, and allocate & free
    the label in nfs_get_root(), where we also add a call to
    nfs_setsecurity(). Note that for the call to nfs_setsecurity() to
    succeed, it's necessary to also move the logic calling
    security_sb_{set,clone}_security() from nfs_get_tree_common() down into
    nfs_get_root()... otherwise the SBLABEL_MNT flag will not be set in the
    super_block's security flags and nfs_setsecurity() will silently fail.

    Reported-by: Richard Haines
    Signed-off-by: Scott Mayhew
    Acked-by: Stephen Smalley
    Tested-by: Stephen Smalley
    [PM: fixed 80-char line width problems]
    Signed-off-by: Paul Moore

    Scott Mayhew
     
  • Pull locking updates from Ingo Molnar:
    "The main changes in this cycle were:

    - Continued user-access cleanups in the futex code.

    - percpu-rwsem rewrite that uses its own waitqueue and atomic_t
    instead of an embedded rwsem. This addresses a couple of
    weaknesses, but the primary motivation was complications on the -rt
    kernel.

    - Introduce raw lock nesting detection on lockdep
    (CONFIG_PROVE_RAW_LOCK_NESTING=y), document the raw_lock vs. normal
    lock differences. This too originates from -rt.

    - Reuse lockdep zapped chain_hlocks entries, to conserve RAM
    footprint on distro-ish kernels running into the "BUG:
    MAX_LOCKDEP_CHAIN_HLOCKS too low!" depletion of the lockdep
    chain-entries pool.

    - Misc cleanups, smaller fixes and enhancements - see the changelog
    for details"

    * 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (55 commits)
    fs/buffer: Make BH_Uptodate_Lock bit_spin_lock a regular spinlock_t
    thermal/x86_pkg_temp: Make pkg_temp_lock a raw_spinlock_t
    Documentation/locking/locktypes: Minor copy editor fixes
    Documentation/locking/locktypes: Further clarifications and wordsmithing
    m68knommu: Remove mm.h include from uaccess_no.h
    x86: get rid of user_atomic_cmpxchg_inatomic()
    generic arch_futex_atomic_op_inuser() doesn't need access_ok()
    x86: don't reload after cmpxchg in unsafe_atomic_op2() loop
    x86: convert arch_futex_atomic_op_inuser() to user_access_begin/user_access_end()
    objtool: whitelist __sanitizer_cov_trace_switch()
    [parisc, s390, sparc64] no need for access_ok() in futex handling
    sh: no need of access_ok() in arch_futex_atomic_op_inuser()
    futex: arch_futex_atomic_op_inuser() calling conventions change
    completion: Use lockdep_assert_RT_in_threaded_ctx() in complete_all()
    lockdep: Add posixtimer context tracing bits
    lockdep: Annotate irq_work
    lockdep: Add hrtimer context tracing bits
    lockdep: Introduce wait-type checks
    completion: Use simple wait queues
    sched/swait: Prepare usage in completions
    ...

    Linus Torvalds
     
  • Pull EFI updates from Ingo Molnar:
    "The EFI changes in this cycle are much larger than usual, for two
    (positive) reasons:

    - The GRUB project is showing signs of life again, resulting in the
    introduction of the generic Linux/UEFI boot protocol, instead of
    x86 specific hacks which are increasingly difficult to maintain.
    There's hope that all future extensions will now go through that
    boot protocol.

    - Preparatory work for RISC-V EFI support.

    The main changes are:

    - Boot time GDT handling changes

    - Simplify handling of EFI properties table on arm64

    - Generic EFI stub cleanups, to improve command line handling, file
    I/O, memory allocation, etc.

    - Introduce a generic initrd loading method based on calling back
    into the firmware, instead of relying on the x86 EFI handover
    protocol or device tree.

    - Introduce a mixed mode boot method that does not rely on the x86
    EFI handover protocol either, and could potentially be adopted by
    other architectures (if another one ever surfaces where one
    execution mode is a superset of another)

    - Clean up the contents of 'struct efi', and move out everything that
    doesn't need to be stored there.

    - Incorporate support for UEFI spec v2.8A changes that permit
    firmware implementations to return EFI_UNSUPPORTED from UEFI
    runtime services at OS runtime, and expose a mask of which ones are
    supported or unsupported via a configuration table.

    - Partial fix for the lack of by-VA cache maintenance in the
    decompressor on 32-bit ARM.

    - Changes to load device firmware from EFI boot service memory
    regions

    - Various documentation updates and minor code cleanups and fixes"

    * 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (114 commits)
    efi/libstub/arm: Fix spurious message that an initrd was loaded
    efi/libstub/arm64: Avoid image_base value from efi_loaded_image
    partitions/efi: Fix partition name parsing in GUID partition entry
    efi/x86: Fix cast of image argument
    efi/libstub/x86: Use ULONG_MAX as upper bound for all allocations
    efi: Fix a mistype in comments mentioning efivar_entry_iter_begin()
    efi/libstub: Avoid linking libstub/lib-ksyms.o into vmlinux
    efi/x86: Preserve %ebx correctly in efi_set_virtual_address_map()
    efi/x86: Ignore the memory attributes table on i386
    efi/x86: Don't relocate the kernel unless necessary
    efi/x86: Remove extra headroom for setup block
    efi/x86: Add kernel preferred address to PE header
    efi/x86: Decompress at start of PE image load address
    x86/boot/compressed/32: Save the output address instead of recalculating it
    efi/libstub/x86: Deal with exit() boot service returning
    x86/boot: Use unsigned comparison for addresses
    efi/x86: Avoid using code32_start
    efi/x86: Make efi32_pe_entry() more readable
    efi/x86: Respect 32-bit ABI in efi32_pe_entry()
    efi/x86: Annotate the LOADED_IMAGE_PROTOCOL_GUID with SYM_DATA
    ...

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

    - Make kfree_rcu() use kfree_bulk() for added performance

    - RCU updates

    - Callback-overload handling updates

    - Tasks-RCU KCSAN and sparse updates

    - Locking torture test and RCU torture test updates

    - Documentation updates

    - Miscellaneous fixes"

    * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (74 commits)
    rcu: Make rcu_barrier() account for offline no-CBs CPUs
    rcu: Mark rcu_state.gp_seq to detect concurrent writes
    Documentation/memory-barriers: Fix typos
    doc: Add rcutorture scripting to torture.txt
    doc/RCU/rcu: Use https instead of http if possible
    doc/RCU/rcu: Use absolute paths for non-rst files
    doc/RCU/rcu: Use ':ref:' for links to other docs
    doc/RCU/listRCU: Update example function name
    doc/RCU/listRCU: Fix typos in a example code snippets
    doc/RCU/Design: Remove remaining HTML tags in ReST files
    doc: Add some more RCU list patterns in the kernel
    rcutorture: Set KCSAN Kconfig options to detect more data races
    rcutorture: Manually clean up after rcu_barrier() failure
    rcutorture: Make rcu_torture_barrier_cbs() post from corresponding CPU
    rcuperf: Measure memory footprint during kfree_rcu() test
    rcutorture: Annotation lockless accesses to rcu_torture_current
    rcutorture: Add READ_ONCE() to rcu_torture_count and rcu_torture_batch
    rcutorture: Fix stray access to rcu_fwd_cb_nodelay
    rcutorture: Fix rcu_torture_one_read()/rcu_torture_writer() data race
    rcutorture: Make kvm-find-errors.sh abort on bad directory
    ...

    Linus Torvalds
     
  • Pull driver core updates from Greg KH:
    "Here is the "big" set of driver core changes for 5.7-rc1.

    Nothing huge in here, just lots of little firmware core changes and
    use of new apis, a libfs fix, a debugfs api change, and some driver
    core deferred probe rework.

    All of these have been in linux-next for a while with no reported
    issues"

    * tag 'driver-core-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (44 commits)
    Revert "driver core: Set fw_devlink to "permissive" behavior by default"
    driver core: Set fw_devlink to "permissive" behavior by default
    driver core: Replace open-coded list_last_entry()
    driver core: Read atomic counter once in driver_probe_done()
    libfs: fix infoleak in simple_attr_read()
    driver core: Add device links from fwnode only for the primary device
    platform/x86: touchscreen_dmi: Add info for the Chuwi Vi8 Plus tablet
    platform/x86: touchscreen_dmi: Add EFI embedded firmware info support
    Input: icn8505 - Switch to firmware_request_platform for retreiving the fw
    Input: silead - Switch to firmware_request_platform for retreiving the fw
    selftests: firmware: Add firmware_request_platform tests
    test_firmware: add support for firmware_request_platform
    firmware: Add new platform fallback mechanism and firmware_request_platform()
    Revert "drivers: base: power: wakeup.c: Use built-in RCU list checking"
    drivers: base: power: wakeup.c: Use built-in RCU list checking
    component: allow missing unbind callback
    debugfs: remove return value of debugfs_create_file_size()
    debugfs: Check module state before warning in {full/open}_proxy_open()
    firmware: fix a double abort case with fw_load_sysfs_fallback
    arch_topology: Fix putting invalid cpu clk
    ...

    Linus Torvalds
     
  • Pull pstore updates from Kees Cook:
    "These mostly some minor cleanups and a bug fix for an ftrace corner
    case:

    - Improve failure paths (chenqiwu)

    - Fix ftrace position index (Vasily Averin)

    - Use proper flexible-array member (Gustavo A. R. Silva)"

    * tag 'pstore-v5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
    pstore/ram: Replace zero-length array with flexible-array member
    pstore: pstore_ftrace_seq_next should increase position index
    pstore/ram: remove unnecessary ramoops_unregister_dummy()
    pstore/platform: fix potential mem leak if pstore_init_fs failed

    Linus Torvalds
     
  • Pull erofs updates from Gao Xiang:
    "Updates with a XArray adaptation, several fixes for shrinker and
    corrupted images are ready for this cycle.

    All commits have been stress tested with no noticeable smoke out and
    have been in linux-next as well.

    Summary:

    - Convert radix tree usage to XArray

    - Fix shrink scan count on multiple filesystem instances

    - Better handling for specific corrupted images

    - Update my email address in MAINTAINERS"

    * tag 'erofs-for-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
    MAINTAINERS: erofs: update my email address
    erofs: handle corrupted images whose decompressed size less than it'd be
    erofs: use LZ4_decompress_safe() for full decoding
    erofs: correct the remaining shrink objects
    erofs: convert workstn to XArray

    Linus Torvalds
     
  • Pull documentation updates from Jonathan Corbet:
    "This has been a busy cycle for documentation work.

    Highlights include:

    - Lots of RST conversion work by Mauro, Daniel ALmeida, and others.
    Maybe someday we'll get to the end of this stuff...maybe...

    - Some organizational work to bring some order to the core-api
    manual.

    - Various new docs and additions to the existing documentation.

    - Typo fixes, warning fixes, ..."

    * tag 'docs-5.7' of git://git.lwn.net/linux: (123 commits)
    Documentation: x86: exception-tables: document CONFIG_BUILDTIME_TABLE_SORT
    MAINTAINERS: adjust to filesystem doc ReST conversion
    docs: deprecated.rst: Add BUG()-family
    doc: zh_CN: add translation for virtiofs
    doc: zh_CN: index files in filesystems subdirectory
    docs: locking: Drop :c:func: throughout
    docs: locking: Add 'need' to hardirq section
    docs: conf.py: avoid thousands of duplicate label warning on Sphinx
    docs: prevent warnings due to autosectionlabel
    docs: fix reference to core-api/namespaces.rst
    docs: fix pointers to io-mapping.rst and io_ordering.rst files
    Documentation: Better document the softlockup_panic sysctl
    docs: hw-vuln: tsx_async_abort.rst: get rid of an unused ref
    docs: perf: imx-ddr.rst: get rid of a warning
    docs: filesystems: fuse.rst: supress a Sphinx warning
    docs: translations: it: avoid duplicate refs at programming-language.rst
    docs: driver.rst: supress two ReSt warnings
    docs: trace: events.rst: convert some new stuff to ReST format
    Documentation: Add io_ordering.rst to driver-api manual
    Documentation: Add io-mapping.rst to driver-api manual
    ...

    Linus Torvalds
     
  • Pull io_uring updates from Jens Axboe:
    "Here are the io_uring changes for this merge window. Light on new
    features this time around (just splice + buffer selection), lots of
    cleanups, fixes, and improvements to existing support. In particular,
    this contains:

    - Cleanup fixed file update handling for stack fallback (Hillf)

    - Re-work of how pollable async IO is handled, we no longer require
    thread offload to handle that. Instead we rely using poll to drive
    this, with task_work execution.

    - In conjunction with the above, allow expendable buffer selection,
    so that poll+recv (for example) no longer has to be a split
    operation.

    - Make sure we honor RLIMIT_FSIZE for buffered writes

    - Add support for splice (Pavel)

    - Linked work inheritance fixes and optimizations (Pavel)

    - Async work fixes and cleanups (Pavel)

    - Improve io-wq locking (Pavel)

    - Hashed link write improvements (Pavel)

    - SETUP_IOPOLL|SETUP_SQPOLL improvements (Xiaoguang)"

    * tag 'for-5.7/io_uring-2020-03-29' of git://git.kernel.dk/linux-block: (54 commits)
    io_uring: cleanup io_alloc_async_ctx()
    io_uring: fix missing 'return' in comment
    io-wq: handle hashed writes in chains
    io-uring: drop 'free_pfile' in struct io_file_put
    io-uring: drop completion when removing file
    io_uring: Fix ->data corruption on re-enqueue
    io-wq: close cancel gap for hashed linked work
    io_uring: make spdxcheck.py happy
    io_uring: honor original task RLIMIT_FSIZE
    io-wq: hash dependent work
    io-wq: split hashing and enqueueing
    io-wq: don't resched if there is no work
    io-wq: remove duplicated cancel code
    io_uring: fix truncated async read/readv and write/writev retry
    io_uring: dual license io_uring.h uapi header
    io_uring: io_uring_enter(2) don't poll while SETUP_IOPOLL|SETUP_SQPOLL enabled
    io_uring: Fix unused function warnings
    io_uring: add end-of-bits marker and build time verify it
    io_uring: provide means of removing buffers
    io_uring: add IOSQE_BUFFER_SELECT support for IORING_OP_RECVMSG
    ...

    Linus Torvalds
     
  • Pull block updates from Jens Axboe:

    - Online capacity resizing (Balbir)

    - Number of hardware queue change fixes (Bart)

    - null_blk fault injection addition (Bart)

    - Cleanup of queue allocation, unifying the node/no-node API
    (Christoph)

    - Cleanup of genhd, moving code to where it makes sense (Christoph)

    - Cleanup of the partition handling code (Christoph)

    - disk stat fixes/improvements (Konstantin)

    - BFQ improvements (Paolo)

    - Various fixes and improvements

    * tag 'for-5.7/block-2020-03-29' of git://git.kernel.dk/linux-block: (72 commits)
    block: return NULL in blk_alloc_queue() on error
    block: move bio_map_* to blk-map.c
    Revert "blkdev: check for valid request queue before issuing flush"
    block: simplify queue allocation
    bcache: pass the make_request methods to blk_queue_make_request
    null_blk: use blk_mq_init_queue_data
    block: add a blk_mq_init_queue_data helper
    block: move the ->devnode callback to struct block_device_operations
    block: move the part_stat* helpers from genhd.h to a new header
    block: move block layer internals out of include/linux/genhd.h
    block: move guard_bio_eod to bio.c
    block: unexport get_gendisk
    block: unexport disk_map_sector_rcu
    block: unexport disk_get_part
    block: mark part_in_flight and part_in_flight_rw static
    block: mark block_depr static
    block: factor out requeue handling from dispatch code
    block/diskstats: replace time_in_queue with sum of request times
    block/diskstats: accumulate all per-cpu counters in one pass
    block/diskstats: more accurate approximation of io_ticks for slow disks
    ...

    Linus Torvalds
     

30 Mar, 2020

6 commits


28 Mar, 2020

11 commits

  • Bit spinlocks are problematic if PREEMPT_RT is enabled, because they
    disable preemption, which is undesired for latency reasons and breaks when
    regular spinlocks are taken within the bit_spinlock locked region because
    regular spinlocks are converted to 'sleeping spinlocks' on RT.

    PREEMPT_RT replaced the bit spinlocks with regular spinlocks to avoid this
    problem. The replacement was done conditionaly at compile time, but
    Christoph requested to do an unconditional conversion.

    Jan suggested to move the spinlock into a existing padding hole which
    avoids a size increase of struct buffer_head on production kernels.

    As a benefit the lock gains lockdep coverage.

    [ bigeasy: Remove the wrapper and use always spinlock_t and move it into
    the padding hole ]

    Signed-off-by: Thomas Gleixner
    Signed-off-by: Sebastian Andrzej Siewior
    Signed-off-by: Thomas Gleixner
    Reviewed-by: Jan Kara
    Cc: Christoph Hellwig
    Link: https://lkml.kernel.org/r/20191118132824.rclhrbujqh4b4g4d@linutronix.de

    Thomas Gleixner
     
  • Function gfs2_recover_func grabs the sd_log_flush_lock rw_semaphore in
    write mode. This is unnecessary because we only need to prevent log flush
    from using sd_log_bio bio while it does. Therefore, a read lock will be
    enough. This is a small step in cleaning up log flush.

    Signed-off-by: Bob Peterson

    Bob Peterson
     
  • Before this patch, if the ail1 flush got stuck for some reason, there
    were no clues as to why. This patch introduces a check for getting
    stuck for more than a minute, and if it happens, it dumps the items
    still remaining on the ail1 list.

    Signed-off-by: Bob Peterson

    Bob Peterson
     
  • In function try_rgrp_unlink, we added a temporary lock of the
    sd_log_flush_lock while searching the bitmaps. This protected us from
    problems in which dinodes being freed were still in a state of flux
    because the rgrp was in an active transaction. It was a kludge.
    Now that we've straightened out the code for inode eviction, deletes,
    and all the recovery mess, we no longer need this kludge.
    This patch removes it, and should improve performance.

    Signed-off-by: Bob Peterson

    Bob Peterson
     
  • We now get the quota data structure when opening a file writable and put it
    when closing that writable file descriptor, so there no longer is a need for
    gfs2_qa_{get,put} while we're holding a writable file descriptor.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Bob Peterson

    Andreas Gruenbacher
     
  • Keeping reservations and quotas separate helps reviewing the code.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Bob Peterson

    Andreas Gruenbacher
     
  • Before this patch, multiple users called gfs2_qa_alloc which allocated
    a qadata structure to the inode, if quotas are turned on. Later, in
    file close or evict, the structure was deleted with gfs2_qa_delete.
    But there can be several competing processes who need access to the
    structure. There were races between file close (release) and the others.
    Thus, a release could delete the structure out from under a process
    that relied upon its existence. For example, chown.

    This patch changes the management of the qadata structures to be
    a get/put scheme. Function gfs2_qa_alloc has been changed to gfs2_qa_get
    and if the structure is allocated, the count essentially starts out at
    1. Function gfs2_qa_delete has been renamed to gfs2_qa_put, and the
    last guy to decrement the count to 0 frees the memory.

    Signed-off-by: Bob Peterson

    Bob Peterson
     
  • Before this patch, multiple callers called gfs2_rsqa_alloc to force
    the existence of a reservations structure and a quota data structure
    if needed. However, now the reservations are handled separately, so
    the quota data is only the quota data. So we eliminate the one in
    favor of just calling gfs2_qa_alloc directly.

    Signed-off-by: Bob Peterson

    Bob Peterson
     
  • Replace open-coded versions of list_first_entry and list_last_entry with those
    functions.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Bob Peterson

    Andreas Gruenbacher
     
  • When allocating a new inode, mark the iopen glock holder as uninitialized to
    make sure gfs2_evict_inode won't fail after an incomplete create or lookup. In
    gfs2_evict_inode, allow the inode glock to be NULL and remove the duplicate
    iopen glock teardown code. In gfs2_inode_lookup, don't tear down things that
    gfs2_evict_inode will already tear down.

    Signed-off-by: Andreas Gruenbacher
    Signed-off-by: Bob Peterson

    Andreas Gruenbacher
     
  • It clarifies the code slightly to use SMB2_SIGNATURE_SIZE
    define rather than 16.

    Suggested-by: Henning Schild
    Signed-off-by: Steve French

    Steve French
     

27 Mar, 2020

3 commits

  • Cleanup io_alloc_async_ctx() a bit, add a new __io_alloc_async_ctx(),
    so io_setup_async_rw() won't need to check whether async_ctx is true
    or false again.

    Reviewed-by: Stefano Garzarella
    Signed-off-by: Xiaoguang Wang
    Signed-off-by: Jens Axboe

    Xiaoguang Wang
     
  • When it's probing all of a fileserver's interfaces to find which one is
    best to use, afs_do_probe_fileserver() takes a lock on the server record
    and notes the pointer to the address list.

    It doesn't, however, pin the address list, so as soon as it drops the
    lock, there's nothing to stop the address list from being freed under
    us.

    Fix this by taking a ref on the address list inside the locked section
    and dropping it at the end of the function.

    Fixes: 3bf0fb6f33dd ("afs: Probe multiple fileservers simultaneously")
    Signed-off-by: David Howells
    Reviewed-by: Marc Dionne
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Pull ceph fixes from Ilya Dryomov:
    "A patch for a rather old regression in fullness handling and two
    memory leak fixes, marked for stable"

    * tag 'ceph-for-5.6-rc8' of git://github.com/ceph/ceph-client:
    ceph: fix memory leak in ceph_cleanup_snapid_map()
    libceph: fix alloc_msg_with_page_vector() memory leaks
    ceph: check POOL_FLAG_FULL/NEARFULL in addition to OSDMAP_FULL/NEARFULL

    Linus Torvalds
     

26 Mar, 2020

3 commits

  • Overlapping header include additions in macsec.c

    A bug fix in 'net' overlapping with the removal of 'version'
    string in ena_netdev.c

    Overlapping test additions in selftests Makefile

    Overlapping PCI ID table adjustments in iwlwifi driver.

    Signed-off-by: David S. Miller

    David S. Miller
     
  • Pull networking fixes from David Miller:

    1) Fix deadlock in bpf_send_signal() from Yonghong Song.

    2) Fix off by one in kTLS offload of mlx5, from Tariq Toukan.

    3) Add missing locking in iwlwifi mvm code, from Avraham Stern.

    4) Fix MSG_WAITALL handling in rxrpc, from David Howells.

    5) Need to hold RTNL mutex in tcindex_partial_destroy_work(), from Cong
    Wang.

    6) Fix producer race condition in AF_PACKET, from Willem de Bruijn.

    7) cls_route removes the wrong filter during change operations, from
    Cong Wang.

    8) Reject unrecognized request flags in ethtool netlink code, from
    Michal Kubecek.

    9) Need to keep MAC in reset until PHY is up in bcmgenet driver, from
    Doug Berger.

    10) Don't leak ct zone template in act_ct during replace, from Paul
    Blakey.

    11) Fix flushing of offloaded netfilter flowtable flows, also from Paul
    Blakey.

    12) Fix throughput drop during tx backpressure in cxgb4, from Rahul
    Lakkireddy.

    13) Don't let a non-NULL skb->dev leave the TCP stack, from Eric
    Dumazet.

    14) TCP_QUEUE_SEQ socket option has to update tp->copied_seq as well,
    also from Eric Dumazet.

    15) Restrict macsec to ethernet devices, from Willem de Bruijn.

    16) Fix reference leak in some ethtool *_SET handlers, from Michal
    Kubecek.

    17) Fix accidental disabling of MSI for some r8169 chips, from Heiner
    Kallweit.

    * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (138 commits)
    net: Fix CONFIG_NET_CLS_ACT=n and CONFIG_NFT_FWD_NETDEV={y, m} build
    net: ena: Add PCI shutdown handler to allow safe kexec
    selftests/net/forwarding: define libs as TEST_PROGS_EXTENDED
    selftests/net: add missing tests to Makefile
    r8169: re-enable MSI on RTL8168c
    net: phy: mdio-bcm-unimac: Fix clock handling
    cxgb4/ptp: pass the sign of offset delta in FW CMD
    net: dsa: tag_8021q: replace dsa_8021q_remove_header with __skb_vlan_pop
    net: cbs: Fix software cbs to consider packet sending time
    net/mlx5e: Do not recover from a non-fatal syndrome
    net/mlx5e: Fix ICOSQ recovery flow with Striding RQ
    net/mlx5e: Fix missing reset of SW metadata in Striding RQ reset
    net/mlx5e: Enhance ICOSQ WQE info fields
    net/mlx5_core: Set IB capability mask1 to fix ib_srpt connection failure
    selftests: netfilter: add nfqueue test case
    netfilter: nft_fwd_netdev: allow to redirect to ifb via ingress
    netfilter: nft_fwd_netdev: validate family and chain type
    netfilter: nft_set_rbtree: Detect partial overlaps on insertion
    netfilter: nft_set_rbtree: Introduce and use nft_rbtree_interval_start()
    netfilter: nft_set_pipapo: Separate partial and complete overlap cases on insertion
    ...

    Linus Torvalds
     
  • Pull zonefs fix from Damien Le Moal:
    "A single fix from me to correctly handle the size of read-only zone
    files"

    * tag 'zonefs-5.6-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
    zonfs: Fix handling of read-only zones

    Linus Torvalds
     

25 Mar, 2020

1 commit