1. 25 Jun, 2019 2 commits
  2. 22 Jun, 2019 1 commit
  3. 20 Jun, 2019 1 commit
    • Reinette Chatre's avatar
      x86/resctrl: Prevent possible overrun during bitmap operations · 32f010de
      Reinette Chatre authored
      While the DOC at the beginning of lib/bitmap.c explicitly states that
      "The number of valid bits in a given bitmap does _not_ need to be an
      exact multiple of BITS_PER_LONG.", some of the bitmap operations do
      indeed access BITS_PER_LONG portions of the provided bitmap no matter
      the size of the provided bitmap.
      
      For example, if find_first_bit() is provided with an 8 bit bitmap the
      operation will access BITS_PER_LONG bits from the provided bitmap. While
      the operation ensures that these extra bits do not affect the result,
      the memory is still accessed.
      
      The capacity bitmasks (CBMs) are typically stored in u32 since they
      can never exceed 32 bits. A few instances exist where a bitmap_*
      operation is performed on a CBM by simply pointing the bitmap operation
      to the stored u32 value.
      
      The consequence of this pattern is that some bitmap_* operations will
      access out-of-bounds memory when interacting with the provided CBM.
      
      This same issue has previously been addressed with commit 49e00eee
      ("x86/intel_rdt: Fix out-of-bounds memory access in CBM tests")
      but at that time not all instances of the issue were fixed.
      
      Fix this by using an unsigned long to store the capacity bitmask data
      that is passed to bitmap functions.
      
      Fixes: e6519011 ("x86/intel_rdt: Introduce "bit_usage" to display cache allocations details")
      Fixes: f4e80d67 ("x86/intel_rdt: Resctrl files reflect pseudo-locked information")
      Fixes: 95f0b77e ("x86/intel_rdt: Initialize new resource group with sane defaults")
      Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: stable <stable@vger.kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Tony Luck <tony.luck@intel.com>
      Cc: x86-ml <x86@kernel.org>
      Link: https://lkml.kernel.org/r/58c9b6081fd9bf599af0dfc01a6fdd335768efef.1560975645.git.reinette.chatre@intel.com
      32f010de
  4. 19 Jun, 2019 1 commit
  5. 15 Jun, 2019 1 commit
    • Borislav Petkov's avatar
      x86/microcode, cpuhotplug: Add a microcode loader CPU hotplug callback · 78f4e932
      Borislav Petkov authored
      Adric Blake reported the following warning during suspend-resume:
      
        Enabling non-boot CPUs ...
        x86: Booting SMP configuration:
        smpboot: Booting Node 0 Processor 1 APIC 0x2
        unchecked MSR access error: WRMSR to 0x10f (tried to write 0x0000000000000000) \
         at rIP: 0xffffffff8d267924 (native_write_msr+0x4/0x20)
        Call Trace:
         intel_set_tfa
         intel_pmu_cpu_starting
         ? x86_pmu_dead_cpu
         x86_pmu_starting_cpu
         cpuhp_invoke_callback
         ? _raw_spin_lock_irqsave
         notify_cpu_starting
         start_secondary
         secondary_startup_64
        microcode: sig=0x806ea, pf=0x80, revision=0x96
        microcode: updated to revision 0xb4, date = 2019-04-01
        CPU1 is up
      
      The MSR in question is MSR_TFA_RTM_FORCE_ABORT and that MSR is emulated
      by microcode. The log above shows that the microcode loader callback
      happens after the PMU restoration, leading to the conjecture that
      because the microcode hasn't been updated yet, that MSR is not present
      yet, leading to the #GP.
      
      Add a microcode loader-specific hotplug vector which comes before
      the PERF vectors and thus executes earlier and makes sure the MSR is
      present.
      
      Fixes: 400816f6 ("perf/x86/intel: Implement support for TSX Force Abort")
      Reported-by: default avatarAdric Blake <promarbler14@gmail.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: <stable@vger.kernel.org>
      Cc: x86@kernel.org
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=203637
      78f4e932
  6. 14 Jun, 2019 1 commit
    • Andrey Ryabinin's avatar
      x86/kasan: Fix boot with 5-level paging and KASAN · f3176ec9
      Andrey Ryabinin authored
      Since commit d52888aa ("x86/mm: Move LDT remap out of KASLR region on
      5-level paging") kernel doesn't boot with KASAN on 5-level paging machines.
      The bug is actually in early_p4d_offset() and introduced by commit
      12a8cc7f ("x86/kasan: Use the same shadow offset for 4- and 5-level paging")
      
      early_p4d_offset() tries to convert pgd_val(*pgd) value to a physical
      address. This doesn't make sense because pgd_val() already contains the
      physical address.
      
      It did work prior to commit d52888aa because the result of
      "__pa_nodebug(pgd_val(*pgd)) & PTE_PFN_MASK" was the same as "pgd_val(*pgd)
      & PTE_PFN_MASK". __pa_nodebug() just set some high bits which were masked
      out by applying PTE_PFN_MASK.
      
      After the change of the PAGE_OFFSET offset in commit d52888aa
      __pa_nodebug(pgd_val(*pgd)) started to return a value with more high bits
      set and PTE_PFN_MASK wasn't enough to mask out all of them. So it returns a
      wrong not even canonical address and crashes on the attempt to dereference
      it.
      
      Switch back to pgd_val() & PTE_PFN_MASK to cure the issue.
      
      Fixes: 12a8cc7f ("x86/kasan: Use the same shadow offset for 4- and 5-level paging")
      Reported-by: default avatarKirill A. Shutemov <kirill@shutemov.name>
      Signed-off-by: default avatarAndrey Ryabinin <aryabinin@virtuozzo.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Cc: kasan-dev@googlegroups.com
      Cc: stable@vger.kernel.org
      Cc: <stable@vger.kernel.org>
      Link: https://lkml.kernel.org/r/20190614143149.2227-1-aryabinin@virtuozzo.com
      f3176ec9
  7. 13 Jun, 2019 1 commit
  8. 12 Jun, 2019 3 commits
    • Matt Mullins's avatar
      x86/kgdb: Return 0 from kgdb_arch_set_breakpoint() · 71ab8323
      Matt Mullins authored
      err must be nonzero in order to reach text_poke(), which caused kgdb to
      fail to set breakpoints:
      
        (gdb) break __x64_sys_sync
        Breakpoint 1 at 0xffffffff81288910: file ../fs/sync.c, line 124.
        (gdb) c
        Continuing.
        Warning:
        Cannot insert breakpoint 1.
        Cannot access memory at address 0xffffffff81288910
      
        Command aborted.
      
      Fixes: 86a22057 ("x86/kgdb: Avoid redundant comparison of patched code")
      Signed-off-by: default avatarMatt Mullins <mmullins@fb.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Reviewed-by: default avatarNadav Amit <namit@vmware.com>
      Cc: Andy Lutomirski <luto@amacapital.net>
      Cc: Christophe Leroy <christophe.leroy@c-s.fr>
      Cc: Daniel Thompson <daniel.thompson@linaro.org>
      Cc: Douglas Anderson <dianders@chromium.org>
      Cc: "Gustavo A. R. Silva" <gustavo@embeddedor.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
      Cc: Rick Edgecombe <rick.p.edgecombe@intel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: x86-ml <x86@kernel.org>
      Link: https://lkml.kernel.org/r/20190531194755.6320-1-mmullins@fb.com
      71ab8323
    • Prarit Bhargava's avatar
      x86/resctrl: Prevent NULL pointer dereference when local MBM is disabled · c7563e62
      Prarit Bhargava authored
      Booting with kernel parameter "rdt=cmt,mbmtotal,memlocal,l3cat,mba" and
      executing "mount -t resctrl resctrl -o mba_MBps /sys/fs/resctrl" results in
      a NULL pointer dereference on systems which do not have local MBM support
      enabled..
      
      BUG: kernel NULL pointer dereference, address: 0000000000000020
      PGD 0 P4D 0
      Oops: 0000 [#1] SMP PTI
      CPU: 0 PID: 722 Comm: kworker/0:3 Not tainted 5.2.0-0.rc3.git0.1.el7_UNSUPPORTED.x86_64 #2
      Workqueue: events mbm_handle_overflow
      RIP: 0010:mbm_handle_overflow+0x150/0x2b0
      
      Only enter the bandwith update loop if the system has local MBM enabled.
      
      Fixes: de73f38f ("x86/intel_rdt/mba_sc: Feedback loop to dynamically update mem bandwidth")
      Signed-off-by: default avatarPrarit Bhargava <prarit@redhat.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Reinette Chatre <reinette.chatre@intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: stable@vger.kernel.org
      Link: https://lkml.kernel.org/r/20190610171544.13474-1-prarit@redhat.com
      c7563e62
    • James Morse's avatar
      x86/resctrl: Don't stop walking closids when a locksetup group is found · 87d3aa28
      James Morse authored
      When a new control group is created __init_one_rdt_domain() walks all
      the other closids to calculate the sets of used and unused bits.
      
      If it discovers a pseudo_locksetup group, it breaks out of the loop.  This
      means any later closid doesn't get its used bits added to used_b.  These
      bits will then get set in unused_b, and added to the new control group's
      configuration, even if they were marked as exclusive for a later closid.
      
      When encountering a pseudo_locksetup group, we should continue. This is
      because "a resource group enters 'pseudo-locked' mode after the schemata is
      written while the resource group is in 'pseudo-locksetup' mode." When we
      find a pseudo_locksetup group, its configuration is expected to be
      overwritten, we can skip it.
      
      Fixes: dfe9674b ("x86/intel_rdt: Enable entering of pseudo-locksetup mode")
      Signed-off-by: default avatarJames Morse <james.morse@arm.com>
      Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Acked-by: default avatarReinette Chatre <reinette.chatre@intel.com>
      Cc: Fenghua Yu <fenghua.yu@intel.com>
      Cc: Borislav Petkov <bp@alien8.de>
      Cc: H Peter Avin <hpa@zytor.com>
      Cc: <stable@vger.kernel.org>
      Link: https://lkml.kernel.org/r/20190603172531.178830-1-james.morse@arm.com
      87d3aa28
  9. 10 Jun, 2019 1 commit
  10. 09 Jun, 2019 1 commit
  11. 08 Jun, 2019 13 commits
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-5.2-rc4' of git://github.com/ceph/ceph-client · 2759e05c
      Linus Torvalds authored
      Pull ceph fixes from Ilya Dryomov:
       "A change to call iput() asynchronously to avoid a possible deadlock
        when iput_final() needs to wait for in-flight I/O (e.g. readahead) and
        a fixup for a cleanup that went into -rc1"
      
      * tag 'ceph-for-5.2-rc4' of git://github.com/ceph/ceph-client:
        ceph: fix error handling in ceph_get_caps()
        ceph: avoid iput_final() while holding mutex or in dispatch thread
        ceph: single workqueue for inode related works
      2759e05c
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.2b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 8e61f6f7
      Linus Torvalds authored
      Pull xen fix from Juergen Gross:
       "Just one fix for the Xen block frontend driver avoiding allocations
        with order > 0"
      
      * tag 'for-linus-5.2b-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen-blkfront: switch kcalloc to kvcalloc for large array allocation
      8e61f6f7
    • Linus Torvalds's avatar
      Merge tag 's390-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 3d4645bf
      Linus Torvalds authored
      Pull s390 fixes from Heiko Carstens:
      
       - fix stack unwinder: the stack unwinder rework has on off-by-one bug
         which prevents following stack backchains over more than one context
         (e.g. irq -> process).
      
       - fix address space detection in exception handler: if user space
         switches to access register mode, which is not supported anymore, the
         exception handler may resolve to the wrong address space.
      
      * tag 's390-5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/unwind: correct stack switching during unwind
        s390/mm: fix address space detection in exception handling
      3d4645bf
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_5.2_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · d0cc617a
      Linus Torvalds authored
      Pull MIPS fixes from Paul Burton:
      
       - Declare ginvt() __always_inline due to its use of an argument as an
         inline asm immediate.
      
       - A VDSO build fix following Kbuild changes made this cycle.
      
       - A fix for boot failures on txx9 systems following memory
         initialization changes made this cycle.
      
       - Bounds check virt_addr_valid() to prevent it spuriously indicating
         that bogus addresses are valid, in turn fixing hardened usercopy
         failures that have been present since v4.12.
      
       - Build uImage.gz for pistachio systems by default, since this is the
         image we need in order to actually boot on a board.
      
       - Remove an unused variable in our uprobes code.
      
      * tag 'mips_fixes_5.2_1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: uprobes: remove set but not used variable 'epc'
        MIPS: pistachio: Build uImage.gz by default
        MIPS: Make virt_addr_valid() return bool
        MIPS: Bounds check virt_addr_valid
        MIPS: TXx9: Fix boot crash in free_initmem()
        MIPS: remove a space after -I to cope with header search paths for VDSO
        MIPS: mark ginvt() as __always_inline
      d0cc617a
    • Linus Torvalds's avatar
      Merge tag 'spdx-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core · 9331b674
      Linus Torvalds authored
      Pull yet more SPDX updates from Greg KH:
       "Another round of SPDX header file fixes for 5.2-rc4
      
        These are all more "GPL-2.0-or-later" or "GPL-2.0-only" tags being
        added, based on the text in the files. We are slowly chipping away at
        the 700+ different ways people tried to write the license text. All of
        these were reviewed on the spdx mailing list by a number of different
        people.
      
        We now have over 60% of the kernel files covered with SPDX tags:
      	$ ./scripts/spdxcheck.py -v 2>&1 | grep Files
      	Files checked:            64533
      	Files with SPDX:          40392
      	Files with errors:            0
      
        I think the majority of the "easy" fixups are now done, it's now the
        start of the longer-tail of crazy variants to wade through"
      
      * tag 'spdx-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (159 commits)
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 450
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 449
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 448
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 446
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 445
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 444
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 443
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 442
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 440
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 438
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 437
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 436
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 435
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 434
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 433
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 432
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 431
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 430
        treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 429
        ...
      9331b674
    • Linus Torvalds's avatar
      Merge tag 'char-misc-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc · 1ce2c851
      Linus Torvalds authored
      Pull char/misc driver fixes from Greg KH:
       "Here are some small char and misc driver fixes for 5.2-rc4 to resolve
        a number of reported issues.
      
        The most "notable" one here is the kernel headers in proc^Wsysfs
        fixes. Those changes move the header file info into sysfs and fixes
        the build issues that you reported.
      
        Other than that, a bunch of small habanalabs driver fixes, some fpga
        driver fixes, and a few other tiny driver fixes.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'char-misc-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
        habanalabs: Read upper bits of trace buffer from RWPHI
        habanalabs: Fix virtual address access via debugfs for 2MB pages
        fpga: zynqmp-fpga: Correctly handle error pointer
        habanalabs: fix bug in checking huge page optimization
        habanalabs: Avoid using a non-initialized MMU cache mutex
        habanalabs: fix debugfs code
        uapi/habanalabs: add opcode for enable/disable device debug mode
        habanalabs: halt debug engines on user process close
        test_firmware: Use correct snprintf() limit
        genwqe: Prevent an integer overflow in the ioctl
        parport: Fix mem leak in parport_register_dev_model
        fpga: dfl: expand minor range when registering chrdev region
        fpga: dfl: Add lockdep classes for pdata->lock
        fpga: dfl: afu: Pass the correct device to dma_mapping_error()
        fpga: stratix10-soc: fix use-after-free on s10_init()
        w1: ds2408: Fix typo after 49695ac4 (reset on output_write retry with readback)
        kheaders: Do not regenerate archive if config is not changed
        kheaders: Move from proc to sysfs
        lkdtm/bugs: Adjust recursion test to avoid elision
        lkdtm/usercopy: Moves the KERNEL_DS test to non-canonical
      1ce2c851
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 902b2edf
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "I2C has a driver bugfix and a MAINTAINERS fix"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        MAINTAINERS: Karthikeyan Ramasubramanian is MIA
        i2c: xiic: Add max_read_len quirk
      902b2edf
    • Linus Torvalds's avatar
      Merge tag 'dmaengine-fix-5.2-rc4' of git://git.infradead.org/users/vkoul/slave-dma · 66b59f2b
      Linus Torvalds authored
      Pull dmaengine fixes from Vinod Koul:
      
       - jz4780 transfer fix for acking descriptors early
      
       - fsl-qdma: clean registers on error
      
       - dw-axi-dmac: null pointer dereference fix
      
       - mediatek-cqdma: fix sleeping in atomic context
      
       - tegra210-adma: fix bunch os issues like crashing in driver probe,
         channel FIFO configuration etc.
      
       - sprd: Fixes for possible crash on descriptor status, block length
         overflow. For 2-stage transfer fix incorrect start, configuration and
         interrupt handling.
      
      * tag 'dmaengine-fix-5.2-rc4' of git://git.infradead.org/users/vkoul/slave-dma:
        dmaengine: sprd: Add interrupt support for 2-stage transfer
        dmaengine: sprd: Fix the right place to configure 2-stage transfer
        dmaengine: sprd: Fix block length overflow
        dmaengine: sprd: Fix the incorrect start for 2-stage destination channels
        dmaengine: sprd: Add validation of current descriptor in irq handler
        dmaengine: sprd: Fix the possible crash when getting descriptor status
        dmaengine: tegra210-adma: Fix spelling
        dmaengine: tegra210-adma: Fix channel FIFO configuration
        dmaengine: tegra210-adma: Fix crash during probe
        dmaengine: mediatek-cqdma: sleeping in atomic context
        dmaengine: dw-axi-dmac: fix null dereference when pointer first is null
        dmaengine: fsl-qdma: Add improvement
        dmaengine: jz4780: Fix transfers being ACKed too soon
      66b59f2b
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190608' of git://git.kernel.dk/linux-block · 8d72e5bd
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
      
       - Allow symlink from the bfq.weight cgroup parameter to the general
         weight (Angelo)
      
       - Damien is new skd maintainer (Bart)
      
       - NVMe pull request from Sagi, with a few small fixes.
      
       - Ensure we set DMA segment size properly, dma-debug is now tripping on
         these (Christoph)
      
       - Remove useless debugfs_create() return check (Greg)
      
       - Remove redundant unlikely() check on IS_ERR() (Kefeng)
      
       - Fixup request freeing on exit (Ming)
      
      * tag 'for-linus-20190608' of git://git.kernel.dk/linux-block:
        block, bfq: add weight symlink to the bfq.weight cgroup parameter
        cgroup: let a symlink too be created with a cftype file
        block: free sched's request pool in blk_cleanup_queue
        nvme-rdma: use dynamic dma mapping per command
        nvme: Fix u32 overflow in the number of namespace list calculation
        mmc: also set max_segment_size in the device
        mtip32xx: also set max_segment_size in the device
        rsxx: don't call dma_set_max_seg_size
        nvme-pci: don't limit DMA segement size
        block: Drop unlikely before IS_ERR(_OR_NULL)
        block: aoe: no need to check return value of debugfs_create functions
        nvmet: fix data_len to 0 for bdev-backed write_zeroes
        MAINTAINERS: Hand over skd maintainership
        nvme-tcp: fix queue mapping when queue count is limited
        nvme-rdma: fix queue mapping when queue count is limited
      8d72e5bd
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 1b02caa3
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two bug fixes, both for fairly serious problems; the UFS one looks
        like it could be used to exfiltrate data from the kernel, although
        probably only a privileged user has access to the command management
        interface and the missing unlock in smartpqi is long standing and
        probably a little used error path"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: smartpqi: unlock on error in pqi_submit_raid_request_synchronous()
        scsi: ufs: Check that space was properly alloced in copy_query_response
      1b02caa3
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-5.2-rc4-2' of... · 0ad43e29
      Linus Torvalds authored
      Merge tag 'linux-kselftest-5.2-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest fix from Shuah Khan:
       "This consists of a single fix for a vm test build failure regression
        when it is built by itself"
      
      * tag 'linux-kselftest-5.2-rc4-2' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        selftests: vm: Fix test build failure when built by itself
      0ad43e29
    • Sebastian Andrzej Siewior's avatar
      x86/fpu: Update kernel's FPU state before using for the fsave header · aab8445c
      Sebastian Andrzej Siewior authored
      In commit
      
        39388e80 ("x86/fpu: Don't save fxregs for ia32 frames in copy_fpstate_to_sigframe()")
      
      I removed the statement
      
      |       if (ia32_fxstate)
      |               copy_fxregs_to_kernel(fpu);
      
      and argued that it was wrongly merged because the content was already
      saved in kernel's state.
      
      This was wrong: It is required to write it back because it is only
      saved on the user-stack and save_fsave_header() reads it from task's
      FPU-state. I missed that part…
      
      Save x87 FPU state unless thread's FPU registers are already up to date.
      
      Fixes: 39388e80 ("x86/fpu: Don't save fxregs for ia32 frames in copy_fpstate_to_sigframe()")
      Reported-by: default avatarEric Biggers <ebiggers@kernel.org>
      Signed-off-by: default avatarSebastian Andrzej Siewior <bigeasy@linutronix.de>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Tested-by: default avatarEric Biggers <ebiggers@kernel.org>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Dave Hansen <dave.hansen@intel.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Hugh Dickins <hughd@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jann Horn <jannh@google.com>
      Cc: "Jason A. Donenfeld" <Jason@zx2c4.com>
      Cc: kvm ML <kvm@vger.kernel.org>
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Radim Krčmář <rkrcmar@redhat.com>
      Cc: Rik van Riel <riel@surriel.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: x86-ml <x86@kernel.org>
      Link: https://lkml.kernel.org/r/20190607142915.y52mfmgk5lvhll7n@linutronix.de
      aab8445c
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2019-06-07-1' of git://anongit.freedesktop.org/drm/drm · 79c3ba32
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A small bit more lively this week but not majorly so. I'm away in
        Japan next week for family holiday, so I'll be pretty disconnected,
        I've asked Daniel to do fixes for the week while I'm out.
      
        The nouveau firmware changes are a bit large, but they address a big
        problem where a whole set of boards don't load with the driver, and
        the new firmware fixes that, so I think it's worth trying to land it
        now.
      
        core:
         - Allow fb changes in async commits (drivers as well)
      
        udmabuf:
         - Unmap scatterlist when unmapping udmabuf
      
        nouveau:
         - firmware loading fixes for secboot firmware on new GPU revision.
      
        komeda:
         - oops, dma mapping and warning fixes
      
        arm-hdlcd:
         - clock fixes
         - mode validation fix
      
        i915:
         - Add a missing Icelake workaround
         - GVT - DMA map fault fix and enforcement fixes
      
        amdgpu:
         - DCE resume fix
         - New raven variation updates"
      
      * tag 'drm-fixes-2019-06-07-1' of git://anongit.freedesktop.org/drm/drm: (33 commits)
        drm/nouveau/secboot/gp10[2467]: support newer FW to fix SEC2 failures on some boards
        drm/nouveau/secboot: enable loading of versioned LS PMU/SEC2 ACR msgqueue FW
        drm/nouveau/secboot: split out FW version-specific LS function pointers
        drm/nouveau/secboot: pass max supported FW version to LS load funcs
        drm/nouveau/core: support versioned firmware loading
        drm/nouveau/core: pass subdev into nvkm_firmware_get, rather than device
        drm/komeda: Potential error pointer dereference
        drm/komeda: remove set but not used variable 'kcrtc'
        drm/amd/amdgpu: add RLC firmware to support raven1 refresh
        drm/amd/powerplay: add set_power_profile_mode for raven1_refresh
        drm/amdgpu: fix ring test failure issue during s3 in vce 3.0 (V2)
        udmabuf: actually unmap the scatterlist
        drm/arm/hdlcd: Allow a bit of clock tolerance
        drm/arm/hdlcd: Actually validate CRTC modes
        drm/arm/mali-dp: Add a loop around the second set CVAL and try 5 times
        drm/komeda: fixing of DMA mapping sg segment warning
        drm: don't block fb changes for async plane updates
        drm/vc4: fix fb references in async update
        drm/msm: fix fb references in async update
        drm/amd: fix fb references in async update
        ...
      79c3ba32
  12. 07 Jun, 2019 14 commits
    • Wolfram Sang's avatar
      MAINTAINERS: Karthikeyan Ramasubramanian is MIA · 8f77293c
      Wolfram Sang authored
      A mail just bounced back with "user unknown":
      
      550 5.1.1 <kramasub@codeaurora.org> User doesn't exist
      
      I also couldn't find a more recent address in git history. So, remove
      this stale entry.
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      8f77293c
    • Robert Hancock's avatar
      i2c: xiic: Add max_read_len quirk · 49b80958
      Robert Hancock authored
      This driver does not support reading more than 255 bytes at once because
      the register for storing the number of bytes to read is only 8 bits. Add
      a max_read_len quirk to enforce this.
      
      This was found when using this driver with the SFP driver, which was
      previously reading all 256 bytes in the SFP EEPROM in one transaction.
      This caused a bunch of hard-to-debug errors in the xiic driver since the
      driver/logic was treating the number of bytes to read as zero.
      Rejecting transactions that aren't supported at least allows the problem
      to be diagnosed more easily.
      Signed-off-by: default avatarRobert Hancock <hancock@sedsystems.ca>
      Reviewed-by: default avatarMichal Simek <michal.simek@xilinx.com>
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      Cc: stable@kernel.org
      49b80958
    • Baoquan He's avatar
      x86/mm/KASLR: Compute the size of the vmemmap section properly · 00e5a2bb
      Baoquan He authored
      The size of the vmemmap section is hardcoded to 1 TB to support the
      maximum amount of system RAM in 4-level paging mode - 64 TB.
      
      However, 1 TB is not enough for vmemmap in 5-level paging mode. Assuming
      the size of struct page is 64 Bytes, to support 4 PB system RAM in 5-level,
      64 TB of vmemmap area is needed:
      
        4 * 1000^5 PB / 4096 bytes page size * 64 bytes per page struct / 1000^4 TB = 62.5 TB.
      
      This hardcoding may cause vmemmap to corrupt the following
      cpu_entry_area section, if KASLR puts vmemmap very close to it and the
      actual vmemmap size is bigger than 1 TB.
      
      So calculate the actual size of the vmemmap region needed and then align
      it up to 1 TB boundary.
      
      In 4-level paging mode it is always 1 TB. In 5-level it's adjusted on
      demand. The current code reserves 0.5 PB for vmemmap on 5-level. With
      this change, the space can be saved and thus used to increase entropy
      for the randomization.
      
       [ bp: Spell out how the 64 TB needed for vmemmap is computed and massage commit
         message. ]
      
      Fixes: eedb92ab ("x86/mm: Make virtual memory layout dynamic for CONFIG_X86_5LEVEL=y")
      Signed-off-by: default avatarBaoquan He <bhe@redhat.com>
      Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
      Reviewed-by: default avatarKees Cook <keescook@chromium.org>
      Acked-by: default avatarKirill A. Shutemov <kirill@linux.intel.com>
      Cc: Andy Lutomirski <luto@kernel.org>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: "H. Peter Anvin" <hpa@zytor.com>
      Cc: Ingo Molnar <mingo@kernel.org>
      Cc: kirill.shutemov@linux.intel.com
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: stable <stable@vger.kernel.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: x86-ml <x86@kernel.org>
      Link: https://lkml.kernel.org/r/20190523025744.3756-1-bhe@redhat.com
      00e5a2bb
    • Linus Torvalds's avatar
      Merge tag 'hwmon-for-v5.2-rc4' of... · d4425649
      Linus Torvalds authored
      Merge tag 'hwmon-for-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging
      
      Pull hwmon fixes from Guenter Roeck:
      
       - Fix a couple of inconsistencies and locking problems in pmbus driver
      
       - Register with thermal subsystem only on systems supporting devicetree
      
      * tag 'hwmon-for-v5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
        hwmon: (pmbus/core) Treat parameters as paged if on multiple pages
        hwmon: (pmbus/core) mutex_lock write in pmbus_set_samples
        hwmon: (core) add thermal sensors only if dev->of_node is present
      d4425649
    • Jan Glauber's avatar
      lockref: Limit number of cmpxchg loop retries · 893a7d32
      Jan Glauber authored
      The lockref cmpxchg loop is unbound as long as the spinlock is not
      taken. Depending on the hardware implementation of compare-and-swap
      a high number of loop retries might happen.
      
      Add an upper bound to the loop to force the fallback to spinlocks
      after some time. A retry value of 100 should not impact any hardware
      that does not have this issue.
      
      With the retry limit the performance of an open-close testcase
      improved between 60-70% on ThunderX2.
      Suggested-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      Signed-off-by: default avatarJan Glauber <jglauber@marvell.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      893a7d32
    • Andrey Konovalov's avatar
      uaccess: add noop untagged_addr definition · d9344522
      Andrey Konovalov authored
      Architectures that support memory tagging have a need to perform untagging
      (stripping the tag) in various parts of the kernel. This patch adds an
      untagged_addr() macro, which is defined as noop for architectures that do
      not support memory tagging. The oncoming patch series will define it at
      least for sparc64 and arm64.
      Acked-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Reviewed-by: default avatarKhalid Aziz <khalid.aziz@oracle.com>
      Signed-off-by: default avatarAndrey Konovalov <andreyknvl@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      d9344522
    • Linus Torvalds's avatar
      Merge tag 'xtensa-20190607' of git://github.com/jcmvbkbc/linux-xtensa · d18c7e9d
      Linus Torvalds authored
      Pull xtensa fix from Max Filippov:
       "Fix a section mismatch between memblock_reserve and mem_reserve.
      
        This fixes tinyconfig xtensa builds"
      
      * tag 'xtensa-20190607' of git://github.com/jcmvbkbc/linux-xtensa:
        xtensa: Fix section mismatch between memblock_reserve and mem_reserve
      d18c7e9d
    • Jens Axboe's avatar
      Merge branch 'nvme-5.2-rc-next' of git://git.infradead.org/nvme into for-linus · 6c70f899
      Jens Axboe authored
      Pull NVMe fixes from Sagi.
      
      * 'nvme-5.2-rc-next' of git://git.infradead.org/nvme:
        nvme-rdma: use dynamic dma mapping per command
        nvme: Fix u32 overflow in the number of namespace list calculation
        nvmet: fix data_len to 0 for bdev-backed write_zeroes
        nvme-tcp: fix queue mapping when queue count is limited
        nvme-rdma: fix queue mapping when queue count is limited
      6c70f899
    • Linus Torvalds's avatar
      Merge tag 'kbuild-fixes-v5.2-2' of... · 33de0d1c
      Linus Torvalds authored
      Merge tag 'kbuild-fixes-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull more Kbuild fixes from Masahiro Yamada:
      
       - fix kselftest-merge to find config fragments in deeper directories
      
       - fix kconfig unit test, which was broken by SPDX tag addition
      
       - add + prefix to buildtar to suppress jobserver unavailable warning
      
       - fix checkstack.pl to recognize arch=arm64
      
       - suppress noisy warning from cc-cross-prefix
      
      * tag 'kbuild-fixes-v5.2-2' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: use more portable 'command -v' for cc-cross-prefix
        scripts/checkstack.pl: Fix arm64 wrong or unknown architecture
        kbuild: tar-pkg: enable communication with jobserver
        kconfig: tests: fix recursive inclusion unit test
        kbuild: teach kselftest-merge to find nested config files
      33de0d1c
    • Linus Torvalds's avatar
      Merge tag 'mmc-v5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 91f152e7
      Linus Torvalds authored
      Pull MMC fixes from Ulf Hansson:
       "Here's a couple of MMC and MEMSTICK fixes:
      
        MMC host:
         - sdhci: Fix SDIO IRQ thread deadlock
         - sdhci-tegra: Fix a warning message
         - sdhci_am654: Fix SLOTTYPE write
         - meson-gx: Fix IRQ ack
         - tmio: Fix SCC error handling to avoid false positive CRC error
      
        MEMSTICK core:
         - mspro_block: Fix returning a correct error code"
      
      * tag 'mmc-v5.2-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci_am654: Fix SLOTTYPE write
        mmc: sdhci: Fix SDIO IRQ thread deadlock
        mmc: meson-gx: fix irq ack
        mmc: tmio: fix SCC error handling to avoid false positive CRC error
        mmc: tegra: Fix a warning message
        memstick: mspro_block: Fix an error code in mspro_block_issue_req()
      91f152e7
    • Linus Torvalds's avatar
      Merge tag 'pm-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a373ec23
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix a crash during resume from hibernation introduced during the
        4.19 cycle, cause the new Performance and Energy Bias Hint (EPB) code
        to be built only if CONFIG_PM is set and add a few missing kerneldoc
        comments.
      
        Specifics:
      
         - Fix a crash that occurs when a kernel with 'nosmt' in the command
           line is used to resume the system from hibernation (as the
           "restore" kernel), because memory mapping differences between the
           restore and image kernels cause SMT siblings to be woken up from
           idle states and subsequently they try to fetch instructions from
           incorrect memory locations (Jiri Kosina).
      
         - Cause the new Performance and Energy Bias Hint (EPB) code to be
           built only if CONFIG_PM is set, because that code is not really
           necessary otherwise (Rafael Wysocki).
      
         - Add kerneldoc comments to documents some helper functions related
           to system-wide suspend to avoid possible confusion regarding their
           purpose (Rafael Wysocki)"
      
      * tag 'pm-5.2-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        x86/power: Fix 'nosmt' vs hibernation triple fault during resume
        PM: sleep: Add kerneldoc comments to some functions
        x86: intel_epb: Do not build when CONFIG_PM is unset
      a373ec23
    • Jann Horn's avatar
      x86/insn-eval: Fix use-after-free access to LDT entry · de9f8696
      Jann Horn authored
      get_desc() computes a pointer into the LDT while holding a lock that
      protects the LDT from being freed, but then drops the lock and returns the
      (now potentially dangling) pointer to its caller.
      
      Fix it by giving the caller a copy of the LDT entry instead.
      
      Fixes: 670f928b ("x86/insn-eval: Add utility function to get segment descriptor")
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarJann Horn <jannh@google.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      de9f8696
    • Linus Torvalds's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net · 1e1d9263
      Linus Torvalds authored
      Pull networking fixes from David Miller:
      
       1) Free AF_PACKET po->rollover properly, from Willem de Bruijn.
      
       2) Read SFP eeprom in max 16 byte increments to avoid problems with
          some SFP modules, from Russell King.
      
       3) Fix UDP socket lookup wrt. VRF, from Tim Beale.
      
       4) Handle route invalidation properly in s390 qeth driver, from Julian
          Wiedmann.
      
       5) Memory leak on unload in RDS, from Zhu Yanjun.
      
       6) sctp_process_init leak, from Neil HOrman.
      
       7) Fix fib_rules rule insertion semantic change that broke Android,
          from Hangbin Liu.
      
      * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (33 commits)
        pktgen: do not sleep with the thread lock held.
        net: mvpp2: Use strscpy to handle stat strings
        net: rds: fix memory leak in rds_ib_flush_mr_pool
        ipv6: fix EFAULT on sendto with icmpv6 and hdrincl
        ipv6: use READ_ONCE() for inet->hdrincl as in ipv4
        Revert "fib_rules: return 0 directly if an exactly same rule exists when NLM_F_EXCL not supplied"
        net: aquantia: fix wol configuration not applied sometimes
        ethtool: fix potential userspace buffer overflow
        Fix memory leak in sctp_process_init
        net: rds: fix memory leak when unload rds_rdma
        ipv6: fix the check before getting the cookie in rt6_get_cookie
        ipv4: not do cache for local delivery if bc_forwarding is enabled
        s390/qeth: handle error when updating TX queue count
        s390/qeth: fix VLAN attribute in bridge_hostnotify udev event
        s390/qeth: check dst entry before use
        s390/qeth: handle limited IPv4 broadcast in L3 TX path
        net: fix indirect calls helpers for ptype list hooks.
        net: ipvlan: Fix ipvlan device tso disabled while NETIF_F_IP_CSUM is set
        udp: only choose unbound UDP socket for multicast when not in a VRF
        net/tls: replace the sleeping lock around RX resync with a bit lock
        ...
      1e1d9263
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 6e38335d
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
       "Things are looking pretty quiet here in RDMA, not too many bug fixes
        rolling in right now. The usual driver bug fixes and fixes for a
        couple of regressions introduced in 5.2:
      
         - Fix a race on bootup with RDMA device renaming and srp. SRP also
           needs to rename its internal sys files
      
         - Fix a memory leak in hns
      
         - Don't leak resources in efa on certain error unwinds
      
         - Don't panic in certain error unwinds in ib_register_device
      
         - Various small user visible bug fix patches for the hfi and efa
           drivers
      
         - Fix the 32 bit compilation break"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/efa: Remove MAYEXEC flag check from mmap flow
        mlx5: avoid 64-bit division
        IB/hfi1: Validate page aligned for a given virtual address
        IB/{qib, hfi1, rdmavt}: Correct ibv_devinfo max_mr value
        IB/hfi1: Insure freeze_work work_struct is canceled on shutdown
        IB/rdmavt: Fix alloc_qpn() WARN_ON()
        RDMA/core: Fix panic when port_data isn't initialized
        RDMA/uverbs: Pass udata on uverbs error unwind
        RDMA/core: Clear out the udata before error unwind
        RDMA/hns: Fix PD memory leak for internal allocation
        RDMA/srp: Rename SRP sysfs name after IB device rename trigger
      6e38335d