Skip to content
  1. Jul 06, 2019
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 881ed91f
      Linus Torvalds authored
      Pull i2c fixlet from Wolfram Sang:
       "I2C has a MAINTAINERS update which will be benfitial for developers,
        so let's add it right away"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        i2c: tegra: Add Dmitry as a reviewer
      881ed91f
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.2-2' of git://linux-nfs.org/~bfields/linux · a8f46b5a
      Linus Torvalds authored
      Pull nfsd fixes from Bruce Fields:
       "Two more quick bugfixes for nfsd: fixing a regression causing mount
        failures on high-memory machines and fixing the DRC over RDMA"
      
      * tag 'nfsd-5.2-2' of git://linux-nfs.org/~bfields/linux:
        nfsd: Fix overflow causing non-working mounts on 1 TB machines
        svcrdma: Ignore source port when computing DRC hash
      a8f46b5a
    • Dmitry Osipenko's avatar
      i2c: tegra: Add Dmitry as a reviewer · f3a3ea28
      Dmitry Osipenko authored
      
      
      I'm contributing to Tegra's upstream development in general and happened
      to review the Tegra's I2C patches for awhile because I'm actively using
      upstream kernel on all of my Tegra-powered devices and initially some of
      the submitted patches were getting my attention since they were causing
      problems. Recently Wolfram Sang asked whether I'm interested in becoming
      a reviewer for the driver and I don't mind at all.
      
      Signed-off-by: default avatarDmitry Osipenko <digetx@gmail.com>
      [wsa: ack was expressed by Thierry Reding in a mail thread]
      Signed-off-by: default avatarWolfram Sang <wsa@the-dreams.de>
      f3a3ea28
  2. Jul 05, 2019
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2019-07-05-1' of git://anongit.freedesktop.org/drm/drm · 3f9c4dc6
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "I skipped last week because there wasn't much worth doing, this week
        got a few more fixes in.
      
        amdgpu:
         - default register value change
         - runpm regression fix
         - fan control fix
      
        i915:
         - fix Ironlake regression
      
        panfrost:
         - fix a double free
      
        virtio:
         - fix a locking bug
      
        imx:
         - crtc disable fixes"
      
      * tag 'drm-fixes-2019-07-05-1' of git://anongit.freedesktop.org/drm/drm:
        drm/imx: only send event on crtc disable if kept disabled
        drm/imx: notify drm core before sending event during crtc disable
        drm/i915/ringbuffer: EMIT_INVALIDATE *before* switch context
        drm/amdgpu/gfx9: use reset default for PA_SC_FIFO_SIZE
        drm/amdgpu: Don't skip display settings in hwmgr_resume()
        drm/amd/powerplay: use hardware fan control if no powerplay fan table
        drm/panfrost: Fix a double-free error
        drm/etnaviv: add missing failure path to destroy suballoc
        drm/virtio: move drm_connector_update_edid_property() call
      3f9c4dc6
    • Dave Airlie's avatar
      Merge tag 'imx-drm-fixes-2019-07-04' of git://git.pengutronix.de/git/pza/linux into drm-fixes · a0b2cf79
      Dave Airlie authored
      
      
      drm/imx: fix stale vblank timestamp after a modeset
      
      This series fixes stale vblank timestamps in the first event sent after
      a crtc was disabled. The core now is notified via drm_crtc_vblank_off
      before sending the last pending event in atomic_disable. If the crtc is
      reenabled right away during to a modeset, the event is not sent at all,
      as the next vblank will take care of it.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Philipp Zabel <p.zabel@pengutronix.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/1562237119.6641.16.camel@pengutronix.de
      a0b2cf79
    • Linus Torvalds's avatar
      Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · ee39d46d
      Linus Torvalds authored
      Pull crypto fixes from Herbert Xu:
       "This fixes two memory leaks and a list corruption bug"
      
      * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
        crypto: user - prevent operating on larval algorithms
        crypto: cryptd - Fix skcipher instance memory leak
        lib/mpi: Fix karactx leak in mpi_powm
      ee39d46d
    • Linus Torvalds's avatar
      Merge branch 'akpm' (patches from Andrew) · a5fff14a
      Linus Torvalds authored
      Merge more fixes from Andrew Morton:
       "5 fixes"
      
      * emailed patches from Andrew Morton <akpm@linux-foundation.org>:
        swap_readpage(): avoid blk_wake_io_task() if !synchronous
        devres: allow const resource arguments
        mm/vmscan.c: prevent useless kswapd loops
        fs/userfaultfd.c: disable irqs for fault_pending and event locks
        mm/page_alloc.c: fix regression with deferred struct page init
      a5fff14a
    • Linus Torvalds's avatar
      Merge tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ecbe5086
      Linus Torvalds authored
      Pull ARM SoC fixes from Olof Johansson:
       "Likely our final small batch of fixes for 5.2:
      
         - Some fixes for USB on davinci, regressions were due to the recent
           conversion of the OCHI driver to use GPIO regulators
      
         - A fixup of kconfig dependencies for a TI irq controller
      
         - A switch of armada-38x to avoid dropped characters on uart, caused
           by switch of base inherited platform description earlier this year"
      
      * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        ARM: davinci: da830-evm: fix GPIO lookup for OHCI
        ARM: davinci: omapl138-hawk: add missing regulator constraints for OHCI
        ARM: davinci: da830-evm: add missing regulator constraints for OHCI
        soc: ti: fix irq-ti-sci link error
        ARM: dts: armada-xp-98dx3236: Switch to armada-38x-uart serial node
      ecbe5086
    • Linus Torvalds's avatar
      Merge tag 'dax-fix-5.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · cde357c3
      Linus Torvalds authored
      Pull dax fix from Dan Williams:
       "A single dax fix that has been soaking awaiting other fixes under
        discussion to join it. As it is getting late in the cycle lets proceed
        with this fix and save follow-on changes for post-v5.3-rc1.
      
         - Fix xarray entry association for mixed mappings"
      
      * tag 'dax-fix-5.2-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        dax: Fix xarray entry association for mixed mappings
      cde357c3
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 2cd7cdc7
      Linus Torvalds authored
      Pull do_move_mount() fix from Al Viro:
       "Regression fix"
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        vfs: move_mount: reject moving kernel internal mounts
      2cd7cdc7
    • Oleg Nesterov's avatar
      swap_readpage(): avoid blk_wake_io_task() if !synchronous · 87518530
      Oleg Nesterov authored
      swap_readpage() sets waiter = bio->bi_private even if synchronous = F,
      this means that the caller can get the spurious wakeup after return.
      
      This can be fatal if blk_wake_io_task() does
      set_current_state(TASK_RUNNING) after the caller does
      set_special_state(), in the worst case the kernel can crash in
      do_task_dead().
      
      Link: http://lkml.kernel.org/r/20190704160301.GA5956@redhat.com
      Fixes: 0619317f
      
       ("block: add polled wakeup task helper")
      Signed-off-by: default avatarOleg Nesterov <oleg@redhat.com>
      Reported-by: default avatarQian Cai <cai@lca.pw>
      Acked-by: default avatarHugh Dickins <hughd@google.com>
      Reviewed-by: default avatarJens Axboe <axboe@kernel.dk>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      87518530
    • Arnd Bergmann's avatar
      devres: allow const resource arguments · eef778c9
      Arnd Bergmann authored
      
      
      devm_ioremap_resource() does not currently take 'const' arguments, which
      results in a warning from the first driver trying to do it anyway:
      
        drivers/gpio/gpio-amd-fch.c: In function 'amd_fch_gpio_probe':
        drivers/gpio/gpio-amd-fch.c:171:49: error: passing argument 2 of 'devm_ioremap_resource' discards 'const' qualifier from pointer target type [-Werror=discarded-qualifiers]
          priv->base = devm_ioremap_resource(&pdev->dev, &amd_fch_gpio_iores);
                                                         ^~~~~~~~~~~~~~~~~~~
      
      Change the prototype to allow it, as there is no real reason not to.
      
      Link: http://lkml.kernel.org/r/20190628150049.1108048-1-arnd@arndb.de
      Fixes: 9bb2e0452508 ("gpio: amd: Make resource struct const")
      Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: default avatarEnrico Weigelt <info@metux.net>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: Linus Walleij <linus.walleij@linaro.org>
      Cc: Arnd Bergmann <arnd@arndb.de>
      Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
      Cc: Ulf Hansson <ulf.hansson@linaro.org>
      Cc: Andy Shevchenko <andy.shevchenko@gmail.com>
      Cc: Heikki Krogerus <heikki.krogerus@linux.intel.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eef778c9
    • Shakeel Butt's avatar
      mm/vmscan.c: prevent useless kswapd loops · dffcac2c
      Shakeel Butt authored
      In production we have noticed hard lockups on large machines running
      large jobs due to kswaps hoarding lru lock within isolate_lru_pages when
      sc->reclaim_idx is 0 which is a small zone.  The lru was couple hundred
      GiBs and the condition (page_zonenum(page) > sc->reclaim_idx) in
      isolate_lru_pages() was basically skipping GiBs of pages while holding
      the LRU spinlock with interrupt disabled.
      
      On further inspection, it seems like there are two issues:
      
      (1) If kswapd on the return from balance_pgdat() could not sleep (i.e.
          node is still unbalanced), the classzone_idx is unintentionally set
          to 0 and the whole reclaim cycle of kswapd will try to reclaim only
          the lowest and smallest zone while traversing the whole memory.
      
      (2) Fundamentally isolate_lru_pages() is really bad when the
          allocation has woken kswapd for a smaller zone on a very large machine
          running very large jobs.  It can hoard the LRU spinlock while skipping
          over 100s of GiBs of pages.
      
      This patch only fixes (1).  (2) needs a more fundamental solution.  To
      fix (1), in the kswapd context, if pgdat->kswapd_classzone_idx is
      invalid use the classzone_idx of the previous kswapd loop otherwise use
      the one the waker has requested.
      
      Link: http://lkml.kernel.org/r/20190701201847.251028-1-shakeelb@google.com
      Fixes: e716f2eb
      
       ("mm, vmscan: prevent kswapd sleeping prematurely due to mismatched classzone_idx")
      Signed-off-by: default avatarShakeel Butt <shakeelb@google.com>
      Reviewed-by: default avatarYang Shi <yang.shi@linux.alibaba.com>
      Acked-by: default avatarMel Gorman <mgorman@techsingularity.net>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Cc: Hillf Danton <hdanton@sina.com>
      Cc: Roman Gushchin <guro@fb.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      dffcac2c
    • Eric Biggers's avatar
      fs/userfaultfd.c: disable irqs for fault_pending and event locks · cbcfa130
      Eric Biggers authored
      When IOCB_CMD_POLL is used on a userfaultfd, aio_poll() disables IRQs
      and takes kioctx::ctx_lock, then userfaultfd_ctx::fd_wqh.lock.
      
      This may have to wait for userfaultfd_ctx::fd_wqh.lock to be released by
      userfaultfd_ctx_read(), which in turn can be waiting for
      userfaultfd_ctx::fault_pending_wqh.lock or
      userfaultfd_ctx::event_wqh.lock.
      
      But elsewhere the fault_pending_wqh and event_wqh locks are taken with
      IRQs enabled.  Since the IRQ handler may take kioctx::ctx_lock, lockdep
      reports that a deadlock is possible.
      
      Fix it by always disabling IRQs when taking the fault_pending_wqh and
      event_wqh locks.
      
      Commit ae62c16e ("userfaultfd: disable irqs when taking the
      waitqueue lock") didn't fix this because it only accounted for the
      fd_wqh lock, not the other locks nested inside it.
      
      Link: http://lkml.kernel.org/r/20190627075004.21259-1-ebiggers@kernel.org
      Fixes: bfe4037e
      
       ("aio: implement IOCB_CMD_POLL")
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Reported-by: default avatar <syzbot+fab6de82892b6b9c6191@syzkaller.appspotmail.com>
      Reported-by: default avatar <syzbot+53c0b767f7ca0dc0c451@syzkaller.appspotmail.com>
      Reported-by: default avatar <syzbot+a3accb352f9c22041cfa@syzkaller.appspotmail.com>
      Reviewed-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: <stable@vger.kernel.org>	[4.19+]
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      cbcfa130
    • Juergen Gross's avatar
      mm/page_alloc.c: fix regression with deferred struct page init · b9705d87
      Juergen Gross authored
      Commit 0e56acae ("mm: initialize MAX_ORDER_NR_PAGES at a time
      instead of doing larger sections") is causing a regression on some
      systems when the kernel is booted as Xen dom0.
      
      The system will just hang in early boot.
      
      Reason is an endless loop in get_page_from_freelist() in case the first
      zone looked at has no free memory.  deferred_grow_zone() is always
      returning true due to the following code snipplet:
      
        /* If the zone is empty somebody else may have cleared out the zone */
        if (!deferred_init_mem_pfn_range_in_zone(&i, zone, &spfn, &epfn,
                                                 first_deferred_pfn)) {
                pgdat->first_deferred_pfn = ULONG_MAX;
                pgdat_resize_unlock(pgdat, &flags);
                return true;
        }
      
      This in turn results in the loop as get_page_from_freelist() is assuming
      forward progress can be made by doing some more struct page
      initialization.
      
      Link: http://lkml.kernel.org/r/20190620160821.4210-1-jgross@suse.com
      Fixes: 0e56acae
      
       ("mm: initialize MAX_ORDER_NR_PAGES at a time instead of doing larger sections")
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Suggested-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
      Acked-by: default avatarAlexander Duyck <alexander.h.duyck@linux.intel.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: Pavel Tatashin <pasha.tatashin@soleen.com>
      Cc: Mike Rapoport <rppt@linux.ibm.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      b9705d87
    • Linus Torvalds's avatar
      Merge tag 'sound-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · c212ddae
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here are a collection of small fixes for:
      
         - A race with ASoC HD-audio registration
      
         - LINE6 usb-audio memory overwrite by malformed descriptor
      
         - FireWire MIDI handling
      
         - Missing cast for bit shifts in a few USB-audio quirks
      
         - The wrong function calls in minor OSS sequencer code paths
      
         - A couple of HD-audio quirks"
      
      * tag 'sound-5.2' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: line6: Fix write on zero-sized buffer
        ALSA: hda: Fix widget_mutex incomplete protection
        ALSA: firewire-lib/fireworks: fix miss detection of received MIDI messages
        ALSA: seq: fix incorrect order of dest_client/dest_ports arguments
        ALSA: hda/realtek - Change front mic location for Lenovo M710q
        ALSA: usb-audio: fix sign unintended sign extension on left shifts
        ALSA: hda/realtek: Add quirks for several Clevo notebook barebones
      c212ddae
    • Jann Horn's avatar
      ptrace: Fix ->ptracer_cred handling for PTRACE_TRACEME · 6994eefb
      Jann Horn authored
      Fix two issues:
      
      When called for PTRACE_TRACEME, ptrace_link() would obtain an RCU
      reference to the parent's objective credentials, then give that pointer
      to get_cred().  However, the object lifetime rules for things like
      struct cred do not permit unconditionally turning an RCU reference into
      a stable reference.
      
      PTRACE_TRACEME records the parent's credentials as if the parent was
      acting as the subject, but that's not the case.  If a malicious
      unprivileged child uses PTRACE_TRACEME and the parent is privileged, and
      at a later point, the parent process becomes attacker-controlled
      (because it drops privileges and calls execve()), the attacker ends up
      with control over two processes with a privileged ptrace relationship,
      which can be abused to ptrace a suid binary and obtain root privileges.
      
      Fix both of these by always recording the credentials of the process
      that is requesting the creation of the ptrace relationship:
      current_cred() can't change under us, and current is the proper subject
      for access control.
      
      This change is theoretically userspace-visible, but I am not aware of
      any code that it will actually break.
      
      Fixes: 64b875f7
      
       ("ptrace: Capture the ptracer's creds not PT_PTRACE_CAP")
      Signed-off-by: default avatarJann Horn <jannh@google.com>
      Acked-by: default avatarOleg Nesterov <oleg@redhat.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      6994eefb
  3. Jul 04, 2019
    • Robert Beckett's avatar
      drm/imx: only send event on crtc disable if kept disabled · 5aeab2bf
      Robert Beckett authored
      The event will be sent as part of the vblank enable during the modeset
      if the crtc is not being kept disabled.
      
      Fixes: 5f2f9115
      
       ("drm/imx: atomic phase 3 step 1: Use atomic configuration")
      
      Signed-off-by: default avatarRobert Beckett <bob.beckett@collabora.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
      5aeab2bf
    • Robert Beckett's avatar
      drm/imx: notify drm core before sending event during crtc disable · 78c68e8f
      Robert Beckett authored
      Notify drm core before sending pending events during crtc disable.
      This fixes the first event after disable having an old stale timestamp
      by having drm_crtc_vblank_off update the timestamp to now.
      
      This was seen while debugging weston log message:
      Warning: computed repaint delay is insane: -8212 msec
      
      This occurred due to:
      1. driver starts up
      2. fbcon comes along and restores fbdev, enabling vblank
      3. vblank_disable_fn fires via timer disabling vblank, keeping vblank
      seq number and time set at current value
      (some time later)
      4. weston starts and does a modeset
      5. atomic commit disables crtc while it does the modeset
      6. ipu_crtc_atomic_disable sends vblank with old seq number and time
      
      Fixes: a4744786
      
       ("drm/imx: fix crtc vblank state regression")
      
      Signed-off-by: default avatarRobert Beckett <bob.beckett@collabora.com>
      Reviewed-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Signed-off-by: default avatarPhilipp Zabel <p.zabel@pengutronix.de>
      78c68e8f
    • Linus Torvalds's avatar
      Merge tag 'trace-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace · 550d1f5b
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
       "This includes three fixes:
      
         - Fix a deadlock from a previous fix to keep module loading and
           function tracing text modifications from stepping on each other
           (this has a few patches to help document the issue in comments)
      
         - Fix a crash when the snapshot buffer gets out of sync with the main
           ring buffer
      
         - Fix a memory leak when reading the memory logs"
      
      * tag 'trace-v5.2-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-trace:
        ftrace/x86: Anotate text_mutex split between ftrace_arch_code_modify_post_process() and ftrace_arch_code_modify_prepare()
        tracing/snapshot: Resize spare buffer if size changed
        tracing: Fix memory leak in tracing_err_log_open()
        ftrace/x86: Add a comment to why we take text_mutex in ftrace_arch_code_modify_prepare()
        ftrace/x86: Remove possible deadlock between register_kprobe() and ftrace_run_update_code()
      550d1f5b
    • Dave Airlie's avatar
      Merge branch 'etnaviv/fixes' of https://git.pengutronix.de/git/lst/linux into drm-fixes · b5252bdf
      Dave Airlie authored
      
      
      Fix a kernel nullptr deref on module
      unload when any etnaviv GPU failed to initialize properly.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Lucas Stach <l.stach@pengutronix.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/1561974148.2321.1.camel@pengutronix.de
      b5252bdf
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2019-07-03' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · a956c56b
      Dave Airlie authored
      
      
      panfrost- Avoid double free by deleting GEM handle in create_bo failure
                path (Boris)
      
      Cc: Boris Brezillon <boris.brezillon@collabora.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Sean Paul <sean@poorly.run>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190704001302.GA260390@art_vandelay
      a956c56b
    • Dave Airlie's avatar
      Merge tag 'drm-fixes-5.2-2019-07-02' of git://people.freedesktop.org/~agd5f/linux into drm-fixes · 5ee5d30a
      Dave Airlie authored
      
      
      drm-fixes-5.2-2019-07-02:
      
      Fixes for stable
      
      amdgpu:
      - stability fix for gfx9
      - regression fix for HG on some polaris boards
      - crash fix for some new OEM boards
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20190703015705.3162-1-alexander.deucher@amd.com
      5ee5d30a
    • Linus Torvalds's avatar
      Merge tag 'gpio-v5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio · 179c96d9
      Linus Torvalds authored
      Pull GPIO fix from Linus Walleij:
       "A single fixup for the SPI CS gpios that regressed in the current
        kernel cycle"
      
      * tag 'gpio-v5.2-4' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
        gpio/spi: Fix spi-gpio regression on active high CS
      179c96d9
    • Paul Menzel's avatar
      nfsd: Fix overflow causing non-working mounts on 1 TB machines · 3b2d4dcf
      Paul Menzel authored
      Since commit 10a68cdf10 (nfsd: fix performance-limiting session
      calculation) (Linux 5.1-rc1 and 4.19.31), shares from NFS servers with
      1 TB of memory cannot be mounted anymore. The mount just hangs on the
      client.
      
      The gist of commit 10a68cdf10 is the change below.
      
          -avail = clamp_t(int, avail, slotsize, avail/3);
          +avail = clamp_t(int, avail, slotsize, total_avail/3);
      
      Here are the macros.
      
          #define min_t(type, x, y)       __careful_cmp((type)(x), (type)(y), <)
          #define clamp_t(type, val, lo, hi) min_t(type, max_t(type, val, lo), hi)
      
      `total_avail` is 8,434,659,328 on the 1 TB machine. `clamp_t()` casts
      the values to `int`, which for 32-bit integers can only hold values
      −2,147,483,648 (−2^31) through 2,147,483,647 (2^31 − 1).
      
      `avail` (in the function signature) is just 65536, so that no overflow
      was happening. Before the commit the assignment would result in 21845,
      and `num = 4`.
      
      When using `total_avail`, it is causing the assignment to be
      18446744072226137429 (printed as %lu), and `num` is then 4164608182.
      
      My next guess is, that `nfsd_drc_mem_used` is then exceeded, and the
      server thinks there is no memory available any more for this client.
      
      Updating the arguments of `clamp_t()` and `min_t()` to `unsigned long`
      fixes the issue.
      
      Now, `avail = 65536` (before commit 10a68cdf10 `avail = 21845`), but
      `num = 4` remains the same.
      
      Fixes: c54f24e3
      
       (nfsd: fix performance-limiting session calculation)
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarPaul Menzel <pmenzel@molgen.mpg.de>
      Signed-off-by: default avatarJ. Bruce Fields <bfields@redhat.com>
      3b2d4dcf
  4. Jul 03, 2019
    • Eric Biggers's avatar
      crypto: user - prevent operating on larval algorithms · 21d4120e
      Eric Biggers authored
      
      
      Michal Suchanek reported [1] that running the pcrypt_aead01 test from
      LTP [2] in a loop and holding Ctrl-C causes a NULL dereference of
      alg->cra_users.next in crypto_remove_spawns(), via crypto_del_alg().
      The test repeatedly uses CRYPTO_MSG_NEWALG and CRYPTO_MSG_DELALG.
      
      The crash occurs when the instance that CRYPTO_MSG_DELALG is trying to
      unregister isn't a real registered algorithm, but rather is a "test
      larval", which is a special "algorithm" added to the algorithms list
      while the real algorithm is still being tested.  Larvals don't have
      initialized cra_users, so that causes the crash.  Normally pcrypt_aead01
      doesn't trigger this because CRYPTO_MSG_NEWALG waits for the algorithm
      to be tested; however, CRYPTO_MSG_NEWALG returns early when interrupted.
      
      Everything else in the "crypto user configuration" API has this same bug
      too, i.e. it inappropriately allows operating on larval algorithms
      (though it doesn't look like the other cases can cause a crash).
      
      Fix this by making crypto_alg_match() exclude larval algorithms.
      
      [1] https://lkml.kernel.org/r/20190625071624.27039-1-msuchanek@suse.de
      [2] https://github.com/linux-test-project/ltp/blob/20190517/testcases/kernel/crypto/pcrypt_aead01.c
      
      Reported-by: default avatarMichal Suchanek <msuchanek@suse.de>
      Fixes: a38f7907
      
       ("crypto: Add userspace configuration API")
      Cc: <stable@vger.kernel.org> # v3.2+
      Cc: Steffen Klassert <steffen.klassert@secunet.com>
      Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      21d4120e
    • Vincent Whitchurch's avatar
      crypto: cryptd - Fix skcipher instance memory leak · 1a0fad63
      Vincent Whitchurch authored
      cryptd_skcipher_free() fails to free the struct skcipher_instance
      allocated in cryptd_create_skcipher(), leading to a memory leak.  This
      is detected by kmemleak on bootup on ARM64 platforms:
      
       unreferenced object 0xffff80003377b180 (size 1024):
         comm "cryptomgr_probe", pid 822, jiffies 4294894830 (age 52.760s)
         backtrace:
           kmem_cache_alloc_trace+0x270/0x2d0
           cryptd_create+0x990/0x124c
           cryptomgr_probe+0x5c/0x1e8
           kthread+0x258/0x318
           ret_from_fork+0x10/0x1c
      
      Fixes: 4e0958d1
      
       ("crypto: cryptd - Add support for skcipher")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarVincent Whitchurch <vincent.whitchurch@axis.com>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      1a0fad63
    • Herbert Xu's avatar
      lib/mpi: Fix karactx leak in mpi_powm · c8ea9fce
      Herbert Xu authored
      
      
      Sometimes mpi_powm will leak karactx because a memory allocation
      failure causes a bail-out that skips the freeing of karactx.  This
      patch moves the freeing of karactx to the end of the function like
      everything else so that it can't be skipped.
      
      Reported-by: default avatar <syzbot+f7baccc38dcc1e094e77@syzkaller.appspotmail.com>
      Fixes: cdec9cb5
      
       ("crypto: GnuPG based MPI lib - source files...")
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      Reviewed-by: default avatarEric Biggers <ebiggers@kernel.org>
      Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
      c8ea9fce
    • Matias Karhumaa's avatar
      Bluetooth: Fix faulty expression for minimum encryption key size check · eca94432
      Matias Karhumaa authored
      Fix minimum encryption key size check so that HCI_MIN_ENC_KEY_SIZE is
      also allowed as stated in the comment.
      
      This bug caused connection problems with devices having maximum
      encryption key size of 7 octets (56-bit).
      
      Fixes: 693cd8ce
      
       ("Bluetooth: Fix regression with minimum encryption key size alignment")
      Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=203997
      Signed-off-by: default avatarMatias Karhumaa <matias.karhumaa@gmail.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarMarcel Holtmann <marcel@holtmann.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      eca94432
    • Linus Torvalds's avatar
      Merge tag '5.2-rc6-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6 · 6e692c3b
      Linus Torvalds authored
      Pull cifs fix from Steve French:
       "SMB3 fix (for stable as well) for crash mishandling one of the Windows
        reparse point symlink tags"
      
      * tag '5.2-rc6-smb3-fix' of git://git.samba.org/sfrench/cifs-2.6:
        cifs: fix crash querying symlinks stored as reparse-points
      6e692c3b
    • Linus Torvalds's avatar
      Merge tag 'for-linus-20190701' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · 8d68d932
      Linus Torvalds authored
      Pull pidfd fork() fix from Christian Brauner:
       "A single small fix for copy_process() in kernel/fork.c:
      
        With Al's removal of ksys_close() from cleanup paths in copy_process()
        a bug was introduced. When anon_inode_getfile() failed the cleanup was
        correctly performed but the error code was not propagated to callers
        of copy_process() causing them to operate on a nonsensical pointer.
      
        The fix is a simple on-liner which makes sure that a proper negative
        error code is returned from copy_process().
      
        syzkaller has also verified that the bug is not reproducible with this
        fix"
      
      * tag 'for-linus-20190701' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        fork: return proper negative error code
      8d68d932
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 4b1fe9b5
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "Fix a build failure with the LLVM linker and a module allocation
        failure when KASLR is active:
      
         - Fix module allocation when running with KASLR enabled
      
         - Fix broken build due to bug in LLVM linker (ld.lld)"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64/efi: Mark __efistub_stext_offset as an absolute symbol explicitly
        arm64: kaslr: keep modules inside module region when KASAN is enabled
      4b1fe9b5
    • Olof Johansson's avatar
      Merge tag 'davinci-fixes-for-v5.2-part2' of... · 2659dc8d
      Olof Johansson authored
      
      Merge tag 'davinci-fixes-for-v5.2-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci into arm/fixes
      
      This set of patches fixes regressions introduced in v5.2 kernel when DA8xx
      OHCI driver was converted over to use GPIO regulators.
      
      * tag 'davinci-fixes-for-v5.2-part2' of git://git.kernel.org/pub/scm/linux/kernel/git/nsekhar/linux-davinci:
        ARM: davinci: da830-evm: fix GPIO lookup for OHCI
        ARM: davinci: omapl138-hawk: add missing regulator constraints for OHCI
        ARM: davinci: da830-evm: add missing regulator constraints for OHCI
        + Linux 5.2-rc7
      
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      2659dc8d
    • Linus Walleij's avatar
      gpio/spi: Fix spi-gpio regression on active high CS · fbbf145a
      Linus Walleij authored
      I ran into an intriguing bug caused by
      commit ""spi: gpio: Don't request CS GPIO in DT use-case"
      affecting all SPI GPIO devices with an active high
      chip select line.
      
      The commit switches the CS gpio handling over to the GPIO
      core, which will parse and handle "cs-gpios" from the OF
      node without even calling down to the driver to get the
      job done.
      
      However the GPIO core handles the standard bindings in
      Documentation/devicetree/bindings/spi/spi-controller.yaml
      that specifies that active high CS needs to be specified
      using "spi-cs-high" in the DT node.
      
      The code in drivers/spi/spi-gpio.c never respected this
      and never tried to inspect subnodes to see if they contained
      "spi-cs-high" like the gpiolib OF quirks does. Instead the
      only way to get an active high CS was to tag it in the
      device tree using the flags cell such as
      cs-gpios = <&gpio 4 GPIO_ACTIVE_HIGH>;
      
      This alters the quirks to not inspect the subnodes of SPI
      masters on "spi-gpio" for the standard attribute "spi-cs-high",
      making old device trees work as expected.
      
      This semantic is a bit ambigous, but just allowing the
      flags on the GPIO descriptor to modify polarity is what
      the kernel at large mostly uses so let's encourage that.
      
      Fixes: 249e2632
      
       ("spi: gpio: Don't request CS GPIO in DT use-case")
      Cc: Andrey Smirnov <andrew.smirnov@gmail.com>
      Cc: linux-gpio@vger.kernel.org
      Cc: linux-spi@vger.kernel.org
      Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
      fbbf145a
    • Jiri Kosina's avatar
      ftrace/x86: Anotate text_mutex split between... · 074376ac
      Jiri Kosina authored
      ftrace/x86: Anotate text_mutex split between ftrace_arch_code_modify_post_process() and ftrace_arch_code_modify_prepare()
      
      ftrace_arch_code_modify_prepare() is acquiring text_mutex, while the
      corresponding release is happening in ftrace_arch_code_modify_post_process().
      
      This has already been documented in the code, but let's also make the fact
      that this is intentional clear to the semantic analysis tools such as sparse.
      
      Link: http://lkml.kernel.org/r/nycvar.YFH.7.76.1906292321170.27227@cbobk.fhfr.pm
      
      Fixes: 39611265 ("ftrace/x86: Add a comment to why we take text_mutex in ftrace_arch_code_modify_prepare()")
      Fixes: d5b844a2
      
       ("ftrace/x86: Remove possible deadlock between register_kprobe() and ftrace_run_update_code()")
      Signed-off-by: default avatarJiri Kosina <jkosina@suse.cz>
      Signed-off-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      074376ac
    • Takashi Iwai's avatar
      ALSA: line6: Fix write on zero-sized buffer · 34501219
      Takashi Iwai authored
      
      
      LINE6 drivers allocate the buffers based on the value returned from
      usb_maxpacket() calls.  The manipulated device may return zero for
      this, and this results in the kmalloc() with zero size (and it may
      succeed) while the other part of the driver code writes the packet
      data with the fixed size -- which eventually overwrites.
      
      This patch adds a simple sanity check for the invalid buffer size for
      avoiding that problem.
      
      Reported-by: default avatar <syzbot+219f00fb49874dcaea17@syzkaller.appspotmail.com>
      Cc: <stable@vger.kernel.org>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      34501219
  5. Jul 02, 2019