1. 12 9月, 2018 8 次提交
    • G
      misc: hmc6352: fix potential Spectre v1 · de916736
      Gustavo A. R. Silva 提交于
      val is indirectly controlled by user-space, hence leading to a
      potential exploitation of the Spectre variant 1 vulnerability.
      
      This issue was detected with the help of Smatch:
      
      drivers/misc/hmc6352.c:54 compass_store() warn: potential spectre issue
      'map' [r]
      
      Fix this by sanitizing val before using it to index map
      
      Notice that given that speculation windows are large, the policy is
      to kill the speculation on the first load and not worry if it can be
      completed with a dependent load/store [1].
      
      [1] https://marc.info/?l=linux-kernel&m=152449131114778&w=2
      
      Cc: stable@vger.kernel.org
      Signed-off-by: NGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      de916736
    • K
      Tools: hv: Fix a bug in the key delete code · 86503bd3
      K. Y. Srinivasan 提交于
      Fix a bug in the key delete code - the num_records range
      from 0 to num_records-1.
      Signed-off-by: NK. Y. Srinivasan <kys@microsoft.com>
      Reported-by: NDavid Binderman <dcb314@hotmail.com>
      Cc: <stable@vger.kernel.org>
      Reviewed-by: NMichael Kelley <mikelley@microsoft.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      86503bd3
    • B
      misc: ibmvsm: Fix wrong assignment of return code · c55e9318
      Bryant G. Ly 提交于
      Currently the assignment is flipped and rc is always 0.
      Signed-off-by: NBryant G. Ly <bryantly@linux.ibm.com>
      Fixes: 0eca353e ("misc: IBM Virtual Management Channel Driver (VMC)")
      Reviewed-by: NBradley Warrum <bwarrum@us.ibm.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c55e9318
    • M
      android: binder: fix the race mmap and alloc_new_buf_locked · da1b9564
      Minchan Kim 提交于
      There is RaceFuzzer report like below because we have no lock to close
      below the race between binder_mmap and binder_alloc_new_buf_locked.
      To close the race, let's use memory barrier so that if someone see
      alloc->vma is not NULL, alloc->vma_vm_mm should be never NULL.
      
      (I didn't add stable mark intentionallybecause standard android
      userspace libraries that interact with binder (libbinder & libhwbinder)
      prevent the mmap/ioctl race. - from Todd)
      
      "
      Thread interleaving:
      CPU0 (binder_alloc_mmap_handler)              CPU1 (binder_alloc_new_buf_locked)
      =====                                         =====
      // drivers/android/binder_alloc.c
      // #L718 (v4.18-rc3)
      alloc->vma = vma;
                                                    // drivers/android/binder_alloc.c
                                                    // #L346 (v4.18-rc3)
                                                    if (alloc->vma == NULL) {
                                                        ...
                                                        // alloc->vma is not NULL at this point
                                                        return ERR_PTR(-ESRCH);
                                                    }
                                                    ...
                                                    // #L438
                                                    binder_update_page_range(alloc, 0,
                                                            (void *)PAGE_ALIGN((uintptr_t)buffer->data),
                                                            end_page_addr);
      
                                                    // In binder_update_page_range() #L218
                                                    // But still alloc->vma_vm_mm is NULL here
                                                    if (need_mm && mmget_not_zero(alloc->vma_vm_mm))
      alloc->vma_vm_mm = vma->vm_mm;
      
      Crash Log:
      ==================================================================
      BUG: KASAN: null-ptr-deref in __atomic_add_unless include/asm-generic/atomic-instrumented.h:89 [inline]
      BUG: KASAN: null-ptr-deref in atomic_add_unless include/linux/atomic.h:533 [inline]
      BUG: KASAN: null-ptr-deref in mmget_not_zero include/linux/sched/mm.h:75 [inline]
      BUG: KASAN: null-ptr-deref in binder_update_page_range+0xece/0x18e0 drivers/android/binder_alloc.c:218
      Write of size 4 at addr 0000000000000058 by task syz-executor0/11184
      
      CPU: 1 PID: 11184 Comm: syz-executor0 Not tainted 4.18.0-rc3 #1
      Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
      Call Trace:
       __dump_stack lib/dump_stack.c:77 [inline]
       dump_stack+0x16e/0x22c lib/dump_stack.c:113
       kasan_report_error mm/kasan/report.c:352 [inline]
       kasan_report+0x163/0x380 mm/kasan/report.c:412
       check_memory_region_inline mm/kasan/kasan.c:260 [inline]
       check_memory_region+0x140/0x1a0 mm/kasan/kasan.c:267
       kasan_check_write+0x14/0x20 mm/kasan/kasan.c:278
       __atomic_add_unless include/asm-generic/atomic-instrumented.h:89 [inline]
       atomic_add_unless include/linux/atomic.h:533 [inline]
       mmget_not_zero include/linux/sched/mm.h:75 [inline]
       binder_update_page_range+0xece/0x18e0 drivers/android/binder_alloc.c:218
       binder_alloc_new_buf_locked drivers/android/binder_alloc.c:443 [inline]
       binder_alloc_new_buf+0x467/0xc30 drivers/android/binder_alloc.c:513
       binder_transaction+0x125b/0x4fb0 drivers/android/binder.c:2957
       binder_thread_write+0xc08/0x2770 drivers/android/binder.c:3528
       binder_ioctl_write_read.isra.39+0x24f/0x8e0 drivers/android/binder.c:4456
       binder_ioctl+0xa86/0xf34 drivers/android/binder.c:4596
       vfs_ioctl fs/ioctl.c:46 [inline]
       do_vfs_ioctl+0x154/0xd40 fs/ioctl.c:686
       ksys_ioctl+0x94/0xb0 fs/ioctl.c:701
       __do_sys_ioctl fs/ioctl.c:708 [inline]
       __se_sys_ioctl fs/ioctl.c:706 [inline]
       __x64_sys_ioctl+0x43/0x50 fs/ioctl.c:706
       do_syscall_64+0x167/0x4b0 arch/x86/entry/common.c:290
       entry_SYSCALL_64_after_hwframe+0x49/0xbe
      "
      Signed-off-by: NTodd Kjos <tkjos@google.com>
      Signed-off-by: NMinchan Kim <minchan@kernel.org>
      Reviewed-by: NMartijn Coenen <maco@android.com>
      Cc: stable <stable@vger.kernel.org>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      da1b9564
    • T
      mei: bus: need to unlink client before freeing · 34f1166a
      Tomas Winkler 提交于
      In case a client fails to connect in mei_cldev_enable(), the
      caller won't call the mei_cldev_disable leaving the client
      in a linked stated. Upon driver unload the client structure
      will be freed in  mei_cl_bus_dev_release(), leaving a stale pointer
      on a fail_list.  This will eventually end up in crash
      during power down flow in mei_cl_set_disonnected().
      
      RIP:  mei_cl_set_disconnected+0x5/0x260[mei]
      Call trace:
      mei_cl_all_disconnect+0x22/0x30
      mei_reset+0x194/0x250
      __synchronize_hardirq+0x43/0x50
      _cond_resched+0x15/0x30
      mei_me_intr_clear+0x20/0x100
      mei_stop+0x76/0xb0
      mei_me_shutdown+0x3f/0x80
      pci_device_shutdown+0x34/0x60
      kernel_restart+0x0e/0x30
      
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=200455
      Fixes: 'c110cdb1 ("mei: bus: make a client pointer always available")'
      Cc: <stable@vger.kernel.org> 4.10+
      Tested-by: NGeorg Müller <georgmueller@gmx.net>
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      34f1166a
    • T
      mei: bus: fix hw module get/put balance · 69bf5313
      Tomas Winkler 提交于
      In case the device is not connected it doesn't 'get'
      hw module and hence should not 'put' it on disable.
      
      Cc: <stable@vger.kernel.org> 4.16+
      Fixes:'commit 257355a4 ("mei: make module referencing local to the bus.c")'
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=200455Tested-by: NGeorg Müller <georgmueller@gmx.net>
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      69bf5313
    • J
      mei: fix use-after-free in mei_cl_write · c1a214ad
      John Hubbard 提交于
      KASAN reports a use-after-free during startup, in mei_cl_write:
      
          BUG: KASAN: use-after-free in mei_cl_write+0x601/0x870 [mei]
             (drivers/misc/mei/client.c:1770)
      
      This is caused by commit 98e70866 ("mei: add support for variable
      length mei headers."), which changed the return value from len, to
      buf->size. That ends up using a stale buf pointer, because blocking
      call, the cb (callback) is deleted in me_cl_complete() function.
      
      However, fortunately, len remains unchanged throughout the function
      (and I don't see anything else that would require re-reading buf->size
      either), so the fix is to simply revert the change, and return len, as
      before.
      
      Fixes: 98e70866 ("mei: add support for variable length mei headers.")
      CC: Arnd Bergmann <arnd@arndb.de>
      CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NJohn Hubbard <jhubbard@nvidia.com>
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      c1a214ad
    • A
      mei: ignore not found client in the enumeration · 8d2d8935
      Alexander Usyskin 提交于
      Some of the ME clients are available only for BIOS operation and are
      removed during hand off to an OS. However the removal is not instant.
      A client may be visible on the client list when the mei driver requests
      for enumeration, while the subsequent request for properties will be
      answered with client not found error value. The default behavior
      for an error is to perform client reset while this error is harmless and
      the link reset should be prevented. This issue started to be visible due to
      suspend/resume timing changes. Currently reported only on the Haswell
      based system.
      
      Fixes:
      [33.564957] mei_me 0000:00:16.0: hbm: properties response: wrong status = 1 CLIENT_NOT_FOUND
      [33.564978] mei_me 0000:00:16.0: mei_irq_read_handler ret = -71.
      [33.565270] mei_me 0000:00:16.0: unexpected reset: dev_state = INIT_CLIENTS fw status = 1E000255 60002306 00000200 00004401 00000000 00000010
      
      Cc: <stable@vger.kernel.org>
      Reported-by: NHeiner Kallweit <hkallweit1@gmail.com>
      Signed-off-by: NAlexander Usyskin <alexander.usyskin@intel.com>
      Signed-off-by: NTomas Winkler <tomas.winkler@intel.com>
      Signed-off-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      8d2d8935
  2. 10 9月, 2018 1 次提交
  3. 09 9月, 2018 10 次提交
    • L
      Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9a568276
      Linus Torvalds 提交于
      Pull x86 fixes from Thomas Gleixner:
       "A set of fixes for x86:
      
         - Prevent multiplication result truncation on 32bit. Introduced with
           the early timestamp reworrk.
      
         - Ensure microcode revision storage to be consistent under all
           circumstances
      
         - Prevent write tearing of PTEs
      
         - Prevent confusion of user and kernel reegisters when dumping fatal
           signals verbosely
      
         - Make an error return value in a failure path of the vector
           allocation negative. Returning EINVAL might the caller assume
           success and causes further wreckage.
      
         - A trivial kernel doc warning fix"
      
      * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Use WRITE_ONCE() when setting PTEs
        x86/apic/vector: Make error return value negative
        x86/process: Don't mix user/kernel regs in 64bit __show_regs()
        x86/tsc: Prevent result truncation on 32bit
        x86: Fix kernel-doc atomic.h warnings
        x86/microcode: Update the new microcode revision unconditionally
        x86/microcode: Make sure boot_cpu_data.microcode is up-to-date
      9a568276
    • L
      Merge branch 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3567994a
      Linus Torvalds 提交于
      Pull timekeeping fixes from Thomas Gleixner:
       "Two fixes for timekeeping:
      
         - Revert to the previous kthread based update, which is unfortunately
           required due to lock ordering issues. The removal caused boot
           failures on old Core2 machines. Add a proper comment why the thread
           needs to stay to prevent accidental removal in the future.
      
         - Fix a silly typo in a function declaration"
      
      * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        clocksource: Revert "Remove kthread"
        timekeeping: Fix declaration of read_persistent_wall_and_boot_offset()
      3567994a
    • L
      Merge branch 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 225ad3cf
      Linus Torvalds 提交于
      Pull irqchip fix from Thomas Gleixner:
       "A single fix to prevent allocating excessive memory in the GIC/ITS
        driver.
      
        While the subject of the patch might suggest otherwise this is a real
        fix as some SoCs exceed the memory allocation limits and fail to boot"
      
      * 'irq-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/gic-v3-its: Cap lpi_id_bits to reduce memory footprint
      225ad3cf
    • L
      Merge branch 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e0a0d058
      Linus Torvalds 提交于
      Pull cpu hotplug fixes from Thomas Gleixner:
       "Two fixes for the hotplug state machine code:
      
         - Move the misplaces smb() in the hotplug thread function to the
           proper place, otherwise a half update control struct could be
           observed
      
         - Prevent state corruption on error rollback, which causes the state
           to advance by one and as a consequence skip it in the bringup
           sequence"
      
      * 'smp-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        cpu/hotplug: Prevent state corruption on error rollback
        cpu/hotplug: Adjust misplaced smb() in cpuhp_thread_fun()
      e0a0d058
    • L
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random · 3243a89d
      Linus Torvalds 提交于
      Pull random driver fix from Ted Ts'o:
       "Fix things so the choice of whether or not to trust RDRAND to
        initialize the CRNG is configurable via the boot option
        random.trust_cpu={on,off}"
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/random:
        random: make CPU trust a boot parameter
      3243a89d
    • L
      Merge tag 'kbuild-fixes-v4.19' of... · 1d225777
      Linus Torvalds 提交于
      Merge tag 'kbuild-fixes-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild
      
      Pull Kbuild fixes from Masahiro Yamada:
      
       - make setlocalversion more robust about -dirty check
      
       - loosen the pkg-config requirement for Kconfig
      
       - change missing depmod to a warning from an error
      
       - warn modules_install when System.map is missing
      
      * tag 'kbuild-fixes-v4.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: modules_install: warn when missing System.map file
        kbuild: make missing $DEPMOD a Warning instead of an Error
        kconfig: do not require pkg-config on make {menu,n}config
        kconfig: remove a spurious self-assignment
        scripts/setlocalversion: git: Make -dirty check more robust
      1d225777
    • R
      kbuild: modules_install: warn when missing System.map file · f0b0d88a
      Randy Dunlap 提交于
      If there is no System.map file for "make modules_install",
      scripts/depmod.sh will silently exit with success, having done
      nothing.  Since this is an unexpected situation, change it to
      report a Warning for the missing file.  The behavior is not
      changed except for the Warning message.
      
      The (previous) silent success and new Warning can be reproduced
      by:
      $ make mrproper; make defconfig
      $ make modules; make modules_install
      
      and since System.map is produced by "make vmlinux", the steps
      above omit producing the System.map file.
      Reported-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: NRandy Dunlap <rdunlap@infradead.org>
      Signed-off-by: NMasahiro Yamada <yamada.masahiro@socionext.com>
      f0b0d88a
    • L
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · f8f65382
      Linus Torvalds 提交于
      Pull KVM fixes from Radim Krčmář:
       "ARM:
         - Fix a VFP corruption in 32-bit guest
         - Add missing cache invalidation for CoW pages
         - Two small cleanups
      
        s390:
         - Fallout from the hugetlbfs support: pfmf interpretion and locking
         - VSIE: fix keywrapping for nested guests
      
        PPC:
         - Fix a bug where pages might not get marked dirty, causing guest
           memory corruption on migration
         - Fix a bug causing reads from guest memory to use the wrong guest
           real address for very large HPT guests (>256G of memory), leading
           to failures in instruction emulation.
      
        x86:
         - Fix out of bound access from malicious pv ipi hypercalls
           (introduced in rc1)
         - Fix delivery of pending interrupts when entering a nested guest,
           preventing arbitrarily late injection
         - Sanitize kvm_stat output after destroying a guest
         - Fix infinite loop when emulating a nested guest page fault and
           improve the surrounding emulation code
         - Two minor cleanups"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (28 commits)
        KVM: LAPIC: Fix pv ipis out-of-bounds access
        KVM: nVMX: Fix loss of pending IRQ/NMI before entering L2
        arm64: KVM: Remove pgd_lock
        KVM: Remove obsolete kvm_unmap_hva notifier backend
        arm64: KVM: Only force FPEXC32_EL2.EN if trapping FPSIMD
        KVM: arm/arm64: Clean dcache to PoC when changing PTE due to CoW
        KVM: s390: Properly lock mm context allow_gmap_hpage_1m setting
        KVM: s390: vsie: copy wrapping keys to right place
        KVM: s390: Fix pfmf and conditional skey emulation
        tools/kvm_stat: re-animate display of dead guests
        tools/kvm_stat: indicate dead guests as such
        tools/kvm_stat: handle guest removals more gracefully
        tools/kvm_stat: don't reset stats when setting PID filter for debugfs
        tools/kvm_stat: fix updates for dead guests
        tools/kvm_stat: fix handling of invalid paths in debugfs provider
        tools/kvm_stat: fix python3 issues
        KVM: x86: Unexport x86_emulate_instruction()
        KVM: x86: Rename emulate_instruction() to kvm_emulate_instruction()
        KVM: x86: Do not re-{try,execute} after failed emulation in L2
        KVM: x86: Default to not allowing emulation retry in kvm_mmu_page_fault
        ...
      f8f65382
    • L
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc · 0f3aa48a
      Linus Torvalds 提交于
      Pull ARM SoC fixes from Olof Johansson:
       "A few more fixes who have trickled in:
      
         - MMC bus width fixup for some Allwinner platforms
      
         - Fix for NULL deref in ti-aemif when no platform data is passed in
      
         - Fix div by 0 in SCMI code
      
         - Add a missing module alias in a new RPi driver"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
        memory: ti-aemif: fix a potential NULL-pointer dereference
        firmware: arm_scmi: fix divide by zero when sustained_perf_level is zero
        hwmon: rpi: add module alias to raspberrypi-hwmon
        arm64: allwinner: dts: h6: fix Pine H64 MMC bus width
      0f3aa48a
    • O
      Merge tag 'sunxi-fixes-for-4.19' of... · a132bb90
      Olof Johansson 提交于
      Merge tag 'sunxi-fixes-for-4.19' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux into fixes
      
      Allwinner fixes for 4.19
      
      Just one fix for H6 mmc on the Pine H64: the mmc bus width was missing
      from the device tree. This was added in 4.19-rc1.
      
      * tag 'sunxi-fixes-for-4.19' of https://git.kernel.org/pub/scm/linux/kernel/git/sunxi/linux:
        arm64: allwinner: dts: h6: fix Pine H64 MMC bus width
      Signed-off-by: NOlof Johansson <olof@lixom.net>
      a132bb90
  4. 08 9月, 2018 15 次提交
  5. 07 9月, 2018 6 次提交