Skip to content
  1. Mar 13, 2021
    • Linus Torvalds's avatar
      Merge tag 'gfs2-v5.12-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · b77b5fdd
      Linus Torvalds authored
      Pull gfs2 fixes from Andreas Gruenbacher:
       "Various gfs2 fixes"
      
      * tag 'gfs2-v5.12-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: bypass log flush if the journal is not live
        gfs2: bypass signal_our_withdraw if no journal
        gfs2: fix use-after-free in trans_drain
        gfs2: make function gfs2_make_fs_ro() to void type
      b77b5fdd
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 17f8fc19
      Linus Torvalds authored
      Pull arm64 fixes from Will Deacon:
       "We've got a smattering of changes all over the place which we've
        acrued since -rc1. To my knowledge, there aren't any pending issues at
        the moment, but there's still plenty of time for something else to
        crop up...
      
        Summary:
      
         - Fix booting a 52-bit-VA-aware kernel on Qualcomm Amberwing
      
         - Fix pfn_valid() not to reject all ZONE_DEVICE memory
      
         - Fix memory tagging setup for hotplugged memory regions
      
         - Fix KASAN tagging in page_alloc() when DEBUG_VIRTUAL is enabled
      
         - Fix accidental truncation of CPU PMU event counters
      
         - Fix error code initialisation when failing probe of DMC620 PMU
      
         - Fix return value initialisation for sve-ptrace selftest
      
         - Drop broken support for CMDLINE_EXTEND"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        perf/arm_dmc620_pmu: Fix error return code in dmc620_pmu_device_probe()
        arm64: mm: remove unused __cpu_uses_extended_idmap[_level()]
        arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds
        arm64: perf: Fix 64-bit event counter read truncation
        arm64/mm: Fix __enable_mmu() for new TGRAN range values
        kselftest: arm64: Fix exit code of sve-ptrace
        arm64: mte: Map hotplugged memory as Normal Tagged
        arm64: kasan: fix page_alloc tagging with DEBUG_VIRTUAL
        arm64/mm: Reorganize pfn_valid()
        arm64/mm: Fix pfn_valid() for ZONE_DEVICE based memory
        arm64/mm: Drop THP conditionality from FORCE_MAX_ZONEORDER
        arm64/mm: Drop redundant ARCH_WANT_HUGE_PMD_SHARE
        arm64: Drop support for CMDLINE_EXTEND
        arm64: cpufeatures: Fix handling of CONFIG_CMDLINE for idreg overrides
      17f8fc19
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.12b-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 6bf8819f
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
       "Two fix series and a single cleanup:
      
         - a small cleanup patch to remove unneeded symbol exports
      
         - a series to cleanup Xen grant handling (avoiding allocations in
           some cases, and using common defines for "invalid" values)
      
         - a series to address a race issue in Xen event channel handling"
      
      * tag 'for-linus-5.12b-rc3-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        Xen/gntdev: don't needlessly use kvcalloc()
        Xen/gnttab: introduce common INVALID_GRANT_{HANDLE,REF}
        Xen/gntdev: don't needlessly allocate k{,un}map_ops[]
        Xen: drop exports of {set,clear}_foreign_p2m_mapping()
        xen/events: avoid handling the same event on two cpus at the same time
        xen/events: don't unmask an event channel when an eoi is pending
        xen/events: reset affinity of 2-level event when tearing it down
      6bf8819f
  2. Mar 12, 2021
    • Bob Peterson's avatar
      gfs2: bypass log flush if the journal is not live · 0efc4976
      Bob Peterson authored
      Patch fe3e3976 ("gfs2: Rework the log space allocation logic")
      changed gfs2_log_flush to reserve a set of journal blocks in case no
      transaction is active.  However, gfs2_log_flush also gets called in
      cases where we don't have an active journal, for example, for spectator
      mounts.  In that case, trying to reserve blocks would sleep forever, but
      we want gfs2_log_flush to be a no-op instead.
      
      Fixes: fe3e3976
      
       ("gfs2: Rework the log space allocation logic")
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      0efc4976
    • Bob Peterson's avatar
      gfs2: bypass signal_our_withdraw if no journal · d5bf630f
      Bob Peterson authored
      
      
      Before this patch, function signal_our_withdraw referenced the journal
      inode immediately. But corrupt file systems may have some invalid
      journals, in which case our attempt to read it in will withdraw and the
      resulting signal_our_withdraw would dereference the NULL value.
      
      This patch adds a check to signal_our_withdraw so that if the journal
      has not yet been initialized, it simply returns and does the old-style
      withdraw.
      
      Thanks, Andy Price, for his analysis.
      
      Reported-by: default avatar <syzbot+50a8a9cf8127f2c6f5df@syzkaller.appspotmail.com>
      Fixes: 601ef0d5
      
       ("gfs2: Force withdraw to replay journals and wait for it to finish")
      Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
      Signed-off-by: default avatarAndreas Gruenbacher <agruenba@redhat.com>
      d5bf630f
    • Wei Yongjun's avatar
      perf/arm_dmc620_pmu: Fix error return code in dmc620_pmu_device_probe() · c8e38668
      Wei Yongjun authored
      Fix to return negative error code -ENOMEM from the error handling
      case instead of 0, as done elsewhere in this function.
      
      Fixes: 53c218da
      
       ("driver/perf: Add PMU driver for the ARM DMC-620 memory controller")
      Reported-by: default avatarHulk Robot <hulkci@huawei.com>
      Signed-off-by: default avatarWei Yongjun <weiyongjun1@huawei.com>
      Link: https://lore.kernel.org/r/20210312080421.277562-1-weiyongjun1@huawei.com
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      c8e38668
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2021-03-12-1' of git://anongit.freedesktop.org/drm/drm · f78d76e7
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular fixes for rc3. The i915 pull was based on the rc1 tag so I
        just cherry-picked the single fix from there to avoid it. The misc and
        amd trees seem to be on okay bases.
      
        It's a bunch of fixes across the tree, amdgpu has most of them a few
        ttm fixes around qxl, and nouveau.
      
        core:
         - Clear holes when converting compat ioctl's between 32-bits and
           64-bits.
      
        docs:
         - Use gitlab for drm bugzilla now.
      
        ttm:
         - Fix ttm page pool accounting.
      
        fbdev:
         - Fix oops in drm_fbdev_cleanup()
      
        shmem:
         - Assorted fixes for shmem helpers.
      
        qxl:
         - unpin qxl bos created as pinned when freeing them, and make ttm
           only warn once on this behavior.
         - Zero head.surface_id correctly in qxl.
      
        atyfb:
         - Use LCD management for atyfb on PPC_MAC.
      
        meson:
         - Shutdown kms poll helper in meson correctly.
      
        nouveau:
         - fix regression in bo syncing
      
        i915:
         - Wedge the GPU if command parser setup fails
      
        amdgpu:
         - Fix aux backlight control
         - Add a backlight override parameter
         - Various display fixes
         - PCIe DPM fix for vega
         - Polaris watermark fixes
         - Additional S0ix fix
      
        radeon:
         - Fix GEM regression
         - Fix AGP dependency handling"
      
      * tag 'drm-fixes-2021-03-12-1' of git://anongit.freedesktop.org/drm/drm: (33 commits)
        drm/nouveau: fix dma syncing for loops (v2)
        drm/i915: Wedge the GPU if command parser setup fails
        drm/compat: Clear bounce structures
        drm/shmem-helpers: vunmap: Don't put pages for dma-buf
        drm: meson_drv add shutdown function
        drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff
        drm/shmem-helper: Check for purged buffers in fault handler
        qxl: Fix uninitialised struct field head.surface_id
        drm/ttm: Fix TTM page pool accounting
        drm/ttm: soften TTM warnings
        drm: Use USB controller's DMA mask when importing dmabufs
        MAINTAINERS: update drm bug reporting URL
        fbdev: atyfb: use LCD management functions for PPC_PMAC also
        fbdev: atyfb: always declare aty_{ld,st}_lcd()
        drm/qxl: fix lockdep issue in qxl_alloc_release_reserved
        drm/qxl: unpin release objects
        drm/fb-helper: only unmap if buffer not null
        drm/amdgpu: fix S0ix handling when the CONFIG_AMD_PMC=m
        drm/radeon: fix AGP dependency
        drm/radeon: also init GEM funcs in radeon_gem_prime_import_sg_table
        ...
      f78d76e7
    • Dave Airlie's avatar
      drm/nouveau: fix dma syncing for loops (v2) · 4042160c
      Dave Airlie authored
      The index variable should only be increased in one place.
      
      Noticed this while trying to track down another oops.
      
      v2: use while loop.
      
      Fixes: f295c8cf
      
       ("drm/nouveau: fix dma syncing warning with debugging on.")
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Reviewed-by: default avatarMichael J. Ruhl <michael.j.ruhl@intel.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210311043527.5376-1-airlied@gmail.com
      4042160c
    • Tvrtko Ursulin's avatar
      drm/i915: Wedge the GPU if command parser setup fails · a829f033
      Tvrtko Ursulin authored
      Commit 311a50e7
      
       ("drm/i915: Add support for mandatory cmdparsing")
      introduced mandatory command parsing but setup failures were not
      translated into wedging the GPU which was probably the intent.
      
      Possible errors come in two categories. Either the sanity check on
      internal tables has failed, which should be caught in CI unless an
      affected platform would be missed in testing; or memory allocation failure
      happened during driver load, which should be extremely unlikely but for
      correctness should still be handled.
      
      v2:
       * Tidy coding style. (Chris)
      
      [airlied: cherry-picked to avoid rc1 base]
      Signed-off-by: default avatarTvrtko Ursulin <tvrtko.ursulin@intel.com>
      Fixes: 311a50e7
      
       ("drm/i915: Add support for mandatory cmdparsing")
      Cc: Jon Bloomfield <jon.bloomfield@intel.com>
      Cc: Joonas Lahtinen <joonas.lahtinen@linux.intel.com>
      Cc: Chris Wilson <chris.p.wilson@intel.com>
      Reviewed-by: default avatarChris Wilson <chris.p.wilson@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210302114213.1102223-1-tvrtko.ursulin@linux.intel.com
      (cherry picked from commit 5a1a659762d35a6dc51047c9127c011303c77b7f)
      Signed-off-by: default avatarRodrigo Vivi <rodrigo.vivi@intel.com>
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      a829f033
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.12-2021-03-10' of... · fb198483
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-5.12-2021-03-10' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.12-2021-03-10:
      
      amdgpu:
      - Fix aux backlight control
      - Add a backlight override parameter
      - Various display fixes
      - PCIe DPM fix for vega
      - Polaris watermark fixes
      - Additional S0ix fix
      
      radeon:
      - Fix GEM regression
      - Fix AGP dependency handling
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210310221141.3974-1-alexander.deucher@amd.com
      fb198483
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2021-03-11' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes · e0da9686
      Dave Airlie authored
      
      
      drm-misc-fixes for rc3, rebased on rc2:
      - Fix oops in drm_fbdev_cleanup()
      - unpin qxl bos created as pinned when freeing them,
        and make ttm only warn once on this behavior.
      - Use LCD management for atyfb on PPC_MAC.
      - Use gitlab for drm bugzilla now.
      - Fix ttm page pool accounting.
      - Zero head.surface_id correctly in qxl.
      - Assorted fixes for shmem helpers.
      - Shutdown kms poll helper in meson correctly.
      - Clear holes when converting compat ioctl's between 32-bits and 64-bits.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/4606f08e-d0e8-c543-5e96-cee2fd728a41@linux.intel.com
      e0da9686
    • Linus Torvalds's avatar
      Merge tag 'media/v5.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media · 28806e4d
      Linus Torvalds authored
      Pull media fixes from Mauro Carvalho Chehab:
       "A couple of fixes:
      
         - fix a build issue with CEC
      
         - fix a deadlock at usbtv driver
      
         - fix some null pointer address issues at vsp1 driver
      
         - fix a wrong bitmap setting at rkisp1 driver"
      
      * tag 'media/v5.12-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
        media: rkisp1: params: fix wrong bits settings
        media: v4l: vsp1: Fix uif null pointer access
        media: v4l: vsp1: Fix bru null pointer access
        media: usbtv: Fix deadlock on suspend
        media: rc: compile rc-cec.c into rc-core
      28806e4d
  3. Mar 11, 2021
    • Ard Biesheuvel's avatar
      arm64: mm: remove unused __cpu_uses_extended_idmap[_level()] · 30b26757
      Ard Biesheuvel authored
      
      
      These routines lost all existing users during the latest merge window so
      we can remove them. This avoids the need to fix them in the context of
      fixing a regression related to the ID map on 52-bit VA kernels.
      
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Link: https://lore.kernel.org/r/20210310171515.416643-3-ardb@kernel.org
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      30b26757
    • Ard Biesheuvel's avatar
      arm64: mm: use a 48-bit ID map when possible on 52-bit VA builds · 7ba8f2b2
      Ard Biesheuvel authored
      52-bit VA kernels can run on hardware that is only 48-bit capable, but
      configure the ID map as 52-bit by default. This was not a problem until
      recently, because the special T0SZ value for a 52-bit VA space was never
      programmed into the TCR register anwyay, and because a 52-bit ID map
      happens to use the same number of translation levels as a 48-bit one.
      
      This behavior was changed by commit 1401bef7 ("arm64: mm: Always update
      TCR_EL1 from __cpu_set_tcr_t0sz()"), which causes the unsupported T0SZ
      value for a 52-bit VA to be programmed into TCR_EL1. While some hardware
      simply ignores this, Mark reports that Amberwing systems choke on this,
      resulting in a broken boot. But even before that commit, the unsupported
      idmap_t0sz value was exposed to KVM and used to program TCR_EL2 incorrectly
      as well.
      
      Given that we already have to deal with address spaces being either 48-bit
      or 52-bit in size, the cleanest approach seems to be to simply default to
      a 48-bit VA ID map, and only switch to a 52-bit one if the placement of the
      kernel in DRAM requires it. This is guaranteed not to happen unless the
      system is actually 52-bit VA capable.
      
      Fixes: 90ec95cd
      
       ("arm64: mm: Introduce VA_BITS_MIN")
      Reported-by: default avatarMark Salter <msalter@redhat.com>
      Link: http://lore.kernel.org/r/20210310003216.410037-1-msalter@redhat.com
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Link: https://lore.kernel.org/r/20210310171515.416643-2-ardb@kernel.org
      Signed-off-by: default avatarWill Deacon <will@kernel.org>
      7ba8f2b2
    • Dafna Hirschfeld's avatar
      media: rkisp1: params: fix wrong bits settings · 2025a48c
      Dafna Hirschfeld authored
      The histogram mode is set using 'rkisp1_params_set_bits'.
      Only the bits of the mode should be the value argument for
      that function. Otherwise bits outside the mode mask are
      turned on which is not what was intended.
      
      Fixes: bae1155c
      
       ("media: staging: rkisp1: add output device for parameters")
      Signed-off-by: default avatarDafna Hirschfeld <dafna.hirschfeld@collabora.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      2025a48c
    • Biju Das's avatar
      media: v4l: vsp1: Fix uif null pointer access · 6732f313
      Biju Das authored
      RZ/G2L SoC has no UIF. This patch fixes null pointer access, when UIF
      module is not used.
      
      Fixes: 5e824f98
      
      ("media: v4l: vsp1: Integrate DISCOM in display pipeline")
      Signed-off-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      6732f313
    • Biju Das's avatar
      media: v4l: vsp1: Fix bru null pointer access · ac8d82f5
      Biju Das authored
      RZ/G2L SoC has only BRS. This patch fixes null pointer access,when only
      BRS is enabled.
      
      Fixes: cbb7fa49
      
      ("media: v4l: vsp1: Rename BRU to BRx")
      Signed-off-by: default avatarBiju Das <biju.das.jz@bp.renesas.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      ac8d82f5
    • Maxim Mikityanskiy's avatar
      media: usbtv: Fix deadlock on suspend · 8a7e27fd
      Maxim Mikityanskiy authored
      usbtv doesn't support power management, so on system suspend the
      .disconnect callback of the driver is called. The teardown sequence
      includes a call to snd_card_free. Its implementation waits until the
      refcount of the sound card device drops to zero, however, if its file is
      open, snd_card_file_add takes a reference, which can't be dropped during
      the suspend, because the userspace processes are already frozen at this
      point. snd_card_free waits for completion forever, leading to a hang on
      suspend.
      
      This commit fixes this deadlock condition by replacing snd_card_free
      with snd_card_free_when_closed, that doesn't wait until all references
      are released, allowing suspend to progress.
      
      Fixes: 63ddf68d
      
       ("[media] usbtv: add audio support")
      Signed-off-by: default avatarMaxim Mikityanskiy <maxtram95@gmail.com>
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      8a7e27fd
    • Hans Verkuil's avatar
      media: rc: compile rc-cec.c into rc-core · f09f9f93
      Hans Verkuil authored
      
      
      The rc-cec keymap is unusual in that it can't be built as a module,
      instead it is registered directly in rc-main.c if CONFIG_MEDIA_CEC_RC
      is set. This is because it can be called from drm_dp_cec_set_edid() via
      cec_register_adapter() in an asynchronous context, and it is not
      allowed to use request_module() to load rc-cec.ko in that case. Trying to
      do so results in a 'WARN_ON_ONCE(wait && current_is_async())'.
      
      Since this keymap is only used if CONFIG_MEDIA_CEC_RC is set, we
      just compile this keymap into the rc-core module and never as a
      separate module.
      
      Signed-off-by: default avatarHans Verkuil <hverkuil-cisco@xs4all.nl>
      Fixes: 2c6d1fff
      
       (drm: add support for DisplayPort CEC-Tunneling-over-AUX)
      Reported-by: default avatarHans de Goede <hdegoede@redhat.com>
      Signed-off-by: default avatarSean Young <sean@mess.org>
      Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
      f09f9f93
    • Daniel Vetter's avatar
      drm/compat: Clear bounce structures · de066e11
      Daniel Vetter authored
      
      
      Some of them have gaps, or fields we don't clear. Native ioctl code
      does full copies plus zero-extends on size mismatch, so nothing can
      leak. But compat is more hand-rolled so need to be careful.
      
      None of these matter for performance, so just memset.
      
      Also I didn't fix up the CONFIG_DRM_LEGACY or CONFIG_DRM_AGP ioctl, those
      are security holes anyway.
      
      Acked-by: default avatarMaxime Ripard <mripard@kernel.org>
      Reported-by: syzbot+620cf21140fc7e772a5d@syzkaller.appspotmail.com # vblank ioctl
      Cc: syzbot+620cf21140fc7e772a5d@syzkaller.appspotmail.com
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210222100643.400935-1-daniel.vetter@ffwll.ch
      (cherry picked from commit e926c474
      
      )
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      de066e11
    • Noralf Trønnes's avatar
      drm/shmem-helpers: vunmap: Don't put pages for dma-buf · 64e194e2
      Noralf Trønnes authored
      dma-buf importing was reworked in commit 7d2cd72a
      
      
      ("drm/shmem-helpers: Simplify dma-buf importing"). Before that commit
      drm_gem_shmem_prime_import_sg_table() did set ->pages_use_count=1 and
      drm_gem_shmem_vunmap_locked() could call drm_gem_shmem_put_pages()
      unconditionally. Now without the use count set, put pages is called also
      on dma-bufs. Fix this by only putting pages if it's not imported.
      
      Signed-off-by: default avatarNoralf Trønnes <noralf@tronnes.org>
      Fixes: 7d2cd72a
      
       ("drm/shmem-helpers: Simplify dma-buf importing")
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Tested-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210219122203.51130-1-noralf@tronnes.org
      (cherry picked from commit cdea7251
      
      )
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      64e194e2
    • Artem Lapkin's avatar
      drm: meson_drv add shutdown function · fa0c16ca
      Artem Lapkin authored
      Problem: random stucks on reboot stage about 1/20 stuck/reboots
      // debug kernel log
      [    4.496660] reboot: kernel restart prepare CMD:(null)
      [    4.498114] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown begin
      [    4.503949] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown domain 0:VPU...
      ...STUCK...
      
      Solution: add shutdown function to meson_drm driver
      // debug kernel log
      [    5.231896] reboot: kernel restart prepare CMD:(null)
      [    5.246135] [drm:meson_drv_shutdown]
      ...
      [    5.259271] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown begin
      [    5.274688] meson_ee_pwrc c883c000.system-controller:power-controller: shutdown domain 0:VPU...
      [    5.338331] reboot: Restarting system
      [    5.358293] psci: PSCI_0_2_FN_SYSTEM_RESET reboot_mode:0 cmd:(null)
      bl31 reboot reason: 0xd
      bl31 reboot reason: 0x0
      system cmd  1.
      ...REBOOT...
      
      Tested: on VIM1 VIM2 VIM3 VIM3L khadas sbcs - 1000+ successful reboots
      and Odroid boards, WeTek Play2 (GXBB)
      
      Fixes: bbbe775e
      
       ("drm: Add support for Amlogic Meson Graphic Controller")
      Signed-off-by: default avatarArtem Lapkin <art@khadas.com>
      Tested-by: default avatarChristian Hewitt <christianshewitt@gmail.com>
      Acked-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
      Acked-by: default avatarKevin Hilman <khilman@baylibre.com>
      Signed-off-by: default avatarNeil Armstrong <narmstrong@baylibre.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210302042202.3728113-1-art@khadas.com
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      fa0c16ca
    • Neil Roberts's avatar
      drm/shmem-helper: Don't remove the offset in vm_area_struct pgoff · 11d5a474
      Neil Roberts authored
      When mmapping the shmem, it would previously adjust the pgoff in the
      vm_area_struct to remove the fake offset that is added to be able to
      identify the buffer. This patch removes the adjustment and makes the
      fault handler use the vm_fault address to calculate the page offset
      instead. Although using this address is apparently discouraged, several
      DRM drivers seem to be doing it anyway.
      
      The problem with removing the pgoff is that it prevents
      drm_vma_node_unmap from working because that searches the mapping tree
      by address. That doesn't work because all of the mappings are at offset
      0. drm_vma_node_unmap is being used by the shmem helpers when purging
      the buffer.
      
      This fixes a bug in Panfrost which is using drm_gem_shmem_purge. Without
      this the mapping for the purged buffer can still be accessed which might
      mean it would access random pages from other buffers
      
      v2: Don't check whether the unsigned page_offset is less than 0.
      
      Cc: stable@vger.kernel.org
      Fixes: 17acb9f3
      
       ("drm/shmem: Add madvise state and purge helpers")
      Signed-off-by: default avatarNeil Roberts <nroberts@igalia.com>
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Signed-off-by: default avatarSteven Price <steven.price@arm.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210223155125.199577-3-nroberts@igalia.com
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      11d5a474
    • Neil Roberts's avatar
      drm/shmem-helper: Check for purged buffers in fault handler · d611b4a0
      Neil Roberts authored
      When a buffer is madvised as not needed and then purged, any attempts to
      access the buffer from user-space should cause a bus fault. This patch
      adds a check for that.
      
      Cc: stable@vger.kernel.org
      Fixes: 17acb9f3
      
       ("drm/shmem: Add madvise state and purge helpers")
      Signed-off-by: default avatarNeil Roberts <nroberts@igalia.com>
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Signed-off-by: default avatarSteven Price <steven.price@arm.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210223155125.199577-2-nroberts@igalia.com
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      d611b4a0
    • Colin Ian King's avatar
      qxl: Fix uninitialised struct field head.surface_id · 738acd49
      Colin Ian King authored
      The surface_id struct field in head is not being initialized and
      static analysis warns that this is being passed through to
      dev->monitors_config->heads[i] on an assignment. Clear up this
      warning by initializing it to zero.
      
      Addresses-Coverity: ("Uninitialized scalar variable")
      Fixes: a6d3c4d7
      
       ("qxl: hook monitors_config updates into crtc, not encoder.")
      Signed-off-by: default avatarColin Ian King <colin.king@canonical.com>
      Link: http://patchwork.freedesktop.org/patch/msgid/20210304094928.2280722-1-colin.king@canonical.com
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      738acd49
    • Anthony DeRossi's avatar
      drm/ttm: Fix TTM page pool accounting · ca63d76f
      Anthony DeRossi authored
      Freed pages are not subtracted from the allocated_pages counter in
      ttm_pool_type_fini(), causing a leak in the count on device removal.
      The next shrinker invocation loops forever trying to free pages that are
      no longer in the pool:
      
        rcu: INFO: rcu_sched self-detected stall on CPU
        rcu:  3-....: (9998 ticks this GP) idle=54e/1/0x4000000000000000 softirq=434857/434857 fqs=2237
          (t=10001 jiffies g=2194533 q=49211)
        NMI backtrace for cpu 3
        CPU: 3 PID: 1034 Comm: kswapd0 Tainted: P           O      5.11.0-com #1
        Hardware name: System manufacturer System Product Name/PRIME X570-PRO, BIOS 1405 11/19/2019
        Call Trace:
         <IRQ>
         ...
         </IRQ>
         sysvec_apic_timer_interrupt+0x77/0x80
         asm_sysvec_apic_timer_interrupt+0x12/0x20
        RIP: 0010:mutex_unlock+0x16/0x20
        Code: e7 48 8b 70 10 e8 7a 53 77 ff eb aa e8 43 6c ff ff 0f 1f 00 65 48 8b 14 25 00 6d 01 00 31 c9 48 89 d0 f0 48 0f b1 0f 48 39 c2 <74> 05 e9 e3 fe ff ff c3 66 90 48 8b 47 20 48 85 c0 74 0f 8b 50 10
        RSP: 0018:ffffbdb840797be8 EFLAGS: 00000246
        RAX: ffff9ff445a41c00 RBX: ffffffffc02a9ef8 RCX: 0000000000000000
        RDX: ffff9ff445a41c00 RSI: ffffbdb840797c78 RDI: ffffffffc02a9ac0
        RBP: 0000000000000080 R08: 0000000000000000 R09: ffffbdb840797c80
        R10: 0000000000000000 R11: fffffffffffffff5 R12: 0000000000000000
        R13: 0000000000000000 R14: 0000000000000084 R15: ffffffffc02a9a60
         ttm_pool_shrink+0x7d/0x90 [ttm]
         ttm_pool_shrinker_scan+0x5/0x20 [ttm]
         do_shrink_slab+0x13a/0x1a0
      ...
      
      debugfs shows the incorrect total:
      
        $ cat /sys/kernel/debug/dri/0/ttm_page_pool
                  --- 0--- --- 1--- --- 2--- --- 3--- --- 4--- --- 5--- --- 6--- --- 7--- --- 8--- --- 9--- ---10---
        wc      :        0        0        0        0        0        0        0        0        0        0        0
        uc      :        0        0        0        0        0        0        0        0        0        0        0
        wc 32   :        0        0        0        0        0        0        0        0        0        0        0
        uc 32   :        0        0        0        0        0        0        0        0        0        0        0
        DMA uc  :        0        0        0        0        0        0        0        0        0        0        0
        DMA wc  :        0        0        0        0        0        0        0        0        0        0        0
        DMA     :        0        0        0        0        0        0        0        0        0        0        0
      
        total   :     3029 of  8244261
      
      Using ttm_pool_type_take() to remove pages from the pool before freeing
      them correctly accounts for the freed pages.
      
      Fixes: d099fc8f
      
       ("drm/ttm: new TT backend allocation pool v3")
      Signed-off-by: default avatarAnthony DeRossi <ajderossi@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210303011723.22512-1-ajderossi@gmail.com
      Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      ca63d76f
    • Christian König's avatar
      drm/ttm: soften TTM warnings · d228f8d8
      Christian König authored
      
      
      QXL indeed unrefs pinned BOs and the warnings are spamming peoples log files.
      
      Make sure we warn only once until the QXL driver is fixed.
      
      Signed-off-by: default avatarChristian König <christian.koenig@amd.com>
      References: https://lore.kernel.org/lkml/YD+eYcMMcdlXB8PY@alley/
      Link: https://patchwork.freedesktop.org/patch/422834/
      Reviewed-by: default avatarDaniel Vetter <daniel@ffwll.ch>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      d228f8d8
    • Thomas Zimmermann's avatar
      drm: Use USB controller's DMA mask when importing dmabufs · 659ab7a4
      Thomas Zimmermann authored
      
      
      USB devices cannot perform DMA and hence have no dma_mask set in their
      device structure. Therefore importing dmabuf into a USB-based driver
      fails, which breaks joining and mirroring of display in X11.
      
      For USB devices, pick the associated USB controller as attachment device.
      This allows the DRM import helpers to perform the DMA setup. If the DMA
      controller does not support DMA transfers, we're out of luck and cannot
      import. Our current USB-based DRM drivers don't use DMA, so the actual
      DMA device is not important.
      
      Tested by joining/mirroring displays of udl and radeon under Gnome/X11.
      
      v8:
      	* release dmadev if device initialization fails (Noralf)
      	* fix commit description (Noralf)
      v7:
      	* fix use-before-init bug in gm12u320 (Dan)
      v6:
      	* implement workaround in DRM drivers and hold reference to
      	  DMA device while USB device is in use
      	* remove dev_is_usb() (Greg)
      	* collapse USB helper into usb_intf_get_dma_device() (Alan)
      	* integrate Daniel's TODO statement (Daniel)
      	* fix typos (Greg)
      v5:
      	* provide a helper for USB interfaces (Alan)
      	* add FIXME item to documentation and TODO list (Daniel)
      v4:
      	* implement workaround with USB helper functions (Greg)
      	* use struct usb_device->bus->sysdev as DMA device (Takashi)
      v3:
      	* drop gem_create_object
      	* use DMA mask of USB controller, if any (Daniel, Christian, Noralf)
      v2:
      	* move fix to importer side (Christian, Daniel)
      	* update SHMEM and CMA helpers for new PRIME callbacks
      
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Fixes: 6eb0233e
      
       ("usb: don't inherity DMA properties for USB devices")
      Tested-by: default avatarPavel Machek <pavel@ucw.cz>
      Reviewed-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Acked-by: default avatarChristian König <christian.koenig@amd.com>
      Acked-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Acked-by: default avatarNoralf Trønnes <noralf@tronnes.org>
      Cc: Christoph Hellwig <hch@lst.de>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Cc: <stable@vger.kernel.org> # v5.10+
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210303133229.3288-1-tzimmermann@suse.de
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      659ab7a4
    • Pavel Turinský's avatar
      MAINTAINERS: update drm bug reporting URL · 301469c1
      Pavel Turinský authored
      
      
      The original bugzilla seems to be read-only now, linking to the gitlab
      for new bugs.
      
      Signed-off-by: default avatarPavel Turinský <ledoian@kam.mff.cuni.cz>
      Cc: trivial@kernel.org
      Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210228163658.54962-1-ledoian@kam.mff.cuni.cz
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      301469c1
    • Randy Dunlap's avatar
      fbdev: atyfb: use LCD management functions for PPC_PMAC also · b2664093
      Randy Dunlap authored
      
      
      Include PPC_PMAC in the configs that use aty_ld_lcd() and
      aty_st_lcd() implementations so that the PM code may work
      correctly for PPC_PMAC.
      
      Suggested-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: linux-fbdev@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210226173008.18236-1-rdunlap@infradead.org
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      b2664093
    • Randy Dunlap's avatar
      fbdev: atyfb: always declare aty_{ld,st}_lcd() · 39a3898a
      Randy Dunlap authored
      The previously added stubs for aty_{ld,}st_lcd() make it
      so that these functions are used regardless of the config
      options that were guarding them, so remove the #ifdef/#endif
      lines and make their declarations always visible.
      This fixes build warnings that were reported by clang:
      
         drivers/video/fbdev/aty/atyfb_base.c:180:6: warning: no previous prototype for function 'aty_st_lcd' [-Wmissing-prototypes]
         void aty_st_lcd(int index, u32 val, const struct atyfb_par *par)
              ^
         drivers/video/fbdev/aty/atyfb_base.c:180:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
         void aty_st_lcd(int index, u32 val, const struct atyfb_par *par)
      
         drivers/video/fbdev/aty/atyfb_base.c:183:5: warning: no previous prototype for function 'aty_ld_lcd' [-Wmissing-prototypes]
         u32 aty_ld_lcd(int index, const struct atyfb_par *par)
             ^
         drivers/video/fbdev/aty/atyfb_base.c:183:1: note: declare 'static' if the function is not intended to be used outside of this translation unit
         u32 aty_ld_lcd(int index, const struct atyfb_par *par)
      
      They should not be marked as static since they are used in
      mach64_ct.c.
      
      Fixes: bfa5782b
      
       ("fbdev: atyfb: add stubs for aty_{ld,st}_lcd()")
      Signed-off-by: default avatarRandy Dunlap <rdunlap@infradead.org>
      Reported-by: default avatarkernel test robot <lkp@intel.com>
      Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
      Cc: Nick Desaulniers <ndesaulniers@google.com>
      Cc: linux-fbdev@vger.kernel.org
      Cc: dri-devel@lists.freedesktop.org
      Cc: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Jani Nikula <jani.nikula@linux.intel.com>
      Signed-off-by: default avatarVille Syrjälä <ville.syrjala@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210224215528.822-1-rdunlap@infradead.org
      Acked-by: default avatarNick Desaulniers <ndesaulniers@google.com>
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      39a3898a
    • Gerd Hoffmann's avatar
      drm/qxl: fix lockdep issue in qxl_alloc_release_reserved · e998d3c8
      Gerd Hoffmann authored
      Call qxl_bo_unpin (which does a reservation) without holding the
      release_mutex lock.  Fixes lockdep (correctly) warning on a possible
      deadlock.
      
      Fixes: e8dd3506
      
       ("drm/qxl: unpin release objects")
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Link: http://patchwork.freedesktop.org/patch/msgid/20210217123213.2199186-5-kraxel@redhat.com
      (cherry picked from commit 19089b76
      
      )
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      e998d3c8
    • Gerd Hoffmann's avatar
      drm/qxl: unpin release objects · e8dd3506
      Gerd Hoffmann authored
      
      
      Balances the qxl_create_bo(..., pinned=true, ...);
      call in qxl_release_bo_alloc().
      
      Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
      Acked-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Link: http://patchwork.freedesktop.org/patch/msgid/20210204145712.1531203-5-kraxel@redhat.com
      (cherry picked from commit 65ffea3c
      
      )
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      e8dd3506
    • Tong Zhang's avatar
      drm/fb-helper: only unmap if buffer not null · 874a52f9
      Tong Zhang authored
      
      
      drm_fbdev_cleanup() can be called when fb_helper->buffer is null, hence
      fb_helper->buffer should be checked before calling
      drm_client_buffer_vunmap(). This buffer is also checked in
      drm_client_framebuffer_delete(), so we should also do the same thing for
      drm_client_buffer_vunmap().
      
      [  199.128742] RIP: 0010:drm_client_buffer_vunmap+0xd/0x20
      [  199.129031] Code: 43 18 48 8b 53 20 49 89 45 00 49 89 55 08 5b 44 89 e0 41 5c 41 5d 41 5e 5d
      c3 0f 1f 00 53 48 89 fb 48 8d 7f 10 e8 73 7d a1 ff <48> 8b 7b 10 48 8d 73 18 5b e9 75 53 fc ff 0
      f 1f 44 00 00 48 b8 00
      [  199.130041] RSP: 0018:ffff888103f3fc88 EFLAGS: 00010282
      [  199.130329] RAX: 0000000000000001 RBX: 0000000000000000 RCX: ffffffff8214d46d
      [  199.130733] RDX: 1ffffffff079c6b9 RSI: 0000000000000246 RDI: ffffffff83ce35c8
      [  199.131119] RBP: ffff888103d25458 R08: 0000000000000001 R09: fffffbfff0791761
      [  199.131505] R10: ffffffff83c8bb07 R11: fffffbfff0791760 R12: 0000000000000000
      [  199.131891] R13: ffff888103d25468 R14: ffff888103d25418 R15: ffff888103f18120
      [  199.132277] FS:  00007f36fdcbb6a0(0000) GS:ffff88815b400000(0000) knlGS:0000000000000000
      [  199.132721] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [  199.133033] CR2: 0000000000000010 CR3: 0000000103d26000 CR4: 00000000000006f0
      [  199.133420] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
      [  199.133807] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
      [  199.134195] Call Trace:
      [  199.134333]  drm_fbdev_cleanup+0x179/0x1a0
      [  199.134562]  drm_fbdev_client_unregister+0x2b/0x40
      [  199.134828]  drm_client_dev_unregister+0xa8/0x180
      [  199.135088]  drm_dev_unregister+0x61/0x110
      [  199.135315]  mgag200_pci_remove+0x38/0x52 [mgag200]
      [  199.135586]  pci_device_remove+0x62/0xe0
      [  199.135806]  device_release_driver_internal+0x148/0x270
      [  199.136094]  driver_detach+0x76/0xe0
      [  199.136294]  bus_remove_driver+0x7e/0x100
      [  199.136521]  pci_unregister_driver+0x28/0xf0
      [  199.136759]  __x64_sys_delete_module+0x268/0x300
      [  199.137016]  ? __ia32_sys_delete_module+0x300/0x300
      [  199.137285]  ? call_rcu+0x3e4/0x580
      [  199.137481]  ? fpregs_assert_state_consistent+0x4d/0x60
      [  199.137767]  ? exit_to_user_mode_prepare+0x2f/0x130
      [  199.138037]  do_syscall_64+0x33/0x40
      [  199.138237]  entry_SYSCALL_64_after_hwframe+0x44/0xae
      [  199.138517] RIP: 0033:0x7f36fdc3dcf7
      
      Signed-off-by: default avatarTong Zhang <ztong0001@gmail.com>
      Fixes: 763aea17
      
       ("drm/fb-helper: Unmap client buffer during shutdown")
      Cc: Thomas Zimmermann <tzimmermann@suse.de>
      Cc: Sam Ravnborg <sam@ravnborg.org>
      Cc: Maxime Ripard <mripard@kernel.org>
      Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
      Cc: David Airlie <airlied@linux.ie>
      Cc: Daniel Vetter <daniel@ffwll.ch>
      Cc: dri-devel@lists.freedesktop.org
      Cc: <stable@vger.kernel.org> # v5.11+
      Signed-off-by: default avatarThomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20210228044625.171151-1-ztong0001@gmail.com
      Signed-off-by: default avatarMaarten Lankhorst <maarten.lankhorst@linux.intel.com>
      874a52f9
    • Jan Beulich's avatar
      Xen/gntdev: don't needlessly use kvcalloc() · f1d20d86
      Jan Beulich authored
      
      
      Requesting zeroed memory when all of it will be overwritten subsequently
      by all ones is a waste of processing bandwidth. In fact, rather than
      recording zeroed ->grants[], fill that array too with more appropriate
      "invalid" indicators.
      
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      Link: https://lore.kernel.org/r/9a726be2-4893-8ffe-0ef1-b70dd1c229b1@suse.com
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      f1d20d86
    • Jan Beulich's avatar
      Xen/gnttab: introduce common INVALID_GRANT_{HANDLE,REF} · bce21a2b
      Jan Beulich authored
      
      
      It's not helpful if every driver has to cook its own. Generalize
      xenbus'es INVALID_GRANT_HANDLE and pcifront's INVALID_GRANT_REF (which
      shouldn't have expanded to zero to begin with). Use the constants in
      p2m.c and gntdev.c right away, and update field types where necessary so
      they would match with the constants' types (albeit without touching
      struct ioctl_gntdev_grant_ref's ref field, as that's part of the public
      interface of the kernel and would require introducing a dependency on
      Xen's grant_table.h public header).
      
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      Link: https://lore.kernel.org/r/db7c38a5-0d75-d5d1-19de-e5fe9f0b9c48@suse.com
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      bce21a2b
    • Jan Beulich's avatar
      Xen/gntdev: don't needlessly allocate k{,un}map_ops[] · 36caa3fe
      Jan Beulich authored
      
      
      They're needed only in the not-auto-translate (i.e. PV) case; there's no
      point in allocating memory that's never going to get accessed.
      
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Reviewed-by: default avatarJuergen Gross <jgross@suse.com>
      Link: https://lore.kernel.org/r/180d50cb-5531-8952-4bf0-d65c554638ed@suse.com
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      36caa3fe
    • Jan Beulich's avatar
      Xen: drop exports of {set,clear}_foreign_p2m_mapping() · 0f9b05b9
      Jan Beulich authored
      
      
      They're only used internally, and the layering violation they contain
      (x86) or imply (Arm) of calling HYPERVISOR_grant_table_op() strongly
      advise against any (uncontrolled) use from a module. The functions also
      never had users except the ones from drivers/xen/grant-table.c forever
      since their introduction in 3.15.
      
      Signed-off-by: default avatarJan Beulich <jbeulich@suse.com>
      Reviewed-by: default avatarStefano Stabellini <sstabellini@kernel.org>
      Link: https://lore.kernel.org/r/746a5cd6-1446-eda4-8b23-03c1cac30b8d@suse.com
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      0f9b05b9
    • Juergen Gross's avatar
      xen/events: avoid handling the same event on two cpus at the same time · b6622798
      Juergen Gross authored
      
      
      When changing the cpu affinity of an event it can happen today that
      (with some unlucky timing) the same event will be handled on the old
      and the new cpu at the same time.
      
      Avoid that by adding an "event active" flag to the per-event data and
      call the handler only if this flag isn't set.
      
      Cc: stable@vger.kernel.org
      Reported-by: default avatarJulien Grall <julien@xen.org>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJulien Grall <jgrall@amazon.com>
      Link: https://lore.kernel.org/r/20210306161833.4552-4-jgross@suse.com
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      b6622798
    • Juergen Gross's avatar
      xen/events: don't unmask an event channel when an eoi is pending · 25da4618
      Juergen Gross authored
      An event channel should be kept masked when an eoi is pending for it.
      When being migrated to another cpu it might be unmasked, though.
      
      In order to avoid this keep three different flags for each event channel
      to be able to distinguish "normal" masking/unmasking from eoi related
      masking/unmasking and temporary masking. The event channel should only
      be able to generate an interrupt if all flags are cleared.
      
      Cc: stable@vger.kernel.org
      Fixes: 54c9de89
      
       ("xen/events: add a new "late EOI" evtchn framework")
      Reported-by: default avatarJulien Grall <julien@xen.org>
      Signed-off-by: default avatarJuergen Gross <jgross@suse.com>
      Reviewed-by: default avatarJulien Grall <jgrall@amazon.com>
      Reviewed-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Tested-by: default avatarRoss Lagerwall <ross.lagerwall@citrix.com>
      Link: https://lore.kernel.org/r/20210306161833.4552-3-jgross@suse.com
      
      [boris -- corrected Fixed tag format]
      
      Signed-off-by: default avatarBoris Ostrovsky <boris.ostrovsky@oracle.com>
      25da4618