1. 23 Oct, 2020 20 commits
    • Steve French's avatar
      smb3: add support for stat of WSL reparse points for special file types · 2e4564b3
      Steve French authored
      This is needed so when mounting to Windows we do not
      misinterpret various special files created by Linux (WSL) as symlinks.
      An earlier patch addressed readdir.  This patch fixes stat (getattr).
      
      With this patch:
        File: /mnt1/char
        Size: 0          Blocks: 0          IO Block: 16384  character special file
      Device: 34h/52d Inode: 844424930132069  Links: 1     Device type: 0,0
      Access: (0755/crwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2020-10-21 17:46:51.839458900 -0500
      Modify: 2020-10-21 17:46:51.839458900 -0500
      Change: 2020-10-21 18:30:39.797358800 -0500
       Birth: -
        File: /mnt1/fifo
        Size: 0          Blocks: 0          IO Block: 16384  fifo
      Device: 34h/52d Inode: 1125899906842722  Links: 1
      Access: (0755/prwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2020-10-21 16:21:37.259249700 -0500
      Modify: 2020-10-21 16:21:37.259249700 -0500
      Change: 2020-10-21 18:30:39.797358800 -0500
       Birth: -
        File: /mnt1/block
        Size: 0          Blocks: 0          IO Block: 16384  block special file
      Device: 34h/52d Inode: 844424930132068  Links: 1     Device type: 0,0
      Access: (0755/brwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2020-10-21 17:10:47.913103200 -0500
      Modify: 2020-10-21 17:10:47.913103200 -0500
      Change: 2020-10-21 18:30:39.796725500 -0500
       Birth: -
      
      without the patch all show up incorrectly as symlinks with annoying "operation not supported error also returned"
        File: /mnt1/charstat: cannot read symbolic link '/mnt1/char': Operation not supported
      
        Size: 0          Blocks: 0          IO Block: 16384  symbolic link
      Device: 34h/52d Inode: 844424930132069  Links: 1
      Access: (0000/l---------)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2020-10-21 17:46:51.839458900 -0500
      Modify: 2020-10-21 17:46:51.839458900 -0500
      Change: 2020-10-21 18:30:39.797358800 -0500
       Birth: -
        File: /mnt1/fifostat: cannot read symbolic link '/mnt1/fifo': Operation not supported
      
        Size: 0          Blocks: 0          IO Block: 16384  symbolic link
      Device: 34h/52d Inode: 1125899906842722  Links: 1
      Access: (0000/l---------)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2020-10-21 16:21:37.259249700 -0500
      Modify: 2020-10-21 16:21:37.259249700 -0500
      Change: 2020-10-21 18:30:39.797358800 -0500
       Birth: -
        File: /mnt1/blockstat: cannot read symbolic link '/mnt1/block': Operation not supported
      
        Size: 0          Blocks: 0          IO Block: 16384  symbolic link
      Device: 34h/52d Inode: 844424930132068  Links: 1
      Access: (0000/l---------)  Uid: (    0/    root)   Gid: (    0/    root)
      Access: 2020-10-21 17:10:47.913103200 -0500
      Modify: 2020-10-21 17:10:47.913103200 -0500
      Change: 2020-10-21 18:30:39.796725500 -0500
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
      2e4564b3
    • Linus Torvalds's avatar
      Merge tag '5.10-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6 · 0613ed91
      Linus Torvalds authored
      Pull cifs updates from Steve French:
      
       - add support for recognizing special file types (char/block/fifo/
         symlink) for files created by Linux on WSL (a format we plan to move
         to as the default for creating special files on Linux, as it has
         advantages over the other current option, the SFU format) in readdir.
      
       - fix double queries to root directory when directory leases not
         supported (e.g. Samba)
      
       - fix querying mode bits (modefromsid mount option) for special file
         types
      
       - stronger encryption (gcm256), disabled by default until tested more
         broadly
      
       - allow querying owner when server reports 'well known SID' on query
         dir with SMB3.1.1 POSIX extensions
      
      * tag '5.10-rc-smb3-fixes-part1' of git://git.samba.org/sfrench/cifs-2.6: (30 commits)
        SMB3: add support for recognizing WSL reparse tags
        cifs: remove bogus debug code
        smb3.1.1: fix typo in compression flag
        cifs: move smb version mount options into fs_context.c
        cifs: move cache mount options to fs_context.ch
        cifs: move security mount options into fs_context.ch
        cifs: add files to host new mount api
        smb3: do not try to cache root directory if dir leases not supported
        smb3: fix stat when special device file and mounted with modefromsid
        cifs: Print the address and port we are connecting to in generic_ip_connect()
        SMB3: Resolve data corruption of TCP server info fields
        cifs: make const array static, makes object smaller
        SMB3.1.1: Fix ids returned in POSIX query dir
        smb3: add dynamic trace point to trace when credits obtained
        smb3.1.1: do not fail if no encryption required but server doesn't support it
        cifs: Return the error from crypt_message when enc/dec key not found.
        smb3.1.1: set gcm256 when requested
        smb3.1.1: rename nonces used for GCM and CCM encryption
        smb3.1.1: print warning if server does not support requested encryption type
        smb3.1.1: add new module load parm enable_gcm_256
        ...
      0613ed91
    • Linus Torvalds's avatar
      Merge tag 'vfs-5.10-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · c4728cfb
      Linus Torvalds authored
      Pull clone/dedupe/remap code refactoring from Darrick Wong:
       "Move the generic file range remap (aka reflink and dedupe) functions
        out of mm/filemap.c and fs/read_write.c and into fs/remap_range.c to
        reduce clutter in the first two files"
      
      * tag 'vfs-5.10-merge-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        vfs: move the generic write and copy checks out of mm
        vfs: move the remap range helpers to remap_range.c
        vfs: move generic_remap_checks out of mm
      c4728cfb
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · f9a705ad
      Linus Torvalds authored
      Pull KVM updates from Paolo Bonzini:
       "For x86, there is a new alternative and (in the future) more scalable
        implementation of extended page tables that does not need a reverse
        map from guest physical addresses to host physical addresses.
      
        For now it is disabled by default because it is still lacking a few of
        the existing MMU's bells and whistles. However it is a very solid
        piece of work and it is already available for people to hammer on it.
      
        Other updates:
      
        ARM:
         - New page table code for both hypervisor and guest stage-2
         - Introduction of a new EL2-private host context
         - Allow EL2 to have its own private per-CPU variables
         - Support of PMU event filtering
         - Complete rework of the Spectre mitigation
      
        PPC:
         - Fix for running nested guests with in-kernel IRQ chip
         - Fix race condition causing occasional host hard lockup
         - Minor cleanups and bugfixes
      
        x86:
         - allow trapping unknown MSRs to userspace
         - allow userspace to force #GP on specific MSRs
         - INVPCID support on AMD
         - nested AMD cleanup, on demand allocation of nested SVM state
         - hide PV MSRs and hypercalls for features not enabled in CPUID
         - new test for MSR_IA32_TSC writes from host and guest
         - cleanups: MMU, CPUID, shared MSRs
         - LAPIC latency optimizations ad bugfixes"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (232 commits)
        kvm: x86/mmu: NX largepage recovery for TDP MMU
        kvm: x86/mmu: Don't clear write flooding count for direct roots
        kvm: x86/mmu: Support MMIO in the TDP MMU
        kvm: x86/mmu: Support write protection for nesting in tdp MMU
        kvm: x86/mmu: Support disabling dirty logging for the tdp MMU
        kvm: x86/mmu: Support dirty logging for the TDP MMU
        kvm: x86/mmu: Support changed pte notifier in tdp MMU
        kvm: x86/mmu: Add access tracking for tdp_mmu
        kvm: x86/mmu: Support invalidate range MMU notifier for TDP MMU
        kvm: x86/mmu: Allocate struct kvm_mmu_pages for all pages in TDP MMU
        kvm: x86/mmu: Add TDP MMU PF handler
        kvm: x86/mmu: Remove disallowed_hugepage_adjust shadow_walk_iterator arg
        kvm: x86/mmu: Support zapping SPTEs in the TDP MMU
        KVM: Cache as_id in kvm_memory_slot
        kvm: x86/mmu: Add functions to handle changed TDP SPTEs
        kvm: x86/mmu: Allocate and free TDP MMU roots
        kvm: x86/mmu: Init / Uninit the TDP MMU
        kvm: x86/mmu: Introduce tdp_iter
        KVM: mmu: extract spte.h and spte.c
        KVM: mmu: Separate updating a PTE from kvm_set_pte_rmapp
        ...
      f9a705ad
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 9313f802
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
       "vhost, vdpa, and virtio cleanups and fixes
      
        A very quiet cycle, no new features"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
        MAINTAINERS: add URL for virtio-mem
        vhost_vdpa: remove unnecessary spin_lock in vhost_vring_call
        vringh: fix __vringh_iov() when riov and wiov are different
        vdpa/mlx5: Setup driver only if VIRTIO_CONFIG_S_DRIVER_OK
        s390: virtio: PV needs VIRTIO I/O device protection
        virtio: let arch advertise guest's memory access restrictions
        vhost_vdpa: Fix duplicate included kernel.h
        vhost: reduce stack usage in log_used
        virtio-mem: Constify mem_id_table
        virtio_input: Constify id_table
        virtio-balloon: Constify id_table
        vdpa/mlx5: Fix failure to bring link up
        vdpa/mlx5: Make use of a specific 16 bit endianness API
      9313f802
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v5.10' of... · 090a7d04
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Benson Leung:
       "cros-ec:
         - Error code cleanup across cros-ec by Guenter
         - Remove cros_ec_cmd_xfer in favor of cros_ec_cmd_xfer_status
      
        cros_ec_typec:
         - Landed initial USB4 support in typec connector class driver for
           cros_ec
         - Role switch bugfix on disconnect, and reordering configuration
           steps
      
        cros_ec_lightbar:
         - Fix buffer outsize and result for get_lightbar_version
      
        misc:
         - Remove config MFD_CROS_EC, now that transition from MFD is complete
         - Enable KEY_LEFTMETA in new location on arm based cros-ec-keyboard
           keymap"
      
      * tag 'tag-chrome-platform-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
        ARM: dts: cros-ec-keyboard: Add alternate keymap for KEY_LEFTMETA
        platform/chrome: Use kobj_to_dev() instead of container_of()
        platform/chrome: cros_ec_proto: Drop cros_ec_cmd_xfer()
        platform/chrome: cros_ec_proto: Update cros_ec_cmd_xfer() call-sites
        platform/chrome: Kconfig: Remove the transitional MFD_CROS_EC config
        platform/chrome: cros_ec_lightbar: Reduce ligthbar get version command
        platform/chrome: cros_ec_trace: Add fields to command traces
        platform/chrome: cros_ec_typec: Re-order connector configuration steps
        platform/chrome: cros_ec_typec: Avoid setting usb role twice during disconnect
        platform/chrome: cros_ec_typec: Send enum values to usb_role_switch_set_role()
        platform/chrome: cros_ec_typec: USB4 support
        pwm: cros-ec: Simplify EC error handling
        platform/chrome: cros_ec_proto: Convert EC error codes to Linux error codes
        platform/input: cros_ec: Replace -ENOTSUPP with -ENOPROTOOPT
        pwm: cros-ec: Accept more error codes from cros_ec_cmd_xfer_status
        platform/chrome: cros_ec_sysfs: Report range of error codes from EC
        cros_ec_lightbar: Accept more error codes from cros_ec_cmd_xfer_status
        iio: cros_ec: Accept -EOPNOTSUPP as 'not supported' error code
      090a7d04
    • Linus Torvalds's avatar
      Merge tag 'arch-cleanup-2020-10-22' of git://git.kernel.dk/linux-block · 4a22709e
      Linus Torvalds authored
      Pull arch task_work cleanups from Jens Axboe:
       "Two cleanups that don't fit other categories:
      
         - Finally get the task_work_add() cleanup done properly, so we don't
           have random 0/1/false/true/TWA_SIGNAL confusing use cases. Updates
           all callers, and also fixes up the documentation for
           task_work_add().
      
         - While working on some TIF related changes for 5.11, this
           TIF_NOTIFY_RESUME cleanup fell out of that. Remove some arch
           duplication for how that is handled"
      
      * tag 'arch-cleanup-2020-10-22' of git://git.kernel.dk/linux-block:
        task_work: cleanup notification modes
        tracehook: clear TIF_NOTIFY_RESUME in tracehook_notify_resume()
      4a22709e
    • Linus Torvalds's avatar
      Merge tag 'arc-5.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc · 0a14d764
      Linus Torvalds authored
      Pull ARC fix from Vineet Gupta:
       "I found a snafu in perf driver which made it into 5.9-rc4 and the fix
        should go in now than wait"
      
      * tag 'arc-5.10-rc1-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
        ARC: perf: redo the pct irq missing in device-tree handling
      0a14d764
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 032c7ed9
      Linus Torvalds authored
      Pull more arm64 updates from Will Deacon:
       "A small selection of further arm64 fixes and updates. Most of these
        are fixes that came in during the merge window, with the exception of
        the HAVE_MOVE_PMD mremap() speed-up which we discussed back in 2018
        and somehow forgot to enable upstream.
      
         - Improve performance of Spectre-v2 mitigation on Falkor CPUs (if
           you're lucky enough to have one)
      
         - Select HAVE_MOVE_PMD. This has been shown to improve mremap()
           performance, which is used heavily by the Android runtime GC, and
           it seems we forgot to enable this upstream back in 2018.
      
         - Ensure linker flags are consistent between LLVM and BFD
      
         - Fix stale comment in Spectre mitigation rework
      
         - Fix broken copyright header
      
         - Fix KASLR randomisation of the linear map
      
         - Prevent arm64-specific prctl()s from compat tasks (return -EINVAL)"
      
      Link: https://lore.kernel.org/kvmarm/20181108181201.88826-3-joelaf@google.com/
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: proton-pack: Update comment to reflect new function name
        arm64: spectre-v2: Favour CPU-specific mitigation at EL2
        arm64: link with -z norelro regardless of CONFIG_RELOCATABLE
        arm64: Fix a broken copyright header in gen_vdso_offsets.sh
        arm64: mremap speedup - Enable HAVE_MOVE_PMD
        arm64: mm: use single quantity to represent the PA to VA translation
        arm64: reject prctl(PR_PAC_RESET_KEYS) on compat tasks
      032c7ed9
    • Ben Gardon's avatar
      kvm: x86/mmu: NX largepage recovery for TDP MMU · 29cf0f50
      Ben Gardon authored
      When KVM maps a largepage backed region at a lower level in order to
      make it executable (i.e. NX large page shattering), it reduces the TLB
      performance of that region. In order to avoid making this degradation
      permanent, KVM must periodically reclaim shattered NX largepages by
      zapping them and allowing them to be rebuilt in the page fault handler.
      
      With this patch, the TDP MMU does not respect KVM's rate limiting on
      reclaim. It traverses the entire TDP structure every time. This will be
      addressed in a future patch.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-21-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      29cf0f50
    • Ben Gardon's avatar
      kvm: x86/mmu: Don't clear write flooding count for direct roots · daa5b6c1
      Ben Gardon authored
      Direct roots don't have a write flooding count because the guest can't
      affect that paging structure. Thus there's no need to clear the write
      flooding count on a fast CR3 switch for direct roots.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-20-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      daa5b6c1
    • Ben Gardon's avatar
      kvm: x86/mmu: Support MMIO in the TDP MMU · 95fb5b02
      Ben Gardon authored
      In order to support MMIO, KVM must be able to walk the TDP paging
      structures to find mappings for a given GFN. Support this walk for
      the TDP MMU.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538
      
      v2: Thanks to Dan Carpenter and kernel test robot for finding that root
      was used uninitialized in get_mmio_spte.
      Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Message-Id: <20201014182700.2888246-19-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      95fb5b02
    • Ben Gardon's avatar
      kvm: x86/mmu: Support write protection for nesting in tdp MMU · 46044f72
      Ben Gardon authored
      To support nested virtualization, KVM will sometimes need to write
      protect pages which are part of a shadowed paging structure or are not
      writable in the shadowed paging structure. Add a function to write
      protect GFN mappings for this purpose.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-18-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      46044f72
    • Ben Gardon's avatar
      kvm: x86/mmu: Support disabling dirty logging for the tdp MMU · 14881998
      Ben Gardon authored
      Dirty logging ultimately breaks down MMU mappings to 4k granularity.
      When dirty logging is no longer needed, these granaular mappings
      represent a useless performance penalty. When dirty logging is disabled,
      search the paging structure for mappings that could be re-constituted
      into a large page mapping. Zap those mappings so that they can be
      faulted in again at a higher mapping level.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-17-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      14881998
    • Ben Gardon's avatar
      kvm: x86/mmu: Support dirty logging for the TDP MMU · a6a0b05d
      Ben Gardon authored
      Dirty logging is a key feature of the KVM MMU and must be supported by
      the TDP MMU. Add support for both the write protection and PML dirty
      logging modes.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-16-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      a6a0b05d
    • Ben Gardon's avatar
      kvm: x86/mmu: Support changed pte notifier in tdp MMU · 1d8dd6b3
      Ben Gardon authored
      In order to interoperate correctly with the rest of KVM and other Linux
      subsystems, the TDP MMU must correctly handle various MMU notifiers. Add
      a hook and handle the change_pte MMU notifier.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-15-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      1d8dd6b3
    • Ben Gardon's avatar
      kvm: x86/mmu: Add access tracking for tdp_mmu · f8e14497
      Ben Gardon authored
      In order to interoperate correctly with the rest of KVM and other Linux
      subsystems, the TDP MMU must correctly handle various MMU notifiers. The
      main Linux MM uses the access tracking MMU notifiers for swap and other
      features. Add hooks to handle the test/flush HVA (range) family of
      MMU notifiers.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-14-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      f8e14497
    • Ben Gardon's avatar
      kvm: x86/mmu: Support invalidate range MMU notifier for TDP MMU · 063afacd
      Ben Gardon authored
      In order to interoperate correctly with the rest of KVM and other Linux
      subsystems, the TDP MMU must correctly handle various MMU notifiers. Add
      hooks to handle the invalidate range family of MMU notifiers.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-13-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      063afacd
    • Ben Gardon's avatar
      kvm: x86/mmu: Allocate struct kvm_mmu_pages for all pages in TDP MMU · 89c0fd49
      Ben Gardon authored
      Attach struct kvm_mmu_pages to every page in the TDP MMU to track
      metadata, facilitate NX reclaim, and enable inproved parallelism of MMU
      operations in future patches.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-12-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      89c0fd49
    • Ben Gardon's avatar
      kvm: x86/mmu: Add TDP MMU PF handler · bb18842e
      Ben Gardon authored
      Add functions to handle page faults in the TDP MMU. These page faults
      are currently handled in much the same way as the x86 shadow paging
      based MMU, however the ordering of some operations is slightly
      different. Future patches will add eager NX splitting, a fast page fault
      handler, and parallel page faults.
      
      Tested by running kvm-unit-tests and KVM selftests on an Intel Haswell
      machine. This series introduced no new failures.
      
      This series can be viewed in Gerrit at:
      	https://linux-review.googlesource.com/c/virt/kvm/kvm/+/2538Signed-off-by: default avatarBen Gardon <bgardon@google.com>
      Message-Id: <20201014182700.2888246-11-bgardon@google.com>
      Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
      bb18842e
  2. 22 Oct, 2020 20 commits
    • Linus Torvalds's avatar
      Merge tag 'kconfig-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · f9893351
      Linus Torvalds authored
      Pull Kconfig updates from Masahiro Yamada:
      
       - Remove unused or useless code from qconf
      
       - Allow to edit "int", "hex", "string" options in place, and remove the
         separate edit box from qconf
      
      * tag 'kconfig-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kconfig: qconf: create QApplication after option checks
        kconfig: qconf: remove Y, M, N columns
        kconfig: qconf: remove ConfigView class
        kconfig: qconf: move setShowName/Range() to ConfigList from ConfigView
        kconfig: qconf: remove ConfigLineEdit class
        kconfig: qconf: allow to edit "int", "hex", "string" menus in-place
        kconfig: qconf: show data column all the time
        kconfig: qconf: move ConfigView::updateList(All) to ConfigList class
        kconfig: qconf: remove unused ConfigItem::okRename()
        kconfig: qconf: update the intro message to match to the current code
        kconfig: qconf: reformat the intro message
      f9893351
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · 746b25b1
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Support 'make compile_commands.json' to generate the compilation
         database more easily, avoiding stale entries
      
       - Support 'make clang-analyzer' and 'make clang-tidy' for static checks
         using clang-tidy
      
       - Preprocess scripts/modules.lds.S to allow CONFIG options in the
         module linker script
      
       - Drop cc-option tests from compiler flags supported by our minimal
         GCC/Clang versions
      
       - Use always 12-digits commit hash for CONFIG_LOCALVERSION_AUTO=y
      
       - Use sha1 build id for both BFD linker and LLD
      
       - Improve deb-pkg for reproducible builds and rootless builds
      
       - Remove stale, useless scripts/namespace.pl
      
       - Turn -Wreturn-type warning into error
      
       - Fix build error of deb-pkg when CONFIG_MODULES=n
      
       - Replace 'hostname' command with more portable 'uname -n'
      
       - Various Makefile cleanups
      
      * tag 'kbuild-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (34 commits)
        kbuild: Use uname for LINUX_COMPILE_HOST detection
        kbuild: Only add -fno-var-tracking-assignments for old GCC versions
        kbuild: remove leftover comment for filechk utility
        treewide: remove DISABLE_LTO
        kbuild: deb-pkg: clean up package name variables
        kbuild: deb-pkg: do not build linux-headers package if CONFIG_MODULES=n
        kbuild: enforce -Werror=return-type
        scripts: remove namespace.pl
        builddeb: Add support for all required debian/rules targets
        builddeb: Enable rootless builds
        builddeb: Pass -n to gzip for reproducible packages
        kbuild: split the build log of kallsyms
        kbuild: explicitly specify the build id style
        scripts/setlocalversion: make git describe output more reliable
        kbuild: remove cc-option test of -Werror=date-time
        kbuild: remove cc-option test of -fno-stack-check
        kbuild: remove cc-option test of -fno-strict-overflow
        kbuild: move CFLAGS_{KASAN,UBSAN,KCSAN} exports to relevant Makefiles
        kbuild: remove redundant CONFIG_KASAN check from scripts/Makefile.kasan
        kbuild: do not create built-in objects for external module builds
        ...
      746b25b1
    • Linus Torvalds's avatar
      Merge tag 'modules-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · 2b714820
      Linus Torvalds authored
      Pull modules updates from Jessica Yu:
       "Code cleanups: more informative error messages and statically
        initialize init_free_wq to avoid a workqueue warning"
      
      * tag 'modules-for-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        module: statically initialize init section freeing data
        module: Add more error message for failed kernel module loading
      2b714820
    • Linus Torvalds's avatar
      Merge tag 'vfio-v5.10-rc1' of git://github.com/awilliam/linux-vfio · fc996db9
      Linus Torvalds authored
      Pull VFIO updates from Alex Williamson:
      
       - New fsl-mc vfio bus driver supporting userspace drivers of objects
         within NXP's DPAA2 architecture (Diana Craciun)
      
       - Support for exposing zPCI information on s390 (Matthew Rosato)
      
       - Fixes for "detached" VFs on s390 (Matthew Rosato)
      
       - Fixes for pin-pages and dma-rw accesses (Yan Zhao)
      
       - Cleanups and optimize vconfig regen (Zenghui Yu)
      
       - Fix duplicate irq-bypass token registration (Alex Williamson)
      
      * tag 'vfio-v5.10-rc1' of git://github.com/awilliam/linux-vfio: (30 commits)
        vfio iommu type1: Fix memory leak in vfio_iommu_type1_pin_pages
        vfio/pci: Clear token on bypass registration failure
        vfio/fsl-mc: fix the return of the uninitialized variable ret
        vfio/fsl-mc: Fix the dead code in vfio_fsl_mc_set_irq_trigger
        vfio/fsl-mc: Fixed vfio-fsl-mc driver compilation on 32 bit
        MAINTAINERS: Add entry for s390 vfio-pci
        vfio-pci/zdev: Add zPCI capabilities to VFIO_DEVICE_GET_INFO
        vfio/fsl-mc: Add support for device reset
        vfio/fsl-mc: Add read/write support for fsl-mc devices
        vfio/fsl-mc: trigger an interrupt via eventfd
        vfio/fsl-mc: Add irq infrastructure for fsl-mc devices
        vfio/fsl-mc: Added lock support in preparation for interrupt handling
        vfio/fsl-mc: Allow userspace to MMAP fsl-mc device MMIO regions
        vfio/fsl-mc: Implement VFIO_DEVICE_GET_REGION_INFO ioctl call
        vfio/fsl-mc: Implement VFIO_DEVICE_GET_INFO ioctl
        vfio/fsl-mc: Scan DPRC objects on vfio-fsl-mc driver bind
        vfio: Introduce capability definitions for VFIO_DEVICE_GET_INFO
        s390/pci: track whether util_str is valid in the zpci_dev
        s390/pci: stash version in the zpci_dev
        vfio/fsl-mc: Add VFIO framework skeleton for fsl-mc devices
        ...
      fc996db9
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 60573c29
      Linus Torvalds authored
      Pull rpmsg updates from Bjorn Andersson:
       "This introduces rpmsg_char support for GLINK and fixes a few issues"
      
      * tag 'rpmsg-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        rpmsg: glink: Expose rpmsg name attr for glink
        rpmsg: glink: Add support for rpmsg glink chrdev
        rpmsg: Guard against null endpoint ops in destroy
        rpmsg: glink: Use complete_all for open states
        rpmsg: virtio: fix compilation warning for virtio_rpmsg_channel description
        rpmsg: Avoid double-free in mtk_rpmsg_register_device
        rpmsg: smd: Fix a kobj leak in in qcom_smd_parse_edge()
      60573c29
    • Linus Torvalds's avatar
      Merge tag 'rproc-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 1553d968
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "This introduces support for the Mediatek MT9182 SCP and controlling
        the Cortex R5F processors found in TI K3 platforms. It clones the
        longstanding debugfs interface for controlling crash handling to
        sysfs. Lastly it solves a bug where after a warm reset of Qualcomm
        platforms the modem would crash upon first boot"
      
      * tag 'rproc-v5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        remoteproc/mediatek: Remove non-standard dsb()
        remoteproc: Add recovery configuration to the sysfs interface
        remoteproc: Add coredump as part of sysfs interface
        remoteproc: Change default dump configuration to "disabled"
        remoteproc: k3-r5: Add loading support for on-chip SRAM regions
        remoteproc: k3-r5: Initialize TCM memories for ECC
        remoteproc: k3-r5: Add a remoteproc driver for R5F subsystem
        dt-bindings: remoteproc: Add bindings for R5F subsystem on TI K3 SoCs
        remoteproc/mediatek: Add support for mt8192 SCP
        remoteproc: Fixup coredump debugfs disable request
        remoteproc: qcom_q6v5: Assign mpss region to Q6 before MBA boot
        remoteproc/mediatek: fix null pointer dereference on null scp pointer
        remoteproc: stm32: Fix pointer assignement
        remoteproc: scp: add COMPILE_TEST dependency
      1553d968
    • Linus Torvalds's avatar
      Merge tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 3fec0eaa
      Linus Torvalds authored
      Pull clk updates from Stephen Boyd:
       "This contains no changes to the core framework. It is a collection of
        various clk driver updates.
      
        The biggest driver updates in terms of lines of code is the Allwinner
        driver, closely followed by the Qualcomm and Mediatek drivers. All of
        those hit high because we add so many lines of clk data. Coming in
        fourth place is i.MX which also adds a bunch of clk data. This
        accounts for the new driver additions this time around.
      
        Otherwise the patches are lots of little cleanups and fixes for
        various clk drivers that have baked in linux-next for a while. I
        suppose one highlight or theme is that more clk drivers are being
        updated to work as modules, which is interesting to see such critical
        SoC infrastructure work as a loadable module.
      
        New Drivers:
         - Support qcom SM8150/SM8250 video and display clks
         - Support Mediatek MT8167 clks
         - Add clock for CRC block found on vf610 SoCs
         - Add support for the Renesas R-Car V3U (R8A779A0) SoC
         - Add support for the VSP for Resizing clock on Renesas RZ/G1H
         - Support Allwinner A100 SoC clks
      
        Removed Drivers:
         - Remove i.MX21 clock driver, as i.MX21 platform support is being
           dropped
      
        Updates:
         - Change how qcom's display port clks work
         - Small non-critical fixes for TI clk driver
         - Remove various unused variables in clk drivers
         - Allow Rockchip clk driver to be a module
         - Remove most __clk_lookup() calls in Samsung drivers (yay!)
         - Support building i.MX ARMv8 platforms clock driver as module
         - Some kerneldoc fixes here and there
         - A couple of minor i.MX clk data corrections
         - Update audio clock inverter and fdiv2 flag on Amlogic g12
         - Make amlogic clk drivers configurable in Kconfig
         - Fix Renesas VSP clock names to match corrected hardware
           documentation
         - Sigma-delta modulation on Allwinner R40
         - Various fixes for at91 clk driver
         - Use semicolons instead of commas in some places
         - Mark some variables const so they can move to RO memory"
      
      * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: (102 commits)
        clk: imx8mq: Fix usdhc parents order
        clk: qcom: gdsc: Keep RETAIN_FF bit set if gdsc is already on
        clk: Restrict CLK_HSDK to ARC_SOC_HSDK
        clk: at91: sam9x60: support only two programmable clocks
        clk: ingenic: Respect CLK_SET_RATE_PARENT in .round_rate
        clk: ingenic: Don't tag custom clocks with CLK_SET_RATE_PARENT
        clk: ingenic: Don't use CLK_SET_RATE_GATE for PLL
        clk: ingenic: Use readl_poll_timeout instead of custom loop
        clk: ingenic: Use to_clk_info() macro for all clocks
        clk: bcm2835: add missing release if devm_clk_hw_register fails
        clk: at91: clk-sam9x60-pll: remove unused variable
        clk: at91: clk-main: update key before writing AT91_CKGR_MOR
        clk: at91: remove the checking of parent_name
        clk: clk-prima2: fix return value check in prima2_clk_init()
        clk: mmp2: Fix the display clock divider base
        clk: pxa: Constify static struct clk_ops
        clk: baikal-t1: Mark Ethernet PLL as critical
        clk: qoriq: modify MAX_PLL_DIV to 32
        clk: axi-clkgen: Set power bits for fractional mode
        clk: axi-clkgen: Add support for fractional dividers
        ...
      3fec0eaa
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-5.10-rc1' of... · ceae608a
      Linus Torvalds authored
      Merge tag 'pwm/for-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "This release cycle's updates are mostly cleanup and some minor fixes"
      
      * tag 'pwm/for-5.10-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm:
        dt-bindings: pwm: renesas,pwm-rcar: Add r8a7742 support
        dt-bindings: pwm: renesas,tpu-pwm: Document r8a7742 support
        pwm: Allow store 64-bit duty cycle from sysfs interface
        pwm: img: Fix null pointer access in probe
        pwm: pca9685: Disable unused alternative addresses
        pwm: pca9685: Use BIT() macro instead of shift
        pwm: pca9685: Make comments more consistent
        pwm: sun4i: Simplify with dev_err_probe()
        pwm: sprd: Simplify with dev_err_probe()
        pwm: sifive: Simplify with dev_err_probe()
        pwm: rockchip: Simplify with dev_err_probe()
        pwm: jz4740: Simplify with dev_err_probe()
        pwm: bcm2835: Simplify with dev_err_probe()
        pwm: Convert to use DEFINE_SEQ_ATTRIBUTE macro
        pwm: rockchip: Keep enabled PWMs running while probing
        dt-bindings: pwm: renesas,pwm-rcar: Add r8a774e1 support
      ceae608a
    • Linus Torvalds's avatar
      Merge tag 'pci-v5.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · 00937f36
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
       "Enumeration:
         - Print IRQ number used by PCIe Link Bandwidth Notification (Dongdong
           Liu)
         - Add schedule point in pci_read_config() to reduce max latency
           (Jiang Biao)
         - Add Kconfig options for MPS/MRRS strategy (Jim Quinlan)
      
        Resource management:
         - Fix pci_iounmap() memory leak when !CONFIG_GENERIC_IOMAP (Lorenzo
           Pieralisi)
      
        PCIe native device hotplug:
         - Reduce noisiness on hot removal (Lukas Wunner)
      
        Power management:
         - Revert "PCI/PM: Apply D2 delay as milliseconds, not microseconds"
           that was done on the basis of spec typo (Bjorn Helgaas)
         - Rename pci_dev.d3_delay to d3hot_delay to remove D3hot/D3cold
           ambiguity (Krzysztof Wilczyński)
         - Remove unused pcibios_pm_ops (Vaibhav Gupta)
      
        IOMMU:
         - Enable Translation Blocking for external devices to harden against
           DMA attacks (Rajat Jain)
      
        Error handling:
         - Add an ACPI APEI notifier chain for vendor CPER records to enable
           device-specific error handling (Shiju Jose)
      
        ASPM:
         - Remove struct aspm_register_info to simplify code (Saheed O.
           Bolarinwa)
      
        Amlogic Meson PCIe controller driver:
         - Build as module by default (Kevin Hilman)
      
        Ampere Altra PCIe controller driver:
         - Add MCFG quirk to work around non-standard ECAM implementation
           (Tuan Phan)
      
        Broadcom iProc PCIe controller driver:
         - Set affinity mask on MSI interrupts (Mark Tomlinson)
      
        Broadcom STB PCIe controller driver:
         - Make PCIE_BRCMSTB depend on ARCH_BRCMSTB (Jim Quinlan)
         - Add DT bindings for more Brcmstb chips (Jim Quinlan)
         - Add bcm7278 register info (Jim Quinlan)
         - Add bcm7278 PERST# support (Jim Quinlan)
         - Add suspend and resume pm_ops (Jim Quinlan)
         - Add control of rescal reset (Jim Quinlan)
         - Set additional internal memory DMA viewport sizes (Jim Quinlan)
         - Accommodate MSI for older chips (Jim Quinlan)
         - Set bus max burst size by chip type (Jim Quinlan)
         - Add support for bcm7211, bcm7216, bcm7445, bcm7278 (Jim Quinlan)
      
        Freescale i.MX6 PCIe controller driver:
         - Use dev_err_probe() to reduce redundant messages (Anson Huang)
      
        Freescale Layerscape PCIe controller driver:
         - Enforce 4K DMA buffer alignment in endpoint test (Hou Zhiqiang)
         - Add DT compatible strings for ls1088a, ls2088a (Xiaowei Bao)
         - Add endpoint support for ls1088a, ls2088a (Xiaowei Bao)
         - Add endpoint test support for lS1088a (Xiaowei Bao)
         - Add MSI-X support for ls1088a (Xiaowei Bao)
      
        HiSilicon HIP PCIe controller driver:
         - Handle HIP-specific errors via ACPI APEI (Yicong Yang)
      
        HiSilicon Kirin PCIe controller driver:
         - Return -EPROBE_DEFER if the GPIO isn't ready (Bean Huo)
      
        Intel VMD host bridge driver:
         - Factor out physical offset, bus offset, IRQ domain, IRQ allocation
           (Jon Derrick)
         - Use generic PCI PM correctly (Jon Derrick)
      
        Marvell Aardvark PCIe controller driver:
         - Fix compilation on s390 (Pali Rohár)
         - Implement driver 'remove' function and allow to build it as module
           (Pali Rohár)
         - Move PCIe reset card code to advk_pcie_train_link() (Pali Rohár)
         - Convert mvebu a3700 internal SMCC firmware return codes to errno
           (Pali Rohár)
         - Fix initialization with old Marvell's Arm Trusted Firmware (Pali
           Rohár)
      
        Microsoft Hyper-V host bridge driver:
         - Fix hibernation in case interrupts are not re-created (Dexuan Cui)
      
        NVIDIA Tegra PCIe controller driver:
         - Stop checking return value of debugfs_create() functions (Greg
           Kroah-Hartman)
         - Convert to use DEFINE_SEQ_ATTRIBUTE macro (Liu Shixin)
      
        Qualcomm PCIe controller driver:
         - Reset PCIe to work around Qsdk U-Boot issue (Ansuel Smith)
      
        Renesas R-Car PCIe controller driver:
         - Add DT documentation for r8a774a1, r8a774b1, r8a774e1 endpoints
           (Lad Prabhakar)
         - Add RZ/G2M, RZ/G2N, RZ/G2H IDs to endpoint test (Lad Prabhakar)
         - Add DT support for r8a7742 (Lad Prabhakar)
      
        Socionext UniPhier Pro5 controller driver:
         - Add DT descriptions of iATU register (host and endpoint) (Kunihiko
           Hayashi)
      
        Synopsys DesignWare PCIe controller driver:
         - Add link up check in dw_child_pcie_ops.map_bus() (racy, but seems
           unavoidable) (Hou Zhiqiang)
         - Fix endpoint Header Type check so multi-function devices work (Hou
           Zhiqiang)
         - Skip PCIE_MSI_INTR0* programming if MSI is disabled (Jisheng Zhang)
         - Stop leaking MSI page in suspend/resume (Jisheng Zhang)
         - Add common iATU register support instead of keystone-specific code
           (Kunihiko Hayashi)
         - Major config space access and other cleanups in dwc core and
           drivers that use it (al, exynos, histb, imx6, intel-gw, keystone,
           kirin, meson, qcom, tegra) (Rob Herring)
         - Add multiple PFs support for endpoint (Xiaowei Bao)
         - Add MSI-X doorbell mode in endpoint mode (Xiaowei Bao)
      
        Miscellaneous:
         - Use fallthrough pseudo-keyword (Gustavo A. R. Silva)
         - Fix "0 used as NULL pointer" warnings (Gustavo Pimentel)
         - Fix "cast truncates bits from constant value" warnings (Gustavo
           Pimentel)
         - Remove redundant zeroing for sg_init_table() (Julia Lawall)
         - Use scnprintf(), not snprintf(), in sysfs "show" functions
           (Krzysztof Wilczyński)
         - Remove unused assignments (Krzysztof Wilczyński)
         - Fix "0 used as NULL pointer" warning (Krzysztof Wilczyński)
         - Simplify bool comparisons (Krzysztof Wilczyński)
         - Use for_each_child_of_node() and for_each_node_by_name() (Qinglang
           Miao)
         - Simplify return expressions (Qinglang Miao)"
      
      * tag 'pci-v5.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (147 commits)
        PCI: vmd: Update VMD PM to correctly use generic PCI PM
        PCI: vmd: Create IRQ allocation helper
        PCI: vmd: Create IRQ Domain configuration helper
        PCI: vmd: Create bus offset configuration helper
        PCI: vmd: Create physical offset helper
        PCI: v3-semi: Remove unneeded break
        PCI: dwc: Add link up check in dw_child_pcie_ops.map_bus()
        PCI/ASPM: Remove struct pcie_link_state.l1ss
        PCI/ASPM: Remove struct aspm_register_info.l1ss_cap
        PCI/ASPM: Pass L1SS Capabilities value, not struct aspm_register_info
        PCI/ASPM: Remove struct aspm_register_info.l1ss_ctl1
        PCI/ASPM: Remove struct aspm_register_info.l1ss_ctl2 (unused)
        PCI/ASPM: Remove struct aspm_register_info.l1ss_cap_ptr
        PCI/ASPM: Remove struct aspm_register_info.latency_encoding
        PCI/ASPM: Remove struct aspm_register_info.enabled
        PCI/ASPM: Remove struct aspm_register_info.support
        PCI/ASPM: Use 'parent' and 'child' for readability
        PCI/ASPM: Move LTR path check to where it's used
        PCI/ASPM: Move pci_clear_and_set_dword() earlier
        PCI: dwc: Fix MSI page leakage in suspend/resume
        ...
      00937f36
    • Vineet Gupta's avatar
      ARC: perf: redo the pct irq missing in device-tree handling · 8c42a5c0
      Vineet Gupta authored
      commit feb92d7d "(ARC: perf: don't bail setup if pct irq
      missing in device-tree)" introduced a silly brown-paper bag bug:
      The assignment and comparison in an if statement were not bracketed
      correctly leaving the order of evaluation undefined.
      
      |
      | if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
      |                           ^^^                         ^^^^
      
      And given such a chance, the compiler will bite you hard, fully entitled
      to generating this piece of beauty:
      
      |
      | # if (has_interrupts && (irq = platform_get_irq(pdev, 0) >= 0)) {
      |
      | bl.d @platform_get_irq  <-- irq returned in r0
      |
      | setge r2, r0, 0   	<-- r2 is bool 1 or 0 if irq >= 0 true/false
      | brlt.d r0, 0, @.L114
      |
      | st_s	r2,[sp]    	<-- irq saved is bool 1 or 0, not actual return val
      | st	1,[r3,160]   	# arc_pmu.18_29->irq <-- drops bool and assumes 1
      |
      | # return __request_percpu_irq(irq, handler, 0,
      |
      | bl.d @__request_percpu_irq;
      | mov_s	r0,1	   <-- drops even bool and assumes 1 which fails
      
      With the snafu fixed, everything is as expected.
      
      | bl.d @platform_get_irq	<-- returns irq in r0
      |
      | mov_s	r2,r0
      | brlt.d r2, 0, @.L112
      |
      | st_s	r0,[sp]			<-- irq isaved is actual return value above
      | st	r0,[r13,160]	#arc_pmu.18_27->irq
      |
      | bl.d @__request_percpu_irq	<-- r0 unchanged so actual irq returned
      | add r4,r4,r12	#, tmp363, __ptr
      
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarVineet Gupta <vgupta@synopsys.com>
      8c42a5c0
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 96485e44
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "The siginificant new ext4 feature this time around is Harshad's new
        fast_commit mode.
      
        In addition, thanks to Mauricio for fixing a race where mmap'ed pages
        that are being changed in parallel with a data=journal transaction
        commit could result in bad checksums in the failure that could cause
        journal replays to fail.
      
        Also notable is Ritesh's buffered write optimization which can result
        in significant improvements on parallel write workloads. (The kernel
        test robot reported a 330.6% improvement on fio.write_iops on a 96
        core system using DAX)
      
        Besides that, we have the usual miscellaneous cleanups and bug fixes"
      
      Link: https://lore.kernel.org/r/20200925071217.GO28663@shao2-debian
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (46 commits)
        ext4: fix invalid inode checksum
        ext4: add fast commit stats in procfs
        ext4: add a mount opt to forcefully turn fast commits on
        ext4: fast commit recovery path
        jbd2: fast commit recovery path
        ext4: main fast-commit commit path
        jbd2: add fast commit machinery
        ext4 / jbd2: add fast commit initialization
        ext4: add fast_commit feature and handling for extended mount options
        doc: update ext4 and journalling docs to include fast commit feature
        ext4: Detect already used quota file early
        jbd2: avoid transaction reuse after reformatting
        ext4: use the normal helper to get the actual inode
        ext4: fix bs < ps issue reported with dioread_nolock mount opt
        ext4: data=journal: write-protect pages on j_submit_inode_data_buffers()
        ext4: data=journal: fixes for ext4_page_mkwrite()
        jbd2, ext4, ocfs2: introduce/use journal callbacks j_submit|finish_inode_data_buffers()
        jbd2: introduce/export functions jbd2_journal_submit|finish_inode_data_buffers()
        ext4: introduce ext4_sb_bread_unmovable() to replace sb_bread_unmovable()
        ext4: use ext4_sb_bread() instead of sb_bread()
        ...
      96485e44
    • Steve French's avatar
      SMB3: add support for recognizing WSL reparse tags · 13909d96
      Steve French authored
      The IO_REPARSE_TAG_LX_ tags originally were used by WSL but they
      are preferred by the Linux client in some cases since, unlike
      the NFS reparse tag (or EAs), they don't require an extra query
      to determine which type of special file they represent.
      
      Add support for readdir to recognize special file types of
      FIFO, SOCKET, CHAR, BLOCK and SYMLINK.  This can be tested
      by creating these special files in WSL Linux and then
      sharing that location on the Windows server and mounting
      to the Windows server to access them.
      
      Prior to this patch all of the special files would show up
      as being of type 'file' but with this patch they can be seen
      with the correct file type as can be seen below:
      
        brwxr-xr-x 1 root root 0, 0 Oct 21 17:10 block
        crwxr-xr-x 1 root root 0, 0 Oct 21 17:46 char
        drwxr-xr-x 2 root root    0 Oct 21 18:27 dir
        prwxr-xr-x 1 root root    0 Oct 21 16:21 fifo
        -rwxr-xr-x 1 root root    0 Oct 21 15:48 file
        lrwxr-xr-x 1 root root    0 Oct 21 15:52 symlink-to-file
      
      TODO: go through all documented reparse tags to see if we can
      reasonably map some of them to directories vs. files vs. symlinks
      and also add support for device numbers for block and char
      devices.
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
      13909d96
    • Dan Carpenter's avatar
      cifs: remove bogus debug code · d367cb96
      Dan Carpenter authored
      The "end" pointer is either NULL or it points to the next byte to parse.
      If there isn't a next byte then dereferencing "end" is an off-by-one out
      of bounds error.  And, of course, if it's NULL that leads to an Oops.
      Printing "*end" doesn't seem very useful so let's delete this code.
      
      Also for the last debug statement, I noticed that it should be printing
      "sequence_end" instead of "end" so fix that as well.
      Reported-by: default avatarDominik Maier <dmaier@sect.tu-berlin.de>
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      d367cb96
    • Steve French's avatar
      smb3.1.1: fix typo in compression flag · 1af34fdd
      Steve French authored
      Fix minor typo in new compression flag define
      Reported-by: default avatarTom Talpey <tom@talpey.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      1af34fdd
    • Ronnie Sahlberg's avatar
      cifs: move smb version mount options into fs_context.c · 555782aa
      Ronnie Sahlberg authored
      This and related patches which move mount related
      code to fs_context.c has the advantage of
      shriking the code in fs/cifs/connect.c (which had
      the second most lines of code of any of the files
      in cifs.ko and was getting harder to read due
      to its size) and will also make it easier to
      switch over to the new mount API in the future.
      Signed-off-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
      Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      555782aa
    • Ronnie Sahlberg's avatar
      cifs: move cache mount options to fs_context.ch · 2f20f076
      Ronnie Sahlberg authored
      Helps to shrink connect.c and make it more readable
      by moving mount related code to fs_context.c and
      fs_context.h
      Signed-off-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
      2f20f076
    • Ronnie Sahlberg's avatar
      cifs: move security mount options into fs_context.ch · 5c6e5aa4
      Ronnie Sahlberg authored
      This patch moves the parsing of security mount options into
      fs_context.ch.  There are no changes to any logic.
      Signed-off-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
      5c6e5aa4
    • Ronnie Sahlberg's avatar
      cifs: add files to host new mount api · a6a9cffa
      Ronnie Sahlberg authored
      This will make it easier in the future, but also will allow us to
      shrink connect.c which is getting too big, and harder to read
      Signed-off-by: default avatarRonnie Sahlberg <lsahlber@redhat.com>
      Signed-off-by: default avatarSteve French <stfrench@microsoft.com>
      Reviewed-by: default avatarAurelien Aptel <aaptel@suse.com>
      a6a9cffa
    • Linus Torvalds's avatar
      Merge branch 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · f56e65df
      Linus Torvalds authored
      Pull initial set_fs() removal from Al Viro:
       "Christoph's set_fs base series + fixups"
      
      * 'work.set_fs' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fs: Allow a NULL pos pointer to __kernel_read
        fs: Allow a NULL pos pointer to __kernel_write
        powerpc: remove address space overrides using set_fs()
        powerpc: use non-set_fs based maccess routines
        x86: remove address space overrides using set_fs()
        x86: make TASK_SIZE_MAX usable from assembly code
        x86: move PAGE_OFFSET, TASK_SIZE & friends to page_{32,64}_types.h
        lkdtm: remove set_fs-based tests
        test_bitmap: remove user bitmap tests
        uaccess: add infrastructure for kernel builds with set_fs()
        fs: don't allow splice read/write without explicit ops
        fs: don't allow kernel reads and writes without iter ops
        sysctl: Convert to iter interfaces
        proc: add a read_iter method to proc proc_ops
        proc: cleanup the compat vs no compat file ops
        proc: remove a level of indentation in proc_get_inode
      f56e65df
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.10' of git://linux-nfs.org/~bfields/linux · 24717cfb
      Linus Torvalds authored
      Pull nfsd updates from Bruce Fields:
       "The one new feature this time, from Anna Schumaker, is READ_PLUS,
        which has the same arguments as READ but allows the server to return
        an array of data and hole extents.
      
        Otherwise it's a lot of cleanup and bugfixes"
      
      * tag 'nfsd-5.10' of git://linux-nfs.org/~bfields/linux: (43 commits)
        NFSv4.2: Fix NFS4ERR_STALE error when doing inter server copy
        SUNRPC: fix copying of multiple pages in gss_read_proxy_verf()
        sunrpc: raise kernel RPC channel buffer size
        svcrdma: fix bounce buffers for unaligned offsets and multiple pages
        nfsd: remove unneeded break
        net/sunrpc: Fix return value for sysctl sunrpc.transports
        NFSD: Encode a full READ_PLUS reply
        NFSD: Return both a hole and a data segment
        NFSD: Add READ_PLUS hole segment encoding
        NFSD: Add READ_PLUS data support
        NFSD: Hoist status code encoding into XDR encoder functions
        NFSD: Map nfserr_wrongsec outside of nfsd_dispatch
        NFSD: Remove the RETURN_STATUS() macro
        NFSD: Call NFSv2 encoders on error returns
        NFSD: Fix .pc_release method for NFSv2
        NFSD: Remove vestigial typedefs
        NFSD: Refactor nfsd_dispatch() error paths
        NFSD: Clean up nfsd_dispatch() variables
        NFSD: Clean up stale comments in nfsd_dispatch()
        NFSD: Clean up switch statement in nfsd_dispatch()
        ...
      24717cfb