Skip to content
  1. Jul 15, 2023
    • Linus Torvalds's avatar
      Merge tag 'pm-6.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · bde7f150
      Linus Torvalds authored
      Pull power management fixes from Rafael Wysocki:
       "These fix hibernation (after recent changes), frequency QoS and the
        sparc cpufreq driver.
      
        Specifics:
      
         - Unbreak the /sys/power/resume interface after recent changes (Azat
           Khuzhin).
      
         - Allow PM_QOS_DEFAULT_VALUE to be used with frequency QoS (Chungkai
           Yang).
      
         - Remove __init from cpufreq callbacks in the sparc driver, because
           they may be called after initialization too (Viresh Kumar)"
      
      * tag 'pm-6.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        cpufreq: sparc: Don't mark cpufreq callbacks with __init
        PM: QoS: Restore support for default value on frequency QoS
        PM: hibernate: Fix writing maj:min to /sys/power/resume
      bde7f150
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-sleep' and 'pm-qos' · d121758d
      Rafael J. Wysocki authored
      Merge a PM QoS fix and a hibernation fix for 6.5-rc2.
      
       - Unbreak the /sys/power/resume interface after recent changes (Azat
         Khuzhin).
      
       - Allow PM_QOS_DEFAULT_VALUE to be used with frequency QoS (Chungkai
         Yang).
      
      * pm-sleep:
        PM: hibernate: Fix writing maj:min to /sys/power/resume
      
      * pm-qos:
        PM: QoS: Restore support for default value on frequency QoS
      d121758d
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2023-07-14-1' of git://anongit.freedesktop.org/drm/drm · 3a97a299
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "There were a bunch of fixes lined up for 2 weeks, so we have quite a
        few scattered fixes, mostly amdgpu and i915, but ttm has a bunch and
        nouveau makes an appearance.
      
        So a bit busier than usual for rc2, but nothing seems out of the
        ordinary.
      
        fbdev:
         - dma: Fix documented default preferred_bpp value
      
        ttm:
         - fix warning that we shouldn't mix && and ||
         - never consider pinned BOs for eviction&swap
         - Don't leak a resource on eviction error
         - Don't leak a resource on swapout move error
         - fix bulk_move corruption when adding a entry
      
        client:
         - Send hotplug event after registering a client
      
        dma-buf:
         - keep the signaling time of merged fences v3
         - fix an error pointer vs NULL bug
      
        sched:
         - wait for all deps in kill jobs
         - call set fence parent from scheduled
      
        i915:
         - Don't preserve dpll_hw_state for slave crtc in Bigjoiner
         - Consider OA buffer boundary when zeroing out reports
         - Remove dead code from gen8_pte_encode
         - Fix one wrong caching mode enum usage
      
        amdgpu:
         - SMU i2c locking fix
         - Fix a possible deadlock in process restoration for ROCm apps
         - Disable PCIe lane/speed switching on Intel platforms (the platforms
           don't support it)
      
        nouveau:
         - disp: fix HDMI on gt215+
         - disp/g94: enable HDMI
         - acr: Abort loading ACR if no firmware was found
         - bring back blit subchannel for pre nv50 GPUs
         - Fix drm_dp_remove_payload() invocation
      
        ivpu:
         - Fix VPU register access in irq disable
         - Clear specific interrupt status bits on C0
      
        bridge:
         - dw_hdmi: fix connector access for scdc
         - ti-sn65dsi86: Fix auxiliary bus lifetime
      
        panel:
         - simple: Add connector_type for innolux_at043tn24
         - simple: Add Powertip PH800480T013 drm_display_mode flags"
      
      * tag 'drm-fixes-2023-07-14-1' of git://anongit.freedesktop.org/drm/drm: (32 commits)
        drm/nouveau: bring back blit subchannel for pre nv50 GPUs
        drm/nouveau/acr: Abort loading ACR if no firmware was found
        drm/amd: Align SMU11 SMU_MSG_OverridePcieParameters implementation with SMU13
        drm/amd: Move helper for dynamic speed switch check out of smu13
        drm/amd/pm: conditionally disable pcie lane/speed switching for SMU13
        drm/amd/pm: share the code around SMU13 pcie parameters update
        drm/amdgpu: avoid restore process run into dead loop.
        drm/amd/pm: fix smu i2c data read risk
        drm/nouveau/disp/g94: enable HDMI
        drm/nouveau/disp: fix HDMI on gt215+
        drm/client: Send hotplug event after registering a client
        drm/i915: Fix one wrong caching mode enum usage
        drm/i915: Remove dead code from gen8_pte_encode
        drm/i915/perf: Consider OA buffer boundary when zeroing out reports
        drm/i915: Don't preserve dpll_hw_state for slave crtc in Bigjoiner
        drm/ttm: never consider pinned BOs for eviction&swap
        drm/fbdev-dma: Fix documented default preferred_bpp value
        dma-buf: fix an error pointer vs NULL bug
        accel/ivpu: Clear specific interrupt status bits on C0
        accel/ivpu: Fix VPU register access in irq disable
        ...
      3a97a299
    • Linus Torvalds's avatar
      Merge tag 'ceph-for-6.5-rc2' of https://github.com/ceph/ceph-client · ddbd9161
      Linus Torvalds authored
      Pull ceph fix from Ilya Dryomov:
       "A fix to prevent a potential buffer overrun in the messenger, marked
        for stable"
      
      * tag 'ceph-for-6.5-rc2' of https://github.com/ceph/ceph-client:
        libceph: harden msgr2.1 frame segment length checks
      ddbd9161
  2. Jul 14, 2023
    • Dave Airlie's avatar
      Merge tag 'amd-drm-fixes-6.5-2023-07-12' of... · 38d88d5e
      Dave Airlie authored
      
      Merge tag 'amd-drm-fixes-6.5-2023-07-12' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
      
      amd-drm-fixes-6.5-2023-07-12:
      
      amdgpu:
      - SMU i2c locking fix
      - Fix a possible deadlock in process restoration for ROCm apps
      - Disable PCIe lane/speed switching on Intel platforms (the platforms don't support it)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Alex Deucher <alexander.deucher@amd.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230712184009.7740-1-alexander.deucher@amd.com
      38d88d5e
    • Dave Airlie's avatar
      Merge tag 'drm-intel-fixes-2023-07-13' of... · 864e029f
      Dave Airlie authored
      
      Merge tag 'drm-intel-fixes-2023-07-13' of git://anongit.freedesktop.org/drm/drm-intel into drm-fixes
      
      - Don't preserve dpll_hw_state for slave crtc in Bigjoiner (Stanislav Lisovskiy)
      - Consider OA buffer boundary when zeroing out reports [perf] (Umesh Nerlige Ramappa)
      - Remove dead code from gen8_pte_encode (Tvrtko Ursulin)
      - Fix one wrong caching mode enum usage (Tvrtko Ursulin)
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      From: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/ZK+nHLCltaxoxVw/@tursulin-desk
      864e029f
    • Dave Airlie's avatar
      Merge tag 'drm-misc-fixes-2023-07-13' of ssh://git.freedesktop.org/git/drm/drm-misc into drm-fixes · b7a57386
      Dave Airlie authored
      
      
      A couple of nouveau patches addressing improving HDMI support and
      firmware handling, a fix for TTM to skip pinned BO when evicting, and a
      fix for the fbdev documentation.
      
      Signed-off-by: default avatarDave Airlie <airlied@redhat.com>
      
      From: Maxime Ripard <mripard@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/nq3ke75juephbex5acfyi5t6bxv22nhmfcpfhru55haj2nv3us@gehrlmjbqgjk
      b7a57386
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-6.5-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 4b810bf0
      Linus Torvalds authored
      Pull erofs fixes from Gao Xiang:
       "Three patches address regressions related to post-EOF unexpected
        behaviors and fsdax unavailability of chunk-based regular files.
      
        The other two patches mainly get rid of kmap_atomic() and simplify
        z_erofs_transform_plain().
      
         - Fix two unexpected loop cases when reading beyond EOF
      
         - Fix fsdax unavailability for chunk-based regular files
      
         - Get rid of the remaining kmap_atomic()
      
         - Minor cleanups"
      
      * tag 'erofs-for-6.5-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: fix fsdax unavailability for chunk-based regular files
        erofs: avoid infinite loop in z_erofs_do_read_page() when reading beyond EOF
        erofs: avoid useless loops in z_erofs_pcluster_readmore() when reading beyond EOF
        erofs: simplify z_erofs_transform_plain()
        erofs: get rid of the remaining kmap_atomic()
      4b810bf0
    • Linus Torvalds's avatar
      Merge tag 'net-6.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net · b1983d42
      Linus Torvalds authored
      Pull networking fixes from Paolo Abeni:
       "Including fixes from netfilter, wireless and ebpf.
      
        Current release - regressions:
      
         - netfilter: conntrack: gre: don't set assured flag for clash entries
      
         - wifi: iwlwifi: remove 'use_tfh' config to fix crash
      
        Previous releases - regressions:
      
         - ipv6: fix a potential refcount underflow for idev
      
         - icmp6: ifix null-ptr-deref of ip6_null_entry->rt6i_idev in
           icmp6_dev()
      
         - bpf: fix max stack depth check for async callbacks
      
         - eth: mlx5e:
            - check for NOT_READY flag state after locking
            - fix page_pool page fragment tracking for XDP
      
         - eth: igc:
            - fix tx hang issue when QBV gate is closed
            - fix corner cases for TSN offload
      
         - eth: octeontx2-af: Move validation of ptp pointer before its usage
      
         - eth: ena: fix shift-out-of-bounds in exponential backoff
      
        Previous releases - always broken:
      
         - core: prevent skb corruption on frag list segmentation
      
         - sched:
            - cls_fw: fix improper refcount update leads to use-after-free
            - sch_qfq: account for stab overhead in qfq_enqueue
      
         - netfilter:
            - report use refcount overflow
            - prevent OOB access in nft_byteorder_eval
      
         - wifi: mt7921e: fix init command fail with enabled device
      
         - eth: ocelot: fix oversize frame dropping for preemptible TCs
      
         - eth: fec: recycle pages for transmitted XDP frames"
      
      * tag 'net-6.5-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (79 commits)
        selftests: tc-testing: add test for qfq with stab overhead
        net/sched: sch_qfq: account for stab overhead in qfq_enqueue
        selftests: tc-testing: add tests for qfq mtu sanity check
        net/sched: sch_qfq: reintroduce lmax bound check for MTU
        wifi: cfg80211: fix receiving mesh packets without RFC1042 header
        wifi: rtw89: debug: fix error code in rtw89_debug_priv_send_h2c_set()
        net: txgbe: fix eeprom calculation error
        net/sched: make psched_mtu() RTNL-less safe
        net: ena: fix shift-out-of-bounds in exponential backoff
        netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write()
        net/sched: flower: Ensure both minimum and maximum ports are specified
        MAINTAINERS: Add another mailing list for QUALCOMM ETHQOS ETHERNET DRIVER
        docs: netdev: update the URL of the status page
        wifi: iwlwifi: remove 'use_tfh' config to fix crash
        xdp: use trusted arguments in XDP hints kfuncs
        bpf: cpumap: Fix memory leak in cpu_map_update_elem
        wifi: airo: avoid uninitialized warning in airo_get_rate()
        octeontx2-pf: Add additional check for MCAM rules
        net: dsa: Removed unneeded of_node_put in felix_parse_ports_node
        net: fec: use netdev_err_once() instead of netdev_err()
        ...
      b1983d42
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.5-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · ebc27aac
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Fix some missing-prototype warnings
      
       - Fix user events struct args (did not include size of struct)
      
         When creating a user event, the "struct" keyword is to denote that
         the size of the field will be passed in. But the parsing failed to
         handle this case.
      
       - Add selftest to struct sizes for user events
      
       - Fix sample code for direct trampolines.
      
         The sample code for direct trampolines attached to handle_mm_fault().
         But the prototype changed and the direct trampoline sample code was
         not updated. Direct trampolines needs to have the arguments correct
         otherwise it can fail or crash the system.
      
       - Remove unused ftrace_regs_caller_ret() prototype.
      
       - Quiet false positive of FORTIFY_SOURCE
      
         Due to backward compatibility, the structure used to save stack
         traces in the kernel had a fixed size of 8. This structure is
         exported to user space via the tracing format file. A change was made
         to allow more than 8 functions to be recorded, and user space now
         uses the size field to know how many functions are actually in the
         stack.
      
         But the structure still has size of 8 (even though it points into the
         ring buffer that has the required amount allocated to hold a full
         stack.
      
         This was fine until the fortifier noticed that the
         memcpy(&entry->caller, stack, size) was greater than the 8 functions
         and would complain at runtime about it.
      
         Hide this by using a pointer to the stack location on the ring buffer
         instead of using the address of the entry structure caller field.
      
       - Fix a deadloop in reading trace_pipe that was caused by a mismatch
         between ring_buffer_empty() returning false which then asked to read
         the data, but the read code uses rb_num_of_entries() that returned
         zero, and causing a infinite "retry".
      
       - Fix a warning caused by not using all pages allocated to store ftrace
         functions, where this can happen if the linker inserts a bunch of
         "NULL" entries, causing the accounting of how many pages needed to be
         off.
      
       - Fix histogram synthetic event crashing when the start event is
         removed and the end event is still using a variable from it
      
       - Fix memory leak in freeing iter->temp in tracing_release_pipe()
      
      * tag 'trace-v6.5-rc1-3' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        tracing: Fix memory leak of iter->temp when reading trace_pipe
        tracing/histograms: Add histograms to hist_vars if they have referenced variables
        tracing: Stop FORTIFY_SOURCE complaining about stack trace caller
        ftrace: Fix possible warning on checking all pages used in ftrace_process_locs()
        ring-buffer: Fix deadloop issue on reading trace_pipe
        tracing: arm64: Avoid missing-prototype warnings
        selftests/user_events: Test struct size match cases
        tracing/user_events: Fix struct arg size match check
        x86/ftrace: Remove unsued extern declaration ftrace_regs_caller_ret()
        arm64: ftrace: Add direct call trampoline samples support
        samples: ftrace: Save required argument registers in sample trampolines
      ebc27aac
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.5-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip · 15999328
      Linus Torvalds authored
      Pull xen fixes from Juergen Gross:
      
       - a cleanup of the Xen related ELF-notes
      
       - a fix for virtio handling in Xen dom0 when running Xen in a VM
      
      * tag 'for-linus-6.5-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
        xen/virtio: Fix NULL deref when a bridge of PCI root bus has no parent
        x86/Xen: tidy xen-head.S
      15999328
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.5-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · 9350cd01
      Linus Torvalds authored
      Pull sh fixes from John Paul Adrian Glaubitz:
       "The sh updates introduced multiple regressions.
      
        In particular, the change a8ac2961 ("sh: Avoid using IRQ0 on SH3
        and SH4") causes several boards to hang during boot due to incorrect
        IRQ numbers.
      
        Geert Uytterhoeven has contributed patches that handle the virq offset
        in the IRQ code for the dreamcast, highlander and r2d boards while
        Artur Rojek has contributed a patch which handles the virq offset for
        the hd64461 companion chip"
      
      * tag 'sh-for-v6.5-tag2' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
        sh: hd64461: Handle virq offset for offchip IRQ base and HD64461 IRQ
        sh: mach-dreamcast: Handle virq offset in cascaded IRQ demux
        sh: mach-highlander: Handle virq offset in cascaded IRL demux
        sh: mach-r2d: Handle virq offset in cascaded IRL demux
      9350cd01
  3. Jul 13, 2023
    • Zheng Yejian's avatar
      tracing: Fix memory leak of iter->temp when reading trace_pipe · d5a82189
      Zheng Yejian authored
      kmemleak reports:
        unreferenced object 0xffff88814d14e200 (size 256):
          comm "cat", pid 336, jiffies 4294871818 (age 779.490s)
          hex dump (first 32 bytes):
            04 00 01 03 00 00 00 00 08 00 00 00 00 00 00 00  ................
            0c d8 c8 9b ff ff ff ff 04 5a ca 9b ff ff ff ff  .........Z......
          backtrace:
            [<ffffffff9bdff18f>] __kmalloc+0x4f/0x140
            [<ffffffff9bc9238b>] trace_find_next_entry+0xbb/0x1d0
            [<ffffffff9bc9caef>] trace_print_lat_context+0xaf/0x4e0
            [<ffffffff9bc94490>] print_trace_line+0x3e0/0x950
            [<ffffffff9bc95499>] tracing_read_pipe+0x2d9/0x5a0
            [<ffffffff9bf03a43>] vfs_read+0x143/0x520
            [<ffffffff9bf04c2d>] ksys_read+0xbd/0x160
            [<ffffffff9d0f0edf>] do_syscall_64+0x3f/0x90
            [<ffffffff9d2000aa>] entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      
      when reading file 'trace_pipe', 'iter->temp' is allocated or relocated
      in trace_find_next_entry() but not freed before 'trace_pipe' is closed.
      
      To fix it, free 'iter->temp' in tracing_release_pipe().
      
      Link: https://lore.kernel.org/linux-trace-kernel/20230713141435.1133021-1-zhengyejian1@huawei.com
      
      Cc: stable@vger.kernel.org
      Fixes: ff895103
      
       ("tracing: Save off entry when peeking at next entry")
      Signed-off-by: default avatarZheng Yejian <zhengyejian1@huawei.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      d5a82189
    • Ilya Dryomov's avatar
      libceph: harden msgr2.1 frame segment length checks · a282a2f1
      Ilya Dryomov authored
      ceph_frame_desc::fd_lens is an int array.  decode_preamble() thus
      effectively casts u32 -> int but the checks for segment lengths are
      written as if on unsigned values.  While reading in HELLO or one of the
      AUTH frames (before authentication is completed), arithmetic in
      head_onwire_len() can get duped by negative ctrl_len and produce
      head_len which is less than CEPH_PREAMBLE_LEN but still positive.
      This would lead to a buffer overrun in prepare_read_control() as the
      preamble gets copied to the newly allocated buffer of size head_len.
      
      Cc: stable@vger.kernel.org
      Fixes: cd1a677c
      
       ("libceph, ceph: implement msgr2.1 protocol (crc and secure modes)")
      Reported-by: default avatarThelford Williams <thelford@google.com>
      Signed-off-by: default avatarIlya Dryomov <idryomov@gmail.com>
      Reviewed-by: default avatarXiubo Li <xiubli@redhat.com>
      a282a2f1
    • Paolo Abeni's avatar
      Merge branch 'net-sched-fixes-for-sch_qfq' · 9d23aac8
      Paolo Abeni authored
      
      
      Pedro Tammela says:
      
      ====================
      net/sched: fixes for sch_qfq
      
      Patch 1 fixes a regression introduced in 6.4 where the MTU size could be
      bigger than 'lmax'.
      
      Patch 3 fixes an issue where the code doesn't account for qdisc_pkt_len()
      returning a size bigger then 'lmax'.
      
      Patches 2 and 4 are selftests for the issues above.
      ====================
      
      Link: https://lore.kernel.org/r/20230711210103.597831-1-pctammela@mojatatu.com
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      9d23aac8
    • Pedro Tammela's avatar
      selftests: tc-testing: add test for qfq with stab overhead · 137f6219
      Pedro Tammela authored
      
      
      A packet with stab overhead greater than QFQ_MAX_LMAX should be dropped
      by the QFQ qdisc as it can't handle such lengths.
      
      Signed-off-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Tested-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      137f6219
    • Pedro Tammela's avatar
      net/sched: sch_qfq: account for stab overhead in qfq_enqueue · 3e337087
      Pedro Tammela authored
      Lion says:
      -------
      In the QFQ scheduler a similar issue to CVE-2023-31436
      persists.
      
      Consider the following code in net/sched/sch_qfq.c:
      
      static int qfq_enqueue(struct sk_buff *skb, struct Qdisc *sch,
                      struct sk_buff **to_free)
      {
           unsigned int len = qdisc_pkt_len(skb), gso_segs;
      
          // ...
      
           if (unlikely(cl->agg->lmax < len)) {
               pr_debug("qfq: increasing maxpkt from %u to %u for class %u",
                    cl->agg->lmax, len, cl->common.classid);
               err = qfq_change_agg(sch, cl, cl->agg->class_weight, len);
               if (err) {
                   cl->qstats.drops++;
                   return qdisc_drop(skb, sch, to_free);
               }
      
          // ...
      
           }
      
      Similarly to CVE-2023-31436, "lmax" is increased without any bounds
      checks according to the packet length "len". Usually this would not
      impose a problem because packet sizes are naturally limited.
      
      This is however not the actual packet length, rather the
      "qdisc_pkt_len(skb)" which might apply size transformations according to
      "struct qdisc_size_table" as created by "qdisc_get_stab()" in
      net/sched/sch_api.c if the TCA_STAB option was set when modifying the qdisc.
      
      A user may choose virtually any size using such a table.
      
      As a result the same issue as in CVE-2023-31436 can occur, allowing heap
      out-of-bounds read / writes in the kmalloc-8192 cache.
      -------
      
      We can create the issue with the following commands:
      
      tc qdisc add dev $DEV root handle 1: stab mtu 2048 tsize 512 mpu 0 \
      overhead 999999999 linklayer ethernet qfq
      tc class add dev $DEV parent 1: classid 1:1 htb rate 6mbit burst 15k
      tc filter add dev $DEV parent 1: matchall classid 1:1
      ping -I $DEV 1.1.1.2
      
      This is caused by incorrectly assuming that qdisc_pkt_len() returns a
      length within the QFQ_MIN_LMAX < len < QFQ_MAX_LMAX.
      
      Fixes: 462dbc91
      
       ("pkt_sched: QFQ Plus: fair-queueing service at DRR cost")
      Reported-by: default avatarLion <nnamrec@gmail.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      3e337087
    • Pedro Tammela's avatar
      selftests: tc-testing: add tests for qfq mtu sanity check · c5a06fdc
      Pedro Tammela authored
      
      
      QFQ only supports a certain bound of MTU size so make sure
      we check for this requirement in the tests.
      
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Signed-off-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Tested-by: default avatarZhengchao Shao <shaozhengchao@huawei.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      c5a06fdc
    • Pedro Tammela's avatar
      net/sched: sch_qfq: reintroduce lmax bound check for MTU · 158810b2
      Pedro Tammela authored
      25369891 deletes a check for the case where no 'lmax' is
      specified which 30379334 previously fixed as 'lmax'
      could be set to the device's MTU without any bound checking
      for QFQ_LMAX_MIN and QFQ_LMAX_MAX. Therefore, reintroduce the check.
      
      Fixes: 25369891
      
       ("net/sched: sch_qfq: refactor parsing of netlink parameters")
      Acked-by: default avatarJamal Hadi Salim <jhs@mojatatu.com>
      Reviewed-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
      158810b2
    • Artur Rojek's avatar
      sh: hd64461: Handle virq offset for offchip IRQ base and HD64461 IRQ · 7c28a35e
      Artur Rojek authored
      A recent change to start counting SuperH IRQ #s from 16 breaks support
      for the Hitachi HD64461 companion chip.
      
      Move the offchip IRQ base and HD64461 IRQ # by 16 in order to
      accommodate for the new virq numbering rules.
      
      Fixes: a8ac2961
      
       ("sh: Avoid using IRQ0 on SH3 and SH4")
      Signed-off-by: default avatarArtur Rojek <contact@artur-rojek.eu>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Link: https://lore.kernel.org/r/20230710233132.69734-1-contact@artur-rojek.eu
      Signed-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      7c28a35e
    • Geert Uytterhoeven's avatar
      sh: mach-dreamcast: Handle virq offset in cascaded IRQ demux · 3d20f7a6
      Geert Uytterhoeven authored
      Take into account the virq offset when translating cascaded interrupts.
      
      Fixes: a8ac2961
      
       ("sh: Avoid using IRQ0 on SH3 and SH4")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Link: https://lore.kernel.org/r/7d0cb246c9f1cd24bb1f637ec5cb67e799a4c3b8.1688908227.git.geert+renesas@glider.be
      Signed-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      3d20f7a6
    • Geert Uytterhoeven's avatar
      sh: mach-highlander: Handle virq offset in cascaded IRL demux · a2601b8d
      Geert Uytterhoeven authored
      Take into account the virq offset when translating cascaded IRL
      interrupts.
      
      Fixes: a8ac2961
      
       ("sh: Avoid using IRQ0 on SH3 and SH4")
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Link: https://lore.kernel.org/r/4fcb0d08a2b372431c41e04312742dc9e41e1be4.1688908186.git.geert+renesas@glider.be
      Signed-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      a2601b8d
    • Geert Uytterhoeven's avatar
      sh: mach-r2d: Handle virq offset in cascaded IRL demux · ab8aa4f0
      Geert Uytterhoeven authored
      When booting rts7751r2dplus_defconfig on QEMU, the system hangs due to
      an interrupt storm on IRQ 20.  IRQ 20 aka event 0x280 is a cascaded IRL
      interrupt, which maps to IRQ_VOYAGER, the interrupt used by the Silicon
      Motion SM501 multimedia companion chip.  As rts7751r2d_irq_demux() does
      not take into account the new virq offset, the interrupt is no longer
      translated, leading to an unhandled interrupt.
      
      Fix this by taking into account the virq offset when translating
      cascaded IRL interrupts.
      
      Fixes: a8ac2961
      
       ("sh: Avoid using IRQ0 on SH3 and SH4")
      Reported-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Closes: https://lore.kernel.org/r/fbfea3ad-d327-4ad5-ac9c-648c7ca3fe1f@roeck-us.net
      Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Tested-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      Tested-by: default avatarGuenter Roeck <linux@roeck-us.net>
      Link: https://lore.kernel.org/r/2c99d5df41c40691f6c407b7b6a040d406bc81ac.1688901306.git.geert+renesas@glider.be
      Signed-off-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      ab8aa4f0
    • Jakub Kicinski's avatar
      Merge tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · b0b0ab6f
      Jakub Kicinski authored
      
      
      Alexei Starovoitov says:
      
      ====================
      pull-request: bpf 2023-07-12
      
      We've added 5 non-merge commits during the last 7 day(s) which contain
      a total of 7 files changed, 93 insertions(+), 28 deletions(-).
      
      The main changes are:
      
      1) Fix max stack depth check for async callbacks, from Kumar.
      
      2) Fix inconsistent JIT image generation, from Björn.
      
      3) Use trusted arguments in XDP hints kfuncs, from Larysa.
      
      4) Fix memory leak in cpu_map_update_elem, from Pu.
      
      * tag 'for-netdev' of https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
        xdp: use trusted arguments in XDP hints kfuncs
        bpf: cpumap: Fix memory leak in cpu_map_update_elem
        riscv, bpf: Fix inconsistent JIT image generation
        selftests/bpf: Add selftest for check_stack_max_depth bug
        bpf: Fix max stack depth check for async callbacks
      ====================
      
      Link: https://lore.kernel.org/r/20230712223045.40182-1-alexei.starovoitov@gmail.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      b0b0ab6f
    • Felix Fietkau's avatar
      wifi: cfg80211: fix receiving mesh packets without RFC1042 header · fec3ebb5
      Felix Fietkau authored
      Fix ethernet header length field after stripping the mesh header
      
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/all/CT5GNZSK28AI.2K6M69OXM9RW5@syracuse/
      Fixes: 986e43b1
      
       ("wifi: mac80211: fix receiving A-MSDU frames on mesh interfaces")
      Reported-and-tested-by: default avatarNicolas Escande <nico.escande@gmail.com>
      Signed-off-by: default avatarFelix Fietkau <nbd@nbd.name>
      Link: https://lore.kernel.org/r/20230711115052.68430-1-nbd@nbd.name
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      fec3ebb5
    • Zhang Shurong's avatar
      wifi: rtw89: debug: fix error code in rtw89_debug_priv_send_h2c_set() · 4f4626cd
      Zhang Shurong authored
      If there is a failure during rtw89_fw_h2c_raw() rtw89_debug_priv_send_h2c
      should return negative error code instead of a positive value count.
      Fix this bug by returning correct error code.
      
      Fixes: e3ec7017
      
       ("rtw89: add Realtek 802.11ax driver")
      Signed-off-by: default avatarZhang Shurong <zhang_shurong@foxmail.com>
      Acked-by: default avatarPing-Ke Shih <pkshih@realtek.com>
      Link: https://lore.kernel.org/r/tencent_AD09A61BC4DA92AD1EB0790F5C850E544D07@qq.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      4f4626cd
    • Jiawen Wu's avatar
      net: txgbe: fix eeprom calculation error · aa846677
      Jiawen Wu authored
      For some device types like TXGBE_ID_XAUI, *checksum computed in
      txgbe_calc_eeprom_checksum() is larger than TXGBE_EEPROM_SUM. Remove the
      limit on the size of *checksum.
      
      Fixes: 049fe536 ("net: txgbe: Add operations to interact with firmware")
      Fixes: 5e2ea780
      
       ("net: txgbe: Fix unsigned comparison to zero in txgbe_calc_eeprom_checksum()")
      Signed-off-by: default avatarJiawen Wu <jiawenwu@trustnetic.com>
      Link: https://lore.kernel.org/r/20230711063414.3311-1-jiawenwu@trustnetic.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      aa846677
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of https://github.com/openrisc/linux · 0099852f
      Linus Torvalds authored
      Pull OpenRISC fix from Stafford Horne:
      
       - During the 6.4 cycle my fpu support work broke ABI compatibility in
         the sigcontext struct. This was noticed by musl libc developers after
         the release. This fix restores the ABI.
      
      * tag 'for-linus' of https://github.com/openrisc/linux:
        openrisc: Union fpcsr and oldmask in sigcontext to unbreak userspace ABI
      0099852f
    • Mohamed Khalfella's avatar
      tracing/histograms: Add histograms to hist_vars if they have referenced variables · 6018b585
      Mohamed Khalfella authored
      Hist triggers can have referenced variables without having direct
      variables fields. This can be the case if referenced variables are added
      for trigger actions. In this case the newly added references will not
      have field variables. Not taking such referenced variables into
      consideration can result in a bug where it would be possible to remove
      hist trigger with variables being refenced. This will result in a bug
      that is easily reproducable like so
      
      $ cd /sys/kernel/tracing
      $ echo 'synthetic_sys_enter char[] comm; long id' >> synthetic_events
      $ echo 'hist:keys=common_pid.execname,id.syscall:vals=hitcount:comm=common_pid.execname' >> events/raw_syscalls/sys_enter/trigger
      $ echo 'hist:keys=common_pid.execname,id.syscall:onmatch(raw_syscalls.sys_enter).synthetic_sys_enter($comm, id)' >> events/raw_syscalls/sys_enter/trigger
      $ echo '!hist:keys=common_pid.execname,id.syscall:vals=hitcount:comm=common_pid.execname' >> events/raw_syscalls/sys_enter/trigger
      
      [  100.263533] ==================================================================
      [  100.264634] BUG: KASAN: slab-use-after-free in resolve_var_refs+0xc7/0x180
      [  100.265520] Read of size 8 at addr ffff88810375d0f0 by task bash/439
      [  100.266320]
      [  100.266533] CPU: 2 PID: 439 Comm: bash Not tainted 6.5.0-rc1 #4
      [  100.267277] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.0-20220807_005459-localhost 04/01/2014
      [  100.268561] Call Trace:
      [  100.268902]  <TASK>
      [  100.269189]  dump_stack_lvl+0x4c/0x70
      [  100.269680]  print_report+0xc5/0x600
      [  100.270165]  ? resolve_var_refs+0xc7/0x180
      [  100.270697]  ? kasan_complete_mode_report_info+0x80/0x1f0
      [  100.271389]  ? resolve_var_refs+0xc7/0x180
      [  100.271913]  kasan_report+0xbd/0x100
      [  100.272380]  ? resolve_var_refs+0xc7/0x180
      [  100.272920]  __asan_load8+0x71/0xa0
      [  100.273377]  resolve_var_refs+0xc7/0x180
      [  100.273888]  event_hist_trigger+0x749/0x860
      [  100.274505]  ? kasan_save_stack+0x2a/0x50
      [  100.275024]  ? kasan_set_track+0x29/0x40
      [  100.275536]  ? __pfx_event_hist_trigger+0x10/0x10
      [  100.276138]  ? ksys_write+0xd1/0x170
      [  100.276607]  ? do_syscall_64+0x3c/0x90
      [  100.277099]  ? entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      [  100.277771]  ? destroy_hist_data+0x446/0x470
      [  100.278324]  ? event_hist_trigger_parse+0xa6c/0x3860
      [  100.278962]  ? __pfx_event_hist_trigger_parse+0x10/0x10
      [  100.279627]  ? __kasan_check_write+0x18/0x20
      [  100.280177]  ? mutex_unlock+0x85/0xd0
      [  100.280660]  ? __pfx_mutex_unlock+0x10/0x10
      [  100.281200]  ? kfree+0x7b/0x120
      [  100.281619]  ? ____kasan_slab_free+0x15d/0x1d0
      [  100.282197]  ? event_trigger_write+0xac/0x100
      [  100.282764]  ? __kasan_slab_free+0x16/0x20
      [  100.283293]  ? __kmem_cache_free+0x153/0x2f0
      [  100.283844]  ? sched_mm_cid_remote_clear+0xb1/0x250
      [  100.284550]  ? __pfx_sched_mm_cid_remote_clear+0x10/0x10
      [  100.285221]  ? event_trigger_write+0xbc/0x100
      [  100.285781]  ? __kasan_check_read+0x15/0x20
      [  100.286321]  ? __bitmap_weight+0x66/0xa0
      [  100.286833]  ? _find_next_bit+0x46/0xe0
      [  100.287334]  ? task_mm_cid_work+0x37f/0x450
      [  100.287872]  event_triggers_call+0x84/0x150
      [  100.288408]  trace_event_buffer_commit+0x339/0x430
      [  100.289073]  ? ring_buffer_event_data+0x3f/0x60
      [  100.292189]  trace_event_raw_event_sys_enter+0x8b/0xe0
      [  100.295434]  syscall_trace_enter.constprop.0+0x18f/0x1b0
      [  100.298653]  syscall_enter_from_user_mode+0x32/0x40
      [  100.301808]  do_syscall_64+0x1a/0x90
      [  100.304748]  entry_SYSCALL_64_after_hwframe+0x6e/0xd8
      [  100.307775] RIP: 0033:0x7f686c75c1cb
      [  100.310617] Code: 73 01 c3 48 8b 0d 65 3c 10 00 f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa b8 21 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 35 3c 10 00 f7 d8 64 89 01 48
      [  100.317847] RSP: 002b:00007ffc60137a38 EFLAGS: 00000246 ORIG_RAX: 0000000000000021
      [  100.321200] RAX: ffffffffffffffda RBX: 000055f566469ea0 RCX: 00007f686c75c1cb
      [  100.324631] RDX: 0000000000000001 RSI: 0000000000000001 RDI: 000000000000000a
      [  100.328104] RBP: 00007ffc60137ac0 R08: 00007f686c818460 R09: 000000000000000a
      [  100.331509] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000009
      [  100.334992] R13: 0000000000000007 R14: 000000000000000a R15: 0000000000000007
      [  100.338381]  </TASK>
      
      We hit the bug because when second hist trigger has was created
      has_hist_vars() returned false because hist trigger did not have
      variables. As a result of that save_hist_vars() was not called to add
      the trigger to trace_array->hist_vars. Later on when we attempted to
      remove the first histogram find_any_var_ref() failed to detect it is
      being used because it did not find the second trigger in hist_vars list.
      
      With this change we wait until trigger actions are created so we can take
      into consideration if hist trigger has variable references. Also, now we
      check the return value of save_hist_vars() and fail trigger creation if
      save_hist_vars() fails.
      
      Link: https://lore.kernel.org/linux-trace-kernel/20230712223021.636335-1-mkhalfella@purestorage.com
      
      Cc: stable@vger.kernel.org
      Fixes: 067fe038
      
       ("tracing: Add variable reference handling to hist triggers")
      Signed-off-by: default avatarMohamed Khalfella <mkhalfella@purestorage.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      6018b585
    • Pedro Tammela's avatar
      net/sched: make psched_mtu() RTNL-less safe · 150e33e6
      Pedro Tammela authored
      Eric Dumazet says[1]:
      -------
      Speaking of psched_mtu(), I see that net/sched/sch_pie.c is using it
      without holding RTNL, so dev->mtu can be changed underneath.
      KCSAN could issue a warning.
      -------
      
      Annotate dev->mtu with READ_ONCE() so KCSAN don't issue a warning.
      
      [1] https://lore.kernel.org/all/CANn89iJoJO5VtaJ-2=_d2aOQhb0Xw8iBT_Cxqp2HyuS-zj6azw@mail.gmail.com/
      
      v1 -> v2: Fix commit message
      
      Fixes: d4b36210
      
       ("net: pkt_sched: PIE AQM scheme")
      Suggested-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarPedro Tammela <pctammela@mojatatu.com>
      Reviewed-by: default avatarSimon Horman <simon.horman@corigine.com>
      Link: https://lore.kernel.org/r/20230711021634.561598-1-pctammela@mojatatu.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      150e33e6
    • Krister Johansen's avatar
      net: ena: fix shift-out-of-bounds in exponential backoff · 1e9cb763
      Krister Johansen authored
      The ENA adapters on our instances occasionally reset.  Once recently
      logged a UBSAN failure to console in the process:
      
        UBSAN: shift-out-of-bounds in build/linux/drivers/net/ethernet/amazon/ena/ena_com.c:540:13
        shift exponent 32 is too large for 32-bit type 'unsigned int'
        CPU: 28 PID: 70012 Comm: kworker/u72:2 Kdump: loaded not tainted 5.15.117
        Hardware name: Amazon EC2 c5d.9xlarge/, BIOS 1.0 10/16/2017
        Workqueue: ena ena_fw_reset_device [ena]
        Call Trace:
        <TASK>
        dump_stack_lvl+0x4a/0x63
        dump_stack+0x10/0x16
        ubsan_epilogue+0x9/0x36
        __ubsan_handle_shift_out_of_bounds.cold+0x61/0x10e
        ? __const_udelay+0x43/0x50
        ena_delay_exponential_backoff_us.cold+0x16/0x1e [ena]
        wait_for_reset_state+0x54/0xa0 [ena]
        ena_com_dev_reset+0xc8/0x110 [ena]
        ena_down+0x3fe/0x480 [ena]
        ena_destroy_device+0xeb/0xf0 [ena]
        ena_fw_reset_device+0x30/0x50 [ena]
        process_one_work+0x22b/0x3d0
        worker_thread+0x4d/0x3f0
        ? process_one_work+0x3d0/0x3d0
        kthread+0x12a/0x150
        ? set_kthread_struct+0x50/0x50
        ret_from_fork+0x22/0x30
        </TASK>
      
      Apparently, the reset delays are getting so large they can trigger a
      UBSAN panic.
      
      Looking at the code, the current timeout is capped at 5000us.  Using a
      base value of 100us, the current code will overflow after (1<<29).  Even
      at values before 32, this function wraps around, perhaps
      unintentionally.
      
      Cap the value of the exponent used for this backoff at (1<<16) which is
      larger than currently necessary, but large enough to support bigger
      values in the future.
      
      Cc: stable@vger.kernel.org
      Fixes: 4bb7f4cf
      
       ("net: ena: reduce driver load time")
      Signed-off-by: default avatarKrister Johansen <kjlx@templeofstupid.com>
      Reviewed-by: default avatarLeon Romanovsky <leonro@nvidia.com>
      Reviewed-by: default avatarShay Agroskin <shayagr@amazon.com>
      Link: https://lore.kernel.org/r/20230711013621.GE1926@templeofstupid.com
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      1e9cb763
    • Steven Rostedt (Google)'s avatar
      tracing: Stop FORTIFY_SOURCE complaining about stack trace caller · bec3c25c
      Steven Rostedt (Google) authored
      
      
      The stack_trace event is an event created by the tracing subsystem to
      store stack traces. It originally just contained a hard coded array of 8
      words to hold the stack, and a "size" to know how many entries are there.
      This is exported to user space as:
      
      name: kernel_stack
      ID: 4
      format:
      	field:unsigned short common_type;	offset:0;	size:2;	signed:0;
      	field:unsigned char common_flags;	offset:2;	size:1;	signed:0;
      	field:unsigned char common_preempt_count;	offset:3;	size:1;	signed:0;
      	field:int common_pid;	offset:4;	size:4;	signed:1;
      
      	field:int size;	offset:8;	size:4;	signed:1;
      	field:unsigned long caller[8];	offset:16;	size:64;	signed:0;
      
      print fmt: "\t=> %ps\n\t=> %ps\n\t=> %ps\n" "\t=> %ps\n\t=> %ps\n\t=> %ps\n" "\t=> %ps\n\t=> %ps\n",i
       (void *)REC->caller[0], (void *)REC->caller[1], (void *)REC->caller[2],
       (void *)REC->caller[3], (void *)REC->caller[4], (void *)REC->caller[5],
       (void *)REC->caller[6], (void *)REC->caller[7]
      
      Where the user space tracers could parse the stack. The library was
      updated for this specific event to only look at the size, and not the
      array. But some older users still look at the array (note, the older code
      still checks to make sure the array fits inside the event that it read.
      That is, if only 4 words were saved, the parser would not read the fifth
      word because it will see that it was outside of the event size).
      
      This event was changed a while ago to be more dynamic, and would save a
      full stack even if it was greater than 8 words. It does this by simply
      allocating more ring buffer to hold the extra words. Then it copies in the
      stack via:
      
      	memcpy(&entry->caller, fstack->calls, size);
      
      As the entry is struct stack_entry, that is created by a macro to both
      create the structure and export this to user space, it still had the caller
      field of entry defined as: unsigned long caller[8].
      
      When the stack is greater than 8, the FORTIFY_SOURCE code notices that the
      amount being copied is greater than the source array and complains about
      it. It has no idea that the source is pointing to the ring buffer with the
      required allocation.
      
      To hide this from the FORTIFY_SOURCE logic, pointer arithmetic is used:
      
      	ptr = ring_buffer_event_data(event);
      	entry = ptr;
      	ptr += offsetof(typeof(*entry), caller);
      	memcpy(ptr, fstack->calls, size);
      
      Link: https://lore.kernel.org/all/20230612160748.4082850-1-svens@linux.ibm.com/
      Link: https://lore.kernel.org/linux-trace-kernel/20230712105235.5fc441aa@gandalf.local.home
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Reported-by: default avatarSven Schnelle <svens@linux.ibm.com>
      Tested-by: default avatarSven Schnelle <svens@linux.ibm.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      bec3c25c
    • Zheng Yejian's avatar
      ftrace: Fix possible warning on checking all pages used in ftrace_process_locs() · 26efd79c
      Zheng Yejian authored
      As comments in ftrace_process_locs(), there may be NULL pointers in
      mcount_loc section:
       > Some architecture linkers will pad between
       > the different mcount_loc sections of different
       > object files to satisfy alignments.
       > Skip any NULL pointers.
      
      After commit 20e5227e ("ftrace: allow NULL pointers in mcount_loc"),
      NULL pointers will be accounted when allocating ftrace pages but skipped
      before adding into ftrace pages, this may result in some pages not being
      used. Then after commit 706c81f8 ("ftrace: Remove extra helper
      functions"), warning may occur at:
        WARN_ON(pg->next);
      
      To fix it, only warn for case that no pointers skipped but pages not used
      up, then free those unused pages after releasing ftrace_lock.
      
      Link: https://lore.kernel.org/linux-trace-kernel/20230712060452.3175675-1-zhengyejian1@huawei.com
      
      Cc: stable@vger.kernel.org
      Fixes: 706c81f8
      
       ("ftrace: Remove extra helper functions")
      Suggested-by: default avatarSteven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarZheng Yejian <zhengyejian1@huawei.com>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      26efd79c
    • Karol Herbst's avatar
      drm/nouveau: bring back blit subchannel for pre nv50 GPUs · 835a65f5
      Karol Herbst authored
      1ba6113a90a0 removed a lot of the kernel GPU channel, but method 0x128
      was important as otherwise the GPU spams us with `CACHE_ERROR` messages.
      
      We use the blit subchannel inside our vblank handling, so we should keep
      at least this part.
      
      v2: Only do it for NV11+ GPUs
      
      Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/201
      Fixes: 4a16dd9d
      
       ("drm/nouveau/kms: switch to drm fbdev helpers")
      Signed-off-by: default avatarKarol Herbst <kherbst@redhat.com>
      Reviewed-by: default avatarBen Skeggs <bskeggs@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230526091052.2169044-1-kherbst@redhat.com
      835a65f5
    • Karol Herbst's avatar
      drm/nouveau/acr: Abort loading ACR if no firmware was found · 938a06c8
      Karol Herbst authored
      This fixes a NULL pointer access inside nvkm_acr_oneinit in case necessary
      firmware files couldn't be loaded.
      
      Closes: https://gitlab.freedesktop.org/drm/nouveau/-/issues/212
      Fixes: 4b569ded
      
       ("drm/nouveau/acr/ga102: initial support")
      Signed-off-by: default avatarKarol Herbst <kherbst@redhat.com>
      Reviewed-by: default avatarDave Airlie <airlied@redhat.com>
      Link: https://patchwork.freedesktop.org/patch/msgid/20230522201838.1496622-1-kherbst@redhat.com
      938a06c8
    • Dan Carpenter's avatar
      netdevsim: fix uninitialized data in nsim_dev_trap_fa_cookie_write() · f72207a5
      Dan Carpenter authored
      The simple_write_to_buffer() function is designed to handle partial
      writes.  It returns negatives on error, otherwise it returns the number
      of bytes that were able to be copied.  This code doesn't check the
      return properly.  We only know that the first byte is written, the rest
      of the buffer might be uninitialized.
      
      There is no need to use the simple_write_to_buffer() function.
      Partial writes are prohibited by the "if (*ppos != 0)" check at the
      start of the function.  Just use memdup_user() and copy the whole
      buffer.
      
      Fixes: d3cbb907
      
       ("netdevsim: add ACL trap reporting cookie as a metadata")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
      Reviewed-by: default avatarPavan Chebbi <pavan.chebbi@broadcom.com>
      Reviewed-by: default avatarIdo Schimmel <idosch@nvidia.com>
      Link: https://lore.kernel.org/r/7c1f950b-3a7d-4252-82a6-876e53078ef7@moroto.mountain
      Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
      f72207a5
    • Linus Torvalds's avatar
      Merge tag 'platform-drivers-x86-v6.5-2' of... · eb26cbb1
      Linus Torvalds authored
      Merge tag 'platform-drivers-x86-v6.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86
      
      Pull x86 platform driver fixes from Hans de Goede:
       "Misc small fixes and hw-id additions"
      
      * tag 'platform-drivers-x86-v6.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86:
        platform/x86: touchscreen_dmi: Add info for the Archos 101 Cesium Educ tablet
        platform/x86: dell-ddv: Fix mangled list in documentation
        platform/x86: dell-ddv: Improve error handling
        platform/x86/amd: pmf: Add new ACPI ID AMDI0103
        platform/x86/amd: pmc: Add new ACPI ID AMDI000A
        platform/x86/amd: pmc: Apply nvme quirk to HP 15s-eq2xxx
        platform/x86: Move s2idle quirk from thinkpad-acpi to amd-pmc
        platform/x86: int3472/discrete: set variable skl_int3472_regulator_second_sensor storage-class-specifier to static
        platform/x86/intel/tpmi: Prevent overflow for cap_offset
        platform/x86: wmi: Replace open coded guid_parse_and_compare()
        platform/x86: wmi: Break possible infinite loop when parsing GUID
      eb26cbb1
    • Linus Torvalds's avatar
      Merge tag 'probes-fixes-v6.5-rc1' of... · 9a3236ce
      Linus Torvalds authored
      Merge tag 'probes-fixes-v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull probes fixes from Masami Hiramatsu:
      
       - Fix fprobe's rethook release issues:
      
           - Release rethook after ftrace_ops is unregistered so that the
             rethook is not accessed after free.
      
           - Stop rethook before ftrace_ops is unregistered so that the
             rethook is NOT used after exiting unregister_fprobe()
      
       - Fix eprobe cleanup logic. If it attaches to multiple events and
         failes to enable one of them, rollback all enabled events correctly.
      
       - Fix fprobe to unlock ftrace recursion lock correctly when it missed
         by another running kprobe.
      
       - Cleanup kprobe to remove unnecessary NULL.
      
       - Cleanup kprobe to remove unnecessary 0 initializations.
      
      * tag 'probes-fixes-v6.5-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        fprobe: Ensure running fprobe_exit_handler() finished before calling rethook_free()
        kernel: kprobes: Remove unnecessary ‘0’ values
        kprobes: Remove unnecessary ‘NULL’ values from correct_ret_addr
        fprobe: add unlock to match a succeeded ftrace_test_recursion_trylock
        kernel/trace: Fix cleanup logic of enable_trace_eprobe
        fprobe: Release rethook after the ftrace_ops is unregistered
      9a3236ce
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2023071101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 1d754604
      Linus Torvalds authored
      Pull HID fixes from Benjamin Tissoires:
      
       - AMD SFH shift-out-of-bounds fix (Basavaraj Natikar)
      
       - avoid struct memcpy overrun warning in the hid-hyperv module (Arnd
         Bergmann)
      
       - a quick HID kselftests script fix for our CI to be happy (Benjamin
         Tissoires)
      
       - various fixes and additions of device IDs
      
      * tag 'for-linus-2023071101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid:
        HID: amd_sfh: Fix for shift-out-of-bounds
        HID: amd_sfh: Rename the float32 variable
        HID: input: fix mapping for camera access keys
        HID: logitech-hidpp: Add wired USB id for Logitech G502 Lightspeed
        HID: nvidia-shield: Pack inner/related declarations in HOSTCMD reports
        HID: hyperv: avoid struct memcpy overrun warning
        selftests: hid: fix vmtests.sh not running make headers
      1d754604
    • Mario Limonciello's avatar
      drm/amd: Align SMU11 SMU_MSG_OverridePcieParameters implementation with SMU13 · e701156c
      Mario Limonciello authored
      SMU13 overrides dynamic PCIe lane width and dynamic speed by when on
      certain hosts. commit 38e4ced8
      
       ("drm/amd/pm: conditionally disable
      pcie lane switching for some sienna_cichlid SKUs") worked around this
      issue by setting up certain SKUs to set up certain limits, but the same
      fundamental problem with those hosts affects all SMU11 implmentations
      as well, so align the SMU11 and SMU13 driver handling.
      
      Signed-off-by: default avatarMario Limonciello <mario.limonciello@amd.com>
      Reviewed-by: default avatarEvan Quan <evan.quan@amd.com>
      Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
      Cc: stable@vger.kernel.org # 6.1.x
      e701156c