1. 03 Aug, 2020 15 commits
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 8c4e1c02
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - several Kbuild improvements
      
       - several Mac fixes
      
       - minor cleanups and fixes
      
       - defconfig updates
      
      * tag 'm68k-for-v5.9-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: defconfig: Update defconfigs for v5.8-rc3
        m68k: Use CLEAN_FILES to clean up files
        m68k: mac: Improve IOP debug messages
        m68k: mac: Don't send uninitialized data in IOP message reply
        m68k: mac: Fix IOP status/control register writes
        m68k: mac: Don't send IOP message until channel is idle
        m68k: atari: Annotate dummy read in ROM port IO code as __maybe_unused
        m68k: Use sizeof_field() helper
        m68k: Pass -D options to KBUILD_CPPFLAGS instead of KBUILD_{A,C}FLAGS
        m68k: Optimize cc-option calls for cpuflags-y
        m68k: sun3: Descend to prom from arch/m68k/sun3
        m68k: Add arch/m68k/Kbuild
      8c4e1c02
    • Linus Torvalds's avatar
      Merge tag 'rm-unicore32' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux · 05119217
      Linus Torvalds authored
      Pull unicore32 removal from Mike Rapoport:
       "Remove unicore32 support.
      
        The unicore32 port do not seem maintained for a long time now, there
        is no upstream toolchain that can create unicore32 binaries and all
        the links to prebuilt toolchains for unicore32 are dead. Even
        compilers that were available are not supported by the kernel anymore.
      
        Guenter Roeck says:
          "I have stopped building unicore32 images since v4.19 since there is
           no available compiler that is still supported by the kernel. I am
           surprised that support for it has not been removed from the kernel"
      
        However, it's worth pointing out two things:
      
         - Guan Xuetao is still listed as maintainer and asked for the port to
           be kept around the last time Arnd suggested removing it two years
           ago. He promised that there would be compiler sources (presumably
           llvm), but has not made those available since.
      
         - https://github.com/gxt has patches to linux-4.9 and qemu-2.7, both
           released in 2016, with patches dated early 2019. These patches
           mainly restore a syscall ABI that was never part of mainline Linux
           but apparently used in production. qemu-2.8 removed support for
           that ABI and newer kernels (4.19+) can no longer be built with the
           old toolchain, so apparently there will not be any future updates
           to that git tree"
      
      * tag 'rm-unicore32' of git://git.kernel.org/pub/scm/linux/kernel/git/rppt/linux:
        MAINTAINERS: remove "PKUNITY SOC DRIVERS" entry
        rtc: remove fb-puv3  driver
        video: fbdev: remove fb-puv3  driver
        pwm: remove pwm-puv3  driver
        input: i8042: remove support for 8042-unicore32io
        i2c/buses: remove i2c-puv3  driver
        cpufreq: remove unicore32 driver
        arch: remove unicore32 port
      05119217
    • Linus Torvalds's avatar
      Merge tag 's390-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 45365a06
      Linus Torvalds authored
      Pull s390 updates from Heiko Carstens:
      
       - Add support for function error injection.
      
       - Add support for custom exception handlers, as required by
         BPF_PROBE_MEM.
      
       - Add support for BPF_PROBE_MEM.
      
       - Add trace events for idle enter / exit for the s390 specific idle
         implementation.
      
       - Remove unused zcore memmmap device.
      
       - Remove unused "raw view" from s390 debug feature.
      
       - AP bus + zcrypt device driver code refactoring.
      
       - Provide cex4 cca sysfs attributes for cex3 for zcrypt device driver.
      
       - Expose only minimal interface to walk physmem for mm/memblock. This
         is a common code change and it has been agreed on with Mike Rapoport
         and Andrew Morton that this can go upstream via the s390 tree.
      
       - Rework of the s390 vmem/vmmemap code to allow for future memory hot
         remove.
      
       - Get rid of FORCE_MAX_ZONEORDER to finally allow for order-10
         allocations again, instead of only order-8 allocations.
      
       - Various small improvements and fixes.
      
      * tag 's390-5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (48 commits)
        s390/vmemmap: coding style updates
        s390/vmemmap: avoid memset(PAGE_UNUSED) when adding consecutive sections
        s390/vmemmap: remember unused sub-pmd ranges
        s390/vmemmap: fallback to PTEs if mapping large PMD fails
        s390/vmem: cleanup empty page tables
        s390/vmemmap: take the vmem_mutex when populating/freeing
        s390/vmemmap: cleanup when vmemmap_populate() fails
        s390/vmemmap: extend modify_pagetable() to handle vmemmap
        s390/vmem: consolidate vmem_add_range() and vmem_remove_range()
        s390/vmem: rename vmem_add_mem() to vmem_add_range()
        s390: enable HAVE_FUNCTION_ERROR_INJECTION
        s390/pci: clarify comment in s390_mmio_read/write
        s390/time: improve comparison for tod steering
        s390/time: select CLOCKSOURCE_VALIDATE_LAST_CYCLE
        s390/time: use CLOCKSOURCE_MASK
        s390/bpf: implement BPF_PROBE_MEM
        s390/kernel: expand exception table logic to allow new handling options
        s390/kernel: unify EX_TABLE* implementations
        s390/mm: allow order 10 allocations
        s390/mm: avoid trimming to MAX_ORDER
        ...
      45365a06
    • Linus Torvalds's avatar
      Merge tag 'for-5.9/io_uring-20200802' of git://git.kernel.dk/linux-block · cdc8fcb4
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "Lots of cleanups in here, hardening the code and/or making it easier
        to read and fixing bugs, but a core feature/change too adding support
        for real async buffered reads. With the latter in place, we just need
        buffered write async support and we're done relying on kthreads for
        the fast path. In detail:
      
         - Cleanup how memory accounting is done on ring setup/free (Bijan)
      
         - sq array offset calculation fixup (Dmitry)
      
         - Consistently handle blocking off O_DIRECT submission path (me)
      
         - Support proper async buffered reads, instead of relying on kthread
           offload for that. This uses the page waitqueue to drive retries
           from task_work, like we handle poll based retry. (me)
      
         - IO completion optimizations (me)
      
         - Fix race with accounting and ring fd install (me)
      
         - Support EPOLLEXCLUSIVE (Jiufei)
      
         - Get rid of the io_kiocb unionizing, made possible by shrinking
           other bits (Pavel)
      
         - Completion side cleanups (Pavel)
      
         - Cleanup REQ_F_ flags handling, and kill off many of them (Pavel)
      
         - Request environment grabbing cleanups (Pavel)
      
         - File and socket read/write cleanups (Pavel)
      
         - Improve kiocb_set_rw_flags() (Pavel)
      
         - Tons of fixes and cleanups (Pavel)
      
         - IORING_SQ_NEED_WAKEUP clear fix (Xiaoguang)"
      
      * tag 'for-5.9/io_uring-20200802' of git://git.kernel.dk/linux-block: (127 commits)
        io_uring: flip if handling after io_setup_async_rw
        fs: optimise kiocb_set_rw_flags()
        io_uring: don't touch 'ctx' after installing file descriptor
        io_uring: get rid of atomic FAA for cq_timeouts
        io_uring: consolidate *_check_overflow accounting
        io_uring: fix stalled deferred requests
        io_uring: fix racy overflow count reporting
        io_uring: deduplicate __io_complete_rw()
        io_uring: de-unionise io_kiocb
        io-wq: update hash bits
        io_uring: fix missing io_queue_linked_timeout()
        io_uring: mark ->work uninitialised after cleanup
        io_uring: deduplicate io_grab_files() calls
        io_uring: don't do opcode prep twice
        io_uring: clear IORING_SQ_NEED_WAKEUP after executing task works
        io_uring: batch put_task_struct()
        tasks: add put_task_struct_many()
        io_uring: return locked and pinned page accounting
        io_uring: don't miscount pinned memory
        io_uring: don't open-code recv kbuf managment
        ...
      cdc8fcb4
    • Linus Torvalds's avatar
      Merge tag 'for-5.9/block-20200802' of git://git.kernel.dk/linux-block · 382625d0
      Linus Torvalds authored
      Pull core block updates from Jens Axboe:
       "Good amount of cleanups and tech debt removals in here, and as a
        result, the diffstat shows a nice net reduction in code.
      
         - Softirq completion cleanups (Christoph)
      
         - Stop using ->queuedata (Christoph)
      
         - Cleanup bd claiming (Christoph)
      
         - Use check_events, moving away from the legacy media change
           (Christoph)
      
         - Use inode i_blkbits consistently (Christoph)
      
         - Remove old unused writeback congestion bits (Christoph)
      
         - Cleanup/unify submission path (Christoph)
      
         - Use bio_uninit consistently, instead of bio_disassociate_blkg
           (Christoph)
      
         - sbitmap cleared bits handling (John)
      
         - Request merging blktrace event addition (Jan)
      
         - sysfs add/remove race fixes (Luis)
      
         - blk-mq tag fixes/optimizations (Ming)
      
         - Duplicate words in comments (Randy)
      
         - Flush deferral cleanup (Yufen)
      
         - IO context locking/retry fixes (John)
      
         - struct_size() usage (Gustavo)
      
         - blk-iocost fixes (Chengming)
      
         - blk-cgroup IO stats fixes (Boris)
      
         - Various little fixes"
      
      * tag 'for-5.9/block-20200802' of git://git.kernel.dk/linux-block: (135 commits)
        block: blk-timeout: delete duplicated word
        block: blk-mq-sched: delete duplicated word
        block: blk-mq: delete duplicated word
        block: genhd: delete duplicated words
        block: elevator: delete duplicated word and fix typos
        block: bio: delete duplicated words
        block: bfq-iosched: fix duplicated word
        iocost_monitor: start from the oldest usage index
        iocost: Fix check condition of iocg abs_vdebt
        block: Remove callback typedefs for blk_mq_ops
        block: Use non _rcu version of list functions for tag_set_list
        blk-cgroup: show global disk stats in root cgroup io.stat
        blk-cgroup: make iostat functions visible to stat printing
        block: improve discard bio alignment in __blkdev_issue_discard()
        block: change REQ_OP_ZONE_RESET and REQ_OP_ZONE_RESET_ALL to be odd numbers
        block: defer flush request no matter whether we have elevator
        block: make blk_timeout_init() static
        block: remove retry loop in ioc_release_fn()
        block: remove unnecessary ioc nested locking
        block: integrate bd_start_claiming into __blkdev_get
        ...
      382625d0
    • Linus Torvalds's avatar
      Merge branch 'mtd/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 99f6cf61
      Linus Torvalds authored
      Pull mtd fix from Richard Weinberger.
      
      * 'mtd/fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        mtd: properly check all write ioctls for permissions
      99f6cf61
    • Linus Torvalds's avatar
      userfaultfd: simplify fault handling · f9bf3522
      Linus Torvalds authored
      Instead of waiting in a loop for the userfaultfd condition to become
      true, just wait once and return VM_FAULT_RETRY.
      
      We've already dropped the mmap lock, we know we can't really
      successfully handle the fault at this point and the caller will have to
      retry anyway.  So there's no point in making the wait any more
      complicated than it needs to be - just schedule away.
      
      And once you don't have that complexity with explicit looping, you can
      also just lose all the 'userfaultfd_signal_pending()' complexity,
      because once we've set the correct process sleeping state, and don't
      loop, the act of scheduling itself will be checking if there are any
      pending signals before going to sleep.
      
      We can also drop the VM_FAULT_MAJOR games, since we'll be treating all
      retried faults as major soon anyway (series to regularize and share more
      of fault handling across architectures in a separate series by Peter Xu,
      and in the meantime we won't worry about the possible minor - I'll be
      here all week, try the veal - accounting difference).
      
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Peter Xu <peterx@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      f9bf3522
    • Linus Torvalds's avatar
      Merge tag 'filelock-v5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 3208167a
      Linus Torvalds authored
      Pull file locking fix from Jeff Layton:
       "Just a single, one-line patch to fix an inefficiency in the posix
        locking code that can lead to it doing more wakeups than necessary"
      
      * tag 'filelock-v5.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        locks: add locks_move_blocks in posix_lock_inode
      3208167a
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · ab5c60b7
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Add support for allocating transforms on a specific NUMA Node
         - Introduce the flag CRYPTO_ALG_ALLOCATES_MEMORY for storage users
      
        Algorithms:
         - Drop PMULL based ghash on arm64
         - Fixes for building with clang on x86
         - Add sha256 helper that does the digest in one go
         - Add SP800-56A rev 3 validation checks to dh
      
        Drivers:
         - Permit users to specify NUMA node in hisilicon/zip
         - Add support for i.MX6 in imx-rngc
         - Add sa2ul crypto driver
         - Add BA431 hwrng driver
         - Add Ingenic JZ4780 and X1000 hwrng driver
         - Spread IRQ affinity in inside-secure and marvell/cesa"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (157 commits)
        crypto: sa2ul - Fix inconsistent IS_ERR and PTR_ERR
        hwrng: core - remove redundant initialization of variable ret
        crypto: x86/curve25519 - Remove unused carry variables
        crypto: ingenic - Add hardware RNG for Ingenic JZ4780 and X1000
        dt-bindings: RNG: Add Ingenic RNG bindings.
        crypto: caam/qi2 - add module alias
        crypto: caam - add more RNG hw error codes
        crypto: caam/jr - remove incorrect reference to caam_jr_register()
        crypto: caam - silence .setkey in case of bad key length
        crypto: caam/qi2 - create ahash shared descriptors only once
        crypto: caam/qi2 - fix error reporting for caam_hash_alloc
        crypto: caam - remove deadcode on 32-bit platforms
        crypto: ccp - use generic power management
        crypto: xts - Replace memcpy() invocation with simple assignment
        crypto: marvell/cesa - irq balance
        crypto: inside-secure - irq balance
        crypto: ecc - SP800-56A rev 3 local public key validation
        crypto: dh - SP800-56A rev 3 local public key validation
        crypto: dh - check validity of Z before export
        lib/mpi: Add mpi_sub_ui()
        ...
      ab5c60b7
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 5577416c
      Linus Torvalds authored
      Pull fsverity update from Eric Biggers:
       "One fix for fs/verity/ to strengthen a memory barrier which might be
        too weak. This mirrors a similar fix in fs/crypto/"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fs-verity: use smp_load_acquire() for ->i_verity_info
      5577416c
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 690b2567
      Linus Torvalds authored
      Pull fscrypt updates from Eric Biggers:
       "This release, we add support for inline encryption via the blk-crypto
        framework which was added in 5.8.
      
        Now when an ext4 or f2fs filesystem is mounted with '-o inlinecrypt',
        the contents of encrypted files will be encrypted/decrypted via
        blk-crypto, instead of directly using the crypto API. This model
        allows taking advantage of the inline encryption hardware that is
        integrated into the UFS or eMMC host controllers on most mobile SoCs.
      
        Note that this is just an alternate implementation; the ciphertext
        written to disk stays the same.
      
        (This pull request does *not* include support for direct I/O on
        encrypted files, which blk-crypto makes possible, since that part is
        still being discussed.)
      
        Besides the above feature update, there are also a few fixes and
        cleanups, e.g. strengthening some memory barriers that may be too
        weak.
      
        All these patches have been in linux-next with no reported issues.
        I've also tested them with the fscrypt xfstests, as usual. It's also
        been tested that the inline encryption support works with the support
        for Qualcomm and Mediatek inline encryption hardware that will be in
        the scsi pull request for 5.9. Also, several SoC vendors are already
        using a previous, functionally equivalent version of these patches"
      
      * tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fscrypt: don't load ->i_crypt_info before it's known to be valid
        fscrypt: document inline encryption support
        fscrypt: use smp_load_acquire() for ->i_crypt_info
        fscrypt: use smp_load_acquire() for ->s_master_keys
        fscrypt: use smp_load_acquire() for fscrypt_prepared_key
        fscrypt: switch fscrypt_do_sha256() to use the SHA-256 library
        fscrypt: restrict IV_INO_LBLK_* to AES-256-XTS
        fscrypt: rename FS_KEY_DERIVATION_NONCE_SIZE
        fscrypt: add comments that describe the HKDF info strings
        ext4: add inline encryption support
        f2fs: add inline encryption support
        fscrypt: add inline encryption support
        fs: introduce SB_INLINECRYPT
      690b2567
    • Linus Torvalds's avatar
      Merge tag 'for-5.9-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 6dec9f40
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "We don't have any big feature updates this time, there are lots of
        small enhacements or fixes. A highlight perhaps is the parallel fsync
        performance improvements, numbers below.
      
        Regarding the dio/iomap that was reverted last time, the required API
        changes are likely to land in the upcoming cycle, the btrfs part will
        be updated afterwards.
      
        User visible changes:
      
         - new mount option rescue= to group all recovery-related mount
           options so we don't have many specific options, currently
           introducing only aliases for existing options, future extensions
           are in development to allow read-only mount with partially damaged
           structures:
            - usebackuproot is an alias for rescue=usebackuproot
            - nologreplay is an alias for rescue=nologreplay
      
         - start deprecation of mount option inode_cache, removal scheduled to
           v5.11
      
         - removed deprecated mount options alloc_start and subvolrootid
      
         - device stats corruption counter gets incremented when a checksum
           mismatch is found
      
         - qgroup information exported in /sys/fs/btrfs/<UUID>/qgroups/<id>
           using sysfs
      
         - add link /sys/fs/btrfs/<UUID>/bdi pointing to the associated
           backing dev info
      
         - FS_INFO ioctl enhancements:
            - add flags to request/describe newly added items
            - new item: numeric checksum type and checksum size
            - new item: generation
            - new item: metadata_uuid
      
         - seed device: with one new read-write device added, print the new
           device information in /proc/mounts
      
         - balance: detect cancellation by Ctrl-C in existing cancellation
           points
      
        Performance improvements:
      
         - optimized versions of various helpers on little-endian
           architectures, where we don't have to do LE/BE conversion from
           on-disk format
      
         - tree-log/fsync optimizations leading to lower max latency reported
           by dbench, reduced by about 12%
      
         - all chunk tree leaves are prefetched at mount time, can improve
           mount time on large (terabyte-sized) filesystems
      
         - speed up parallel fsync of files with reflinked/deduped extents,
           with jobs 16 to 1024 the throughput gets improved roughly by 50% on
           average and runtime decreased roughly by 30% on average, notable
           outlier is 128 jobs with +121.2% on throughput and -54.6% runtime
      
         - another speed up of parallel fsync, reduce number of checksum tree
           lookups and contention, the improvements start to show up with 2
           tasks with +20% throughput and -16% runtime up to 64 with +200%
           throughput and -66% runtime
      
        Core:
      
         - umount-time qgroup leak checker
      
         - qgroups
            - add a way to unreserve partial range after failure, avoiding
              some EDQUOT errors
            - improved flushing logic when EDQUOT is hit
      
         - possible EINTR interruption caused by failed reservations after
           transaction start is better handled and documented
      
         - transaction abort errors are unified to EROFS in case it's not the
           original reason of abort or we don't have other way to determine
           the reason
      
        Fixes:
      
         - make truncate succeed on a NOCOW file even if data space is
           exhausted
      
         - fix cancelling balance on filesystem with exhausted metadata space
      
         - anon block device:
            - preallocate anon bdev when subvolume is created to report
              failure early
            - shorten time the anon bdev id is allocated
            - don't allocate anon bdev for internal roots
      
         - minor memory leak in ref-verify
      
         - refuse invalid combinations of compression and NOCOW file flags
      
         - lockdep fixes, updating the device locks
      
         - remove obsolete fallback logic for block group profile adjustments
           when switching from 1 to more devices, causing allocation of
           unwanted block groups
      
        Other cleanups, refactoring, simplifications:
      
         - conversions from struct inode to struct btrfs_inode in internal
           functions
      
         - removal of unused struct members"
      
      * tag 'for-5.9-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (151 commits)
        btrfs: do not set the full sync flag on the inode during page release
        btrfs: release old extent maps during page release
        btrfs: fix race between page release and a fast fsync
        btrfs: open-code remount flag setting in btrfs_remount
        btrfs: if we're restriping, use the target restripe profile
        btrfs: don't adjust bg flags and use default allocation profiles
        btrfs: fix lockdep splat from btrfs_dump_space_info
        btrfs: move the chunk_mutex in btrfs_read_chunk_tree
        btrfs: open device without device_list_mutex
        btrfs: sysfs: use NOFS for device creation
        btrfs: return EROFS for BTRFS_FS_STATE_ERROR cases
        btrfs: document special case error codes for fs errors
        btrfs: don't WARN if we abort a transaction with EROFS
        btrfs: reduce contention on log trees when logging checksums
        btrfs: remove done label in writepage_delalloc
        btrfs: add comments for btrfs_reserve_flush_enum
        btrfs: relocation: review the call sites which can be interrupted by signal
        btrfs: avoid possible signal interruption of btrfs_drop_snapshot() on relocation tree
        btrfs: relocation: allow signal to cancel balance
        btrfs: raid56: remove out label in __raid56_parity_recover
        ...
      6dec9f40
    • Linus Torvalds's avatar
      Merge tag 'tpmdd-next-v5.9' of git://git.infradead.org/users/jjs/linux-tpmdd · 92b7e492
      Linus Torvalds authored
      Pull tpm updates from Jarkko Sakkinen:
       "An issue was fixed with the TPM space buffer size. The buffer is used
        to store in-TPM objects while swapped out of the TPM for a /dev/tpmrm0
        session. The code incorrectly used PAGE_SIZE, which obviously can
        vary. With these changes the buffer has a fixed size of 16 kB.
      
        In addition, this contains support for acquiring TPM even log from
        TPM2 ACPI table. This method is used by QEMU in particular"
      
      * tag 'tpmdd-next-v5.9' of git://git.infradead.org/users/jjs/linux-tpmdd:
        tpm: Add support for event log pointer found in TPM2 ACPI table
        acpi: Extend TPM2 ACPI table with missing log fields
        tpm: Unify the mismatching TPM space buffer sizes
        tpm: Require that all digests are present in TCG_PCR_EVENT2 structures
      92b7e492
    • Linus Torvalds's avatar
      list: add "list_del_init_careful()" to go with "list_empty_careful()" · c6fe44d9
      Linus Torvalds authored
      That gives us ordering guarantees around the pair.
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      c6fe44d9
    • Linus Torvalds's avatar
      mm: rewrite wait_on_page_bit_common() logic · 2a9127fc
      Linus Torvalds authored
      It turns out that wait_on_page_bit_common() had several problems,
      ranging from just unfair behavioe due to re-queueing at the end of the
      wait queue when re-trying, and an outright bug that could result in
      missed wakeups (but probably never happened in practice).
      
      This rewrites the whole logic to avoid both issues, by simply moving the
      logic to check (and possibly take) the bit lock into the wakeup path
      instead.
      
      That makes everything much more straightforward, and means that we never
      need to re-queue the wait entry: if we get woken up, we'll be notified
      through WQ_FLAG_WOKEN, and the wait queue entry will have been removed,
      and everything will have been done for us.
      
      Link: https://lore.kernel.org/lkml/CAHk-=wjJA2Z3kUFb-5s=6+n0qbTs8ELqKFt9B3pH85a8fGD73w@mail.gmail.com/
      Link: https://lore.kernel.org/lkml/alpine.LSU.2.11.2007221359450.1017@eggly.anvils/Reported-by: default avatarOleg Nesterov <oleg@redhat.com>
      Reported-by: default avatarHugh Dickins <hughd@google.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2a9127fc
  2. 02 Aug, 2020 6 commits
  3. 01 Aug, 2020 16 commits
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · ac3a0c84
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Encap offset calculation is incorrect in esp6, from Sabrina Dubroca.
      
       2) Better parameter validation in pfkey_dump(), from Mark Salyzyn.
      
       3) Fix several clang issues on powerpc in selftests, from Tanner Love.
      
       4) cmsghdr_from_user_compat_to_kern() uses the wrong length, from Al
          Viro.
      
       5) Out of bounds access in mlx5e driver, from Raed Salem.
      
       6) Fix transfer buffer memleak in lan78xx, from Johan Havold.
      
       7) RCU fixups in rhashtable, from Herbert Xu.
      
       8) Fix ipv6 nexthop refcnt leak, from Xiyu Yang.
      
       9) vxlan FDB dump must be done under RCU, from Ido Schimmel.
      
      10) Fix use after free in mlxsw, from Ido Schimmel.
      
      11) Fix map leak in HASH_OF_MAPS bpf code, from Andrii Nakryiko.
      
      12) Fix bug in mac80211 Tx ack status reporting, from Vasanthakumar
          Thiagarajan.
      
      13) Fix memory leaks in IPV6_ADDRFORM code, from Cong Wang.
      
      14) Fix bpf program reference count leaks in mlx5 during
          mlx5e_alloc_rq(), from Xin Xiong.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (86 commits)
        vxlan: fix memleak of fdb
        rds: Prevent kernel-infoleak in rds_notify_queue_get()
        net/sched: The error lable position is corrected in ct_init_module
        net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq
        net/mlx5e: E-Switch, Specify flow_source for rule with no in_port
        net/mlx5e: E-Switch, Add misc bit when misc fields changed for mirroring
        net/mlx5e: CT: Support restore ipv6 tunnel
        net: gemini: Fix missing clk_disable_unprepare() in error path of gemini_ethernet_port_probe()
        ionic: unlock queue mutex in error path
        atm: fix atm_dev refcnt leaks in atmtcp_remove_persistent
        net: ethernet: mtk_eth_soc: fix MTU warnings
        net: nixge: fix potential memory leak in nixge_probe()
        devlink: ignore -EOPNOTSUPP errors on dumpit
        rxrpc: Fix race between recvmsg and sendmsg on immediate call failure
        MAINTAINERS: Replace Thor Thayer as Altera Triple Speed Ethernet maintainer
        selftests/bpf: fix netdevsim trap_flow_action_cookie read
        ipv6: fix memory leaks on IPV6_ADDRFORM path
        net/bpfilter: Initialize pos in __bpfilter_process_sockopt
        igb: reinit_locked() should be called with rtnl_lock
        e1000e: continue to init PHY even when failed to disable ULP
        ...
      ac3a0c84
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2020-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 0ae3495b
      Linus Torvalds authored
      Pull thread fix from Christian Brauner:
       "A simple spelling fix for dequeue_synchronous_signal()"
      
      * tag 'for-linus-2020-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        signal: fix typo in dequeue_synchronous_signal()
      0ae3495b
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-2020-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux · bf121a0b
      Linus Torvalds authored
      Pull perf tooling fixes from Arnaldo Carvalho de Melo:
      
       - Fix libtraceevent build with binutils 2.35
      
       - Fix memory leak in process_dynamic_array_len in libtraceevent
      
       - Fix 'perf test 68' zstd compression for s390
      
       - Fix record failure when mixed with ARM SPE event
      
      * tag 'perf-tools-fixes-2020-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        libtraceevent: Fix build with binutils 2.35
        perf tools: Fix record failure when mixed with ARM SPE event
        perf tests: Fix test 68 zstd compression for s390
        tools lib traceevent: Fix memory leak in process_dynamic_array_len
      bf121a0b
    • Taehee Yoo's avatar
      vxlan: fix memleak of fdb · fda2ec62
      Taehee Yoo authored
      When vxlan interface is deleted, all fdbs are deleted by vxlan_flush().
      vxlan_flush() flushes fdbs but it doesn't delete fdb, which contains
      all-zeros-mac because it is deleted by vxlan_uninit().
      But vxlan_uninit() deletes only the fdb, which contains both all-zeros-mac
      and default vni.
      So, the fdb, which contains both all-zeros-mac and non-default vni
      will not be deleted.
      
      Test commands:
          ip link add vxlan0 type vxlan dstport 4789 external
          ip link set vxlan0 up
          bridge fdb add to 00:00:00:00:00:00 dst 172.0.0.1 dev vxlan0 via lo \
      	    src_vni 10000 self permanent
          ip link del vxlan0
      
      kmemleak reports as follows:
      unreferenced object 0xffff9486b25ced88 (size 96):
        comm "bridge", pid 2151, jiffies 4294701712 (age 35506.901s)
        hex dump (first 32 bytes):
          02 00 00 00 ac 00 00 01 40 00 09 b1 86 94 ff ff  ........@.......
          46 02 00 00 00 00 00 00 a7 03 00 00 12 b5 6a 6b  F.............jk
        backtrace:
          [<00000000c10cf651>] vxlan_fdb_append.part.51+0x3c/0xf0 [vxlan]
          [<000000006b31a8d9>] vxlan_fdb_create+0x184/0x1a0 [vxlan]
          [<0000000049399045>] vxlan_fdb_update+0x12f/0x220 [vxlan]
          [<0000000090b1ef00>] vxlan_fdb_add+0x12a/0x1b0 [vxlan]
          [<0000000056633c2c>] rtnl_fdb_add+0x187/0x270
          [<00000000dd5dfb6b>] rtnetlink_rcv_msg+0x264/0x490
          [<00000000fc44dd54>] netlink_rcv_skb+0x4a/0x110
          [<00000000dff433e7>] netlink_unicast+0x18e/0x250
          [<00000000b87fb421>] netlink_sendmsg+0x2e9/0x400
          [<000000002ed55153>] ____sys_sendmsg+0x237/0x260
          [<00000000faa51c66>] ___sys_sendmsg+0x88/0xd0
          [<000000006c3982f1>] __sys_sendmsg+0x4e/0x80
          [<00000000a8f875d2>] do_syscall_64+0x56/0xe0
          [<000000003610eefa>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
      unreferenced object 0xffff9486b1c40080 (size 128):
        comm "bridge", pid 2157, jiffies 4294701754 (age 35506.866s)
        hex dump (first 32 bytes):
          00 00 00 00 00 00 00 00 f8 dc 42 b2 86 94 ff ff  ..........B.....
          6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b 6b  kkkkkkkkkkkkkkkk
        backtrace:
          [<00000000a2981b60>] vxlan_fdb_create+0x67/0x1a0 [vxlan]
          [<0000000049399045>] vxlan_fdb_update+0x12f/0x220 [vxlan]
          [<0000000090b1ef00>] vxlan_fdb_add+0x12a/0x1b0 [vxlan]
          [<0000000056633c2c>] rtnl_fdb_add+0x187/0x270
          [<00000000dd5dfb6b>] rtnetlink_rcv_msg+0x264/0x490
          [<00000000fc44dd54>] netlink_rcv_skb+0x4a/0x110
          [<00000000dff433e7>] netlink_unicast+0x18e/0x250
          [<00000000b87fb421>] netlink_sendmsg+0x2e9/0x400
          [<000000002ed55153>] ____sys_sendmsg+0x237/0x260
          [<00000000faa51c66>] ___sys_sendmsg+0x88/0xd0
          [<000000006c3982f1>] __sys_sendmsg+0x4e/0x80
          [<00000000a8f875d2>] do_syscall_64+0x56/0xe0
          [<000000003610eefa>] entry_SYSCALL_64_after_hwframe+0x44/0xa9
      
      Fixes: 3ad7a4b1 ("vxlan: support fdb and learning in COLLECT_METADATA mode")
      Signed-off-by: default avatarTaehee Yoo <ap420073@gmail.com>
      Acked-by: default avatarRoopa Prabhu <roopa@cumulusnetworks.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      fda2ec62
    • Linus Torvalds's avatar
      Merge tag 'pinctrl-v5.8-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl · d52daa86
      Linus Torvalds authored
      Pull pin control fix from Linus Walleij:
       "A single last minute pin control fix to the Qualcomm driver fixing
        missing dual edge PCH interrupts"
      
      * tag 'pinctrl-v5.8-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
        pinctrl: qcom: Handle broken/missing PDC dual edge IRQs on sc7180
      d52daa86
    • Pavel Begunkov's avatar
      io_uring: flip if handling after io_setup_async_rw · fa15bafb
      Pavel Begunkov authored
      As recently done with with send/recv, flip the if after
      rw_verify_aread() in io_{read,write}() and tabulise left bits left.
      This removes mispredicted by a compiler jump on the success/fast path.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      fa15bafb
    • Pavel Begunkov's avatar
      fs: optimise kiocb_set_rw_flags() · 1752f0ad
      Pavel Begunkov authored
      Use a local var to collect flags in kiocb_set_rw_flags(). That spares
      some memory writes and allows to replace most of the jumps with MOVEcc.
      Signed-off-by: default avatarPavel Begunkov <asml.silence@gmail.com>
      Reviewed-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      1752f0ad
    • Masahiro Yamada's avatar
      Revert "kconfig: qconf: don't show goback button on splitMode" · 4b20e103
      Masahiro Yamada authored
      This reverts commit cc1c08ed.
      
      Maxim Levitsky reports 'make xconfig' crashes since that commit
      (https://lkml.org/lkml/2020/7/18/411)
      
      Or, the following is simple test code that makes it crash:
      
          menu "Menu"
      
          config FOO
                  bool "foo"
                  default y
      
          menuconfig BAR
                  bool "bar"
                  depends on FOO
      
          endmenu
      
      Select the Split View mode, and double-click "bar" in the right
      window, then you will see Segmentation fault.
      
      When 'last' is not set for symbolMode, the following code in
      ConfigList::updateList() calls firstChild().
      
        item = last ? last->nextSibling() : firstChild();
      
      However, the pointer returned by ConfigList::firstChild() does not
      seem to be compatible with (ConfigItem *), which seems another bug.
      
      I'd rather want to reconsider whether hiding the goback icon is the
      right thing to do.
      
      In the following test code, the Split View shows "Menu2" and "Menu3"
      in the right window. You can descend into "Menu3", but there is no way
      to ascend back to "Menu2" from "Menu3".
      
          menu "Menu1"
      
          config FOO
                  bool "foo"
                  default y
      
          menu "Menu2"
                  depends on FOO
      
          menu "Menu3"
      
          config BAZ
                  bool "baz"
      
          endmenu
      
          endmenu
      
          endmenu
      
      It is true that the goback button is currently not functional due to
      yet another bug, but hiding the problem is not the right way to go.
      
      Anyway, Segmentation fault is fatal. Revert the offending commit for
      now, and we should find the right solution.
      Reported-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      4b20e103
    • Masahiro Yamada's avatar
      Revert "kconfig: qconf: Change title for the item window" · 97bebbcd
      Masahiro Yamada authored
      This reverts commit 5752ff07.
      
      It added dead code to ConfigList:ConfigList().
      
      The constructor of ConfigList has the initializer, mode(singleMode).
      
          if (mode == symbolMode)
                 setHeaderLabels(QStringList() << "Item" << "Name" << "N" << "M" << "Y" << "Value");
          else
                 setHeaderLabels(QStringList() << "Option" << "Name" << "N" << "M" << "Y" << "Value");
      
      ... always takes the else part.
      
      The change to ConfigList::updateSelection() is strange too.
      When you click the split view icon for the first time, the titles in
      both windows show "Option". After you click something in the right
      window, the title suddenly changes to "Item".
      
      ConfigList::updateSelection() is not the right place to do this,
      at least. It was not a good idea, I think.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      97bebbcd
    • Masahiro Yamada's avatar
      kconfig: qconf: remove "goBack" debug message · ce02397f
      Masahiro Yamada authored
      Every time the goback icon is clicked, the annoying message "goBack"
      is displayed on the console.
      
      I guess this line is the left-over debug code of commit af737b4d
      ("kconfig: qconf: simplify the goBack() logic").
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      ce02397f
    • Masahiro Yamada's avatar
      kconfig: qconf: use delete[] instead of delete to free array · c9b09a92
      Masahiro Yamada authored
      cppcheck reports "Mismatching allocation and deallocation".
      
      $ cppcheck scripts/kconfig/qconf.cc
      Checking scripts/kconfig/qconf.cc ...
      scripts/kconfig/qconf.cc:1242:10: error: Mismatching allocation and deallocation: data [mismatchAllocDealloc]
        delete data;
               ^
      scripts/kconfig/qconf.cc:1236:15: note: Mismatching allocation and deallocation: data
       char *data = new char[count + 1];
                    ^
      scripts/kconfig/qconf.cc:1242:10: note: Mismatching allocation and deallocation: data
        delete data;
               ^
      scripts/kconfig/qconf.cc:1255:10: error: Mismatching allocation and deallocation: data [mismatchAllocDealloc]
        delete data;
               ^
      scripts/kconfig/qconf.cc:1236:15: note: Mismatching allocation and deallocation: data
       char *data = new char[count + 1];
                    ^
      scripts/kconfig/qconf.cc:1255:10: note: Mismatching allocation and deallocation: data
        delete data;
               ^
      
      Fixes: c4f7398b ("kconfig: qconf: make debug links work again")
      Reported-by: default avatarDavid Binderman <dcb314@hotmail.com>
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      c9b09a92
    • Masahiro Yamada's avatar
      kconfig: qconf: compile moc object separately · 0e912c03
      Masahiro Yamada authored
      Currently, qconf.moc is included from qconf.cc but they can be compiled
      independently.
      
      When you modify qconf.cc, qconf.moc does not need recompiling.
      
      Rename qconf.moc to qconf-moc.cc, and split it out as an independent
      compilation unit.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      0e912c03
    • Masahiro Yamada's avatar
      kconfig: qconf: use if_changed for qconf.moc rule · c3cd7cfa
      Masahiro Yamada authored
      Regenerate qconf.moc when the moc command is changed.
      
      This also allows 'make mrproper' to clean it up. Previously, it was
      not cleaned up because 'clean-files += qconf.moc' was missing.
      Now 'make mrproper' correctly cleans it up because files listed in
      'targets' are cleaned.
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      c3cd7cfa
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · 69138b34
      David S. Miller authored
      Daniel Borkmann says:
      
      ====================
      pull-request: bpf 2020-07-31
      
      The following pull-request contains BPF updates for your *net* tree.
      
      We've added 5 non-merge commits during the last 21 day(s) which contain
      a total of 5 files changed, 126 insertions(+), 18 deletions(-).
      
      The main changes are:
      
      1) Fix a map element leak in HASH_OF_MAPS map type, from Andrii Nakryiko.
      
      2) Fix a NULL pointer dereference in __btf_resolve_helper_id() when no
         btf_vmlinux is available, from Peilin Ye.
      
      3) Init pos variable in __bpfilter_process_sockopt(), from Christoph Hellwig.
      
      4) Fix a cgroup sockopt verifier test by specifying expected attach type,
         from Jean-Philippe Brucker.
      
      Note that when net gets merged into net-next later on, there is a small
      merge conflict in kernel/bpf/btf.c between commit 5b801dfb ("bpf: Fix
      NULL pointer dereference in __btf_resolve_helper_id()") from the bpf tree
      and commit 138b9a05 ("bpf: Remove btf_id helpers resolving") from the
      net-next tree.
      
      Resolve as follows: remove the old hunk with the __btf_resolve_helper_id()
      function. Change the btf_resolve_helper_id() so it actually tests for a
      NULL btf_vmlinux and bails out:
      
      int btf_resolve_helper_id(struct bpf_verifier_log *log,
                                const struct bpf_func_proto *fn, int arg)
      {
              int id;
      
              if (fn->arg_type[arg] != ARG_PTR_TO_BTF_ID || !btf_vmlinux)
                      return -EINVAL;
              id = fn->btf_id[arg];
              if (!id || id > btf_vmlinux->nr_types)
                      return -EINVAL;
              return id;
      }
      
      Let me know if you run into any others issues (CC'ing Jiri Olsa so he's in
      the loop with regards to merge conflict resolution).
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      69138b34
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec · 8d46215a
      David S. Miller authored
      Steffen Klassert says:
      
      ====================
      pull request (net): ipsec 2020-07-31
      
      1) Fix policy matching with mark and mask on userspace interfaces.
         From Xin Long.
      
      2) Several fixes for the new ESP in TCP encapsulation.
         From Sabrina Dubroca.
      
      3) Fix crash when the hold queue is used. The assumption that
         xdst->path and dst->child are not a NULL pointer only if dst->xfrm
         is not a NULL pointer is true with the exception of using the
         hold queue. Fix this by checking for hold queue usage before
         dereferencing xdst->path or dst->child.
      
      4) Validate pfkey_dump parameter before sending them.
         From Mark Salyzyn.
      
      5) Fix the location of the transport header with ESP in UDPv6
         encapsulation. From Sabrina Dubroca.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8d46215a
    • David S. Miller's avatar
      Merge tag 'mlx5-fixes-2020-07-30' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux · e535d87d
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      Mellanox, mlx5 fixes 2020-07-30
      
      This small patchset introduces some fixes to mlx5 driver.
      
      Please pull and let me know if there is any problem.
      
      For -stable v4.18:
       ('net/mlx5e: fix bpf_prog reference count leaks in mlx5e_alloc_rq')
      
      For -stable v5.7:
       ('net/mlx5e: E-Switch, Add misc bit when misc fields changed for mirroring')
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e535d87d
  4. 31 Jul, 2020 3 commits