1. 19 Sep, 2020 1 commit
    • Linus Torvalds's avatar
      Merge tag 's390-5.9-6' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · eb5f95f1
      Linus Torvalds authored
      Pull s390 fixes from Vasily Gorbik:
      
       - Fix order in trace_hardirqs_off_caller() to make locking state
         consistent even if the IRQ tracer calls into lockdep again. Touches
         common code. Acked-by Peter Zijlstra.
      
       - Correctly handle secure storage violation exception to avoid kernel
         panic triggered by user space misbehaviour.
      
       - Switch the idle->seqcount over to using raw_write_*() to avoid
        "suspicious RCU usage".
      
       - Fix memory leaks on hard unplug in pci code.
      
       - Use kvmalloc instead of kmalloc for larger allocations in zcrypt.
      
       - Add few missing __init annotations to static functions to avoid
         section mismatch complains when functions are not inlined.
      
      * tag 's390-5.9-6' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390: add 3f program exception handler
        lockdep: fix order in trace_hardirqs_off_caller()
        s390/pci: fix leak of DMA tables on hard unplug
        s390/init: add missing __init annotations
        s390/zcrypt: fix kmalloc 256k failure
        s390/idle: fix suspicious RCU usage
      eb5f95f1
  2. 18 Sep, 2020 12 commits
    • Linus Torvalds's avatar
      Merge tag 'sh-for-5.9-part2' of git://git.libc.org/linux-sh · 92ab97ad
      Linus Torvalds authored
      Pull arch/sh fixes from Rich Felker:
       "Fixes for build and function regression"
      
      * tag 'sh-for-5.9-part2' of git://git.libc.org/linux-sh:
        sh: fix syscall tracing
        sh: remove spurious circular inclusion from asm/smp.h
      92ab97ad
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 69828c47
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Allow CPUs affected by erratum 1418040 to come online late
         (previously we only fixed the other case - CPUs not affected by the
         erratum coming up late).
      
       - Fix branch offset in BPF JIT.
      
       - Defer the stolen time initialisation to the CPU online time from the
         CPU starting time to avoid a (sleep-able) memory allocation in an
         atomic context.
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: paravirt: Initialize steal time when cpu is online
        arm64: bpf: Fix branch offset in JIT
        arm64: Allow CPUs unffected by ARM erratum 1418040 to come in late
      69828c47
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.9-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 5a55d36f
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "Some more powerpc fixes for 5.9:
      
         - Opt us out of the DEBUG_VM_PGTABLE support for now as it's causing
           crashes.
      
         - Fix a long standing bug in our DMA mask handling that was hidden
           until recently, and which caused problems with some drivers.
      
         - Fix a boot failure on systems with large amounts of RAM, and no
           hugepage support and using Radix MMU, only seen in the lab.
      
         - A few other minor fixes.
      
        Thanks to Alexey Kardashevskiy, Aneesh Kumar K.V, Gautham R. Shenoy,
        Hari Bathini, Ira Weiny, Nick Desaulniers, Shirisha Ganta, Vaibhav
        Jain, and Vaidyanathan Srinivasan"
      
      * tag 'powerpc-5.9-5' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/papr_scm: Limit the readability of 'perf_stats' sysfs attribute
        cpuidle: pseries: Fix CEDE latency conversion from tb to us
        powerpc/dma: Fix dma_map_ops::get_required_mask
        Revert "powerpc/build: vdso linker warning for orphan sections"
        powerpc/mm: Remove DEBUG_VM_PGTABLE support on powerpc
        selftests/powerpc: Skip PROT_SAO test in guests/LPARS
        powerpc/book3s64/radix: Fix boot failure with large amount of guest memory
      5a55d36f
    • Linus Torvalds's avatar
      Merge tag 'pm-5.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 794a9965
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These add a new CPU ID to the RAPL power capping driver and prevent
        the ACPI processor idle driver from triggering RCU-lockdep complaints.
      
        Specifics:
      
         - Add support for the Lakefield chip to the RAPL power capping driver
           (Ricardo Neri).
      
         - Modify the ACPI processor idle driver to prevent it from triggering
           RCU-lockdep complaints which has started to happen after recent
           changes in that area (Peter Zijlstra)"
      
      * tag 'pm-5.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI: processor: Take over RCU-idle for C3-BM idle
        cpuidle: Allow cpuidle drivers to take over RCU-idle
        ACPI: processor: Use CPUIDLE_FLAG_TLB_FLUSHED
        ACPI: processor: Use CPUIDLE_FLAG_TIMER_STOP
        powercap: RAPL: Add support for Lakefield
      794a9965
    • Linus Torvalds's avatar
      Merge tag 'sound-5.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 343b529a
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Here is a collection of fixes for 5.9. All look small and are nothing
        scary.
      
        The majority of changes are about ASoC driver- specific fixes, while
        there are a couple of ASoC core fixes (DAI lookup and lockdep stuff)
        and usual HD-audio quirks"
      
      * tag 'sound-5.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (23 commits)
        ALSA: hda/realtek - The Mic on a RedmiBook doesn't work
        ASoC: tlv320adcx140: Wake up codec before accessing register
        ASoC: core: Do not cleanup uninitialized dais on soc_pcm_open failure
        ALSA: hda: fixup headset for ASUS GX502 laptop
        ASoC: Intel: bytcr_rt5640: Add quirk for MPMAN Converter9 2-in-1
        ASoC: Intel: haswell: Fix power transition refactor
        ASoC: tlv320adcx140: Fix accessing uninitialized adcx140->dev
        ASoC: wm8994: Ensure the device is resumed in wm89xx_mic_detect functions
        ASoC: wm8994: Skip setting of the WM8994_MICBIAS register for WM1811
        ASoC: meson: axg-toddr: fix channel order on g12 platforms
        ASoC: soc-core: add snd_soc_find_dai_with_mutex()
        ASoC: qcom: common: Fix refcount imbalance on error
        ASoC: rt700: Fix return check for devm_regmap_init_sdw()
        ASoC: rt715: Fix return check for devm_regmap_init_sdw()
        ASoC: rt711: Fix return check for devm_regmap_init_sdw()
        ASoC: rt1308-sdw: Fix return check for devm_regmap_init_sdw()
        ASoC: max98373: Fix return check for devm_regmap_init_sdw()
        ASoC: ti: fixup ams_delta_mute() function name
        ASoC: pcm3168a: ignore 0 Hz settings
        ASoC: Intel: tgl_max98373: fix a runtime pm issue in multi-thread case
        ...
      343b529a
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 1fd79656
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
       "Two fixes for the AMD IOMMU driver:
      
         - Fix a potential NULL-ptr dereference found by smatch
      
         - Fix interrupt remapping when a device is assigned to a guest and
           AVIC is enabled"
      
      * tag 'iommu-fixes-v5.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
        iommu/amd: Restore IRTE.RemapEn bit for amd_iommu_activate_guest_mode
        iommu/amd: Fix potential @entry null deref
      1fd79656
    • Linus Torvalds's avatar
      Merge tag 'mtd/fixes-for-5.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux · 92373933
      Linus Torvalds authored
      Pull MTD/SPI NOR fixes from Vignesh Raghavendra:
       "Revert patches that caused non volatile Quad Enable bit to be cleared
        for certain SPI NOR flashes during module remove or during shutdown,
        thus breaking backward compatibility"
      Acked-by: default avatarMiquel Raynal <miquel.raynal@bootlin.com>
      
      * tag 'mtd/fixes-for-5.9-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux:
        Revert "mtd: spi-nor: Add capability to disable flash quad mode"
        Revert "mtd: spi-nor: Disable the flash quad mode in spi_nor_restore()"
      92373933
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-cpuidle' · e8dc676e
      Rafael J. Wysocki authored
      * pm-cpuidle:
        ACPI: processor: Take over RCU-idle for C3-BM idle
        cpuidle: Allow cpuidle drivers to take over RCU-idle
        ACPI: processor: Use CPUIDLE_FLAG_TLB_FLUSHED
        ACPI: processor: Use CPUIDLE_FLAG_TIMER_STOP
      e8dc676e
    • Suravee Suthikulpanit's avatar
      iommu/amd: Restore IRTE.RemapEn bit for amd_iommu_activate_guest_mode · e97685ab
      Suravee Suthikulpanit authored
      Commit e52d58d5 ("iommu/amd: Use cmpxchg_double() when updating
      128-bit IRTE") removed an assumption that modify_irte_ga always set
      the valid bit, which requires the callers to set the appropriate value
      for the struct irte_ga.valid bit before calling the function.
      
      Similar to the commit 26e495f3 ("iommu/amd: Restore IRTE.RemapEn
      bit after programming IRTE"), which is for the function
      amd_iommu_deactivate_guest_mode().
      
      The same change is also needed for the amd_iommu_activate_guest_mode().
      Otherwise, this could trigger IO_PAGE_FAULT for the VFIO based VMs with
      AVIC enabled.
      
      Fixes: e52d58d5 ("iommu/amd: Use cmpxchg_double() when updating 128-bit IRTE")
      Reported-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Signed-off-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Tested-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Reviewed-by: default avatarJoao Martins <joao.m.martins@oracle.com>
      Reviewed-by: default avatarMaxim Levitsky <mlevitsk@redhat.com>
      Cc: Joao Martins <joao.m.martins@oracle.com>
      Link: https://lore.kernel.org/r/20200916111720.43913-1-suravee.suthikulpanit@amd.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      e97685ab
    • Joao Martins's avatar
      iommu/amd: Fix potential @entry null deref · 14c4acc5
      Joao Martins authored
      After commit 26e495f3 ("iommu/amd: Restore IRTE.RemapEn bit after
      programming IRTE"), smatch warns:
      
      	drivers/iommu/amd/iommu.c:3870 amd_iommu_deactivate_guest_mode()
              warn: variable dereferenced before check 'entry' (see line 3867)
      
      Fix this by moving the @valid assignment to after @entry has been checked
      for NULL.
      
      Fixes: 26e495f3 ("iommu/amd: Restore IRTE.RemapEn bit after programming IRTE")
      Reported-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarJoao Martins <joao.m.martins@oracle.com>
      Reviewed-by: default avatarSuravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Cc: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
      Link: https://lore.kernel.org/r/20200910171621.12879-1-joao.m.martins@oracle.comSigned-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      14c4acc5
    • Linus Torvalds's avatar
      Merge branch 'for-5.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu · 10b82d51
      Linus Torvalds authored
      Pull percpu fix from Dennis Zhou:
       "This is a fix for the first chunk size calculation where the variable
        length array incorrectly used the number of longs instead of bytes of
        longs.
      
        This came in as a code fix and not a bug report, so I don't think it
        was widely problematic. I believe it worked out due to it being
        memblock memory and alignment requirements working in our favor"
      
      * 'for-5.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu:
        percpu: fix first chunk size calculation for populated bitmap
      10b82d51
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2020-09-18' of git://anongit.freedesktop.org/drm/drm · 4c0449c9
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "A bunch of small fixes, some of the i915 ones have been out for a
        while and got better commit msg explaining some better reasoning
        behind them (hopefully this trend continues).
      
        Otherwise there a few AMD related ones mostly small, one radeon PLL
        regression fix and a bunch of small mediatek fixes.
      
        amdgpu:
         - Sienna Cichlid fixes
         - Navy Flounder fixes
         - DC fixes
      
        amdkfd:
         - Fix a GPU reset crash
         - Fix a memory leak
      
        radeon:
         - Revert a PLL fix that broke other boards
      
        i915:
         - Avoid exposing a partially constructed context
         - Use RCU instead of mutex for context termination list iteration
         - Avoid data race reported by KCSAN
         - Filter wake_flags passed to default_wake_function
      
        mediatek:
         - Fix scrolling of panel
         - Remove duplicated include
         - Use CPU when fail to get cmdq event
         - Add missing put_device() call"
      
      * tag 'drm-fixes-2020-09-18' of git://anongit.freedesktop.org/drm/drm: (21 commits)
        drm/amd/display: Don't log hdcp module warnings in dmesg
        drm/amdgpu: declare ta firmware for navy_flounder
        drm/mediatek: Add missing put_device() call in mtk_hdmi_dt_parse_pdata()
        drm/mediatek: Add missing put_device() call in mtk_drm_kms_init()
        drm/mediatek: Add exception handing in mtk_drm_probe() if component init fail
        drm/mediatek: Add missing put_device() call in mtk_ddp_comp_init()
        drm/mediatek: Use CPU when fail to get cmdq event
        drm/mediatek: Remove duplicated include
        drm/i915: Filter wake_flags passed to default_wake_function
        drm/i915: Be wary of data races when reading the active execlists
        drm/i915/gem: Reduce context termination list iteration guard to RCU
        drm/i915/gem: Delay tracking the GEM context until it is registered
        drm/amdgpu/dc: Require primary plane to be enabled whenever the CRTC is
        drm/radeon: revert "Prefer lower feedback dividers"
        drm/amdgpu: Include sienna_cichlid in USBC PD FW support.
        drm/amd/display: update nv1x stutter latencies
        drm/amd/display: Don't use DRM_ERROR() for DTM add topology
        drm/amd/pm: support runtime pptable update for sienna_cichlid etc.
        drm/amdkfd: fix a memory leak issue
        drm/kfd: fix a system crash issue during GPU recovery
        ...
      4c0449c9
  3. 17 Sep, 2020 10 commits
    • Dave Airlie's avatar
      Merge tag 'mediatek-drm-fixes-5.9' of... · 1f08fde7
      Dave Airlie authored
      Merge tag 'mediatek-drm-fixes-5.9' of https://git.kernel.org/pub/scm/linux/kernel/git/chunkuang.hu/linux into drm-fixes
      
      Mediatek DRM Fixes for Linux 5.9
      
      1. Fix scrolling of panel
      2. Remove duplicated include
      3. Use CPU when fail to get cmdq event
      4. Add missing put_device() call
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Chun-Kuang Hu <chunkuang.hu@kernel.org>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200916231724.30571-1-chunkuang.hu@kernel.org
      1f08fde7
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2020-09-17' of... · d7261b14
      Dave Airlie authored
      Merge tag 'drm-intel-fixes-2020-09-17' of ssh://git.freedesktop.org/git/drm/drm-intel into drm-fixes
      
      drm/i915 fixes for v5.9-rc6:
      - Avoid exposing a partially constructed context
      - Use RCU instead of mutex for context termination list iteration
      - Avoid data race reported by KCSAN
      - Filter wake_flags passed to default_wake_function
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Jani Nikula <jani.nikula@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/87y2l8vlj3.fsf@intel.com
      d7261b14
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-5.9-2020-09-17' of... · 4b1ededb
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-5.9-2020-09-17' of git://people.freedesktop.org/~agd5f/linux into drm-fixes
      
      amd-drm-fixes-5.9-2020-09-17:
      
      amdgpu:
      - Sienna Cichlid fixes
      - Navy Flounder fixes
      - DC fixes
      
      amdkfd:
      - Fix a GPU reset crash
      - Fix a memory leak
      
      radeon:
      - Revert a PLL fix that broke other boards
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Alex Deucher <alexdeucher@gmail.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20200917043818.3717-1-alexander.deucher@amd.com
      4b1ededb
    • Linus Torvalds's avatar
      Merge tag 'mips_fixes_5.9_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · 4cbffc46
      Linus Torvalds authored
      Pull MIPS fixes from Thomas Bogendoerfer:
       "Two small fixes for SNI machines"
      
      * tag 'mips_fixes_5.9_2' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux:
        MIPS: SNI: Fix spurious interrupts
        MIPS: SNI: Fix MIPS_L1_CACHE_SHIFT
      4cbffc46
    • Sunghyun Jin's avatar
      percpu: fix first chunk size calculation for populated bitmap · b3b33d3c
      Sunghyun Jin authored
      Variable populated, which is a member of struct pcpu_chunk, is used as a
      unit of size of unsigned long.
      However, size of populated is miscounted. So, I fix this minor part.
      
      Fixes: 8ab16c43 ("percpu: change the number of pages marked in the first_chunk pop bitmap")
      Cc: <stable@vger.kernel.org> # 4.14+
      Signed-off-by: default avatarSunghyun Jin <mcsmonk@gmail.com>
      Signed-off-by: default avatarDennis Zhou <dennis@kernel.org>
      b3b33d3c
    • Linus Torvalds's avatar
      mm: allow a controlled amount of unfairness in the page lock · 5ef64cc8
      Linus Torvalds authored
      Commit 2a9127fc ("mm: rewrite wait_on_page_bit_common() logic") made
      the page locking entirely fair, in that if a waiter came in while the
      lock was held, the lock would be transferred to the lockers strictly in
      order.
      
      That was intended to finally get rid of the long-reported watchdog
      failures that involved the page lock under extreme load, where a process
      could end up waiting essentially forever, as other page lockers stole
      the lock from under it.
      
      It also improved some benchmarks, but it ended up causing huge
      performance regressions on others, simply because fair lock behavior
      doesn't end up giving out the lock as aggressively, causing better
      worst-case latency, but potentially much worse average latencies and
      throughput.
      
      Instead of reverting that change entirely, this introduces a controlled
      amount of unfairness, with a sysctl knob to tune it if somebody needs
      to.  But the default value should hopefully be good for any normal load,
      allowing a few rounds of lock stealing, but enforcing the strict
      ordering before the lock has been stolen too many times.
      
      There is also a hint from Matthieu Baerts that the fair page coloring
      may end up exposing an ABBA deadlock that is hidden by the usual
      optimistic lock stealing, and while the unfairness doesn't fix the
      fundamental issue (and I'm still looking at that), it avoids it in
      practice.
      
      The amount of unfairness can be modified by writing a new value to the
      'sysctl_page_lock_unfairness' variable (default value of 5, exposed
      through /proc/sys/vm/page_lock_unfairness), but that is hopefully
      something we'd use mainly for debugging rather than being necessary for
      any deep system tuning.
      
      This whole issue has exposed just how critical the page lock can be, and
      how contended it gets under certain locks.  And the main contention
      doesn't really seem to be anything related to IO (which was the origin
      of this lock), but for things like just verifying that the page file
      mapping is stable while faulting in the page into a page table.
      
      Link: https://lore.kernel.org/linux-fsdevel/ed8442fd-6f54-dd84-cd4a-941e8b7ee603@MichaelLarabel.com/
      Link: https://www.phoronix.com/scan.php?page=article&item=linux-50-59&num=1
      Link: https://lore.kernel.org/linux-fsdevel/c560a38d-8313-51fb-b1ec-e904bd8836bc@tessares.net/Reported-and-tested-by: default avatarMichael Larabel <Michael@michaellarabel.com>
      Tested-by: default avatarMatthieu Baerts <matthieu.baerts@tessares.net>
      Cc: Dave Chinner <david@fromorbit.com>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Chris Mason <clm@fb.com>
      Cc: Jan Kara <jack@suse.cz>
      Cc: Amir Goldstein <amir73il@gmail.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      5ef64cc8
    • Andrew Jones's avatar
      arm64: paravirt: Initialize steal time when cpu is online · 75df529b
      Andrew Jones authored
      Steal time initialization requires mapping a memory region which
      invokes a memory allocation. Doing this at CPU starting time results
      in the following trace when CONFIG_DEBUG_ATOMIC_SLEEP is enabled:
      
      BUG: sleeping function called from invalid context at mm/slab.h:498
      in_atomic(): 1, irqs_disabled(): 128, non_block: 0, pid: 0, name: swapper/1
      CPU: 1 PID: 0 Comm: swapper/1 Not tainted 5.9.0-rc5+ #1
      Call trace:
       dump_backtrace+0x0/0x208
       show_stack+0x1c/0x28
       dump_stack+0xc4/0x11c
       ___might_sleep+0xf8/0x130
       __might_sleep+0x58/0x90
       slab_pre_alloc_hook.constprop.101+0xd0/0x118
       kmem_cache_alloc_node_trace+0x84/0x270
       __get_vm_area_node+0x88/0x210
       get_vm_area_caller+0x38/0x40
       __ioremap_caller+0x70/0xf8
       ioremap_cache+0x78/0xb0
       memremap+0x9c/0x1a8
       init_stolen_time_cpu+0x54/0xf0
       cpuhp_invoke_callback+0xa8/0x720
       notify_cpu_starting+0xc8/0xd8
       secondary_start_kernel+0x114/0x180
      CPU1: Booted secondary processor 0x0000000001 [0x431f0a11]
      
      However we don't need to initialize steal time at CPU starting time.
      We can simply wait until CPU online time, just sacrificing a bit of
      accuracy by returning zero for steal time until we know better.
      
      While at it, add __init to the functions that are only called by
      pv_time_init() which is __init.
      Signed-off-by: default avatarAndrew Jones <drjones@redhat.com>
      Fixes: e0685fa2 ("arm64: Retrieve stolen time as paravirtualized guest")
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarSteven Price <steven.price@arm.com>
      Link: https://lore.kernel.org/r/20200916154530.40809-1-drjones@redhat.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      75df529b
    • Ilias Apalodimas's avatar
      arm64: bpf: Fix branch offset in JIT · 32f6865c
      Ilias Apalodimas authored
      Running the eBPF test_verifier leads to random errors looking like this:
      
      [ 6525.735488] Unexpected kernel BRK exception at EL1
      [ 6525.735502] Internal error: ptrace BRK handler: f2000100 [#1] SMP
      [ 6525.741609] Modules linked in: nls_utf8 cifs libdes libarc4 dns_resolver fscache binfmt_misc nls_ascii nls_cp437 vfat fat aes_ce_blk crypto_simd cryptd aes_ce_cipher ghash_ce gf128mul efi_pstore sha2_ce sha256_arm64 sha1_ce evdev efivars efivarfs ip_tables x_tables autofs4 btrfs blake2b_generic xor xor_neon zstd_compress raid6_pq libcrc32c crc32c_generic ahci xhci_pci libahci xhci_hcd igb libata i2c_algo_bit nvme realtek usbcore nvme_core scsi_mod t10_pi netsec mdio_devres of_mdio gpio_keys fixed_phy libphy gpio_mb86s7x
      [ 6525.787760] CPU: 3 PID: 7881 Comm: test_verifier Tainted: G        W         5.9.0-rc1+ #47
      [ 6525.796111] Hardware name: Socionext SynQuacer E-series DeveloperBox, BIOS build #1 Jun  6 2020
      [ 6525.804812] pstate: 20000005 (nzCv daif -PAN -UAO BTYPE=--)
      [ 6525.810390] pc : bpf_prog_c3d01833289b6311_F+0xc8/0x9f4
      [ 6525.815613] lr : bpf_prog_d53bb52e3f4483f9_F+0x38/0xc8c
      [ 6525.820832] sp : ffff8000130cbb80
      [ 6525.824141] x29: ffff8000130cbbb0 x28: 0000000000000000
      [ 6525.829451] x27: 000005ef6fcbf39b x26: 0000000000000000
      [ 6525.834759] x25: ffff8000130cbb80 x24: ffff800011dc7038
      [ 6525.840067] x23: ffff8000130cbd00 x22: ffff0008f624d080
      [ 6525.845375] x21: 0000000000000001 x20: ffff800011dc7000
      [ 6525.850682] x19: 0000000000000000 x18: 0000000000000000
      [ 6525.855990] x17: 0000000000000000 x16: 0000000000000000
      [ 6525.861298] x15: 0000000000000000 x14: 0000000000000000
      [ 6525.866606] x13: 0000000000000000 x12: 0000000000000000
      [ 6525.871913] x11: 0000000000000001 x10: ffff8000000a660c
      [ 6525.877220] x9 : ffff800010951810 x8 : ffff8000130cbc38
      [ 6525.882528] x7 : 0000000000000000 x6 : 0000009864cfa881
      [ 6525.887836] x5 : 00ffffffffffffff x4 : 002880ba1a0b3e9f
      [ 6525.893144] x3 : 0000000000000018 x2 : ffff8000000a4374
      [ 6525.898452] x1 : 000000000000000a x0 : 0000000000000009
      [ 6525.903760] Call trace:
      [ 6525.906202]  bpf_prog_c3d01833289b6311_F+0xc8/0x9f4
      [ 6525.911076]  bpf_prog_d53bb52e3f4483f9_F+0x38/0xc8c
      [ 6525.915957]  bpf_dispatcher_xdp_func+0x14/0x20
      [ 6525.920398]  bpf_test_run+0x70/0x1b0
      [ 6525.923969]  bpf_prog_test_run_xdp+0xec/0x190
      [ 6525.928326]  __do_sys_bpf+0xc88/0x1b28
      [ 6525.932072]  __arm64_sys_bpf+0x24/0x30
      [ 6525.935820]  el0_svc_common.constprop.0+0x70/0x168
      [ 6525.940607]  do_el0_svc+0x28/0x88
      [ 6525.943920]  el0_sync_handler+0x88/0x190
      [ 6525.947838]  el0_sync+0x140/0x180
      [ 6525.951154] Code: d4202000 d4202000 d4202000 d4202000 (d4202000)
      [ 6525.957249] ---[ end trace cecc3f93b14927e2 ]---
      
      The reason is the offset[] creation and later usage, while building
      the eBPF body. The code currently omits the first instruction, since
      build_insn() will increase our ctx->idx before saving it.
      That was fine up until bounded eBPF loops were introduced. After that
      introduction, offset[0] must be the offset of the end of prologue which
      is the start of the 1st insn while, offset[n] holds the
      offset of the end of n-th insn.
      
      When "taken loop with back jump to 1st insn" test runs, it will
      eventually call bpf2a64_offset(-1, 2, ctx). Since negative indexing is
      permitted, the current outcome depends on the value stored in
      ctx->offset[-1], which has nothing to do with our array.
      If the value happens to be 0 the tests will work. If not this error
      triggers.
      
      commit 7c2e988f ("bpf: fix x64 JIT code generation for jmp to 1st insn")
      fixed an indentical bug on x86 when eBPF bounded loops were introduced.
      
      So let's fix it by creating the ctx->offset[] differently. Track the
      beginning of instruction and account for the extra instruction while
      calculating the arm instruction offsets.
      
      Fixes: 2589726d ("bpf: introduce bounded loops")
      Reported-by: default avatarNaresh Kamboju <naresh.kamboju@linaro.org>
      Reported-by: default avatarJiri Olsa <jolsa@kernel.org>
      Co-developed-by: default avatarJean-Philippe Brucker <jean-philippe@linaro.org>
      Co-developed-by: default avatarYauheni Kaliuta <yauheni.kaliuta@redhat.com>
      Signed-off-by: default avatarJean-Philippe Brucker <jean-philippe@linaro.org>
      Signed-off-by: default avatarYauheni Kaliuta <yauheni.kaliuta@redhat.com>
      Signed-off-by: default avatarIlias Apalodimas <ilias.apalodimas@linaro.org>
      Acked-by: default avatarWill Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20200917084925.177348-1-ilias.apalodimas@linaro.orgSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      32f6865c
    • Bhawanpreet Lakha's avatar
      drm/amd/display: Don't log hdcp module warnings in dmesg · 875d369d
      Bhawanpreet Lakha authored
      [Why]
      DTM topology updates happens by default now. This results in DTM
      warnings when hdcp is not even being enabled. This spams the dmesg
      and doesn't effect normal display functionality so it is better to log it
      using DRM_DEBUG_KMS()
      
      [How]
      Change the DRM_WARN() to DRM_DEBUG_KMS()
      Signed-off-by: default avatarBhawanpreet Lakha <Bhawanpreet.Lakha@amd.com>
      Acked-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Reviewed-by: default avatarRodrigo Siqueira <Rodrigo.Siqueira@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      875d369d
    • Jiansong Chen's avatar
      drm/amdgpu: declare ta firmware for navy_flounder · e60c27f1
      Jiansong Chen authored
      The firmware provided via MODULE_FIRMWARE appears in the
      module information. External tools(eg. dracut) may use the
      list of fw files to include them as appropriate in an initramfs,
      thus missing declaration will lead to request firmware failure
      in boot time.
      Signed-off-by: default avatarJiansong Chen <Jiansong.Chen@amd.com>
      Reviewed-by: default avatarTianci Yin <tianci.yin@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      e60c27f1
  4. 16 Sep, 2020 17 commits