1. 20 Apr, 2024 5 commits
    • Linus Torvalds's avatar
      Merge tag 'email' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 39316e5f
      Linus Torvalds authored
      Pull email address update from James Bottomley:
       "My IBM email has stopped working, so update to a working email
        address"
      
      * tag 'email' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        MAINTAINERS: update to working email address
      39316e5f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 81777226
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "This is a bit on the large side, mostly due to two changes:
      
         - Changes to disable some broken PMU virtualization (see below for
           details under "x86 PMU")
      
         - Clean up SVM's enter/exit assembly code so that it can be compiled
           without OBJECT_FILES_NON_STANDARD. This fixes a warning "Unpatched
           return thunk in use. This should not happen!" when running KVM
           selftests.
      
        Everything else is small bugfixes and selftest changes:
      
         - Fix a mostly benign bug in the gfn_to_pfn_cache infrastructure
           where KVM would allow userspace to refresh the cache with a bogus
           GPA. The bug has existed for quite some time, but was exposed by a
           new sanity check added in 6.9 (to ensure a cache is either
           GPA-based or HVA-based).
      
         - Drop an unused param from gfn_to_pfn_cache_invalidate_start() that
           got left behind during a 6.9 cleanup.
      
         - Fix a math goof in x86's hugepage logic for
           KVM_SET_MEMORY_ATTRIBUTES that results in an array overflow
           (detected by KASAN).
      
         - Fix a bug where KVM incorrectly clears root_role.direct when
           userspace sets guest CPUID.
      
         - Fix a dirty logging bug in the where KVM fails to write-protect
           SPTEs used by a nested guest, if KVM is using Page-Modification
           Logging and the nested hypervisor is NOT using EPT.
      
        x86 PMU:
      
         - Drop support for virtualizing adaptive PEBS, as KVM's
           implementation is architecturally broken without an obvious/easy
           path forward, and because exposing adaptive PEBS can leak host LBRs
           to the guest, i.e. can leak host kernel addresses to the guest.
      
         - Set the enable bits for general purpose counters in
           PERF_GLOBAL_CTRL at RESET time, as done by both Intel and AMD
           processors.
      
         - Disable LBR virtualization on CPUs that don't support LBR
           callstacks, as KVM unconditionally uses
           PERF_SAMPLE_BRANCH_CALL_STACK when creating the perf event, and
           would fail on such CPUs.
      
        Tests:
      
         - Fix a flaw in the max_guest_memory selftest that results in it
           exhausting the supply of ucall structures when run with more than
           256 vCPUs.
      
         - Mark KVM_MEM_READONLY as supported for RISC-V in
           set_memory_region_test"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (30 commits)
        KVM: Drop unused @may_block param from gfn_to_pfn_cache_invalidate_start()
        KVM: selftests: Add coverage of EPT-disabled to vmx_dirty_log_test
        KVM: x86/mmu: Fix and clarify comments about clearing D-bit vs. write-protecting
        KVM: x86/mmu: Remove function comments above clear_dirty_{gfn_range,pt_masked}()
        KVM: x86/mmu: Write-protect L2 SPTEs in TDP MMU when clearing dirty status
        KVM: x86/mmu: Precisely invalidate MMU root_role during CPUID update
        KVM: VMX: Disable LBR virtualization if the CPU doesn't support LBR callstacks
        perf/x86/intel: Expose existence of callback support to KVM
        KVM: VMX: Snapshot LBR capabilities during module initialization
        KVM: x86/pmu: Do not mask LVTPC when handling a PMI on AMD platforms
        KVM: x86: Snapshot if a vCPU's vendor model is AMD vs. Intel compatible
        KVM: x86: Stop compiling vmenter.S with OBJECT_FILES_NON_STANDARD
        KVM: SVM: Create a stack frame in __svm_sev_es_vcpu_run()
        KVM: SVM: Save/restore args across SEV-ES VMRUN via host save area
        KVM: SVM: Save/restore non-volatile GPRs in SEV-ES VMRUN via host save area
        KVM: SVM: Clobber RAX instead of RBX when discarding spec_ctrl_intercepted
        KVM: SVM: Drop 32-bit "support" from __svm_sev_es_vcpu_run()
        KVM: SVM: Wrap __svm_sev_es_vcpu_run() with #ifdef CONFIG_KVM_AMD_SEV
        KVM: SVM: Create a stack frame in __svm_vcpu_run() for unwinding
        KVM: SVM: Remove a useless zeroing of allocated memory
        ...
      81777226
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · e43afae4
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix wireguard loading failure on pre-Power10 due to Power10 crypto
         routines
      
       - Fix papr-vpd selftest failure due to missing variable initialization
      
       - Avoid unnecessary get/put in spapr_tce_platform_iommu_attach_dev()
      
      Thanks to Geetika Moolchandani, Jason Gunthorpe, Michal Suchánek, Nathan
      Lynch, and Shivaprasad G Bhat.
      
      * tag 'powerpc-6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        selftests/powerpc/papr-vpd: Fix missing variable initialization
        powerpc/crypto/chacha-p10: Fix failure on non Power10
        powerpc/iommu: Refactor spapr_tce_platform_iommu_attach_dev()
      e43afae4
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · 560d4e77
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "A couple clk driver fixes, a build fix, and a deadlock fix:
      
         - Mediatek mt7988 has broken PCIe because the wrong parent is used
      
         - Mediatek clk drivers may deadlock when registering their clks
           because the clk provider device is repeatedly runtime PM resumed
           and suspended during probe and clk registration.
      
           Resuming the clk provider device deadlocks with an ABBA deadlock
           due to genpd_lock and the clk prepare_lock. The fix is to keep the
           device runtime resumed while registering clks.
      
         - Another runtime PM related deadlock, this time with disabling
           unused clks during late init.
      
           We get an ABBA deadlock where a device is runtime PM resuming (or
           suspending) while the disabling of unused clks is happening in
           parallel. That runtime PM action calls into the clk framework and
           tries to grab the clk prepare_lock while the disabling of unused
           clks holds the prepare_lock and is waiting for that runtime PM
           action to complete.
      
           The fix is to runtime resume all the clk provider devices before
           grabbing the clk prepare_lock during disable unused.
      
         - A build fix to provide an empty devm_clk_rate_exclusive_get()
           function when CONFIG_COMMON_CLK=n"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: mediatek: mt7988-infracfg: fix clocks for 2nd PCIe port
        clk: mediatek: Do a runtime PM get on controllers during probe
        clk: Get runtime PM before walking tree for clk_summary
        clk: Get runtime PM before walking tree during disable_unused
        clk: Initialize struct clk_core kref earlier
        clk: Don't hold prepare_lock when calling kref_put()
        clk: Remove prepare_lock hold assertion in __clk_release()
        clk: Provide !COMMON_CLK dummy for devm_clk_rate_exclusive_get()
      560d4e77
    • James Bottomley's avatar
      MAINTAINERS: update to working email address · 366c5cec
      James Bottomley authored
      jejb@linux.ibm.com no longer works.
      Signed-off-by: default avatarJames Bottomley <James.Bottomley@HansenPartnership.com>
      366c5cec
  2. 19 Apr, 2024 19 commits
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v6.9-2024-04-19' of... · 13a2e429
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v6.9-2024-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools fixes from Namhyung Kim:
       "A random set of small bug fixes:
      
         - Fix perf annotate TUI when used with data type profiling
      
         - Work around BPF verifier about sighand lock checking
      
        And a set of kernel header synchronization"
      
      * tag 'perf-tools-fixes-for-v6.9-2024-04-19' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools:
        tools/include: Sync arm64 asm/cputype.h with the kernel sources
        tools/include: Sync asm-generic/bitops/fls.h with the kernel sources
        tools/include: Sync x86 asm/msr-index.h with the kernel sources
        tools/include: Sync x86 asm/irq_vectors.h with the kernel sources
        tools/include: Sync x86 CPU feature headers with the kernel sources
        tools/include: Sync uapi/sound/asound.h with the kernel sources
        tools/include: Sync uapi/linux/kvm.h and asm/kvm.h with the kernel sources
        tools/include: Sync uapi/linux/fs.h with the kernel sources
        tools/include: Sync uapi/drm/i915_drm.h with the kernel sources
        perf lock contention: Add a missing NULL check
        perf annotate: Make sure to call symbol__annotate2() in TUI
      13a2e429
    • Linus Torvalds's avatar
      Merge tag 'hardening-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 2d412262
      Linus Torvalds authored
      Pull hardening fixes from Kees Cook:
      
       - Correctly disable UBSAN configs in configs/hardening (Nathan
         Chancellor)
      
       - Add missing signed integer overflow trap types to arm64 handler
      
      * tag 'hardening-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        ubsan: Add awareness of signed integer overflow traps
        configs/hardening: Disable CONFIG_UBSAN_SIGNED_WRAP
        configs/hardening: Fix disabling UBSAN configurations
      2d412262
    • Linus Torvalds's avatar
      Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd · 50a1317f
      Linus Torvalds authored
      Pull iommufd fixes from Jason Gunthorpe:
       "Two fixes for the selftests:
      
         - CONFIG_IOMMUFD_TEST needs CONFIG_IOMMUFD_DRIVER to work
      
         - The kconfig fragment sshould include fault injection so the fault
           injection test can work"
      
      * tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/git/jgg/iommufd:
        iommufd: Add config needed for iommufd_fail_nth
        iommufd: Add missing IOMMUFD_DRIVER kconfig for the selftest
      50a1317f
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 2bf5dd7c
      Linus Torvalds authored
      Pull rdma fixes from Jason Gunthorpe:
      
       - Add a missing mutex_destroy() in rxe
      
       - Enhance the debugging print for cm_destroy failures to help debug
         these
      
       - Fix mlx5 MAD processing in cases where multiport devices are running
         in switchedev mode
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
        RDMA/mlx5: Fix port number for counter query in multi-port configuration
        RDMA/cm: Print the old state when cm_destroy_id gets timeout
        RDMA/rxe: Fix the problem "mutex_destroy missing"
      2bf5dd7c
    • Linus Torvalds's avatar
      Merge tag '9p-fixes-for-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs · 46b28503
      Linus Torvalds authored
      Pull fs/9p fixes from Eric Van Hensbergen:
       "This contains a reversion of one of the original 6.9 patches which
        seems to have been the cause of most of the instability. It also
        incorporates several fixes to legacy support and cache fixes.
      
        There are few additional changes to improve stability, but I want
        another week of testing before sending them upstream"
      
      * tag '9p-fixes-for-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
        fs/9p: drop inodes immediately on non-.L too
        fs/9p: Revert "fs/9p: fix dups even in uncached mode"
        fs/9p: remove erroneous nlink init from legacy stat2inode
        9p: explicitly deny setlease attempts
        fs/9p: fix the cache always being enabled on files with qid flags
        fs/9p: translate O_TRUNC into OTRUNC
        fs/9p: only translate RWX permissions for plain 9P2000
      46b28503
    • Linus Torvalds's avatar
      Merge tag 'fuse-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse · daa75776
      Linus Torvalds authored
      Pull fuse fixes from Miklos Szeredi:
      
       - Fix two bugs in the new passthrough mode
      
       - Fix a statx bug introduced in v6.6
      
       - Fix code documentation
      
      * tag 'fuse-fixes-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse:
        cuse: add kernel-doc comments to cuse_process_init_reply()
        fuse: fix leaked ENOSYS error on first statx call
        fuse: fix parallel dio write on file open in passthrough mode
        fuse: fix wrong ff->iomode state changes from parallel dio write
      daa75776
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 25ec51ec
      Linus Torvalds authored
      Pull arm64 fixes from Catalin Marinas:
      
       - Fix a kernel fault during page table walking in huge_pte_alloc() with
         PTABLE_LEVELS=5 due to using p4d_offset() instead of p4d_alloc()
      
       - head.S fix and cleanup to disable the MMU before toggling the
         HCR_EL2.E2H bit when entering the kernel with the MMU on from the EFI
         stub. Changing this bit (currently from VHE to nVHE) causes some
         system registers as well as page table descriptors to be interpreted
         differently, potentially resulting in spurious MMU faults
      
       - Fix translation fault in swsusp_save() accessing MEMBLOCK_NOMAP
         memory ranges due to kernel_page_present() returning true in most
         configurations other than rodata_full == true,
         CONFIG_DEBUG_PAGEALLOC=y or CONFIG_KFENCE=y
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        arm64: hibernate: Fix level3 translation fault in swsusp_save()
        arm64/head: Disable MMU at EL2 before clearing HCR_EL2.E2H
        arm64/head: Drop unnecessary pre-disable-MMU workaround
        arm64/hugetlb: Fix page table walk in huge_pte_alloc()
      25ec51ec
    • Linus Torvalds's avatar
      Merge tag 's390-6.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 3cdb4559
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Fix NULL pointer dereference in program check handler
      
       - Fake IRBs are important events relevant for problem analysis. Add
         traces when queueing and delivering
      
       - Fix a race condition in ccw_device_set_online() that can cause the
         online process to fail
      
       - Deferred condition code 1 response indicates that I/O was not started
         and should be retried. The current QDIO implementation handles a cc1
         response as an error, resulting in a failed QDIO setup. Fix that by
         retrying the setup when a cc1 response is received
      
      * tag 's390-6.9-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/mm: Fix NULL pointer dereference
        s390/cio: log fake IRB events
        s390/cio: fix race condition during online processing
        s390/qdio: handle deferred cc1
      3cdb4559
    • Linus Torvalds's avatar
      Merge tag 'bootconfig-fixes-v6.9-rc4' of... · 9c6e84e4
      Linus Torvalds authored
      Merge tag 'bootconfig-fixes-v6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull bootconfig fixes from Masami Hiramatsu:
      
       - Fix potential static_command_line buffer overrun.
      
         Currently we allocate the memory for static_command_line based on
         "boot_command_line", but it will copy "command_line" into it. So we
         use the length of "command_line" instead of "boot_command_line" (as
         we previously did)
      
       - Use memblock_free_late() in xbc_exit() instead of memblock_free()
         after the buddy system is initialized
      
       - Fix a kerneldoc warning
      
      * tag 'bootconfig-fixes-v6.9-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        bootconfig: Fix the kerneldoc of _xbc_exit()
        bootconfig: use memblock_free_late to free xbc memory to buddy
        init/main.c: Fix potential static_command_line memory overflow
      9c6e84e4
    • Linus Torvalds's avatar
      Merge tag 'thermal-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · dbe0a7be
      Linus Torvalds authored
      Pull thermal control fix from Rafael Wysocki:
       "This prevents the thermal debug code from attempting to divide by zero
        and corrects trip point statistics (Rafael Wysocki)"
      
      * tag 'thermal-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        thermal/debugfs: Add missing count increment to thermal_debug_tz_trip_up()
      dbe0a7be
    • Linus Torvalds's avatar
      Merge tag 'sound-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3c08ab6d
      Linus Torvalds authored
      Pull sound fixes from Takashi Iwai:
       "Things look calm and normal, we got handful HD-audio-related small
        fixes and a fix for MIDI 2.0 UMP handling"
      
      * tag 'sound-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound:
        ALSA: seq: ump: Fix conversion from MIDI2 to MIDI1 UMP messages
        ALSA: hda/realtek - Enable audio jacks of Haier Boyue G42 with ALC269VC
        ALSA: hda/realtek: Add quirks for Huawei Matebook D14 NBLB-WAX9N
        ALSA: hda/realtek: Fix volumn control of ThinkBook 16P Gen4
        ALSA: hda/realtek: Fixes for Asus GU605M and GA403U sound
        ALSA: hda/tas2781: Add new vendor_id and subsystem_id to support ThinkPad ICE-1
        ALSA: hda/tas2781: correct the register for pow calibrated data
        ALSA: hda/realtek: Add quirk for HP SnowWhite laptops
      3c08ab6d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2024-04-19' of https://gitlab.freedesktop.org/drm/kernel · ce944f3f
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Regular week of fixes, seems to be about right for this time in the
        release cycle, amdgpu, and nouveau are the main one with some
        scattered fixes otherwise.
      
        ttm:
         - Stop pooling cached NUMA pages
      
        amdgpu:
         - Fix invalid resource->start check
         - USB-C DSC fix
         - Fix a potential UAF in VA IOCTL
         - Fix visible VRAM handling during faults
      
        amdkfd:
         - Fix memory leak in create_process failure
      
        radeon:
         - Silence UBSAN warnings from variable sized arrays
      
        nouveau:
         - dp: Don't probe DP ports twice
         - nv04: Fix OOB access
         - nv50: Disable AUX bus for disconnected DP ports
         - nvkm: Fix instmem race condition
      
        panel:
         - Don't unregister DSI devices in several drivers
      
        v3d:
         - Fix enabled_ns increment
      
        xe:
         - Fix bo leak on error path during fb init
         - Fix use-after-free due to order vm is put and destroyed"
      
      * tag 'drm-fixes-2024-04-19' of https://gitlab.freedesktop.org/drm/kernel:
        drm/radeon: silence UBSAN warning (v3)
        drm/radeon: make -fstrict-flex-arrays=3 happy
        drm/amdgpu: fix visible VRAM handling during faults
        drm/amdgpu: validate the parameters of bo mapping operations more clearly
        Revert "drm/amd/display: fix USB-C flag update after enc10 feature init"
        drm/amdkfd: Fix memory leak in create_process failure
        drm/amdgpu: remove invalid resource->start check v2
        drm/xe/vm: prevent UAF with asid based lookup
        drm/xe: Fix bo leak in intel_fb_bo_framebuffer_init
        drm/panel: novatek-nt36682e: don't unregister DSI device
        drm/panel: visionox-rm69299: don't unregister DSI device
        drm/nouveau/dp: Don't probe eDP ports twice harder
        drm/nouveau/kms/nv50-: Disable AUX bus for disconnected DP ports
        drm/v3d: Don't increment `enabled_ns` twice
        drm/vmwgfx: Sort primary plane formats by order of preference
        drm/vmwgfx: Fix crtc's atomic check conditional
        drm/vmwgfx: Fix prime import/export
        drm/ttm: stop pooling cached NUMA pages v2
        drm: nv04: Fix out of bounds access
        nouveau: fix instmem race condition around ptr stores
      ce944f3f
    • Linus Torvalds's avatar
      Merge tag 'mm-hotfixes-stable-2024-04-18-14-41' of... · 54c23548
      Linus Torvalds authored
      Merge tag 'mm-hotfixes-stable-2024-04-18-14-41' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull misc fixes from Andrew Morton:
       "15 hotfixes. 9 are cc:stable and the remainder address post-6.8 issues
        or aren't considered suitable for backporting.
      
        There are a significant number of fixups for this cycle's page_owner
        changes (series "page_owner: print stacks and their outstanding
        allocations"). Apart from that, singleton changes all over, mainly in
        MM"
      
      * tag 'mm-hotfixes-stable-2024-04-18-14-41' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm:
        nilfs2: fix OOB in nilfs_set_de_type
        MAINTAINERS: update Naoya Horiguchi's email address
        fork: defer linking file vma until vma is fully initialized
        mm/shmem: inline shmem_is_huge() for disabled transparent hugepages
        mm,page_owner: defer enablement of static branch
        Squashfs: check the inode number is not the invalid value of zero
        mm,swapops: update check in is_pfn_swap_entry for hwpoison entries
        mm/memory-failure: fix deadlock when hugetlb_optimize_vmemmap is enabled
        mm/userfaultfd: allow hugetlb change protection upon poison entry
        mm,page_owner: fix printing of stack records
        mm,page_owner: fix accounting of pages when migrating
        mm,page_owner: fix refcount imbalance
        mm,page_owner: update metadata for tail pages
        userfaultfd: change src_folio after ensuring it's unpinned in UFFDIO_MOVE
        mm/madvise: make MADV_POPULATE_(READ|WRITE) handle VM_FAULT_RETRY properly
      54c23548
    • Yaxiong Tian's avatar
      arm64: hibernate: Fix level3 translation fault in swsusp_save() · 50449ca6
      Yaxiong Tian authored
      On arm64 machines, swsusp_save() faults if it attempts to access
      MEMBLOCK_NOMAP memory ranges. This can be reproduced in QEMU using UEFI
      when booting with rodata=off debug_pagealloc=off and CONFIG_KFENCE=n:
      
        Unable to handle kernel paging request at virtual address ffffff8000000000
        Mem abort info:
          ESR = 0x0000000096000007
          EC = 0x25: DABT (current EL), IL = 32 bits
          SET = 0, FnV = 0
          EA = 0, S1PTW = 0
          FSC = 0x07: level 3 translation fault
        Data abort info:
          ISV = 0, ISS = 0x00000007, ISS2 = 0x00000000
          CM = 0, WnR = 0, TnD = 0, TagAccess = 0
          GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
        swapper pgtable: 4k pages, 39-bit VAs, pgdp=00000000eeb0b000
        [ffffff8000000000] pgd=180000217fff9803, p4d=180000217fff9803, pud=180000217fff9803, pmd=180000217fff8803, pte=0000000000000000
        Internal error: Oops: 0000000096000007 [#1] SMP
        Internal error: Oops: 0000000096000007 [#1] SMP
        Modules linked in: xt_multiport ipt_REJECT nf_reject_ipv4 xt_conntrack nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 libcrc32c iptable_filter bpfilter rfkill at803x snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg dwmac_generic stmmac_platform snd_hda_codec stmmac joydev pcs_xpcs snd_hda_core phylink ppdev lp parport ramoops reed_solomon ip_tables x_tables nls_iso8859_1 vfat multipath linear amdgpu amdxcp drm_exec gpu_sched drm_buddy hid_generic usbhid hid radeon video drm_suballoc_helper drm_ttm_helper ttm i2c_algo_bit drm_display_helper cec drm_kms_helper drm
        CPU: 0 PID: 3663 Comm: systemd-sleep Not tainted 6.6.2+ #76
        Source Version: 4e22ed63a0a48e7a7cff9b98b7806d8d4add7dc0
        Hardware name: Greatwall GW-XXXXXX-XXX/GW-XXXXXX-XXX, BIOS KunLun BIOS V4.0 01/19/2021
        pstate: 600003c5 (nZCv DAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
        pc : swsusp_save+0x280/0x538
        lr : swsusp_save+0x280/0x538
        sp : ffffffa034a3fa40
        x29: ffffffa034a3fa40 x28: ffffff8000001000 x27: 0000000000000000
        x26: ffffff8001400000 x25: ffffffc08113e248 x24: 0000000000000000
        x23: 0000000000080000 x22: ffffffc08113e280 x21: 00000000000c69f2
        x20: ffffff8000000000 x19: ffffffc081ae2500 x18: 0000000000000000
        x17: 6666662074736420 x16: 3030303030303030 x15: 3038666666666666
        x14: 0000000000000b69 x13: ffffff9f89088530 x12: 00000000ffffffea
        x11: 00000000ffff7fff x10: 00000000ffff7fff x9 : ffffffc08193f0d0
        x8 : 00000000000bffe8 x7 : c0000000ffff7fff x6 : 0000000000000001
        x5 : ffffffa0fff09dc8 x4 : 0000000000000000 x3 : 0000000000000027
        x2 : 0000000000000000 x1 : 0000000000000000 x0 : 000000000000004e
        Call trace:
         swsusp_save+0x280/0x538
         swsusp_arch_suspend+0x148/0x190
         hibernation_snapshot+0x240/0x39c
         hibernate+0xc4/0x378
         state_store+0xf0/0x10c
         kobj_attr_store+0x14/0x24
      
      The reason is swsusp_save() -> copy_data_pages() -> page_is_saveable()
      -> kernel_page_present() assuming that a page is always present when
      can_set_direct_map() is false (all of rodata_full,
      debug_pagealloc_enabled() and arm64_kfence_can_set_direct_map() false),
      irrespective of the MEMBLOCK_NOMAP ranges. Such MEMBLOCK_NOMAP regions
      should not be saved during hibernation.
      
      This problem was introduced by changes to the pfn_valid() logic in
      commit a7d9f306 ("arm64: drop pfn_valid_within() and simplify
      pfn_valid()").
      
      Similar to other architectures, drop the !can_set_direct_map() check in
      kernel_page_present() so that page_is_savable() skips such pages.
      
      Fixes: a7d9f306 ("arm64: drop pfn_valid_within() and simplify pfn_valid()")
      Cc: <stable@vger.kernel.org> # 5.14.x
      Suggested-by: default avatarMike Rapoport <rppt@kernel.org>
      Suggested-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      Co-developed-by: default avatarxiongxin <xiongxin@kylinos.cn>
      Signed-off-by: default avatarxiongxin <xiongxin@kylinos.cn>
      Signed-off-by: default avatarYaxiong Tian <tianyaxiong@kylinos.cn>
      Acked-by: default avatarMike Rapoport (IBM) <rppt@kernel.org>
      Link: https://lore.kernel.org/r/20240417025248.386622-1-tianyaxiong@kylinos.cn
      [catalin.marinas@arm.com: rework commit message]
      Signed-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      50449ca6
    • Rafael J. Wysocki's avatar
      thermal/debugfs: Add missing count increment to thermal_debug_tz_trip_up() · b552f63c
      Rafael J. Wysocki authored
      The count field in struct trip_stats, representing the number of times
      the zone temperature was above the trip point, needs to be incremented
      in thermal_debug_tz_trip_up(), for two reasons.
      
      First, if a trip point is crossed on the way up for the first time,
      thermal_debug_update_temp() called from update_temperature() does
      not see it because it has not been added to trips_crossed[] array
      in the thermal zone's struct tz_debugfs object yet.  Therefore, when
      thermal_debug_tz_trip_up() is called after that, the trip point's
      count value is 0, and the attempt to divide by it during the average
      temperature computation leads to a divide error which causes the kernel
      to crash.  Setting the count to 1 before the division by incrementing it
      fixes this problem.
      
      Second, if a trip point is crossed on the way up, but it has been
      crossed on the way up already before, its count value needs to be
      incremented to make a record of the fact that the zone temperature is
      above the trip now.  Without doing that, if the mitigations applied
      after crossing the trip cause the zone temperature to drop below its
      threshold, the count will not be updated for this episode at all and
      the average temperature in the trip statistics record will be somewhat
      higher than it should be.
      
      Fixes: 7ef01f22 ("thermal/debugfs: Add thermal debugfs information for mitigation episodes")
      Cc :6.8+ <stable@vger.kernel.org> # 6.8+
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      b552f63c
    • Takashi Iwai's avatar
      ALSA: seq: ump: Fix conversion from MIDI2 to MIDI1 UMP messages · f25f17dc
      Takashi Iwai authored
      The conversion from MIDI2 to MIDI1 UMP messages had a leftover
      artifact (superfluous bit shift), and this resulted in the bogus type
      check, leading to empty outputs.  Let's fix it.
      
      Fixes: e9e02819 ("ALSA: seq: Automatic conversion of UMP events")
      Cc: <stable@vger.kernel.org>
      Link: https://github.com/alsa-project/alsa-utils/issues/262
      Message-ID: <20240419100442.14806-1-tiwai@suse.de>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      f25f17dc
    • Ai Chao's avatar
      ALSA: hda/realtek - Enable audio jacks of Haier Boyue G42 with ALC269VC · 7ee5faad
      Ai Chao authored
      The Haier Boyue G42 with ALC269VC cannot detect the MIC of headset,
      the line out and internal speaker until
      ALC269VC_FIXUP_ACER_VCOPPERBOX_PINS quirk applied.
      Signed-off-by: default avatarAi Chao <aichao@kylinos.cn>
      Cc: <stable@vger.kernel.org>
      Message-ID: <20240419082159.476879-1-aichao@kylinos.cn>
      Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
      7ee5faad
    • Dave Airlie's avatar
      Merge tag 'drm-xe-fixes-2024-04-18' of https://gitlab.freedesktop.org/drm/xe/kernel into drm-fixes · 52c8b6e1
      Dave Airlie authored
      - Fix bo leak on error path during fb init
      - Fix use-after-free due to order vm is put and destroyed
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Lucas De Marchi <lucas.demarchi@intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/xjguifyantaibyrnymuiotxws6akiexi6r7tqyieqxgquovubc@kkrtbe24hjjr
      52c8b6e1
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2024-04-18' of... · 5493bf2d
      Dave Airlie authored
      Merge tag 'drm-misc-fixes-2024-04-18' of https://gitlab.freedesktop.org/drm/misc/kernel into drm-fixes
      
      Short summary of fixes pull:
      
      nouveau:
      - dp: Don't probe DP ports twice
      - nv04: Fix OOB access
      - nv50: Disable AUX bus for disconnected DP ports
      - nvkm: Fix race condition
      
      panel:
      - Don't unregister DSI devices in several drivers
      
      ttm:
      - Stop pooling cached NUMA pages
      
      v3d:
      - Fix enabled_ns increment
      
      vmwgfx:
      - Fix PRIME import/export
      - Fix CRTC's atomic check for primary planes
      - Sort plane formats by preference
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Thomas Zimmermann <tzimmermann@suse.de>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240418072229.GA8983@localhost.localdomain
      5493bf2d
  3. 18 Apr, 2024 16 commits
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.9-2024-04-17' of... · 58292f51
      Dave Airlie authored
      Merge tag 'amd-drm-fixes-6.9-2024-04-17' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.9-2024-04-17:
      
      amdgpu:
      - Fix invalid resource->start check
      - USB-C DSC fix
      - Fix a potential UAF in VA IOCTL
      - Fix visible VRAM handling during faults
      
      amdkfd:
      - Fix memory leak in create_process failure
      
      radeon:
      - Silence UBSAN warnings from variable sized arrays
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20240417194959.3716998-1-alexander.deucher@amd.com
      58292f51
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 2668e3ae
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two minor fixes: one in the core to improve the handling of warnings
        and unconditionally clear the command flags when ending a request and
        the other to add missing table values needed for bandwidth scaling in
        qualcomm ufs"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: core: Fix handling of SCMD_FAIL_IF_RECOVERING
        scsi: ufs: qcom: Add missing interconnect bandwidth values for Gear 5
      2668e3ae
    • Linus Torvalds's avatar
      Merge tag 'net-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · 7586c850
      Linus Torvalds authored
      Pull networking fixes from Jakub Kicinski:
       "A little calmer than usual, probably just the timing of sub-tree PRs.
      
        Including fixes from netfilter.
      
        Current release - regressions:
      
         - inet: bring NLM_DONE out to a separate recv() again, fix user space
           which assumes multiple recv()s will happen and gets blocked forever
      
         - drv: mlx5:
             - restore mistakenly dropped parts in register devlink flow
             - use channel mdev reference instead of global mdev instance for
               coalescing
             - acquire RTNL lock before RQs/SQs activation/deactivation
      
        Previous releases - regressions:
      
         - net: change maximum number of UDP segments to 128, fix virtio
           compatibility with Windows peers
      
         - usb: ax88179_178a: avoid writing the mac address before first
           reading
      
        Previous releases - always broken:
      
         - sched: fix mirred deadlock on device recursion
      
         - netfilter:
             - br_netfilter: skip conntrack input hook for promisc packets
             - fixes removal of duplicate elements in the pipapo set backend
             - various fixes for abort paths and error handling
      
         - af_unix: don't peek OOB data without MSG_OOB
      
         - drv: flower: fix fragment flags handling in multiple drivers
      
         - drv: ravb: fix jumbo frames and packet stats accounting
      
        Misc:
      
         - kselftest_harness: fix Clang warning about zero-length format
      
         - tun: limit printing rate when illegal packet received by tun dev"
      
      * tag 'net-6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (46 commits)
        net: ethernet: ti: am65-cpsw-nuss: cleanup DMA Channels before using them
        net: usb: ax88179_178a: avoid writing the mac address before first reading
        net: ravb: Fix RX byte accounting for jumbo packets
        net: ravb: Fix GbEth jumbo packet RX checksum handling
        net: ravb: Allow RX loop to move past DMA mapping errors
        net: ravb: Count packets instead of descriptors in R-Car RX path
        net: ethernet: mtk_eth_soc: fix WED + wifi reset
        net:usb:qmi_wwan: support Rolling modules
        selftests: kselftest_harness: fix Clang warning about zero-length format
        net/sched: Fix mirred deadlock on device recursion
        netfilter: nf_tables: fix memleak in map from abort path
        netfilter: nf_tables: restore set elements when delete set fails
        netfilter: nf_tables: missing iterator type in lookup walk
        s390/ism: Properly fix receive message buffer allocation
        net: dsa: mt7530: fix port mirroring for MT7988 SoC switch
        net: dsa: mt7530: fix mirroring frames received on local port
        tun: limit printing rate when illegal packet received by tun dev
        ice: Fix checking for unsupported keys on non-tunnel device
        ice: tc: allow zero flags in parsing tc flower
        ice: tc: check src_vsi in case of traffic from VF
        ...
      7586c850
    • Linus Torvalds's avatar
      Merge tag 'gpio-fixes-for-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · 360a348f
      Linus Torvalds authored
      Pull gpio fixes from Bartosz Golaszewski:
      
       - use -ENOTSUPP consistently in Intel GPIO drivers
      
       - don't include dt-bindings headers in gpio-swnode code
      
       - add missing of device table to gpio-lpc32xx and fix autoloading
      
      * tag 'gpio-fixes-for-v6.9-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpiolib: swnode: Remove wrong header inclusion
        gpio: lpc32xx: fix module autoloading
        gpio: crystalcove: Use -ENOTSUPP consistently
        gpio: wcove: Use -ENOTSUPP consistently
      360a348f
    • Ard Biesheuvel's avatar
      arm64/head: Disable MMU at EL2 before clearing HCR_EL2.E2H · 34e526cb
      Ard Biesheuvel authored
      Even though the boot protocol stipulates otherwise, an exception has
      been made for the EFI stub, and entering the core kernel with the MMU
      enabled is permitted. This allows a substantial amount of cache
      maintenance to be elided, wich is significant when fast boot times are
      critical (e.g., for booting micro-VMs)
      
      Once the initial ID map has been populated, the MMU is disabled as part
      of the logic sequence that puts all system registers into a known state.
      Any code that needs to execute within the window where the MMU is off is
      cleaned to the PoC explicitly, which includes all of HYP text when
      entering at EL2.
      
      However, the current sequence of initializing the EL2 system registers
      is not safe: HCR_EL2 is set to its nVHE initial state before SCTLR_EL2
      is reprogrammed, and this means that a VHE-to-nVHE switch may occur
      while the MMU is enabled. This switch causes some system registers as
      well as page table descriptors to be interpreted in a different way,
      potentially resulting in spurious exceptions relating to MMU
      translation.
      
      So disable the MMU explicitly first when entering in EL2 with the MMU
      and caches enabled.
      
      Fixes: 61786170 ("efi: arm64: enter with MMU and caches enabled")
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Cc: <stable@vger.kernel.org> # 6.3.x
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Acked-by: default avatarMarc Zyngier <maz@kernel.org>
      Link: https://lore.kernel.org/r/20240415075412.2347624-6-ardb+git@google.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      34e526cb
    • Ard Biesheuvel's avatar
      arm64/head: Drop unnecessary pre-disable-MMU workaround · 2b504e16
      Ard Biesheuvel authored
      The Falkor erratum that results in the need for an ISB before clearing
      the M bit in SCTLR_ELx only applies to execution at exception level x,
      and so the workaround is not needed when disabling the EL1 MMU while
      running at EL2.
      Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
      Acked-by: default avatarMarc Zyngier <maz@kernel.org>
      Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
      Link: https://lore.kernel.org/r/20240415075412.2347624-5-ardb+git@google.comSigned-off-by: default avatarCatalin Marinas <catalin.marinas@arm.com>
      2b504e16
    • Siddharth Vadapalli's avatar
      net: ethernet: ti: am65-cpsw-nuss: cleanup DMA Channels before using them · c24cd679
      Siddharth Vadapalli authored
      The TX and RX DMA Channels used by the driver to exchange data with CPSW
      are not guaranteed to be in a clean state during driver initialization.
      The Bootloader could have used the same DMA Channels without cleaning them
      up in the event of failure. Thus, reset and disable the DMA Channels to
      ensure that they are in a clean state before using them.
      
      Fixes: 93a76530 ("net: ethernet: ti: introduce am65x/j721e gigabit eth subsystem driver")
      Reported-by: default avatarSchuyler Patton <spatton@ti.com>
      Signed-off-by: default avatarSiddharth Vadapalli <s-vadapalli@ti.com>
      Reviewed-by: default avatarRoger Quadros <rogerq@kernel.org>
      Link: https://lore.kernel.org/r/20240417095425.2253876-1-s-vadapalli@ti.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      c24cd679
    • Jose Ignacio Tornos Martinez's avatar
      net: usb: ax88179_178a: avoid writing the mac address before first reading · 56f78615
      Jose Ignacio Tornos Martinez authored
      After the commit d2689b6a ("net: usb: ax88179_178a: avoid two
      consecutive device resets"), reset operation, in which the default mac
      address from the device is read, is not executed from bind operation and
      the random address, that is pregenerated just in case, is direclty written
      the first time in the device, so the default one from the device is not
      even read. This writing is not dangerous because is volatile and the
      default mac address is not missed.
      
      In order to avoid this and keep the simplification to have only one
      reset and reduce the delays, restore the reset from bind operation and
      remove the reset that is commanded from open operation. The behavior is
      the same but everything is ready for usbnet_probe.
      
      Tested with ASIX AX88179 USB Gigabit Ethernet devices.
      Restore the old behavior for the rest of possible devices because I don't
      have the hardware to test.
      
      cc: stable@vger.kernel.org # 6.6+
      Fixes: d2689b6a ("net: usb: ax88179_178a: avoid two consecutive device resets")
      Reported-by: default avatarJarkko Palviainen <jarkko.palviainen@gmail.com>
      Signed-off-by: default avatarJose Ignacio Tornos Martinez <jtornosm@redhat.com>
      Link: https://lore.kernel.org/r/20240417085524.219532-1-jtornosm@redhat.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      56f78615
    • Linus Torvalds's avatar
      Merge tag 'random-6.9-rc5-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random · e4add020
      Linus Torvalds authored
      Pull random number generator fixes from Jason Donenfeld:
      
       - The input subsystem contributes entropy in some places where a
         spinlock is held, but the entropy accounting code only handled
         callers being in an interrupt or non-atomic process context, but not
         atomic process context. We fix this by removing an optimization and
         just calling queue_work() unconditionally.
      
       - Greg accidently sent up a patch not intended for his tree and that
         had been nack'd, so that's now reverted.
      
      * tag 'random-6.9-rc5-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/crng/random:
        Revert "vmgenid: emit uevent when VMGENID updates"
        random: handle creditable entropy from atomic process context
      e4add020
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.9-3' of... · c2d88559
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Ilpo Järvinen:
      
       - amd/pmf: Add SPS notifications quirk (+ quirk support)
      
       - amd/pmf: Lower Smart PC check message severity
      
       - x86/ISST: New HW support
      
       - x86/intel-uncore-freq: Bump minor version to avoid "unsupported" message
      
       - amd/pmc: New BIOS version still needs Spurious IRQ1 quirk
      
      * tag 'platform-drivers-x86-v6.9-3' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86/amd/pmc: Extend Framework 13 quirk to more BIOSes
        platform/x86/intel-uncore-freq: Increase minor number support
        platform/x86: ISST: Add Granite Rapids-D to HPM CPU list
        platform/x86/amd: pmf: Add quirk for ROG Zephyrus G14
        platform/x86/amd: pmf: Add infrastructure for quirking supported funcs
        platform/x86/amd: pmf: Decrease error message to debug
      c2d88559
    • Jason A. Donenfeld's avatar
      Revert "vmgenid: emit uevent when VMGENID updates" · 3aadf100
      Jason A. Donenfeld authored
      This reverts commit ad6bcdad. I had
      nak'd it, and Greg said on the thread that it links that he wasn't going
      to take it either, especially since it's not his code or his tree, but
      then, seemingly accidentally, it got pushed up some months later, in
      what looks like a mistake, with no further discussion in the linked
      thread. So revert it, since it's clearly not intended.
      
      Fixes: ad6bcdad ("vmgenid: emit uevent when VMGENID updates")
      Cc: stable@vger.kernel.org
      Acked-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Link: https://lore.kernel.org/r/20230531095119.11202-2-bchalios@amazon.esSigned-off-by: default avatarJason A. Donenfeld <Jason@zx2c4.com>
      3aadf100
    • Paolo Abeni's avatar
      Merge tag 'nf-24-04-18' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf · ac1a21db
      Paolo Abeni authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter fixes for net
      
      The following patchset contains Netfilter fixes for net:
      
      Patch #1 amends a missing spot where the set iterator type is unset.
      	 This is fixing a issue in the previous pull request.
      
      Patch #2 fixes the delete set command abort path by restoring state
               of the elements. Reverse logic for the activate (abort) case
      	 otherwise element state is not restored, this requires to move
      	 the check for active/inactive elements to the set iterator
      	 callback. From the deactivate path, toggle the next generation
      	 bit and from the activate (abort) path, clear the next generation
      	 bitmask.
      
      Patch #3 skips elements already restored by delete set command from the
      	 abort path in case there is a previous delete element command in
      	 the batch. Check for the next generation bit just like it is done
      	 via set iteration to restore maps.
      
      netfilter pull request 24-04-18
      
      * tag 'nf-24-04-18' of git://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf:
        netfilter: nf_tables: fix memleak in map from abort path
        netfilter: nf_tables: restore set elements when delete set fails
        netfilter: nf_tables: missing iterator type in lookup walk
      ====================
      
      Link: https://lore.kernel.org/r/20240418010948.3332346-1-pablo@netfilter.orgSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      ac1a21db
    • Paolo Abeni's avatar
      Merge branch 'ravb-ethernet-driver-bugfixes' · d10a7f55
      Paolo Abeni authored
      Paul Barker says:
      
      ====================
      ravb Ethernet driver bugfixes
      
      These patches fix bugs found during recent work on the ravb driver.
      
      Patches 1 & 2 affect the R-Car code paths so have been tested on an
      R-Car M3N Salvator-XS board - this is the only R-Car board I currently
      have access to.
      
      Patches 2, 3 & 4 affect the GbEth code paths so have been tested on
      RZ/G2L and RZ/G2UL SMARC EVK boards.
      
      Changes v2->v3:
        * Incorporate feedback from Niklas and add Reviewed-by tag to patch
          "net: ravb: Count packets instead of descriptors in R-Car RX path".
      Changes v1->v2:
        * Fixed typos in commit message of patch
          "net: ravb: Allow RX loop to move past DMA mapping errors".
        * Added Sergey's Reviewed-by tags.
        * Expanded Cc list as Patchwork complained that I had missed people.
        * Trimmed the call trace in accordance with the docs [1] in patch
          "net: ravb: Fix GbEth jumbo packet RX checksum handling".
      
      [1]: https://docs.kernel.org/process/submitting-patches.html#backtraces-in-commit-messages
      ====================
      
      Link: https://lore.kernel.org/r/20240416120254.2620-1-paul.barker.ct@bp.renesas.comSigned-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      d10a7f55
    • Paul Barker's avatar
      net: ravb: Fix RX byte accounting for jumbo packets · 2e36c9fb
      Paul Barker authored
      The RX byte accounting for jumbo packets was changed to fix a potential
      use-after-free bug. However, that fix used the wrong variable and so
      only accounted for the number of bytes in the final descriptor, not the
      number of bytes in the whole packet.
      
      To fix this, we can simply update our stats with the correct number of
      bytes before calling napi_gro_receive().
      
      Also rename pkt_len to desc_len in ravb_rx_gbeth() to avoid any future
      confusion. The variable name pkt_len is correct in ravb_rx_rcar() as
      that function does not handle packets spanning multiple descriptors.
      
      Fixes: 5a5a3e56 ("ravb: Fix potential use-after-free in ravb_rx_gbeth()")
      Signed-off-by: default avatarPaul Barker <paul.barker.ct@bp.renesas.com>
      Reviewed-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      2e36c9fb
    • Paul Barker's avatar
      net: ravb: Fix GbEth jumbo packet RX checksum handling · c7c44950
      Paul Barker authored
      Sending a 7kB ping packet to the RZ/G2L in v6.9-rc2 causes the following
      backtrace:
      
      	WARNING: CPU: 0 PID: 0 at include/linux/skbuff.h:3127 skb_trim+0x30/0x38
      	Hardware name: Renesas SMARC EVK based on r9a07g044l2 (DT)
      	pc : skb_trim+0x30/0x38
      	lr : ravb_rx_csum_gbeth+0x40/0x90
      	Call trace:
      	 skb_trim+0x30/0x38
      	 ravb_rx_gbeth+0x56c/0x5cc
      	 ravb_poll+0xa0/0x204
      	 __napi_poll+0x38/0x17c
      
      This is caused by ravb_rx_gbeth() calling ravb_rx_csum_gbeth() with the
      wrong skb for a packet which spans multiple descriptors. To fix this,
      use the correct skb.
      
      Fixes: c2da9408 ("ravb: Add Rx checksum offload support for GbEth")
      Signed-off-by: default avatarPaul Barker <paul.barker.ct@bp.renesas.com>
      Reviewed-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      c7c44950
    • Paul Barker's avatar
      net: ravb: Allow RX loop to move past DMA mapping errors · a892493a
      Paul Barker authored
      The RX loops in ravb_rx_gbeth() and ravb_rx_rcar() skip to the next loop
      iteration if a zero-length descriptor is seen (indicating a DMA mapping
      error). However, the current RX descriptor index `priv->cur_rx[q]` was
      incremented at the end of the loop and so would not be incremented when
      we skip to the next loop iteration. This would cause the loop to keep
      seeing the same zero-length descriptor instead of moving on to the next
      descriptor.
      
      As the loop counter `i` still increments, the loop would eventually
      terminate so there is no risk of being stuck here forever - but we
      should still fix this to avoid wasting cycles.
      
      To fix this, the RX descriptor index is incremented at the top of the
      loop, in the for statement itself. The assignments of `entry` and `desc`
      are brought into the loop to avoid the need for duplication.
      
      Fixes: d8b48911 ("ravb: fix ring memory allocation")
      Signed-off-by: default avatarPaul Barker <paul.barker.ct@bp.renesas.com>
      Reviewed-by: default avatarSergey Shtylyov <s.shtylyov@omp.ru>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      a892493a