1. 07 Apr, 2020 5 commits
    • Long Li's avatar
      cifs: Allocate crypto structures on the fly for calculating signatures of incoming packets · eda1c54f
      Long Li authored
      CIFS uses pre-allocated crypto structures to calculate signatures for both
      incoming and outgoing packets. In this way it doesn't need to allocate crypto
      structures for every packet, but it requires a lock to prevent concurrent
      access to crypto structures.
      
      Remove the lock by allocating crypto structures on the fly for
      incoming packets. At the same time, we can still use pre-allocated crypto
      structures for outgoing packets, as they are already protected by transport
      lock srv_mutex.
      Signed-off-by: default avatarLong Li <longli@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      eda1c54f
    • Long Li's avatar
      cifs: smbd: Update receive credits before sending and deal with credits roll... · d4e5160d
      Long Li authored
      cifs: smbd: Update receive credits before sending and deal with credits roll back on failure before sending
      
      Recevie credits should be updated before sending the packet, not
      before a work is scheduled. Also, the value needs roll back if
      something fails and cannot send.
      Signed-off-by: default avatarLong Li <longli@microsoft.com>
      Reported-by: default avatarkbuild test robot <lkp@intel.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      d4e5160d
    • Long Li's avatar
      cifs: smbd: Check send queue size before posting a send · 3ffbe78a
      Long Li authored
      Sometimes the remote peer may return more send credits than the send queue
      depth. If all the send credits are used to post senasd, we may overflow the
      send queue.
      
      Fix this by checking the send queue size before posting a send.
      Signed-off-by: default avatarLong Li <longli@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      3ffbe78a
    • Long Li's avatar
      cifs: smbd: Merge code to track pending packets · 072a14ec
      Long Li authored
      As an optimization, SMBD tries to track two types of packets: packets with
      payload and without payload. There is no obvious benefit or performance gain
      to separately track two types of packets.
      
      Just treat them as pending packets and merge the tracking code.
      Signed-off-by: default avatarLong Li <longli@microsoft.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      072a14ec
    • Aurelien Aptel's avatar
      cifs: ignore cached share root handle closing errors · e79b0332
      Aurelien Aptel authored
      Fix tcon use-after-free and NULL ptr deref.
      
      Customer system crashes with the following kernel log:
      
      [462233.169868] CIFS VFS: Cancelling wait for mid 4894753 cmd: 14       => a QUERY DIR
      [462233.228045] CIFS VFS: cifs_put_smb_ses: Session Logoff failure rc=-4
      [462233.305922] CIFS VFS: cifs_put_smb_ses: Session Logoff failure rc=-4
      [462233.306205] CIFS VFS: cifs_put_smb_ses: Session Logoff failure rc=-4
      [462233.347060] CIFS VFS: cifs_put_smb_ses: Session Logoff failure rc=-4
      [462233.347107] CIFS VFS: Close unmatched open
      [462233.347113] BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
      ...
          [exception RIP: cifs_put_tcon+0xa0] (this is doing tcon->ses->server)
       #6 [...] smb2_cancelled_close_fid at ... [cifs]
       #7 [...] process_one_work at ...
       #8 [...] worker_thread at ...
       #9 [...] kthread at ...
      
      The most likely explanation we have is:
      
      * When we put the last reference of a tcon (refcount=0), we close the
        cached share root handle.
      * If closing a handle is interrupted, SMB2_close() will
        queue a SMB2_close() in a work thread.
      * The queued object keeps a tcon ref so we bump the tcon
        refcount, jumping from 0 to 1.
      * We reach the end of cifs_put_tcon(), we free the tcon object despite
        it now having a refcount of 1.
      * The queued work now runs, but the tcon, ses & server was freed in
        the meantime resulting in a crash.
      
      THREAD 1
      ========
      cifs_put_tcon                 => tcon refcount reach 0
        SMB2_tdis
         close_shroot_lease
          close_shroot_lease_locked => if cached root has lease && refcount = 0
           smb2_close_cached_fid    => if cached root valid
            SMB2_close              => retry close in a thread if interrupted
             smb2_handle_cancelled_close
              __smb2_handle_cancelled_close    => !! tcon refcount bump 0 => 1 !!
               INIT_WORK(&cancelled->work, smb2_cancelled_close_fid);
               queue_work(cifsiod_wq, &cancelled->work) => queue work
       tconInfoFree(tcon);    ==> freed!
       cifs_put_smb_ses(ses); ==> freed!
      
      THREAD 2 (workqueue)
      ========
      smb2_cancelled_close_fid
        SMB2_close(0, cancelled->tcon, ...); => use-after-free of tcon
        cifs_put_tcon(cancelled->tcon);      => tcon refcount reach 0 second time
        *CRASH*
      
      Fixes: d9191319 ("CIFS: Close cached root handle only if it has a lease")
      Signed-off-by: default avatarAurelien Aptel <aaptel@suse.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-by: default avatarPavel Shilovsky <pshilov@microsoft.com>
      e79b0332
  2. 31 Mar, 2020 25 commits
    • Linus Torvalds's avatar
      Merge tag '5.7-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 645c248d
      Linus Torvalds authored
      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
        ...
      645c248d
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 018d21f5
      Linus Torvalds authored
      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
        ...
      018d21f5
    • Linus Torvalds's avatar
      Merge tag 'for-5.7-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 15c981d1
      Linus Torvalds authored
      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
        ...
      15c981d1
    • Linus Torvalds's avatar
      Merge tag 'fscrypt-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · 1455c699
      Linus Torvalds authored
      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
      1455c699
    • Linus Torvalds's avatar
      Merge branch 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 42595ce9
      Linus Torvalds authored
      Pull x86 vmware updates from Ingo Molnar:
       "The main change in this tree is the addition of 'steal time clock
        support' for VMware guests"
      
      * 'x86-vmware-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vmware: Use bool type for vmw_sched_clock
        x86/vmware: Enable steal time accounting
        x86/vmware: Add steal time clock support for VMware guests
        x86/vmware: Remove vmware_sched_clock_setup()
        x86/vmware: Make vmware_select_hypercall() __init
      42595ce9
    • Linus Torvalds's avatar
      Merge branch 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d9d76778
      Linus Torvalds authored
      Pull x86 mm updates from Ingo Molnar:
       "A handful of changes:
      
         - two memory encryption related fixes
      
         - don't display the kernel's virtual memory layout plaintext on
           32-bit kernels either
      
         - two simplifications"
      
      * 'x86-mm-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Remove the now redundant N_MEMORY check
        dma-mapping: Fix dma_pgprot() for unencrypted coherent pages
        x86: Don't let pgprot_modify() change the page encryption bit
        x86/mm/kmmio: Use this_cpu_ptr() instead get_cpu_var() for kmmio_ctx
        x86/mm/init/32: Stop printing the virtual memory layout
      d9d76778
    • Linus Torvalds's avatar
      Merge branch 'x86-misc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7cc7e935
      Linus Torvalds authored
      Pull misc x86 updates from Ingo Molnar:
      
       - extend the decoder maps with CET instructions
      
       - fix !vDSO corner cases
      
      * 'x86-misc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/tests: Add CET instructions to the new instructions test
        x86/insn: Add Control-flow Enforcement (CET) instructions to the opcode map
        selftests/x86/ptrace_syscall_32: Fix no-vDSO segfault
        selftests/x86/vdso: Fix no-vDSO segfaults
      7cc7e935
    • Linus Torvalds's avatar
      Merge branch 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d0be2d53
      Linus Torvalds authored
      Pull x86 fpu updates from Ingo Molnar:
       "Misc changes:
      
         - add a pkey sanity check
      
         - three commits to improve and future-proof xstate/xfeature handling
           some more"
      
      * 'x86-fpu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/pkeys: Add check for pkey "overflow"
        x86/fpu/xstate: Warn when checking alignment of disabled xfeatures
        x86/fpu/xstate: Fix XSAVES offsets in setup_xstate_comp()
        x86/fpu/xstate: Fix last_good_offset in setup_xstate_features()
      d0be2d53
    • Linus Torvalds's avatar
      Merge branch 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · fdf5563a
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "This topic tree contains more commits than usual:
      
         - most of it are uaccess cleanups/reorganization by Al
      
         - there's a bunch of prototype declaration (--Wmissing-prototypes)
           cleanups
      
         - misc other cleanups all around the map"
      
      * 'x86-cleanups-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (36 commits)
        x86/mm/set_memory: Fix -Wmissing-prototypes warnings
        x86/efi: Add a prototype for efi_arch_mem_reserve()
        x86/mm: Mark setup_emu2phys_nid() static
        x86/jump_label: Move 'inline' keyword placement
        x86/platform/uv: Add a missing prototype for uv_bau_message_interrupt()
        kill uaccess_try()
        x86: unsafe_put-style macro for sigmask
        x86: x32_setup_rt_frame(): consolidate uaccess areas
        x86: __setup_rt_frame(): consolidate uaccess areas
        x86: __setup_frame(): consolidate uaccess areas
        x86: setup_sigcontext(): list user_access_{begin,end}() into callers
        x86: get rid of put_user_try in __setup_rt_frame() (both 32bit and 64bit)
        x86: ia32_setup_rt_frame(): consolidate uaccess areas
        x86: ia32_setup_frame(): consolidate uaccess areas
        x86: ia32_setup_sigcontext(): lift user_access_{begin,end}() into the callers
        x86/alternatives: Mark text_poke_loc_init() static
        x86/cpu: Fix a -Wmissing-prototypes warning for init_ia32_feat_ctl()
        x86/mm: Drop pud_mknotpresent()
        x86: Replace setup_irq() by request_irq()
        x86/configs: Slightly reduce defconfigs
        ...
      fdf5563a
    • Linus Torvalds's avatar
      Merge branch 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 97cddfc3
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
       "A handful of updates: two linker script cleanups and a stock
        defconfig+allmodconfig bootability fix"
      
      * 'x86-build-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/vdso: Discard .note.gnu.property sections in vDSO
        x86, vmlinux.lds: Add RUNTIME_DISCARD_EXIT to generic DISCARDS
        x86/Kconfig: Make CMDLINE_OVERRIDE depend on non-empty CMDLINE
      97cddfc3
    • Linus Torvalds's avatar
      Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9589351c
      Linus Torvalds authored
      Pull x86 boot updates from Ingo Molnar:
       "Misc cleanups and small enhancements all around the map"
      
      * 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot/compressed: Fix debug_puthex() parameter type
        x86/setup: Fix static memory detection
        x86/vmlinux: Drop unneeded linker script discard of .eh_frame
        x86/*/Makefile: Use -fno-asynchronous-unwind-tables to suppress .eh_frame sections
        x86/boot/compressed: Remove .eh_frame section from bzImage
        x86/boot/compressed/64: Remove .bss/.pgtable from bzImage
        x86/boot/compressed/64: Use 32-bit (zero-extended) MOV for z_output_len
        x86/boot/compressed/64: Use LEA to initialize boot stack pointer
      9589351c
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 3cd86a58
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "The bulk is in-kernel pointer authentication, activity monitors and
        lots of asm symbol annotations. I also queued the sys_mremap() patch
        commenting the asymmetry in the address untagging.
      
        Summary:
      
         - In-kernel Pointer Authentication support (previously only offered
           to user space).
      
         - ARM Activity Monitors (AMU) extension support allowing better CPU
           utilisation numbers for the scheduler (frequency invariance).
      
         - Memory hot-remove support for arm64.
      
         - Lots of asm annotations (SYM_*) in preparation for the in-kernel
           Branch Target Identification (BTI) support.
      
         - arm64 perf updates: ARMv8.5-PMU 64-bit counters, refactoring the
           PMU init callbacks, support for new DT compatibles.
      
         - IPv6 header checksum optimisation.
      
         - Fixes: SDEI (software delegated exception interface) double-lock on
           hibernate with shared events.
      
         - Minor clean-ups and refactoring: cpu_ops accessor,
           cpu_do_switch_mm() converted to C, cpufeature finalisation helper.
      
         - sys_mremap() comment explaining the asymmetric address untagging
           behaviour"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (81 commits)
        mm/mremap: Add comment explaining the untagging behaviour of mremap()
        arm64: head: Convert install_el2_stub to SYM_INNER_LABEL
        arm64: Introduce get_cpu_ops() helper function
        arm64: Rename cpu_read_ops() to init_cpu_ops()
        arm64: Declare ACPI parking protocol CPU operation if needed
        arm64: move kimage_vaddr to .rodata
        arm64: use mov_q instead of literal ldr
        arm64: Kconfig: verify binutils support for ARM64_PTR_AUTH
        lkdtm: arm64: test kernel pointer authentication
        arm64: compile the kernel with ptrauth return address signing
        kconfig: Add support for 'as-option'
        arm64: suspend: restore the kernel ptrauth keys
        arm64: __show_regs: strip PAC from lr in printk
        arm64: unwind: strip PAC from kernel addresses
        arm64: mask PAC bits of __builtin_return_address
        arm64: initialize ptrauth keys for kernel booting task
        arm64: initialize and switch ptrauth kernel keys
        arm64: enable ptrauth earlier
        arm64: cpufeature: handle conflicts based on capability
        arm64: cpufeature: Move cpu capability helpers inside C file
        ...
      3cd86a58
    • Linus Torvalds's avatar
      Merge tag 'microblaze-v5.7-rc1' of git://git.monstr.eu/linux-2.6-microblaze · a8222fd5
      Linus Torvalds authored
      Pull microblaze updates from Michal Simek:
      
       - convert license headers to SPDX
      
       - cleanup header handling and use asm-generic one
      
       - get rid of earlyprintk residues
      
       - define barriers and use it in the code
      
       - get rid of setup_irq() for timer
      
       - various small addons and fixes
      
      * tag 'microblaze-v5.7-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
        microblaze: Replace setup_irq() by request_irq()
        microblaze: Stop printing the virtual memory layout
        microblaze: Use asm generic cmpxchg.h for !SMP case
        microblaze: Define percpu sestion in linker file
        microblaze: Remove unused boot_cpuid variable
        microblaze: Add missing irqflags.h header
        microblaze: Add sync to tlb operations
        microblaze: Define microblaze barrier
        microblaze: Remove empty headers
        microblaze: Remove early printk setup
        microblaze: Remove architecture tlb.h and use generic one
        microblaze: Convert headers to SPDX license
        microblaze: Fix _reset() function
        microblaze: Kernel parameters should be parsed earlier
      a8222fd5
    • Linus Torvalds's avatar
      Merge tag 'please-pull-ia64_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux · cad18da0
      Linus Torvalds authored
      Pull ia64 updates from Tony Luck:
       "Couple of cleanup patches"
      
      * tag 'please-pull-ia64_for_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
        tty/serial: cleanup after ioc*_serial driver removal
        ia64: replace setup_irq() by request_irq()
      cad18da0
    • Linus Torvalds's avatar
      Merge tag 'mips_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · d71e0644
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - loongson64 irq rework
      
       - dmi support loongson
      
       - replace setup_irq() by request_irq()
      
       - jazz cleanups
      
       - minor cleanups and fixes
      
      * tag 'mips_5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (44 commits)
        MIPS: ralink: mt7621: Fix soc_device introduction
        MIPS: Exclude more dsemul code when CONFIG_MIPS_FP_SUPPORT=n
        MIPS/tlbex: Fix LDDIR usage in setup_pw() for Loongson-3
        MIPS: do not compile generic functions for CONFIG_CAVIUM_OCTEON_SOC
        MAINTAINERS: Update Loongson64 entry
        MIPS: Loongson64: Load built-in dtbs
        MIPS: Loongson64: Add generic dts
        dt-bindings: mips: Add loongson boards
        MIPS: Loongson64: Drop legacy IRQ code
        dt-bindings: interrupt-controller: Add Loongson-3 HTPIC
        irqchip: Add driver for Loongson-3 HyperTransport PIC controller
        dt-bindings: interrupt-controller: Add Loongson LIOINTC
        irqchip: loongson-liointc: Workaround LPC IRQ Errata
        irqchip: Add driver for Loongson I/O Local Interrupt Controller
        docs: mips: remove no longer needed au1xxx_ide.rst documentation
        MIPS: Alchemy: remove no longer used au1xxx_ide.h header
        ide: remove no longer used au1xxx-ide driver
        MIPS: Add support for Desktop Management Interface (DMI)
        firmware: dmi: Add macro SMBIOS_ENTRY_POINT_SCAN_START
        MIPS: ralink: mt7621: introduce 'soc_device' initialization
        ...
      d71e0644
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v5.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 58233ccf
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - pagetable layout rewrite, to facilitate global READ_ONCE() rework
      
       - Zorro (Amiga) and DIO (HP 9000/300) bus cleanups
      
       - defconfig updates
      
       - minor cleanups and fixes
      
      * tag 'm68k-for-v5.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k: (23 commits)
        m68k: defconfig: Update defconfigs for v5.6-rc4
        zorro: Replace zero-length array with flexible-array member
        m68k: Switch to asm-generic/hardirq.h
        fbdev: c2p: Use BUILD_BUG() instead of custom solution
        dio: Remove unused dio_dev_driver()
        dio: Fix dio_bus_match() kerneldoc
        dio: Make dio_match_device() static
        zorro: Move zorro_bus_type to bus-private header file
        zorro: Remove unused zorro_dev_driver()
        zorro: Use zorro_match_device() helper in zorro_bus_match()
        zorro: Fix zorro_bus_match() kerneldoc
        zorro: Make zorro_match_device() static
        m68k: Fix Kconfig indentation
        m68k: mm: Change ColdFire pgtable_t
        m68k: mm: Fully initialize the page-table allocator
        m68k: mm: Extend table allocator for multiple sizes
        m68k: mm: Use table allocator for pgtables
        m68k: mm: Improve kernel_page_table()
        m68k: mm: Restructure Motorola MMU page-table layout
        m68k: mm: Move the pointer table allocator to motorola.c
        ...
      58233ccf
    • Linus Torvalds's avatar
      Merge tag 'x86-timers-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 458ef2a2
      Linus Torvalds authored
      Pull x86 timer updates from Thomas Gleixner:
       "A series of commits to make the MSR derived CPU and TSC frequency more
        accurate.
      
        It turned out that the frequency tables which have been taken from the
        SDM are inaccurate because the SDM provides truncated and rounded
        values, e.g. 83.3Mhz (83.3333...) or 116.7Mhz (116.6666...).
      
        This causes time drift in the range of ~1 second per hour (20-30
        seconds per day). On some of these SoCs it's not possible to
        recalibrate the TSC because there is no reference (PIT, HPET)
        available.
      
        With some reverse engineering it was established that the possible
        frequencies are derived from the base clock with fixed multiplier /
        divider pairs.
      
        For the CPU models which have a known crystal frequency the kernel now
        uses multiplier / divider pairs which bring the frequencies closer to
        reality and fix the observed time drift issues"
      
      * tag 'x86-timers-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/tsc_msr: Make MSR derived TSC frequency more accurate
        x86/tsc_msr: Fix MSR_FSB_FREQ mask for Cherry Trail devices
        x86/tsc_msr: Use named struct initializers
      458ef2a2
    • Linus Torvalds's avatar
      Merge tag 'x86-splitlock-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2853d5fa
      Linus Torvalds authored
      Pull x86 splitlock updates from Thomas Gleixner:
       "Support for 'split lock' detection:
      
        Atomic operations (lock prefixed instructions) which span two cache
        lines have to acquire the global bus lock. This is at least 1k cycles
        slower than an atomic operation within a cache line and disrupts
        performance on other cores. Aside of performance disruption this is a
        unpriviledged form of DoS.
      
        Some newer CPUs have the capability to raise an #AC trap when such an
        operation is attempted. The detection is by default enabled in warning
        mode which will warn once when a user space application is caught. A
        command line option allows to disable the detection or to select fatal
        mode which will terminate offending applications with SIGBUS"
      
      * tag 'x86-splitlock-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/split_lock: Avoid runtime reads of the TEST_CTRL MSR
        x86/split_lock: Rework the initialization flow of split lock detection
        x86/split_lock: Enable split lock detection by kernel
      2853d5fa
    • Linus Torvalds's avatar
      Merge tag 'x86-entry-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d5f744f9
      Linus Torvalds authored
      Pull x86 entry code updates from Thomas Gleixner:
      
       - Convert the 32bit syscalls to be pt_regs based which removes the
         requirement to push all 6 potential arguments onto the stack and
         consolidates the interface with the 64bit variant
      
       - The first small portion of the exception and syscall related entry
         code consolidation which aims to address the recently discovered
         issues vs. RCU, int3, NMI and some other exceptions which can
         interrupt any context. The bulk of the changes is still work in
         progress and aimed for 5.8.
      
       - A few lockdep namespace cleanups which have been applied into this
         branch to keep the prerequisites for the ongoing work confined.
      
      * tag 'x86-entry-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (35 commits)
        x86/entry: Fix build error x86 with !CONFIG_POSIX_TIMERS
        lockdep: Rename trace_{hard,soft}{irq_context,irqs_enabled}()
        lockdep: Rename trace_softirqs_{on,off}()
        lockdep: Rename trace_hardirq_{enter,exit}()
        x86/entry: Rename ___preempt_schedule
        x86: Remove unneeded includes
        x86/entry: Drop asmlinkage from syscalls
        x86/entry/32: Enable pt_regs based syscalls
        x86/entry/32: Use IA32-specific wrappers for syscalls taking 64-bit arguments
        x86/entry/32: Rename 32-bit specific syscalls
        x86/entry/32: Clean up syscall_32.tbl
        x86/entry: Remove ABI prefixes from functions in syscall tables
        x86/entry/64: Add __SYSCALL_COMMON()
        x86/entry: Remove syscall qualifier support
        x86/entry/64: Remove ptregs qualifier from syscall table
        x86/entry: Move max syscall number calculation to syscallhdr.sh
        x86/entry/64: Split X32 syscall table into its own file
        x86/entry/64: Move sys_ni_syscall stub to common.c
        x86/entry/64: Use syscall wrappers for x32_rt_sigreturn
        x86/entry: Refactor SYS_NI macros
        ...
      d5f744f9
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dbb381b6
      Linus Torvalds authored
      Pull timekeeping and timer updates from Thomas Gleixner:
       "Core:
      
         - Consolidation of the vDSO build infrastructure to address the
           difficulties of cross-builds for ARM64 compat vDSO libraries by
           restricting the exposure of header content to the vDSO build.
      
           This is achieved by splitting out header content into separate
           headers. which contain only the minimaly required information which
           is necessary to build the vDSO. These new headers are included from
           the kernel headers and the vDSO specific files.
      
         - Enhancements to the generic vDSO library allowing more fine grained
           control over the compiled in code, further reducing architecture
           specific storage and preparing for adopting the generic library by
           PPC.
      
         - Cleanup and consolidation of the exit related code in posix CPU
           timers.
      
         - Small cleanups and enhancements here and there
      
        Drivers:
      
         - The obligatory new drivers: Ingenic JZ47xx and X1000 TCU support
      
         - Correct the clock rate of PIT64b global clock
      
         - setup_irq() cleanup
      
         - Preparation for PWM and suspend support for the TI DM timer
      
         - Expand the fttmr010 driver to support ast2600 systems
      
         - The usual small fixes, enhancements and cleanups all over the
           place"
      
      * tag 'timers-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (80 commits)
        Revert "clocksource/drivers/timer-probe: Avoid creating dead devices"
        vdso: Fix clocksource.h macro detection
        um: Fix header inclusion
        arm64: vdso32: Enable Clang Compilation
        lib/vdso: Enable common headers
        arm: vdso: Enable arm to use common headers
        x86/vdso: Enable x86 to use common headers
        mips: vdso: Enable mips to use common headers
        arm64: vdso32: Include common headers in the vdso library
        arm64: vdso: Include common headers in the vdso library
        arm64: Introduce asm/vdso/processor.h
        arm64: vdso32: Code clean up
        linux/elfnote.h: Replace elf.h with UAPI equivalent
        scripts: Fix the inclusion order in modpost
        common: Introduce processor.h
        linux/ktime.h: Extract common header for vDSO
        linux/jiffies.h: Extract common header for vDSO
        linux/time64.h: Extract common header for vDSO
        linux/time32.h: Extract common header for vDSO
        linux/time.h: Extract common header for vDSO
        ...
      dbb381b6
    • Linus Torvalds's avatar
      Merge tag 'timers-nohz-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 336622e9
      Linus Torvalds authored
      Pull NOHZ update from Thomas Gleixner:
       "Remove TIF_NOHZ from three architectures
      
        These architectures use a static key to decide whether context
        tracking needs to be invoked and the TIF_NOHZ flag just causes a
        pointless slowpath execution for nothing"
      
      * tag 'timers-nohz-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        arm64: Remove TIF_NOHZ
        arm: Remove TIF_NOHZ
        x86: Remove TIF_NOHZ
        context-tracking: Introduce CONFIG_HAVE_TIF_NOHZ
        x86/entry: Remove _TIF_NOHZ from _TIF_WORK_SYSCALL_ENTRY
      336622e9
    • Linus Torvalds's avatar
      Merge tag 'smp-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 992a1a3b
      Linus Torvalds authored
      Pull core SMP updates from Thomas Gleixner:
       "CPU (hotplug) updates:
      
         - Support for locked CSD objects in smp_call_function_single_async()
           which allows to simplify callsites in the scheduler core and MIPS
      
         - Treewide consolidation of CPU hotplug functions which ensures the
           consistency between the sysfs interface and kernel state. The low
           level functions cpu_up/down() are now confined to the core code and
           not longer accessible from random code"
      
      * tag 'smp-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        cpu/hotplug: Ignore pm_wakeup_pending() for disable_nonboot_cpus()
        cpu/hotplug: Hide cpu_up/down()
        cpu/hotplug: Move bringup of secondary CPUs out of smp_init()
        torture: Replace cpu_up/down() with add/remove_cpu()
        firmware: psci: Replace cpu_up/down() with add/remove_cpu()
        xen/cpuhotplug: Replace cpu_up/down() with device_online/offline()
        parisc: Replace cpu_up/down() with add/remove_cpu()
        sparc: Replace cpu_up/down() with add/remove_cpu()
        powerpc: Replace cpu_up/down() with add/remove_cpu()
        x86/smp: Replace cpu_up/down() with add/remove_cpu()
        arm64: hibernate: Use bringup_hibernate_cpu()
        cpu/hotplug: Provide bringup_hibernate_cpu()
        arm64: Use reboot_cpu instead of hardconding it to 0
        arm64: Don't use disable_nonboot_cpus()
        ARM: Use reboot_cpu instead of hardcoding it to 0
        ARM: Don't use disable_nonboot_cpus()
        ia64: Replace cpu_down() with smp_shutdown_nonboot_cpus()
        cpu/hotplug: Create a new function to shutdown nonboot cpus
        cpu/hotplug: Add new {add,remove}_cpu() functions
        sched/core: Remove rq.hrtick_csd_pending
        ...
      992a1a3b
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 2d385336
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates for the interrupt subsystem:
      
        Treewide:
      
          - Cleanup of setup_irq() which is not longer required because the
            memory allocator is available early.
      
            Most cleanup changes come through the various maintainer trees, so
            the final removal of setup_irq() is postponed towards the end of
            the merge window.
      
        Core:
      
          - Protection against unsafe invocation of interrupt handlers and
            unsafe interrupt injection including a fixup of the offending
            PCI/AER error injection mechanism.
      
            Invoking interrupt handlers from arbitrary contexts, i.e. outside
            of an actual interrupt, can cause inconsistent state on the
            fragile x86 interrupt affinity changing hardware trainwreck.
      
        Drivers:
      
          - Second wave of support for the new ARM GICv4.1
      
          - Multi-instance support for Xilinx and PLIC interrupt controllers
      
          - CPU-Hotplug support for PLIC
      
          - The obligatory new driver for X1000 TCU
      
          - Enhancements, cleanups and fixes all over the place"
      
      * tag 'irq-core-2020-03-30' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (58 commits)
        unicore32: Replace setup_irq() by request_irq()
        sh: Replace setup_irq() by request_irq()
        hexagon: Replace setup_irq() by request_irq()
        c6x: Replace setup_irq() by request_irq()
        alpha: Replace setup_irq() by request_irq()
        irqchip/gic-v4.1: Eagerly vmap vPEs
        irqchip/gic-v4.1: Add VSGI property setup
        irqchip/gic-v4.1: Add VSGI allocation/teardown
        irqchip/gic-v4.1: Move doorbell management to the GICv4 abstraction layer
        irqchip/gic-v4.1: Plumb set_vcpu_affinity SGI callbacks
        irqchip/gic-v4.1: Plumb get/set_irqchip_state SGI callbacks
        irqchip/gic-v4.1: Plumb mask/unmask SGI callbacks
        irqchip/gic-v4.1: Add initial SGI configuration
        irqchip/gic-v4.1: Plumb skeletal VSGI irqchip
        irqchip/stm32: Retrigger both in eoi and unmask callbacks
        irqchip/gic-v3: Move irq_domain_update_bus_token to after checking for NULL domain
        irqchip/xilinx: Do not call irq_set_default_host()
        irqchip/xilinx: Enable generic irq multi handler
        irqchip/xilinx: Fill error code when irq domain registration fails
        irqchip/xilinx: Add support for multiple instances
        ...
      2d385336
    • Randy Dunlap's avatar
      staging/octeon: fix up merge error · 673b41e0
      Randy Dunlap authored
      There's a semantic conflict in the Octeon staging network driver, which
      used the skb_reset_tc() function to reset skb state when re-using an
      skb.  But that inline helper function was removed in mainline by commit
      2c64605b ("net: Fix CONFIG_NET_CLS_ACT=n and
      CONFIG_NFT_FWD_NETDEV={y, m} build").
      
      Fix it by using skb_reset_redirect() instead.  Also move it out of the
      
      This code path only ends up triggering if REUSE_SKBUFFS_WITHOUT_FREE is
      enabled, which in turn only happens if you don't have CONFIG_NETFILTER
      configured.  Which was how this wasn't caught by the usual allmodconfig
      builds.
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      673b41e0
    • Linus Torvalds's avatar
      Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 642e53ea
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "The main changes in this cycle are:
      
         - Various NUMA scheduling updates: harmonize the load-balancer and
           NUMA placement logic to not work against each other. The intended
           result is better locality, better utilization and fewer migrations.
      
         - Introduce Thermal Pressure tracking and optimizations, to improve
           task placement on thermally overloaded systems.
      
         - Implement frequency invariant scheduler accounting on (some) x86
           CPUs. This is done by observing and sampling the 'recent' CPU
           frequency average at ~tick boundaries. The CPU provides this data
           via the APERF/MPERF MSRs. This hopefully makes our capacity
           estimates more precise and keeps tasks on the same CPU better even
           if it might seem overloaded at a lower momentary frequency. (As
           usual, turbo mode is a complication that we resolve by observing
           the maximum frequency and renormalizing to it.)
      
         - Add asymmetric CPU capacity wakeup scan to improve capacity
           utilization on asymmetric topologies. (big.LITTLE systems)
      
         - PSI fixes and optimizations.
      
         - RT scheduling capacity awareness fixes & improvements.
      
         - Optimize the CONFIG_RT_GROUP_SCHED constraints code.
      
         - Misc fixes, cleanups and optimizations - see the changelog for
           details"
      
      * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (62 commits)
        threads: Update PID limit comment according to futex UAPI change
        sched/fair: Fix condition of avg_load calculation
        sched/rt: cpupri_find: Trigger a full search as fallback
        kthread: Do not preempt current task if it is going to call schedule()
        sched/fair: Improve spreading of utilization
        sched: Avoid scale real weight down to zero
        psi: Move PF_MEMSTALL out of task->flags
        MAINTAINERS: Add maintenance information for psi
        psi: Optimize switching tasks inside shared cgroups
        psi: Fix cpu.pressure for cpu.max and competing cgroups
        sched/core: Distribute tasks within affinity masks
        sched/fair: Fix enqueue_task_fair warning
        thermal/cpu-cooling, sched/core: Move the arch_set_thermal_pressure() API to generic scheduler code
        sched/rt: Remove unnecessary push for unfit tasks
        sched/rt: Allow pulling unfitting task
        sched/rt: Optimize cpupri_find() on non-heterogenous systems
        sched/rt: Re-instate old behavior in select_task_rq_rt()
        sched/rt: cpupri_find: Implement fallback mechanism for !fit case
        sched/fair: Fix reordering of enqueue/dequeue_task_fair()
        sched/fair: Fix runnable_avg for throttled cfs
        ...
      642e53ea
  3. 30 Mar, 2020 10 commits
    • Linus Torvalds's avatar
      Merge branch 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9b82f05f
      Linus Torvalds authored
      Pull perf updates from Ingo Molnar:
       "The main changes in this cycle were:
      
        Kernel side changes:
      
         - A couple of x86/cpu cleanups and changes were grandfathered in due
           to patch dependencies. These clean up the set of CPU model/family
           matching macros with a consistent namespace and C99 initializer
           style.
      
         - A bunch of updates to various low level PMU drivers:
             * AMD Family 19h L3 uncore PMU
             * Intel Tiger Lake uncore support
             * misc fixes to LBR TOS sampling
      
         - optprobe fixes
      
         - perf/cgroup: optimize cgroup event sched-in processing
      
         - misc cleanups and fixes
      
        Tooling side changes are to:
      
         - perf {annotate,expr,record,report,stat,test}
      
         - perl scripting
      
         - libapi, libperf and libtraceevent
      
         - vendor events on Intel and S390, ARM cs-etm
      
         - Intel PT updates
      
         - Documentation changes and updates to core facilities
      
         - misc cleanups, fixes and other enhancements"
      
      * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (89 commits)
        cpufreq/intel_pstate: Fix wrong macro conversion
        x86/cpu: Cleanup the now unused CPU match macros
        hwrng: via_rng: Convert to new X86 CPU match macros
        crypto: Convert to new CPU match macros
        ASoC: Intel: Convert to new X86 CPU match macros
        powercap/intel_rapl: Convert to new X86 CPU match macros
        PCI: intel-mid: Convert to new X86 CPU match macros
        mmc: sdhci-acpi: Convert to new X86 CPU match macros
        intel_idle: Convert to new X86 CPU match macros
        extcon: axp288: Convert to new X86 CPU match macros
        thermal: Convert to new X86 CPU match macros
        hwmon: Convert to new X86 CPU match macros
        platform/x86: Convert to new CPU match macros
        EDAC: Convert to new X86 CPU match macros
        cpufreq: Convert to new X86 CPU match macros
        ACPI: Convert to new X86 CPU match macros
        x86/platform: Convert to new CPU match macros
        x86/kernel: Convert to new CPU match macros
        x86/kvm: Convert to new CPU match macros
        x86/perf/events: Convert to new CPU match macros
        ...
      9b82f05f
    • Linus Torvalds's avatar
      Merge branch 'locking-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4b9fd8a8
      Linus Torvalds authored
      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
        ...
      4b9fd8a8
    • Linus Torvalds's avatar
      Merge branch 'efi-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a776c270
      Linus Torvalds authored
      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
        ...
      a776c270
    • Linus Torvalds's avatar
      Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7c4fa150
      Linus Torvalds authored
      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
        ...
      7c4fa150
    • Linus Torvalds's avatar
      Merge branch 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d937a6df
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
       "The biggest changes in this cycle were the vmlinux.o optimizations by
         Peter Zijlstra, which are preparatory and optimization work to run
         objtool against the much richer vmlinux.o object file, to perform
         new, whole-program section based logic. That work exposed a handful
         of problems with the existing code, which fixes and optimizations are
         merged here. The complete 'vmlinux.o and noinstr' work is still work
         in progress, targeted for v5.8.
      
        There's also assorted fixes and enhancements from Josh Poimboeuf.
      
        In particular I'd like to draw attention to commit 644592d3,
        which turns fatal objtool errors into failed kernel builds. This
        behavior is IMO now justified on multiple grounds (it's easy currently
        to not notice an essentially corrupted kernel build), and the commit
        has been in -next testing for several weeks, but there could still be
        build failures with old or weird toolchains. Should that be widespread
        or high profile enough then I'd suggest a quick revert, to not hold up
        the merge window"
      
      * 'core-objtool-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        objtool: Re-arrange validate_functions()
        objtool: Optimize find_rela_by_dest_range()
        objtool: Delete cleanup()
        objtool: Optimize read_sections()
        objtool: Optimize find_symbol_by_name()
        objtool: Resize insn_hash
        objtool: Rename find_containing_func()
        objtool: Optimize find_symbol_*() and read_symbols()
        objtool: Optimize find_section_by_name()
        objtool: Optimize find_section_by_index()
        objtool: Add a statistics mode
        objtool: Optimize find_symbol_by_index()
        x86/kexec: Make relocate_kernel_64.S objtool clean
        x86/kexec: Use RIP relative addressing
        objtool: Rename func_for_each_insn_all()
        objtool: Rename func_for_each_insn()
        objtool: Introduce validate_return()
        objtool: Improve call destination function detection
        objtool: Fix clang switch table edge case
        objtool: Add relocation check for alternative sections
        ...
      d937a6df
    • Linus Torvalds's avatar
      Merge tag 'pnp-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 2ce94bc4
      Linus Torvalds authored
      Pull PNP subsystem updates from Rafael Wysocki:
      
       - Update MAINTAINERS to cover include/linux/pnp.h and add the
         linux-acpi list to the PNP entry in it
      
       - add the const modifier to the name field definition in struct
         pnp_driver
      
       - drop a pointer case in the RTC CMOS driver that has become redundant
      
      All by Corentin Labbe.
      
      * tag 'pnp-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        MAINTAINERS: Add linux-acpi list to PNP
        rtc: cmos: remove useless cast for driver_name
        PNP: constify driver name
        PNP: add missing include/linux/pnp.h to MAINTAINERS
      2ce94bc4
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 6d905081
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
      
         - Update the ACPICA code in the kernel to the 20200214 upstream
           release including:
      
             * Fix to re-enable the sleep button after wakeup (Anchal
               Agarwal).
      
             * Fixes for mistakes in comments and typos (Bob Moore).
      
             * ASL-ASL+ converter updates (Erik Kaneda).
      
             * Type casting cleanups (Sven Barth).
      
         - Clean up the intialization of the EC driver and eliminate some dead
           code from it (Rafael Wysocki).
      
         - Clean up the quirk tables in the AC and battery drivers (Hans de
           Goede).
      
         - Fix the global lock handling on x86 to ignore unspecified bit
           positions in the global lock field (Jan Engelhardt).
      
         - Add a new "tiny" driver for ACPI button devices exposed by VMs to
           guest kernels to send signals directly to init (Josh Triplett).
      
         - Add a kernel parameter to disable ACPI BGRT on x86 (Alex Hung).
      
         - Make the ACPI PCI host bridge and fan drivers use scnprintf() to
           avoid potential buffer overflows (Takashi Iwai).
      
         - Clean up assorted pieces of code:
      
             * Reorder "asmlinkage" to make g++ happy (Alexey Dobriyan).
      
             * Drop unneeded variable initialization (Colin Ian King).
      
             * Add missing __acquires/__releases annotations (Jules Irenge).
      
             * Replace list_for_each_safe() with list_for_each_entry_safe()
               (chenqiwu)"
      
      * tag 'acpi-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (31 commits)
        ACPICA: Update version to 20200214
        ACPI: PCI: Use scnprintf() for avoiding potential buffer overflow
        ACPI: fan: Use scnprintf() for avoiding potential buffer overflow
        ACPI: EC: Eliminate EC_FLAGS_QUERY_HANDSHAKE
        ACPI: EC: Do not clear boot_ec_is_ecdt in acpi_ec_add()
        ACPI: EC: Simplify acpi_ec_ecdt_start() and acpi_ec_init()
        ACPI: EC: Consolidate event handler installation code
        acpi/x86: ignore unspecified bit positions in the ACPI global lock field
        acpi/x86: add a kernel parameter to disable ACPI BGRT
        x86/acpi: make "asmlinkage" part first thing in the function definition
        ACPI: list_for_each_safe() -> list_for_each_entry_safe()
        ACPI: video: remove redundant assignments to variable result
        ACPI: OSL: Add missing __acquires/__releases annotations
        ACPI / battery: Cleanup Lenovo Ideapad Miix 320 DMI table entry
        ACPI / AC: Cleanup DMI quirk table
        ACPI: EC: Use fast path in acpi_ec_add() for DSDT boot EC
        ACPI: EC: Simplify acpi_ec_add()
        ACPI: EC: Drop AE_NOT_FOUND special case from ec_install_handlers()
        ACPI: EC: Avoid passing redundant argument to functions
        ACPI: EC: Avoid printing confusing messages in acpi_ec_setup()
        ...
      6d905081
    • Linus Torvalds's avatar
      Merge tag 'pm-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 49835c15
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These clean up and rework the PM QoS API, address a suspend-to-idle
        wakeup regression on some ACPI-based platforms, clean up and extend a
        few cpuidle drivers, update multiple cpufreq drivers and cpufreq
        documentation, and fix a number of issues in devfreq and several other
        things all over.
      
        Specifics:
      
         - Clean up and rework the PM QoS API to simplify the code and reduce
           the size of it (Rafael Wysocki).
      
         - Fix a suspend-to-idle wakeup regression on Dell XPS13 9370 and
           similar platforms where the USB plug/unplug events are handled by
           the EC (Rafael Wysocki).
      
         - CLean up the intel_idle and PSCI cpuidle drivers (Rafael Wysocki,
           Ulf Hansson).
      
         - Extend the haltpoll cpuidle driver so that it can be forced to run
           on some systems where it refused to load (Maciej Szmigiero).
      
         - Convert several cpufreq documents to the .rst format and move the
           legacy driver documentation into one common file (Mauro Carvalho
           Chehab, Rafael Wysocki).
      
         - Update several cpufreq drivers:
      
              * Extend and fix the imx-cpufreq-dt driver (Anson Huang).
      
              * Improve the -EPROBE_DEFER handling and fix unwanted CPU
                overclocking on i.MX6ULL in imx6q-cpufreq (Anson Huang,
                Christoph Niedermaier).
      
              * Add support for Krait based SoCs to the qcom driver (Ansuel
                Smith).
      
              * Add support for OPP_PLUS to ti-cpufreq (Lokesh Vutla).
      
              * Add platform specific intermediate callbacks support to
                cpufreq-dt and update the imx6q driver (Peng Fan).
      
              * Simplify and consolidate some pieces of the intel_pstate
                driver and update its documentation (Rafael Wysocki, Alex
                Hung).
      
         - Fix several devfreq issues:
      
              * Remove unneeded extern keyword from a devfreq header file and
                use the DEVFREQ_GOV_UPDATE_INTERNAL event name instead of
                DEVFREQ_GOV_INTERNAL (Chanwoo Choi).
      
              * Fix the handling of dev_pm_qos_remove_request() result
                (Leonard Crestez).
      
              * Use constant name for userspace governor (Pierre Kuo).
      
              * Get rid of doc warnings and fix a typo (Christophe JAILLET).
      
         - Use built-in RCU list checking in some places in the PM core to
           avoid false-positive RCU usage warnings (Madhuparna Bhowmik).
      
         - Add explicit READ_ONCE()/WRITE_ONCE() annotations to low-level PM
           QoS routines (Qian Cai).
      
         - Fix removal of wakeup sources to avoid NULL pointer dereferences in
           a corner case (Neeraj Upadhyay).
      
         - Clean up the handling of hibernate compat ioctls and fix the
           related documentation (Eric Biggers).
      
         - Update the idle_inject power capping driver to use variable-length
           arrays instead of zero-length arrays (Gustavo Silva).
      
         - Fix list format in a PM QoS document (Randy Dunlap).
      
         - Make the cpufreq stats module use scnprintf() to avoid potential
           buffer overflows (Takashi Iwai).
      
         - Add pm_runtime_get_if_active() to PM-runtime API (Sakari Ailus).
      
         - Allow no domain-idle-states DT property in generic PM domains (Ulf
           Hansson).
      
         - Fix a broken y-axis scale in the intel_pstate_tracer utility (Doug
           Smythies)"
      
      * tag 'pm-5.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (78 commits)
        cpufreq: intel_pstate: Simplify intel_pstate_cpu_init()
        tools/power/x86/intel_pstate_tracer: fix a broken y-axis scale
        ACPI: PM: s2idle: Refine active GPEs check
        ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE
        PM: sleep: wakeup: Skip wakeup_source_sysfs_remove() if device is not there
        PM / devfreq: Get rid of some doc warnings
        PM / devfreq: Fix handling dev_pm_qos_remove_request result
        PM / devfreq: Fix a typo in a comment
        PM / devfreq: Change to DEVFREQ_GOV_UPDATE_INTERVAL event name
        PM / devfreq: Remove unneeded extern keyword
        PM / devfreq: Use constant name of userspace governor
        ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late()
        cpufreq: qcom: Add support for krait based socs
        cpufreq: imx6q-cpufreq: Improve the logic of -EPROBE_DEFER handling
        cpufreq: Use scnprintf() for avoiding potential buffer overflow
        cpuidle: psci: Split psci_dt_cpu_init_idle()
        PM / Domains: Allow no domain-idle-states DT property in genpd when parsing
        PM / hibernate: Remove unnecessary compat ioctl overrides
        PM: hibernate: fix docs for ioctls that return loff_t via pointer
        Documentation: intel_pstate: update links for references
        ...
      49835c15
    • Linus Torvalds's avatar
      Merge tag 'regulator-spi-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc · a231bed2
      Linus Torvalds authored
      Pull spi and regulator updates from Mark Brown:
       "At one point in the release cycle I managed to fat finger things and
        apply some SPI fixes onto a regulator branch and merge that into the
        SPI tree, then pull in a change shared with the MTD tree moving the
        Mediatek quadspi driver over to become the Mediatek spi-nor driver in
        the SPI tree.
      
        This has made a mess which I only just noticed while preparing this
        and I can't see a sensible way to unpick things due to other
        subsequent merge commits especially the pull from MTD so it looks like
        the most sensible thing to do is give up and combine the two pull
        requests.
      
        Fortunately both subsystems were fairly quiet this cycle, the
        highlights are:
      
        regulator:
      
         - Support for Monoloithic Power Systems MP5416, MP8867 and MPS8869
           and Qualcomm PMI8994 and SMB208.
      
        SPI:
      
         - Lots of enhancements for spi-fsl-dspi, including XSPI mode support,
           from Vladimir Oltean.
      
         - Support for amlogic Meson G12A, IBM FSI, Mediatek spi-nor (moved
           from MTD), NXP i.MX8Mx, Rockchip PX30, RK3308 and RK3328, and
           Qualcomm Atheros AR934x/QCA95xx"
      
      * tag 'regulator-spi-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/misc: (118 commits)
        spi: efm32: Convert to use GPIO descriptors
        regulator: qcom_smd: Add pmi8994 regulator support
        regulator: da9063: Fix get_mode() functions to read sleep field
        spi: spi-fsl-lpspi: Replace zero-length array with flexible-array member
        spi: spi-s3c24xx: Replace zero-length array with flexible-array member
        spi: stm32: Fix comments compilation warnings
        spi: atmel-quadspi: Add verbose debug facilities to monitor register accesses
        spi: spi-fsl-dspi: Add support for LS1028A
        spi: spi-fsl-dspi: Move invariant configs out of dspi_transfer_one_message
        spi: spi-fsl-dspi: Fix interrupt-less DMA mode taking an XSPI code path
        spi: spi-fsl-dspi: Avoid NULL pointer in dspi_slave_abort for non-DMA mode
        spi: spi-fsl-dspi: Replace interruptible wait queue with a simple completion
        spi: spi-fsl-dspi: Protect against races on dspi->words_in_flight
        spi: spi-fsl-dspi: Avoid reading more data than written in EOQ mode
        spi: spi-fsl-dspi: Fix bits-per-word acceleration in DMA mode
        spi: spi-fsl-dspi: Fix little endian access to PUSHR CMD and TXDATA
        spi: spi-fsl-dspi: Don't access reserved fields in SPI_MCR
        regulator: driver.h: fix regulator_map_* function names
        regulator: da9063: fix suspend
        spi: mxs: Drop GPIO includes
        ...
      a231bed2
    • Linus Torvalds's avatar
      Merge tag 'regmap-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · e1299409
      Linus Torvalds authored
      Pull regma: update from Mark Brown:
       "Only one small documentation fix for regmap this time around"
      
      * tag 'regmap-v5.7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: wrong descriptions in regmap_range_cfg
      e1299409