08 Feb, 2020

5 commits

  • Puyll NFS client updates from Anna Schumaker:
    "Stable bugfixes:
    - Fix memory leaks and corruption in readdir # v2.6.37+
    - Directory page cache needs to be locked when read # v2.6.37+

    New features:
    - Convert NFS to use the new mount API
    - Add "softreval" mount option to let clients use cache if server goes down
    - Add a config option to compile without UDP support
    - Limit the number of inactive delegations the client can cache at once
    - Improved readdir concurrency using iterate_shared()

    Other bugfixes and cleanups:
    - More 64-bit time conversions
    - Add additional diagnostic tracepoints
    - Check for holes in swapfiles, and add dependency on CONFIG_SWAP
    - Various xprtrdma cleanups to prepare for 5.7's changes
    - Several fixes for NFS writeback and commit handling
    - Fix acls over krb5i/krb5p mounts
    - Recover from premature loss of openstateids
    - Fix NFS v3 chacl and chmod bug
    - Compare creds using cred_fscmp()
    - Use kmemdup_nul() in more places
    - Optimize readdir cache page invalidation
    - Lease renewal and recovery fixes"

    * tag 'nfs-for-5.6-1' of git://git.linux-nfs.org/projects/anna/linux-nfs: (93 commits)
    NFSv4.0: nfs4_do_fsinfo() should not do implicit lease renewals
    NFSv4: try lease recovery on NFS4ERR_EXPIRED
    NFS: Fix memory leaks
    nfs: optimise readdir cache page invalidation
    NFS: Switch readdir to using iterate_shared()
    NFS: Use kmemdup_nul() in nfs_readdir_make_qstr()
    NFS: Directory page cache pages need to be locked when read
    NFS: Fix memory leaks and corruption in readdir
    SUNRPC: Use kmemdup_nul() in rpc_parse_scope_id()
    NFS: Replace various occurrences of kstrndup() with kmemdup_nul()
    NFSv4: Limit the total number of cached delegations
    NFSv4: Add accounting for the number of active delegations held
    NFSv4: Try to return the delegation immediately when marked for return on close
    NFS: Clear NFS_DELEGATION_RETURN_IF_CLOSED when the delegation is returned
    NFSv4: nfs_inode_evict_delegation() should set NFS_DELEGATION_RETURNING
    NFS: nfs_find_open_context() should use cred_fscmp()
    NFS: nfs_access_get_cached_rcu() should use cred_fscmp()
    NFSv4: pnfs_roc() must use cred_fscmp() to compare creds
    NFS: remove unused macros
    nfs: Return EINVAL rather than ERANGE for mount parse errors
    ...

    Linus Torvalds
     
  • Pull i2c updates from Wolfram Sang:
    "i2c core:

    - huge improvements and refactorizations of the Linux I2C
    documentation (lots of thanks to Luca for doing it and Jean for the
    careful review)

    - subsystem wide API conversion to i2c_new_client_device()

    - remove obsolete parport-light driver

    - smaller core updates (removal of 'extern', enabling more compile
    testing, use more helper macros)

    - and quite a bunch of driver updates (new IDs, simplifications,
    better PM, support of atomic transfers and other improvements)

    i2c-mux:

    - The main feature is the idle-state rework of the pca954x driver
    from Biwen Li

    at24 driver:

    - minor maintenance: update the license tag, sort headers

    - move support for the write-protect pin into nvmem core

    - add a reference to the new wp-gpios property in nvmem to at25
    bindings

    - add support for regulator and pm_runtime control"

    * 'i2c/for-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (91 commits)
    i2c: cros-ec-tunnel: Fix ACPI identifier
    i2c: cros-ec-tunnel: Fix slave device enumeration
    i2c: stm32f7: add PM_SLEEP suspend/resume support
    i2c: cadence: Fix wording in i2c-cadence driver
    i2c: cadence: Fix power management order of operations
    i2c: cadence: Fix error printing in case of defer
    i2c: cadence: Handle transfer_size rollover
    i2c: i801: Add support for Intel Comet Lake PCH-V
    docs: i2c: writing-clients: properly name the stop condition
    docs: i2c: i2c-protocol: use same wording as smbus-protocol
    docs: i2c: rename sections so the overall picture is clearer
    docs: i2c: old-module-parameters: use monospace instead of ""
    docs: i2c: old-module-parameters: clarify this is for obsolete kernels
    docs: i2c: old-module-parameters: fix internal hyperlink
    docs: i2c: instantiating-devices: use monospace for sysfs attributes
    docs: i2c: instantiating-devices: rearrange static instatiation
    docs: i2c: instantiating-devices: fix internal hyperlink
    docs: i2c: smbus-protocol: improve I2C Block transactions description
    docs: i2c: smbus-protocol: fix punctuation
    docs: i2c: smbus-protocol: fix typo
    ...

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Just some fixes for this merge window: the tegra changes fix some
    regressions in the merge, nouveau has a few modesetting fixes.

    The amdgpu fixes are bit bigger, but they contain a couple of weeks of
    fixes, and don't seem to contain anything that isn't really a fix.

    Summary:

    tegra:
    - merge window regression fixes

    nouveau:
    - couple of volta/turing modesetting fixes

    amdgpu:
    - EDC fixes for Arcturus
    - GDDR6 memory training fixe
    - Fix for reading gfx clockgating registers while in GFXOFF state
    - i2c freq fixes
    - Misc display fixes
    - TLB invalidation fix when using semaphores
    - VCN 2.5 instancing fixes
    - Switch raven1 gfxoff to a blacklist
    - Coreboot workaround for KV/KB
    - Root cause dongle fixes for display and revert workaround
    - Enable GPU reset for renoir and navi
    - Navi overclocking fixes
    - Fix up confusing warnings in display clock validation on raven

    amdkfd:
    - SDMA fix

    radeon:
    - Misc LUT fixes"

    * tag 'drm-next-2020-02-07' of git://anongit.freedesktop.org/drm/drm: (90 commits)
    gpu: host1x: Set DMA direction only for DMA-mapped buffer objects
    drm/tegra: Reuse IOVA mapping where possible
    drm/tegra: Relax IOMMU usage criteria on old Tegra
    drm/amd/dm/mst: Ignore payload update failures
    drm/amdgpu: update default voltage for boot od table for navi1x
    drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_voltage
    drm/amdgpu/smu10: fix smu10_get_clock_by_type_with_latency
    drm/amdgpu/display: handle multiple numbers of fclks in dcn_calcs.c (v2)
    drm/amdgpu: fetch default VDDC curve voltages (v2)
    drm/amdgpu/smu_v11_0: Correct behavior of restoring default tables (v2)
    drm/amdgpu/navi10: add OD_RANGE for navi overclocking
    drm/amdgpu/navi: fix index for OD MCLK
    drm/amd/display: Fix HW/SW state mismatch
    drm/amd/display: Fix a typo when computing dsc configuration
    drm/amd/powerplay: fix navi10 system intermittent reboot issue V2
    drm/amdkfd: Fix a bug in SDMA RLC queue counting under HWS mode
    drm/amd/display: Only enable cursor on pipes that need it
    drm/nouveau/kms/gv100-: avoid sending a core update until the first modeset
    drm/nouveau/kms/gv100-: move window ownership setup into modesetting path
    drm/nouveau/disp/gv100-: halt NV_PDISP_FE_RM_INTR_STAT_CTRL_DISP_ERROR storms
    ...

    Linus Torvalds
     
  • Pull clk fixes from Stephen Boyd:
    "A collection of fixes:

    - Make of_clk.h self contained

    - Fix new qcom DT bindings that just merged to match the DTS files

    - Fix qcom clk driver to properly detect DFS clk frequencies

    - Fix the ls1028a driver to not deref a pointer before assigning it"

    * tag 'clk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    of: clk: Make self-contained
    clk: qcom: Use ARRAY_SIZE in videocc-sc7180 for parent clocks
    clk: qcom: Get rid of the test clock for videocc-sc7180
    dt-bindings: clock: Cleanup qcom,videocc bindings for sdm845/sc7180
    clk: qcom: Use ARRAY_SIZE in gpucc-sc7180 for parent clocks
    clk: qcom: Get rid of the test clock for gpucc-sc7180
    dt-bindings: clock: Fix qcom,gpucc bindings for sdm845/sc7180/msm8998
    clk: qcom: Use ARRAY_SIZE in dispcc-sc7180 for parent clocks
    clk: qcom: Get rid of the test clock for dispcc-sc7180
    clk: qcom: Get rid of fallback global names for dispcc-sc7180
    dt-bindings: clock: Fix qcom,dispcc bindings for sdm845/sc7180
    clk: qcom: rcg2: Don't crash if our parent can't be found; return an error
    clk: ls1028a: fix a dereference of pointer 'parent' before a null check
    dt-bindings: clk: qcom: Fix self-validation, split, and clean cruft
    clk: qcom: Don't overwrite 'cfg' in clk_rcg2_dfs_populate_freq()

    Linus Torvalds
     
  • Pull watchdog updates from Wim Van Sebroeck:

    - add IT8786 chipset ID

    - addition of sam9x60 compatible watchdog

    - da9062 improvements

    - fix UAF in reboot notifier handling in watchdog core code

    - other fixes and small improvements

    * tag 'linux-watchdog-5.6-rc1' of git://www.linux-watchdog.org/linux-watchdog:
    watchdog: da9062: make restart handler atomic safe
    watchdog: mtk_wdt: mt2712: Add reset controller
    watchdog: mtk_wdt: mt8183: Add reset controller
    dt-bindings: mediatek: mt2712: Add #reset-cells
    dt-bindings: mediatek: mt8183: Add #reset-cells
    dt-bindings: watchdog: da9062: add suspend disable option
    watchdog: it87_wdt: add IT8786 ID
    watchdog: dw_wdt: ping watchdog to reset countdown before start
    watchdog: fix UAF in reboot notifier handling in watchdog core code
    watchdog: cadence: Skip printing pointer value
    watchdog: qcom: Use platform_get_irq_optional() for bark irq
    watchdog: da9062: add power management ops
    watchdog: make DesignWare watchdog allow users to set bigger timeout value
    drivers: watchdog: stm32_iwdg: set WDOG_HW_RUNNING at probe
    watchdog: sama5d4_wdt: addition of sam9x60 compatible watchdog

    Linus Torvalds
     

07 Feb, 2020

2 commits

  • amd-drm-next-5.6-2020-02-05:

    amdgpu:
    - EDC fixes for Arcturus
    - GDDR6 memory training fixe
    - Fix for reading gfx clockgating registers while in GFXOFF state
    - i2c freq fixes
    - Misc display fixes
    - TLB invalidation fix when using semaphores
    - VCN 2.5 instancing fixes
    - Switch raven1 gfxoff to a blacklist
    - Coreboot workaround for KV/KB
    - Root cause dongle fixes for display and revert workaround
    - Enable GPU reset for renoir and navi
    - Navi overclocking fixes
    - Fix up confusing warnings in display clock validation on raven

    amdkfd:
    - SDMA fix

    radeon:
    - Misc LUT fixes

    Signed-off-by: Dave Airlie
    From: Alex Deucher
    Link: https://patchwork.freedesktop.org/patch/msgid/20200206035458.3894-1-alexander.deucher@amd.com

    Dave Airlie
     
  • Pull more KVM updates from Paolo Bonzini:
    "s390:
    - fix register corruption
    - ENOTSUPP/EOPNOTSUPP mixed
    - reset cleanups/fixes
    - selftests

    x86:
    - Bug fixes and cleanups
    - AMD support for APIC virtualization even in combination with
    in-kernel PIT or IOAPIC.

    MIPS:
    - Compilation fix.

    Generic:
    - Fix refcount overflow for zero page"

    * tag 'kvm-5.6-2' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (42 commits)
    KVM: vmx: delete meaningless vmx_decache_cr0_guest_bits() declaration
    KVM: x86: Mark CR4.UMIP as reserved based on associated CPUID bit
    x86: vmxfeatures: rename features for consistency with KVM and manual
    KVM: SVM: relax conditions for allowing MSR_IA32_SPEC_CTRL accesses
    KVM: x86: Fix perfctr WRMSR for running counters
    x86/kvm/hyper-v: don't allow to turn on unsupported VMX controls for nested guests
    x86/kvm/hyper-v: move VMX controls sanitization out of nested_enable_evmcs()
    kvm: mmu: Separate generating and setting mmio ptes
    kvm: mmu: Replace unsigned with unsigned int for PTE access
    KVM: nVMX: Remove stale comment from nested_vmx_load_cr3()
    KVM: MIPS: Fold comparecount_func() into comparecount_wakeup()
    KVM: MIPS: Fix a build error due to referencing not-yet-defined function
    x86/kvm: do not setup pv tlb flush when not paravirtualized
    KVM: fix overflow of zero page refcount with ksm running
    KVM: x86: Take a u64 when checking for a valid dr7 value
    KVM: x86: use raw clock values consistently
    KVM: x86: reorganize pvclock_gtod_data members
    KVM: nVMX: delete meaningless nested_vmx_run() declaration
    KVM: SVM: allow AVIC without split irqchip
    kvm: ioapic: Lazy update IOAPIC EOI
    ...

    Linus Torvalds
     

06 Feb, 2020

9 commits

  • Pull sound fixes from Takashi Iwai:
    "A collection of pending small fixes:

    ALSA core:
    - PCM memory leak fix

    ASoC:
    - Lots of SOF and Intel driver fixes
    - Addition of COMMON_CLK for wcd934x
    - Regression fixes for AMD and Tegra platforms

    HD-audio:
    - DP-MST HDMI regression fix, Tegra workarounds, HP quirk fix

    Others:
    - A few fixes relevant with the recent uapi-updates
    - Sparse warnings and endianness fixes"

    * tag 'sound-fix-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (35 commits)
    ALSA: hda: Clear RIRB status before reading WP
    ALSA: hda/realtek - Fixed one of HP ALC671 platform Headset Mic supported
    ASoC: wcd934x: Add missing COMMON_CLK dependency to SND_SOC_ALL_CODECS
    ALSA: hda - Fix DP-MST support for NVIDIA codecs
    ASoC: wcd934x: Add missing COMMON_CLK dependency
    MAINTAINERS: Remove the Bard Liao from the MAINTAINERS of Realtek CODECs
    ASoC: tegra: Revert 24 and 32 bit support
    ASoC: SOF: Intel: add PCI ID for JasperLake
    ALSA: hdsp: Make the firmware loading ioctl a bit more readable
    ALSA: emu10k1: Fix annotation and cast for the recent uapi header change
    ALSA: dummy: Fix PCM format loop in proc output
    ALSA: usb-audio: Annotate endianess in Scarlett gen2 quirk
    ALSA: usb-audio: Fix endianess in descriptor validation
    ALSA: hda: Add JasperLake PCI ID and codec vid
    ALSA: pcm: Fix sparse warnings wrt snd_pcm_state_t
    ALSA: pcm: Fix memory leak at closing a stream without hw_free
    ALSA: uapi: Fix sparse warning
    ASoC: rt715: Add __maybe_unused to PM callbacks
    ASoC: rt711: Add __maybe_unused to PM callbacks
    ASoC: rt700: Add __maybe_unused to PM callbacks
    ...

    Linus Torvalds
     
  • Pull ceph fixes from Ilya Dryomov:

    - a set of patches that fixes various corner cases in mount and umount
    code (Xiubo Li). This has to do with choosing an MDS, distinguishing
    between laggy and down MDSes and parsing the server path.

    - inode initialization fixes (Jeff Layton). The one included here
    mostly concerns things like open_by_handle() and there is another one
    that will come through Al.

    - copy_file_range() now uses the new copy-from2 op (Luis Henriques).
    The existing copy-from op turned out to be infeasible for generic
    filesystem use; we disable the copy offload if OSDs don't support
    copy-from2.

    - a patch to link "rbd" and "block" devices together in sysfs (Hannes
    Reinecke)

    ... and a smattering of cleanups from Xiubo, Jeff and Chengguang.

    * tag 'ceph-for-5.6-rc1' of https://github.com/ceph/ceph-client: (25 commits)
    rbd: set the 'device' link in sysfs
    ceph: move net/ceph/ceph_fs.c to fs/ceph/util.c
    ceph: print name of xattr in __ceph_{get,set}xattr() douts
    ceph: print r_direct_hash in hex in __choose_mds() dout
    ceph: use copy-from2 op in copy_file_range
    ceph: close holes in structs ceph_mds_session and ceph_mds_request
    rbd: work around -Wuninitialized warning
    ceph: allocate the correct amount of extra bytes for the session features
    ceph: rename get_session and switch to use ceph_get_mds_session
    ceph: remove the extra slashes in the server path
    ceph: add possible_max_rank and make the code more readable
    ceph: print dentry offset in hex and fix xattr_version type
    ceph: only touch the caps which have the subset mask requested
    ceph: don't clear I_NEW until inode metadata is fully populated
    ceph: retry the same mds later after the new session is opened
    ceph: check availability of mds cluster on mount after wait timeout
    ceph: keep the session state until it is released
    ceph: add __send_request helper
    ceph: ensure we have a new cap before continuing in fill_inode
    ceph: drop unused ttl_from parameter from fill_inode
    ...

    Linus Torvalds
     
  • Pull tracing updates from Steven Rostedt:

    - Added new "bootconfig".

    This looks for a file appended to initrd to add boot config options,
    and has been discussed thoroughly at Linux Plumbers.

    Very useful for adding kprobes at bootup.

    Only enabled if "bootconfig" is on the real kernel command line.

    - Created dynamic event creation.

    Merges common code between creating synthetic events and kprobe
    events.

    - Rename perf "ring_buffer" structure to "perf_buffer"

    - Rename ftrace "ring_buffer" structure to "trace_buffer"

    Had to rename existing "trace_buffer" to "array_buffer"

    - Allow trace_printk() to work withing (some) tracing code.

    - Sort of tracing configs to be a little better organized

    - Fixed bug where ftrace_graph hash was not being protected properly

    - Various other small fixes and clean ups

    * tag 'trace-v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace: (88 commits)
    bootconfig: Show the number of nodes on boot message
    tools/bootconfig: Show the number of bootconfig nodes
    bootconfig: Add more parse error messages
    bootconfig: Use bootconfig instead of boot config
    ftrace: Protect ftrace_graph_hash with ftrace_sync
    ftrace: Add comment to why rcu_dereference_sched() is open coded
    tracing: Annotate ftrace_graph_notrace_hash pointer with __rcu
    tracing: Annotate ftrace_graph_hash pointer with __rcu
    bootconfig: Only load bootconfig if "bootconfig" is on the kernel cmdline
    tracing: Use seq_buf for building dynevent_cmd string
    tracing: Remove useless code in dynevent_arg_pair_add()
    tracing: Remove check_arg() callbacks from dynevent args
    tracing: Consolidate some synth_event_trace code
    tracing: Fix now invalid var_ref_vals assumption in trace action
    tracing: Change trace_boot to use synth_event interface
    tracing: Move tracing selftests to bottom of menu
    tracing: Move mmio tracer config up with the other tracers
    tracing: Move tracing test module configs together
    tracing: Move all function tracing configs together
    tracing: Documentation for in-kernel synthetic event API
    ...

    Linus Torvalds
     
  • Pull io_uring updates from Jens Axboe:
    "Some later fixes for io_uring:

    - Small cleanup series from Pavel

    - Belt and suspenders build time check of sqe size and layout
    (Stefan)

    - Addition of ->show_fdinfo() on request of Jann Horn, to aid in
    understanding mapped personalities

    - eventfd recursion/deadlock fix, for both io_uring and aio

    - Fixup for send/recv handling

    - Fixup for double deferral of read/write request

    - Fix for potential double completion event for close request

    - Adjust fadvise advice async/inline behavior

    - Fix for shutdown hang with SQPOLL thread

    - Fix for potential use-after-free of fixed file table"

    * tag 'io_uring-5.6-2020-02-05' of git://git.kernel.dk/linux-block:
    io_uring: cleanup fixed file data table references
    io_uring: spin for sq thread to idle on shutdown
    aio: prevent potential eventfd recursion on poll
    io_uring: put the flag changing code in the same spot
    io_uring: iterate req cache backwards
    io_uring: punt even fadvise() WILLNEED to async context
    io_uring: fix sporadic double CQE entry for close
    io_uring: remove extra ->file check
    io_uring: don't map read/write iovec potentially twice
    io_uring: use the proper helpers for io_send/recv
    io_uring: prevent potential eventfd recursion on poll
    eventfd: track eventfd_signal() recursion depth
    io_uring: add BUILD_BUG_ON() to assert the layout of struct io_uring_sqe
    io_uring: add ->show_fdinfo() for the io_uring file descriptor

    Linus Torvalds
     
  • Pull libata updates from Jens Axboe:

    - Add a Sandisk CF card to supported pata_pcmcia list (Christian)

    - Move pata_arasan_cf away from legacy API (Peter)

    - Ensure ahci DMA/ints are shut down on shutdown (Prabhakar)

    * tag 'libata-5.6-2020-02-05' of git://git.kernel.dk/linux-block:
    ata: pata_arasan_cf: Use dma_request_chan() instead dma_request_slave_channel()
    ata: ahci: Add shutdown to freeze hardware resources of ahci
    pata_pcmia: add SanDisk High (>8G) CF card to supported list

    Linus Torvalds
     
  • Depending on include order:

    include/linux/of_clk.h:11:45: warning: ‘struct device_node’ declared inside parameter list will not be visible outside of this definition or declaration
    unsigned int of_clk_get_parent_count(struct device_node *np);
    ^~~~~~~~~~~
    include/linux/of_clk.h:12:43: warning: ‘struct device_node’ declared inside parameter list will not be visible outside of this definition or declaration
    const char *of_clk_get_parent_name(struct device_node *np, int index);
    ^~~~~~~~~~~
    include/linux/of_clk.h:13:31: warning: ‘struct of_device_id’ declared inside parameter list will not be visible outside of this definition or declaration
    void of_clk_init(const struct of_device_id *matches);
    ^~~~~~~~~~~~

    Fix this by adding forward declarations for struct device_node and
    struct of_device_id.

    Signed-off-by: Geert Uytterhoeven
    Link: https://lkml.kernel.org/r/20200205194649.31309-1-geert+renesas@glider.be
    Signed-off-by: Stephen Boyd

    Geert Uytterhoeven
     
  • …erry.reding/linux-pwm

    Pull pwm updates from Thierry Reding:
    "Mostly cleanups and minor improvements with some new chip support for
    some drivers"

    * tag 'pwm/for-5.6-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (37 commits)
    pwm: Remove set but not set variable 'pwm'
    pwm: sun4i: Initialize variables before use
    pwm: stm32: Remove automatic output enable
    pwm: sun4i: Narrow scope of local variable
    pwm: bcm2835: Allow building for ARCH_BRCMSTB
    pwm: imx27: Eliminate error message for defer probe
    pwm: sun4i: Fix inconsistent IS_ERR and PTR_ERR
    pwm: sun4i: Move pwm_calculate() out of spin_lock()
    pwm: omap-dmtimer: Allow compiling with COMPILE_TEST
    pwm: omap-dmtimer: put_device() after of_find_device_by_node()
    pwm: omap-dmtimer: Simplify error handling
    pwm: omap-dmtimer: Remove PWM chip in .remove before making it unfunctional
    pwm: Implement tracing for .get_state() and .apply_state()
    pwm: rcar: Document inability to set duty_cycle = 0
    pwm: rcar: Drop useless call to pwm_get_state()
    pwm: Fix minor Kconfig whitespace issues
    pwm: atmel: Implement .get_state()
    pwm: atmel: Use register accessors for channels
    pwm: atmel: Document known weaknesses of both hardware and software
    pwm: atmel: Replace loop in prescale calculation by ad-hoc calculation
    ...

    Linus Torvalds
     
  • Pull iommu updates from Joerg Roedel:

    - Allow compiling the ARM-SMMU drivers as modules.

    - Fixes and cleanups for the ARM-SMMU drivers and io-pgtable code
    collected by Will Deacon. The merge-commit (6855d1ba7537) has all the
    details.

    - Cleanup of the iommu_put_resv_regions() call-backs in various
    drivers.

    - AMD IOMMU driver cleanups.

    - Update for the x2APIC support in the AMD IOMMU driver.

    - Preparation patches for Intel VT-d nested mode support.

    - RMRR and identity domain handling fixes for the Intel VT-d driver.

    - More small fixes and cleanups.

    * tag 'iommu-updates-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (87 commits)
    iommu/amd: Remove the unnecessary assignment
    iommu/vt-d: Remove unnecessary WARN_ON_ONCE()
    iommu/vt-d: Unnecessary to handle default identity domain
    iommu/vt-d: Allow devices with RMRRs to use identity domain
    iommu/vt-d: Add RMRR base and end addresses sanity check
    iommu/vt-d: Mark firmware tainted if RMRR fails sanity check
    iommu/amd: Remove unused struct member
    iommu/amd: Replace two consecutive readl calls with one readq
    iommu/vt-d: Don't reject Host Bridge due to scope mismatch
    PCI/ATS: Add PASID stubs
    iommu/arm-smmu-v3: Return -EBUSY when trying to re-add a device
    iommu/arm-smmu-v3: Improve add_device() error handling
    iommu/arm-smmu-v3: Use WRITE_ONCE() when changing validity of an STE
    iommu/arm-smmu-v3: Add second level of context descriptor table
    iommu/arm-smmu-v3: Prepare for handling arm_smmu_write_ctx_desc() failure
    iommu/arm-smmu-v3: Propagate ssid_bits
    iommu/arm-smmu-v3: Add support for Substream IDs
    iommu/arm-smmu-v3: Add context descriptor tables allocators
    iommu/arm-smmu-v3: Prepare arm_smmu_s1_cfg for SSID support
    ACPI/IORT: Parse SSID property of named component node
    ...

    Linus Torvalds
     
  • Pull xen updates from Juergen Gross:

    - fix a bug introduced in 5.5 in the Xen gntdev driver

    - fix the Xen balloon driver when running on ancient Xen versions

    - allow Xen stubdoms to control interrupt enable flags of
    passed-through PCI cards

    - release resources in Xen backends under memory pressure

    * tag 'for-linus-5.6-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/blkback: Consistently insert one empty line between functions
    xen/blkback: Remove unnecessary static variable name prefixes
    xen/blkback: Squeeze page pools if a memory pressure is detected
    xenbus/backend: Protect xenbus callback with lock
    xenbus/backend: Add memory pressure handler callback
    xen/gntdev: Do not use mm notifiers with autotranslating guests
    xen/balloon: Support xend-based toolstack take two
    xen-pciback: optionally allow interrupt enable flag writes

    Linus Torvalds
     

05 Feb, 2020

3 commits


04 Feb, 2020

21 commits

  • When the directory is large and it's being modified by one client
    while another client is doing the 'ls -l' on the same directory then
    the cache page invalidation from nfs_force_use_readdirplus causes
    the reading client to keep restarting READDIRPLUS from cookie 0
    which causes the 'ls -l' to take a very long time to complete,
    possibly never completing.

    Currently when nfs_force_use_readdirplus is called to switch from
    READDIR to READDIRPLUS, it invalidates all the cached pages of the
    directory. This cache page invalidation causes the next nfs_readdir
    to re-read the directory content from cookie 0.

    This patch is to optimise the cache invalidation in
    nfs_force_use_readdirplus by only truncating the cached pages from
    last page index accessed to the end the file. It also marks the
    inode to delay invalidating all the cached page of the directory
    until the next initial nfs_readdir of the next 'ls' instance.

    Signed-off-by: Dai Ngo
    Reviewed-by: Trond Myklebust
    [Anna - Fix conflicts with Trond's readdir patches]
    [Anna - Remove redundant call to nfs_zap_mapping()]
    [Anna - Replace d_inode(file_dentry(desc->file)) with file_inode(desc->file)]
    Signed-off-by: Anna Schumaker

    Dai Ngo
     
  • Pull Microblaze update from Michal Simek:

    - enable CMA

    - add support for MB v11

    - defconfig updates

    - minor fixes

    * tag 'microblaze-v5.6-rc1' of git://git.monstr.eu/linux-2.6-microblaze:
    microblaze: Add ID for Microblaze v11
    microblaze: Prevent the overflow of the start
    microblaze: Wire CMA allocator
    asm-generic: Make dma-contiguous.h a mandatory include/asm header
    microblaze: Sync defconfig with latest Kconfig layout
    microblaze: defconfig: Disable EXT2 driver and Enable EXT3 & EXT4 drivers
    microblaze: Align comments with register usage

    Linus Torvalds
     
  • Pull overlayfs update from Miklos Szeredi:

    - Try to preserve holes in sparse files when copying up, thus saving
    disk space and improving performance.

    - Fix a performance regression introduced in v4.19 by preserving
    asynchronicity of IO when fowarding to underlying layers. Add VFS
    helpers to submit async iocbs.

    - Fix a regression in lseek(2) introduced in v4.19 that breaks >2G
    seeks on 32bit kernels.

    - Fix a corner case where st_ino/st_dev was not preserved across copy
    up.

    - Miscellaneous fixes and cleanups.

    * tag 'ovl-update-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/vfs:
    ovl: fix lseek overflow on 32bit
    ovl: add splice file read write helper
    ovl: implement async IO routines
    vfs: add vfs_iocb_iter_[read|write] helper functions
    ovl: layer is const
    ovl: fix corner case of non-constant st_dev;st_ino
    ovl: fix corner case of conflicting lower layer uuid
    ovl: generalize the lower_fs[] array
    ovl: simplify ovl_same_sb() helper
    ovl: generalize the lower_layers[] array
    ovl: improving copy-up efficiency for big sparse file
    ovl: use ovl_inode_lock in ovl_llseek()
    ovl: use pr_fmt auto generate prefix
    ovl: fix wrong WARN_ON() in ovl_cache_update_ino()

    Linus Torvalds
     
  • dma-continuguous.h is generic for all architectures except arm32 which has
    its own version.

    Similar change was done for msi.h by commit a1b39bae16a6
    ("asm-generic: Make msi.h a mandatory include/asm header")

    Suggested-by: Christoph Hellwig
    Link: https://lore.kernel.org/linux-arm-kernel/20200117080446.GA8980@lst.de/T/#m92bb56b04161057635d4142e1b3b9b6b0a70122e
    Signed-off-by: Michal Simek
    Reviewed-by: Christoph Hellwig
    Acked-by: Thomas Gleixner
    Acked-by: Arnd Bergmann
    Acked-by: Paul Walmsley # for arch/riscv

    Michal Simek
     
  • Pull remoteproc updates from Bjorn Andersson:
    "This adds support for the Mediatek MT8183 SCP, modem remoteproc on
    Qualcomm SC7180 platform, audio and sensor remoteprocs on Qualcomm
    MSM8998 and audio, compute, modem and sensor remoteprocs on Qualcomm
    SM8150.

    It adds votes for necessary power-domains for all Qualcomm TrustZone
    based remoteproc instances are held, fixes a bug related to remoteproc
    drivers registering before the core has been initialized and does
    clean up the Qualcomm modem remoteproc driver"

    * tag 'rproc-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc: (21 commits)
    remoteproc: qcom: q6v5-mss: Improve readability of reset_assert
    remoteproc: qcom: q6v5-mss: Use regmap_read_poll_timeout
    remoteproc: qcom: q6v5-mss: Rename boot status timeout
    remoteproc: qcom: q6v5-mss: Improve readability across clk handling
    remoteproc: use struct_size() helper
    remoteproc: Initialize rproc_class before use
    rpmsg: add rpmsg support for mt8183 SCP.
    remoteproc/mediatek: add SCP support for mt8183
    dt-bindings: Add a binding for Mediatek SCP
    remoteproc: mss: q6v5-mss: Add modem support on SC7180
    dt-bindings: remoteproc: qcom: Add Q6V5 Modem PIL binding for SC7180
    remoteproc: qcom: pas: Add MSM8998 ADSP and SLPI support
    dt-bindings: remoteproc: qcom: Add ADSP and SLPI support for MSM8998 SoC
    remoteproc: q6v5-mss: Remove mem clk from the active pool
    remoteproc: qcom: Remove unneeded semicolon
    remoteproc: qcom: pas: Add auto_boot flag
    remoteproc: qcom: pas: Add SM8150 ADSP, CDSP, Modem and SLPI support
    dt-bindings: remoteproc: qcom: SM8150 Add ADSP, CDSP, MPSS and SLPI support
    remoteproc: qcom: pas: Vote for active/proxy power domains
    dt-bindings: remoteproc: qcom: Add power-domain bindings for Q6V5 PAS
    ...

    Linus Torvalds
     
  • Merge more updates from Andrew Morton:
    "The rest of MM and the rest of everything else: hotfixes, ipc, misc,
    procfs, lib, cleanups, arm"

    * emailed patches from Andrew Morton : (67 commits)
    ARM: dma-api: fix max_pfn off-by-one error in __dma_supported()
    treewide: remove redundant IS_ERR() before error code check
    include/linux/cpumask.h: don't calculate length of the input string
    lib: new testcases for bitmap_parse{_user}
    lib: rework bitmap_parse()
    lib: make bitmap_parse_user a wrapper on bitmap_parse
    lib: add test for bitmap_parse()
    bitops: more BITS_TO_* macros
    lib/string: add strnchrnul()
    proc: convert everything to "struct proc_ops"
    proc: decouple proc from VFS with "struct proc_ops"
    asm-generic/tlb: provide MMU_GATHER_TABLE_FREE
    asm-generic/tlb: rename HAVE_MMU_GATHER_NO_GATHER
    asm-generic/tlb: rename HAVE_MMU_GATHER_PAGE_SIZE
    asm-generic/tlb: rename HAVE_RCU_TABLE_FREE
    asm-generic/tlb: add missing CONFIG symbol
    asm-gemeric/tlb: remove stray function declarations
    asm-generic/tlb: avoid potential double flush
    mm/mmu_gather: invalidate TLB correctly on batch allocation failure and flush
    powerpc/mmu_gather: enable RCU_TABLE_FREE even for !SMP case
    ...

    Linus Torvalds
     
  • Pull drm ttm/mm updates from Dave Airlie:
    "Thomas Hellstrom has some more changes to the TTM layer that needed a
    patch to the mm subsystem.

    This adds a new mm API vmf_insert_mixed_prot to avoid an ugly hack
    that has limitations in the TTM layer"

    * tag 'drm-next-2020-02-04' of git://anongit.freedesktop.org/drm/drm:
    mm, drm/ttm: Fix vm page protection handling
    mm: Add a vmf_insert_mixed_prot() function

    Linus Torvalds
     
  • …ernel/git/chrome-platform/linux

    Pull chrome platform updates from Benson Leung:
    "CrOS EC:

    - Refactoring of some of cros_ec's headers:

    include/linux/mfd/cros_ec.h now removed, new cros_ec.h added to
    drivers/platform/chrome which contains shared operations of cros_ec
    transport drivers.

    - Response tracing in cros_ec_proto

    Wilco EC:

    - Fix unregistration order.

    - Fix keyboard backlight probing on systems without keyboard
    backlight

    - Minor cleanup (newlines in printks, COMPILE_TEST)

    Misc:

    - chromeos_laptop converted to use i2c_new_scanned_device instead of
    i2c_new_probed_device"

    * tag 'tag-chrome-platform-for-v5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux:
    platform/chrome: cros_ec: Match implementation with headers
    platform/chrome: cros_ec: Drop unaligned.h include
    platform/chrome: wilco_ec: Allow wilco to be compiled in COMPILE_TEST
    platform/chrome: wilco_ec: Add newlines to printks
    platform/chrome: wilco_ec: Fix unregistration order
    cros_ec: treewide: Remove 'include/linux/mfd/cros_ec.h'
    platform/chrome: cros_ec_ishtp: Make init_lock static
    platform/chrome: chromeos_laptop: Convert to i2c_new_scanned_device
    platform/chrome: cros_ec_lpc: Use platform_get_irq_optional() for optional IRQs
    platform/chrome: cros_ec_proto: Add response tracing
    platform/chrome: cros_ec_trace: Match trace commands with EC commands

    Linus Torvalds
     
  • Pull RTC updates from Alexandre Belloni:
    "The VL_READ and VL_CLR ioctls have been reworked to be more useful.
    This will not break userspace as there are very few users and they are
    using the integer value as a boolean.

    Apart from that, two drivers were reworked and a few fixes here and
    there for a net reduction of number of lines.

    Summary:

    Subsystem:
    - the VL_READ and VL_CLR ioctls are now documented and their behavior
    is unified across all the drivers.
    - RTC_I2C_AND_SPI Kconfig option rework to avoid selecting both
    REGMAP_I2C and REGMAP_SPI unecessarily.

    Drivers:
    - at91rm9200: remove deprecated procfs, add sam9x60, sama5d4 and
    sama5d2 compatibles.
    - cmos: solve lost interrupts issue on MS Surface 3
    - hym8563: return proper errno when time is invalid
    - rv3029: many fixes, nvram support"

    * tag 'rtc-5.6' of git://git.kernel.org/pub/scm/linux/kernel/git/abelloni/linux: (63 commits)
    dt-bindings: rtc: at91rm9200: document clocks property
    rtc: i2c/spi: Avoid inclusion of REGMAP support when not needed
    rtc: Kconfig: select REGMAP_I2C when necessary
    rtc: Kconfig: properly indent sd3078 entry
    rtc: cmos: Refactor code by using the new dmi_get_bios_year() helper
    rtc: cmos: Use predefined value for RTC IRQ on legacy x86
    rtc: cmos: Stop using shared IRQ
    rtc: tps6586x: Use IRQ_NOAUTOEN flag
    rtc: at91rm9200: use FIELD_PREP/FIELD_GET
    rtc: at91rm9200: avoid time readout in at91_rtc_setalarm
    rtc: at91rm9200: move register definitions to C file
    rtc: at91rm9200: add sama5d4 and sama5d2 compatibles
    dt-bindings: rtc: at91rm9200: convert bindings to json-schema
    rtc: at91rm9200: remove procfs information
    dt-bindings: atmel, at91rm9200-rtc: add microchip, sam9x60-rtc
    rtc: pcf8563: Use BIT
    rtc: moxart: Convert to SPDX identifier
    rtc: ds1343: Remove unused struct spi_device in struct ds1343_priv
    rtc: rx8025: Remove struct i2c_client from struct rx8025_data
    rtc: hym8563: Read the valid flag directly instead of caching it
    ...

    Linus Torvalds
     
  • New design of inner bitmap_parse() allows to avoid calculating the size of
    a null-terminated string.

    Link: http://lkml.kernel.org/r/20200102043031.30357-8-yury.norov@gmail.com
    Signed-off-by: Yury Norov
    Reviewed-by: Andy Shevchenko
    Cc: Amritha Nambiar
    Cc: Arnaldo Carvalho de Melo
    Cc: Chris Wilson
    Cc: Kees Cook
    Cc: Matthew Wilcox
    Cc: Miklos Szeredi
    Cc: Rasmus Villemoes
    Cc: Steffen Klassert
    Cc: "Tobin C . Harding"
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Willem de Bruijn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Norov
     
  • bitmap_parse() is ineffective and full of opaque variables and opencoded
    parts. It leads to hard understanding and usage of it. This rework
    includes:

    - remove bitmap_shift_left() call from the cycle. Now it makes the
    complexity of the algorithm as O(nbits^2). In the suggested approach
    the input string is parsed in reverse direction, so no shifts needed;

    - relax requirement on a single comma and no white spaces between
    chunks. It is considered useful in scripting, and it aligns with
    bitmap_parselist();

    - split bitmap_parse() to small readable helpers;

    - make an explicit calculation of the end of input line at the
    beginning, so users of the bitmap_parse() won't bother doing this.

    Link: http://lkml.kernel.org/r/20200102043031.30357-6-yury.norov@gmail.com
    Signed-off-by: Yury Norov
    Cc: Amritha Nambiar
    Cc: Andy Shevchenko
    Cc: Arnaldo Carvalho de Melo
    Cc: Chris Wilson
    Cc: Kees Cook
    Cc: Matthew Wilcox
    Cc: Miklos Szeredi
    Cc: Rasmus Villemoes
    Cc: Steffen Klassert
    Cc: "Tobin C . Harding"
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Willem de Bruijn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Norov
     
  • Introduce BITS_TO_U64, BITS_TO_U32 and BITS_TO_BYTES as they are handy in
    the following patches (BITS_TO_U32 specifically). Reimplement tools/
    version of the macros according to the kernel implementation.

    Also fix indentation for BITS_PER_TYPE definition.

    Link: http://lkml.kernel.org/r/20200102043031.30357-3-yury.norov@gmail.com
    Signed-off-by: Yury Norov
    Reviewed-by: Andy Shevchenko
    Cc: Amritha Nambiar
    Cc: Arnaldo Carvalho de Melo
    Cc: Chris Wilson
    Cc: Kees Cook
    Cc: Matthew Wilcox
    Cc: Miklos Szeredi
    Cc: Rasmus Villemoes
    Cc: Steffen Klassert
    Cc: "Tobin C . Harding"
    Cc: Vineet Gupta
    Cc: Will Deacon
    Cc: Willem de Bruijn
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Norov
     
  • Patch series "lib: rework bitmap_parse", v5.

    Similarl to the recently revisited bitmap_parselist(), bitmap_parse() is
    ineffective and overcomplicated. This series reworks it, aligns its
    interface with bitmap_parselist() and makes it simpler to use.

    The series also adds a test for the function and fixes usage of it in
    cpumask_parse() according to the new design - drops the calculating of
    length of an input string.

    bitmap_parse() takes the array of numbers to be put into the map in the BE
    order which is reversed to the natural LE order for bitmaps. For example,
    to construct bitmap containing a bit on the position 42, we have to put a
    line '400,0'. Current implementation reads chunk one by one from the
    beginning ('400' before '0') and makes bitmap shift after each successful
    parse. It makes the complexity of the whole process as O(n^2). We can do
    it in reverse direction ('0' before '400') and avoid shifting, but it
    requires reverse parsing helpers.

    This patch (of 7):

    New function works like strchrnul() with a length limited string.

    Link: http://lkml.kernel.org/r/20200102043031.30357-2-yury.norov@gmail.com
    Signed-off-by: Yury Norov
    Reviewed-by: Andy Shevchenko
    Cc: Rasmus Villemoes
    Cc: Amritha Nambiar
    Cc: Willem de Bruijn
    Cc: Kees Cook
    Cc: Matthew Wilcox
    Cc: "Tobin C . Harding"
    Cc: Will Deacon
    Cc: Miklos Szeredi
    Cc: Vineet Gupta
    Cc: Chris Wilson
    Cc: Arnaldo Carvalho de Melo
    Cc: Steffen Klassert
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yury Norov
     
  • The most notable change is DEFINE_SHOW_ATTRIBUTE macro split in
    seq_file.h.

    Conversion rule is:

    llseek => proc_lseek
    unlocked_ioctl => proc_ioctl

    xxx => proc_xxx

    delete ".owner = THIS_MODULE" line

    [akpm@linux-foundation.org: fix drivers/isdn/capi/kcapi_proc.c]
    [sfr@canb.auug.org.au: fix kernel/sched/psi.c]
    Link: http://lkml.kernel.org/r/20200122180545.36222f50@canb.auug.org.au
    Link: http://lkml.kernel.org/r/20191225172546.GB13378@avx2
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Stephen Rothwell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • Currently core /proc code uses "struct file_operations" for custom hooks,
    however, VFS doesn't directly call them. Every time VFS expands
    file_operations hook set, /proc code bloats for no reason.

    Introduce "struct proc_ops" which contains only those hooks which /proc
    allows to call into (open, release, read, write, ioctl, mmap, poll). It
    doesn't contain module pointer as well.

    Save ~184 bytes per usage:

    add/remove: 26/26 grow/shrink: 1/4 up/down: 1922/-6674 (-4752)
    Function old new delta
    sysvipc_proc_ops - 72 +72
    ...
    config_gz_proc_ops - 72 +72
    proc_get_inode 289 339 +50
    proc_reg_get_unmapped_area 110 107 -3
    close_pdeo 227 224 -3
    proc_reg_open 289 284 -5
    proc_create_data 60 53 -7
    rt_cpu_seq_fops 256 - -256
    ...
    default_affinity_proc_fops 256 - -256
    Total: Before=5430095, After=5425343, chg -0.09%

    Link: http://lkml.kernel.org/r/20191225172228.GA13378@avx2
    Signed-off-by: Alexey Dobriyan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexey Dobriyan
     
  • As described in the comment, the correct order for freeing pages is:

    1) unhook page
    2) TLB invalidate page
    3) free page

    This order equally applies to page directories.

    Currently there are two correct options:

    - use tlb_remove_page(), when all page directores are full pages and
    there are no futher contraints placed by things like software
    walkers (HAVE_FAST_GUP).

    - use MMU_GATHER_RCU_TABLE_FREE and tlb_remove_table() when the
    architecture does not do IPI based TLB invalidate and has
    HAVE_FAST_GUP (or software TLB fill).

    This however leaves architectures that don't have page based directories
    but don't need RCU in a bind. For those, provide MMU_GATHER_TABLE_FREE,
    which provides the independent batching for directories without the
    additional RCU freeing.

    Link: http://lkml.kernel.org/r/20200116064531.483522-10-aneesh.kumar@linux.ibm.com
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Towards a more consistent naming scheme.

    Link: http://lkml.kernel.org/r/20200116064531.483522-9-aneesh.kumar@linux.ibm.com
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Towards a more consistent naming scheme.

    Link: http://lkml.kernel.org/r/20200116064531.483522-8-aneesh.kumar@linux.ibm.com
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Towards a more consistent naming scheme.

    [akpm@linux-foundation.org: fix sparc64 Kconfig]
    Link: http://lkml.kernel.org/r/20200116064531.483522-7-aneesh.kumar@linux.ibm.com
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • We removed the actual functions a while ago.

    Link: http://lkml.kernel.org/r/20200116064531.483522-5-aneesh.kumar@linux.ibm.com
    Fixes: 1808d65b55e4 ("asm-generic/tlb: Remove arch_tlb*_mmu()")
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra
     
  • Aneesh reported that:

    tlb_flush_mmu()
    tlb_flush_mmu_tlbonly()
    tlb_flush() fullmm, because __tlb_reset_range() will not
    clear tlb->end in that case.

    Observe that any caller to __tlb_adjust_range() also sets at least one of
    the tlb->freed_tables || tlb->cleared_p* bits, and those are
    unconditionally cleared by __tlb_reset_range().

    Change the condition for actually issuing TLBI to having one of those bits
    set, as opposed to having tlb->end != 0.

    Link: http://lkml.kernel.org/r/20200116064531.483522-4-aneesh.kumar@linux.ibm.com
    Signed-off-by: Peter Zijlstra (Intel)
    Signed-off-by: Aneesh Kumar K.V
    Reported-by: "Aneesh Kumar K.V"
    Cc: Michael Ellerman
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Peter Zijlstra