1. 04 6月, 2019 3 次提交
    • J
      arm64/fpsimd: Don't disable softirq when touching FPSIMD/SVE state · 6dcdefcd
      Julien Grall 提交于
      When the kernel is compiled with CONFIG_KERNEL_MODE_NEON, some part of
      the kernel may be able to use FPSIMD/SVE. This is for instance the case
      for crypto code.
      
      Any use of FPSIMD/SVE in the kernel are clearly marked by using the
      function kernel_neon_{begin, end}. Furthermore, this can only be used
      when may_use_simd() returns true.
      
      The current implementation of may_use_simd() allows softirq to use
      FPSIMD/SVE unless it is currently in use (i.e kernel_neon_busy is true).
      When in use, softirqs usually fall back to a software method.
      
      At the moment, as a softirq may use FPSIMD/SVE, softirqs are disabled
      when touching the FPSIMD/SVE context. This has the drawback to disable
      all softirqs even if they are not using FPSIMD/SVE.
      
      Since a softirq is supposed to check may_use_simd() anyway before
      attempting to use FPSIMD/SVE, there is limited reason to keep softirq
      disabled when touching the FPSIMD/SVE context. Instead, we can simply
      disable preemption and mark the FPSIMD/SVE context as in use by setting
      CPU's fpsimd_context_busy flag.
      
      Two new helpers {get, put}_cpu_fpsimd_context are introduced to mark
      the area using FPSIMD/SVE context and they are used to replace
      local_bh_{disable, enable}. The functions kernel_neon_{begin, end} are
      also re-implemented to use the new helpers.
      
      Additionally, double-underscored versions of the helpers are provided to
      called when preemption is already disabled. These are only relevant on
      paths where irqs are disabled anyway, so they are not needed for
      correctness in the current code. Let's use them anyway though: this
      marks critical sections clearly and will help to avoid mistakes during
      future maintenance.
      
      The change has been benchmarked on Linux 5.1-rc4 with defconfig.
      
      On Juno2:
          * hackbench 100 process 1000 (10 times)
          * .7% quicker
      
      On ThunderX 2:
          * hackbench 1000 process 1000 (20 times)
          * 3.4% quicker
      Reviewed-by: NDave Martin <dave.martin@arm.com>
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NJulien Grall <julien.grall@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      6dcdefcd
    • J
      arm64/fpsimd: Introduce fpsimd_save_and_flush_cpu_state() and use it · 54b8c7cb
      Julien Grall 提交于
      The only external user of fpsimd_save() and fpsimd_flush_cpu_state() is
      the KVM FPSIMD code.
      
      A following patch will introduce a mechanism to acquire owernship of the
      FPSIMD/SVE context for performing context management operations. Rather
      than having to export the new helpers to get/put the context, we can just
      introduce a new function to combine fpsimd_save() and
      fpsimd_flush_cpu_state().
      
      This has also the advantage to remove any external call of fpsimd_save()
      and fpsimd_flush_cpu_state(), so they can be turned static.
      
      Lastly, the new function can also be used in the PM notifier.
      Reviewed-by: NDave Martin <Dave.Martin@arm.com>
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NJulien Grall <julien.grall@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      54b8c7cb
    • J
      arm64/fpsimd: Remove the prototype for sve_flush_cpu_state() · 6fa9b41f
      Julien Grall 提交于
      The function sve_flush_cpu_state() has been removed in commit 21cdd7fd
      ("KVM: arm64: Remove eager host SVE state saving").
      
      So remove the associated prototype in asm/fpsimd.h.
      Reviewed-by: NDave Martin <Dave.Martin@arm.com>
      Acked-by: NMarc Zyngier <marc.zyngier@arm.com>
      Signed-off-by: NJulien Grall <julien.grall@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      6fa9b41f
  2. 03 6月, 2019 15 次提交
    • A
      arm64/mm: Move PTE_VALID from SW defined to HW page table entry definitions · 201d355c
      Anshuman Khandual 提交于
      PTE_VALID signifies that the last level page table entry is valid and it is
      MMU recognized while walking the page table. This is not a software defined
      PTE bit and should not be listed like one. Just move it to appropriate
      header file.
      Signed-off-by: NAnshuman Khandual <anshuman.khandual@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Steve Capper <steve.capper@arm.com>
      Cc: Suzuki Poulose <suzuki.poulose@arm.com>
      Cc: James Morse <james.morse@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      201d355c
    • A
      arm64/hugetlb: Use macros for contiguous huge page sizes · 441a6278
      Anshuman Khandual 提交于
      Replace all open encoded contiguous huge page size computations with
      available macro encodings CONT_PTE_SIZE and CONT_PMD_SIZE. There are other
      instances where these macros are used in the file and this change makes it
      consistently use the same mnemonic.
      Signed-off-by: NAnshuman Khandual <anshuman.khandual@arm.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Steve Capper <steve.capper@arm.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Signed-off-by: NCatalin Marinas <catalin.marinas@arm.com>
      441a6278
    • L
      Linux 5.2-rc3 · f2c7c76c
      Linus Torvalds 提交于
      f2c7c76c
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7bd1d5ed
      Linus Torvalds 提交于
      Pull x86 fixes from Ingo Molnar:
       "Two fixes: a quirk for KVM guests running on certain AMD CPUs, and a
        KASAN related build fix"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/CPU/AMD: Don't force the CPB cap when running under a hypervisor
        x86/boot: Provide KASAN compatible aliases for string routines
      7bd1d5ed
    • L
      Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6751b8d9
      Linus Torvalds 提交于
      Pull perf fixes from Ingo Molnar:
       "On the kernel side there's a bunch of ring-buffer ordering fixes for a
        reproducible bug, plus a PEBS constraints regression fix.
      
        Plus tooling fixes"
      
      * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        tools headers UAPI: Sync kvm.h headers with the kernel sources
        perf record: Fix s390 missing module symbol and warning for non-root users
        perf machine: Read also the end of the kernel
        perf test vmlinux-kallsyms: Ignore aliases to _etext when searching on kallsyms
        perf session: Add missing swap ops for namespace events
        perf namespace: Protect reading thread's namespace
        tools headers UAPI: Sync drm/drm.h with the kernel
        tools headers UAPI: Sync drm/i915_drm.h with the kernel
        tools headers UAPI: Sync linux/fs.h with the kernel
        tools headers UAPI: Sync linux/sched.h with the kernel
        tools arch x86: Sync asm/cpufeatures.h with the with the kernel
        tools include UAPI: Update copy of files related to new fspick, fsmount, fsconfig, fsopen, move_mount and open_tree syscalls
        perf arm64: Fix mksyscalltbl when system kernel headers are ahead of the kernel
        perf data: Fix 'strncat may truncate' build failure with recent gcc
        perf/ring-buffer: Use regular variables for nesting
        perf/ring-buffer: Always use {READ,WRITE}_ONCE() for rb->user_page data
        perf/ring_buffer: Add ordering to rb->nest increment
        perf/ring_buffer: Fix exposing a temporarily decreased data_head
        perf/x86/intel/ds: Fix EVENT vs. UEVENT PEBS constraints
      6751b8d9
    • L
      Merge branch 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · af042452
      Linus Torvalds 提交于
      Pull EFI fixes from Ingo Molnar:
       "Two EFI fixes: a quirk for weird systabs, plus add more robust error
        handling in the old 1:1 mapping code"
      
      * 'efi-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: Allow the number of EFI configuration tables entries to be zero
        efi/x86/Add missing error handling to old_memmap 1:1 mapping code
      af042452
    • L
      Merge branch 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4fb5741c
      Linus Torvalds 提交于
      Pull stacktrace fix from Ingo Molnar:
       "Fix a stack_trace_save_tsk_reliable() regression"
      
      * 'core-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        stacktrace: Unbreak stack_trace_save_tsk_reliable()
      4fb5741c
    • L
      Merge tag 'spdx-5.2-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · a68dc618
      Linus Torvalds 提交于
      Pull SPDX fixes from Greg KH:
       "Here are just two small patches, that fix up some found SPDX
        identifier issues.
      
        The first patch fixes an error in a previous SPDX fixup patch, that
        causes build errors when doing 'make clean' on the tree (the fact that
        almost no one noticed it reflects the fact that kernel developers
        don't like doing that option very often...)
      
        The second patch fixes up a number of places in the tree where people
        mistyped the string "SPDX-License-Identifier". Given that people can
        not even type their own name all the time without mistakes, this was
        bound to happen, and odds are, we will have to add some type of check
        for this to checkpatch.pl to catch this happening in the future.
      
        Both of these have passed testing by 0-day"
      
      * tag 'spdx-5.2-rc3-2' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
        treewide: fix typos of SPDX-License-Identifier
        crypto: ux500 - fix license comment syntax error
      a68dc618
    • L
      Merge tag 'powerpc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 460b48a0
      Linus Torvalds 提交于
      Pull powerpc fixes from Michael Ellerman:
       "A minor fix to our IMC PMU code to print a less confusing error
        message when the driver can't initialise properly.
      
        A fix for a bug where a user requesting an unsupported branch sampling
        filter can corrupt PMU state, preventing the PMU from counting
        properly.
      
        And finally a fix for a bug in our support for kexec_file_load(),
        which prevented loading a kernel and initramfs. Most versions of kexec
        don't yet use kexec_file_load().
      
        Thanks to: Anju T Sudhakar, Dave Young, Madhavan Srinivasan, Ravi
        Bangoria, Thiago Jung Bauermann"
      
      * tag 'powerpc-5.2-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/kexec: Fix loading of kernel + initramfs with kexec_file_load()
        powerpc/perf: Fix MMCRA corruption by bhrb_filter
        powerpc/powernv: Return for invalid IMC domain
      460b48a0
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · b44a1dd3
      Linus Torvalds 提交于
      Pull KVM fixes from Paolo Bonzini:
       "Fixes for PPC and s390"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: PPC: Book3S HV: Restore SPRG3 in kvmhv_p9_guest_entry()
        KVM: PPC: Book3S HV: Fix lockdep warning when entering guest on POWER9
        KVM: PPC: Book3S HV: XIVE: Fix page offset when clearing ESB pages
        KVM: PPC: Book3S HV: XIVE: Take the srcu read lock when accessing memslots
        KVM: PPC: Book3S HV: XIVE: Do not clear IRQ data of passthrough interrupts
        KVM: PPC: Book3S HV: XIVE: Introduce a new mutex for the XIVE device
        KVM: PPC: Book3S HV: XIVE: Fix the enforced limit on the vCPU identifier
        KVM: PPC: Book3S HV: XIVE: Do not test the EQ flag validity when resetting
        KVM: PPC: Book3S HV: XIVE: Clear file mapping when device is released
        KVM: PPC: Book3S HV: Don't take kvm->lock around kvm_for_each_vcpu
        KVM: PPC: Book3S: Use new mutex to synchronize access to rtas token list
        KVM: PPC: Book3S HV: Use new mutex to synchronize MMU setup
        KVM: PPC: Book3S HV: Avoid touching arch.mmu_ready in XIVE release functions
        KVM: s390: Do not report unusabled IDs via KVM_CAP_MAX_VCPU_ID
        kvm: fix compile on s390 part 2
      b44a1dd3
    • L
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 38baf0bb
      Linus Torvalds 提交于
      Pull i2c fixes from Wolfram Sang:
       "A memleak fix for the core, two driver bugfixes, as well as fixing
        missing file patterns to MAINTAINERS"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        MAINTAINERS: add I2C DT bindings to ARM platforms
        MAINTAINERS: add DT bindings to i2c drivers
        i2c: synquacer: fix synquacer_i2c_doxfer() return value
        i2c: mlxcpld: Fix wrong initialization order in probe
        i2c: dev: fix potential memory leak in i2cdev_ioctl_rdwr
      38baf0bb
    • L
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal · 378e853f
      Linus Torvalds 提交于
      Pull thermal SoC fix from Eduardo Valentin:
       "A single revert, detected to cause issues on the tsens driver"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/evalenti/linux-soc-thermal:
        Revert "drivers: thermal: tsens: Add new operation to check if a sensor is enabled"
      378e853f
    • L
      Merge tag 'led-fixes-for-5.2-rc3' of... · f58c356e
      Linus Torvalds 提交于
      Merge tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds
      
      Pull LED fix from Jacek Anaszewski:
       "Fix for a recent change in LED core, that didn't take into account the
        possibility of calling led_blink_setup() from atomic context"
      
      * tag 'led-fixes-for-5.2-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds:
        leds: avoid flush_work in atomic context
      f58c356e
    • L
      Merge tag 'for-linus-20190601' of git://git.kernel.dk/linux-block · 9221dced
      Linus Torvalds 提交于
      Pull block fixes from Jens Axboe:
      
       - A set of patches fixing code comments / kerneldoc (Bart)
      
       - Don't allow loop file change for exclusive open (Jan)
      
       - Fix revalidate of hidden genhd (Jan)
      
       - Init queue failure memory free fix (Jes)
      
       - Improve rq limits failure print (John)
      
       - Fixup for queue removal/addition (Ming)
      
       - Missed error progagation for io_uring buffer registration (Pavel)
      
      * tag 'for-linus-20190601' of git://git.kernel.dk/linux-block:
        block: print offending values when cloned rq limits are exceeded
        blk-mq: Document the blk_mq_hw_queue_to_node() arguments
        blk-mq: Fix spelling in a source code comment
        block: Fix bsg_setup_queue() kernel-doc header
        block: Fix rq_qos_wait() kernel-doc header
        block: Fix blk_mq_*_map_queues() kernel-doc headers
        block: Fix throtl_pending_timer_fn() kernel-doc header
        block: Convert blk_invalidate_devt() header into a non-kernel-doc header
        block/partitions/ldm: Convert a kernel-doc header into a non-kernel-doc header
        blk-mq: Fix memory leak in error handling
        block: don't protect generic_make_request_checks with blk_queue_enter
        block: move blk_exit_queue into __blk_release_queue
        block: Don't revalidate bdev of hidden gendisk
        loop: Don't change loop device under exclusive opener
        io_uring: Fix __io_uring_register() false success
      9221dced
    • L
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 1975b337
      Linus Torvalds 提交于
      Pull SCSI fixes from James Bottomley:
       "Six minor fixes to device drivers and one to the multipath alua
        handler.
      
        The most extensive fix is the zfcp port remove prevention one, but
        it's impact is only s390"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: libsas: delete sas port if expander discover failed
        scsi: libsas: only clear phy->in_shutdown after shutdown event done
        scsi: scsi_dh_alua: Fix possible null-ptr-deref
        scsi: smartpqi: properly set both the DMA mask and the coherent DMA mask
        scsi: zfcp: fix to prevent port_remove with pure auto scan LUNs (only sdevs)
        scsi: zfcp: fix missing zfcp_port reference put on -EBUSY from port_remove
        scsi: libcxgbi: add a check for NULL pointer in cxgbi_check_route()
      1975b337
  3. 02 6月, 2019 22 次提交