Skip to content

FROMLIST: arm64: dts: qcom: qcm6490-idp: add and enable IPA node#1377

Closed
rpavanqcom wants to merge 3323 commits into
qualcomm-linux:tech/all/dt/qcs6490from
rpavanqcom:ipa_fw
Closed

FROMLIST: arm64: dts: qcom: qcm6490-idp: add and enable IPA node#1377
rpavanqcom wants to merge 3323 commits into
qualcomm-linux:tech/all/dt/qcs6490from
rpavanqcom:ipa_fw

Conversation

@rpavanqcom

Copy link
Copy Markdown

Enable IPA and ensure ipa apps loads the gsi firmware because modem doesn't support IPA FW loading.

Link: https://lore.kernel.org/lkml/20250304152133.GA2763820@hu-kapandey-hyd.qualcomm.com/T/#u

kuba-moo and others added 30 commits June 4, 2026 08:47
Andy Roulin says:

====================
vxlan: vnifilter: fix VNI add/update notifications

When a vxlan device has vnifilter enabled, userspace observers
(e.g., bridge monitor vni) miss VNI add events and see spurious
notifications on no-op VNI re-adds.

Patch 1 fixes the missing notification on VNI add: vxlan_vni_add()
guarded the notification on a 'changed' flag that vxlan_vni_update_group()
only sets when a multicast group or remote is supplied, so VNIs added
without a group (e.g., L3 VXLAN) were silently created.

Patch 2 fixes the spurious notification on VNI update: vxlan_vni_update()
tested 'if (changed)' against a bool pointer instead of dereferencing it,
so every re-add produced a notification regardless of whether anything
actually changed.

Patch 3 adds a selftest covering both bugs along with a few related
cases (add with remote, remote update, delete-nonexistent).
====================

Link: https://patch.msgid.link/20260602185138.253265-1-aroulin@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
When processing an MLD query, a pointer to the multicast group address
is retrieved when initially parsing the packet. This pointer is later
dereferenced without being reloaded despite the fact that the skb header
might have been reallocated following the pskb_may_pull() calls, leading
to a use-after-free [1].

Fix by copying the multicast group address when the packet is initially
parsed.

[1]
BUG: KASAN: slab-use-after-free in __mld_query_work (net/ipv6/mcast.c:1512)
Read of size 8 at addr ffff8881154b8e90 by task kworker/4:1/118

Workqueue: mld mld_query_work
Call Trace:
<TASK>
dump_stack_lvl (lib/dump_stack.c:94 lib/dump_stack.c:120)
print_address_description.constprop.0 (mm/kasan/report.c:378)
print_report (mm/kasan/report.c:482)
kasan_report (mm/kasan/report.c:595)
__mld_query_work (net/ipv6/mcast.c:1512)
mld_query_work (net/ipv6/mcast.c:1563)
process_one_work (kernel/workqueue.c:3314)
worker_thread (kernel/workqueue.c:3397 kernel/workqueue.c:3478)
kthread (kernel/kthread.c:436)
ret_from_fork (arch/x86/kernel/process.c:158)
ret_from_fork_asm (arch/x86/entry/entry_64.S:245)
</TASK>

[...]

Freed by task 118:
kasan_save_stack (mm/kasan/common.c:57)
kasan_save_track (mm/kasan/common.c:78)
kasan_save_free_info (mm/kasan/generic.c:584)
__kasan_slab_free (mm/kasan/common.c:253 mm/kasan/common.c:285)
kfree (./include/linux/kasan.h:235 mm/slub.c:2689 mm/slub.c:6251 mm/slub.c:6566)
pskb_expand_head (net/core/skbuff.c:2335)
__pskb_pull_tail (net/core/skbuff.c:2878 (discriminator 4))
__mld_query_work (net/ipv6/mcast.c:1495 (discriminator 1))
mld_query_work (net/ipv6/mcast.c:1563)
process_one_work (kernel/workqueue.c:3314)
worker_thread (kernel/workqueue.c:3397 kernel/workqueue.c:3478)
kthread (kernel/kthread.c:436)
ret_from_fork (arch/x86/kernel/process.c:158)
ret_from_fork_asm (arch/x86/entry/entry_64.S:245)

Fixes: 97300b5 ("[MCAST] IPv6: Check packet size when process Multicast")
Reported-by: Leo Lin <leo@depthfirst.com>
Reviewed-by: David Ahern <dahern@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Link: https://patch.msgid.link/20260603101811.612594-1-idosch@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
The aoe driver (or similar) generates a non-IPv6 packet
(e.g., ETH_P_AOE) and queues it for transmission via dev_queue_xmit()
on a 6LoWPAN interface (configured by the user or test case).

Since the packet is not IPv6, the 6LoWPAN header_ops->create function
(lowpan_header_create or header_create) returns early without initializing
the lowpan_addr_info structure in the skb headroom.

In the transmit function (lowpan_xmit), the driver calls lowpan_header
(or setup_header) which unconditionally copies and uses the lowpan_addr_info
from the headroom, which contains uninitialized data.

Fix this by dropping non IPv6 packets.

A similar fix is needed in net/bluetooth/6lowpan.c bt_xmit().

Fixes: 4dc315e ("ieee802154: 6lowpan: move transmit functionality")
Reported-by: syzbot+f13c19f75e1097abd116@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/netdev/6a1fd763.278b5b03.2bcf39.0049.GAE@google.com/T/#u
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://patch.msgid.link/20260603072955.4032221-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
The .ndo_get_stats64 callback must not sleep because it can be
called when reading /proc/net/dev.

rtase_get_stats64() calls rtase_dump_tally_counter(), which polls
the tally counter dump bit with read_poll_timeout(). This may
sleep while waiting for the hardware counter dump to complete.

Use read_poll_timeout_atomic() instead to avoid sleeping in the
get_stats64() path.

Fixes: 0796004 ("rtase: Implement net_device_ops")
Cc: stable@vger.kernel.org
Signed-off-by: Justin Lai <justinlai0215@realtek.com>
Link: https://patch.msgid.link/20260603061816.31356-1-justinlai0215@realtek.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
In mrp_pdu_parse_vecattr(), vector attribute events are encoded three
per byte and valen tracks the number of events left to process.

The parser decrements valen after processing the first and second events
from each event byte, but not after processing the third one. When valen
is exactly a multiple of three, the loop continues after the last valid
event and consumes the next byte as a new event byte, applying a
spurious event to the MRP applicant state.

Additionally, when valen is zero the parser unconditionally consumes
attrlen bytes as FirstValue and advances the offset, even though per
IEEE 802.1ak a VectorAttribute with only a LeaveAllEvent has valen of
zero and no FirstValue or Vector fields. This corrupts the offset for
subsequent PDU parsing.

Also, when valen exceeds three the loop crosses byte boundaries but
the attribute value is not incremented between the last event of one
byte and the first event of the next. This causes the first event of
the next byte to use the same attribute value as the third event
rather than the next consecutive value.

Decrement valen after processing the third event, skip FirstValue
consumption when valen is zero, and increment the attribute value at
the end of each loop iteration.

Fixes: febf018 ("net/802: Implement Multiple Registration Protocol (MRP)")
Reported-by: Yizhou Zhao <zhaoyz24@mails.tsinghua.edu.cn>
Reported-by: Yuxiang Yang <yangyx22@mails.tsinghua.edu.cn>
Reported-by: Ao Wang <wangao@seu.edu.cn>
Reported-by: Xuewei Feng <fengxw06@126.com>
Reported-by: Qi Li <qli01@tsinghua.edu.cn>
Reported-by: Ke Xu <xuke@tsinghua.edu.cn>
Signed-off-by: Yizhou Zhao <zhaoyz24@mails.tsinghua.edu.cn>
Link: https://patch.msgid.link/20260603060016.21522-1-zhaoyz24@mails.tsinghua.edu.cn
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
These fields are updated asynchronously by the bonding state machine
in ad_churn_machine() while holding bond->mode_lock.

bond_info_show_slave() and bond_fill_slave_info() read them without
bond->mode_lock being held, we need to add READ_ONCE() and
WRITE_ONCE() annotations.

Note that AD_CHURN_MONITOR, AD_CHURN, and AD_NO_CHURN are defined
exclusively in (kernel private) include/net/bond_3ad.h header.

They should be moved to include/uapi/linux/if_bonding.h or userspace
tools will have to hardcode their values.

Fixes: 4916f2e ("bonding: print churn state via netlink")
Fixes: 14c9551 ("bonding: Implement port churn-machine (AD standard 43.4.17).")
Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260603123514.388226-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
sctp_stream_update() is only invoked when the association is moved into
COOKIE_WAIT during association setup/reconfiguration. In this path, the
outbound stream scheduler state (stream->out_curr) is expected to be
clean, since no user data should have been transmitted yet unless the
state machine has already partially progressed.

However, a corner case exists in sctp_sf_do_5_2_6_stale(): when a
Stale Cookie ERROR is received, the association is rolled back from
COOKIE_ECHOED to COOKIE_WAIT. In this scenario, user data may already
have been queued and even bundled with the COOKIE-ECHO chunk.

During the rollback, sctp_stream_update() frees the old stream table
and installs a new one, but it does not invalidate stream->out_curr.
As a result, out_curr may still point to a freed sctp_stream_out
entry from the previous stream state.

Later, SCTP scheduler dequeue paths (FCFS, RR, PRIO, etc.) rely on
stream->out_curr->ext, which can lead to use-after-free once the old
stream state has been released via sctp_stream_free().

This results in crashes such as (reported by Yuqi):

  BUG: KASAN: slab-use-after-free in sctp_sched_fcfs_dequeue+0x13a/0x140
  Read of size 8 at addr ff1100004d4d3208 by task mini_poc/9312
  CPU: 1 UID: 1001 PID: 9312 Comm: mini_poc Not tainted
     7.1.0-rc1-00305-gbd3a4795d574 qualcomm-linux#5 PREEMPT(full)
   sctp_sched_fcfs_dequeue+0x13a/0x140
   sctp_outq_flush+0x1603/0x33e0
   sctp_do_sm+0x31c9/0x5d30
   sctp_assoc_bh_rcv+0x392/0x6f0
   sctp_inq_push+0x1db/0x270
   sctp_rcv+0x138d/0x3c10

Fix this by fully purging the association outqueue when handling the
Stale Cookie case. This ensures all pending transmit and retransmit
state is dropped, and any scheduler cached pointers are invalidated,
making it safe to rebuild stream state during COOKIE_WAIT restart.

Updating only stream->out_curr would be insufficient, since queued
and retransmittable data would still reference the old stream state and
trigger later use-after-free in dequeue paths.

Fixes: 5bbbbe3 ("sctp: introduce stream scheduler foundations")
Reported-by: Yuan Tan <yuantan098@gmail.com>
Reported-by: Yifan Wu <yifanwucs@gmail.com>
Reported-by: Juefei Pu <tomapufckgml@gmail.com>
Reported-by: Zhengchuan Liang <zcliangcn@gmail.com>
Reported-by: Xin Liu <bird@lzu.edu.cn>
Reported-by: Yuqi Xu <xuyq21@lenovo.com>
Reported-by: Ren Wei <n05ec@lzu.edu.cn>
Signed-off-by: Xin Long <lucien.xin@gmail.com>
Link: https://patch.msgid.link/94318159b9052907a6cbb7256aee8b5f8dfbfccb.1780510304.git.lucien.xin@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
On the UDP receive path skb->dev is repurposed as dev_scratch (the
truesize/state cache set by udp_set_dev_scratch()), through the
union { struct net_device *dev; unsigned long dev_scratch; } in sk_buff.

When a UDP socket is in a sockmap, sk_data_ready is
sk_psock_verdict_data_ready(), which calls udp_read_skb() -> recv_actor()
(sk_psock_verdict_recv) to run the attached SK_SKB verdict program in softirq.
If that program calls a socket-lookup helper (bpf_sk_lookup_tcp/udp,
bpf_skc_lookup_tcp), bpf_skc_lookup() does:

	if (skb->dev)
		caller_net = dev_net(skb->dev);

skb->dev still holds the dev_scratch value (a non-NULL integer), so dev_net()
dereferences it as a struct net_device * and the kernel takes a general
protection fault on a non-canonical address in softirq:

  Oops: general protection fault, probably for non-canonical address 0x1010000800004a0
  CPU: 1 UID: 0 PID: 1406 Comm: syz.2.19 Not tainted 7.1.0-rc6 qualcomm-linux#1 PREEMPT(full)
  RIP: 0010:bpf_skc_lookup net/core/filter.c:7033 [inline]
  RIP: 0010:bpf_sk_lookup+0x45/0x160 net/core/filter.c:7047
  Call Trace:
   <IRQ>
   bpf_prog_4675cb904b7071f8+0x12e/0x14e
   bpf_prog_run_pin_on_cpu+0xc6/0x1f0
   sk_psock_verdict_recv+0x1ba/0x350
   udp_read_skb+0x31a/0x370
   sk_psock_verdict_data_ready+0x2e3/0x600
   __udp_enqueue_schedule_skb+0x4c8/0x650
   udpv6_queue_rcv_one_skb+0x3ec/0x740
   udp6_unicast_rcv_skb+0x11d/0x140
   ip6_protocol_deliver_rcu+0x61e/0x950
   ip6_input_finish+0xa9/0x150
   NF_HOOK+0x286/0x2f0
   ip6_input+0x117/0x220
   NF_HOOK+0x286/0x2f0
   __netif_receive_skb+0x85/0x200
   process_backlog+0x374/0x9a0
   __napi_poll+0x4f/0x1c0
   net_rx_action+0x3b0/0x770
   handle_softirqs+0x15a/0x460
   do_softirq+0x57/0x80
   </IRQ>

The rmem charge that dev_scratch accounted for is released by skb_recv_udp() on
dequeue, just above, so the scratch is dead by the time recv_actor() runs. Clear
skb->dev so bpf_skc_lookup() falls back to sock_net(skb->sk), which
skb_set_owner_sk_safe() set just above.

Fixes: 965b57b ("net: Introduce a new proto_ops ->read_skb()")
Cc: stable@vger.kernel.org
Signed-off-by: Sechang Lim <rhkrqnwk98@gmail.com>
Reviewed-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260603162737.697215-1-rhkrqnwk98@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
This reverts commit 850d924.
This reapplies commit 325eb21 ("bnxt_en: bring back rtnl_lock()
in the bnxt_open() path").

Breno reports a lockdep warning in bnxt. During FW reset the driver
may end up calling netif_set_real_num_tx_queues() (if queue count
changes), so calls to bnxt_open() still require rtnl_lock.

  net/sched/sch_generic.c:1416 suspicious rcu_dereference_protected() usage!

   dev_qdisc_change_real_num_tx+0x54/0xe0
   netif_set_real_num_tx_queues+0x4ed/0xa80
   __bnxt_open_nic+0x9cb/0x3490
   bnxt_open+0x1cb/0x370
   bnxt_fw_reset_task+0x80d/0x1e80
   process_scheduled_works+0x9c1/0x13b0

The reverted commit was just an optimization / experiment
so let's go back to taking the lock.

Reported-by: Breno Leitao <leitao@debian.org>
Link: https://lore.kernel.org/ah726OtFX-Qw3U-R@gmail.com
Fixes: 850d924 ("Revert "bnxt_en: bring back rtnl_lock() in the bnxt_open() path"")
Acked-by: Stanislav Fomichev <sdf@fomichev.me>
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Breno Leitao <leitao@debian.org>
Link: https://patch.msgid.link/20260603195845.2574426-1-kuba@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
…it/s390/linux

Pull s390 fixes from Alexander Gordeev:

 - Enable IOMMUFD and VFIO cdev such that PCI pass-through to
   QEMU/KVM can optionally utilize native IOMMUFD

 - With HAVE_ARCH_BUG_FORMAT enabled the BUG infrastructure might
   misinterpret flags or fault. Fix this by moving the "format"
   field emission into __BUG_ENTRY()

 - The generic version of _THIS_IP_ is known to be brittle and may
   break with current and future GCC and Clang optimizations.  Fix
   it by overriding _THIS_IP_

* tag 's390-7.1-4' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
  s390: Implement _THIS_IP_ using inline asm
  s390/bug: Always emit format word in __BUG_ENTRY
  s390/configs: Enable IOMMUFD and VFIO cdev in defconfigs
kfd_smi_ev_enabled() skips the suser privilege check when pid=0.
PROCESS_START, PROCESS_END, and VMFAULT events are emitted with
pid=0 while carrying another process's PID and command name, so any
/dev/kfd user in the render group can monitor all GPU workloads.

Pass the target process PID into kfd_smi_event_add() for these events
so the existing per-client filter restricts delivery to the owning
process or CAP_SYS_ADMIN subscribers.

Signed-off-by: Yongqiang Sun <Yongqiang.Sun@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 92a8dba)
Use correct u64 type.

Signed-off-by: David Rosca <david.rosca@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 0ac9816)
Make sure that we only submit work with full up to date VM page tables.

Backport to 7.1 and older.

Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Tested-by: Vitaly Prosyak <vitaly.prosyak@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 59720bf)
Cc: stable@vger.kernel.org
The kfd_wait_on_events ioctl passes a user-supplied num_events parameter
directly to alloc_event_waiters() which calls kcalloc() without validation.
This allows unprivileged users with /dev/kfd access to trigger large kernel
memory allocations, potentially causing memory exhaustion and denial of
service via the OOM killer.

Add a check to reject num_events values exceeding KFD_SIGNAL_EVENT_LIMIT
(4096), which is the maximum number of events a single process can create.

Signed-off-by: Sunday Clement <Sunday.Clement@amd.com>
Reviewed-by: Harish Kasiviswanathan <Harish.Kasiviswanathan@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 39eb6da)
If kfd_dbg_trap_enable() fails while copying runtime_info to userspace,
it had already activated the trap, set debug_trap_enabled, taken an extra
process reference, and opened the debug event file. Return -EFAULT without
unwinding that state, leaving inconsistent trap state and a refcount
imbalance that could break later DISABLE/ENABLE.

On copy_to_user failure, deactivate the trap and undo the rest of the
enable setup before returning.

Signed-off-by: Yongqiang Sun <Yongqiang.Sun@amd.com>
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 01112e2)
When the do_mccs parameter is false, we don't call
dm_helpers_read_mccs_caps, so sink->mccs_caps.freesync_supported is
unlikely to be true.

Fixes: 6f71d5d ("drm/amd/display: Read sink freesync support via mccs")
Bug: https://gitlab.freedesktop.org/drm/amd/-/work_items/5286
Signed-off-by: Michel Dänzer <mdaenzer@redhat.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 115bf5c)
…el/git/trace/linux-trace

Pull tracing fix from Steven Rostedt:

 - Fix CFI violation in probestub function

   The probestub is a function to allow tprobes to hook to a tracepoint
   to gain access to its parameters.

   The function itself is only referenced by the tracepoint structure
   which lives in the __tracepoint section. objtool explicitly ignores
   that section and when processing functions in the kernel, if it
   detects one that has no references it will seal it to have its ENDBR
   stripped on boot up.

   This means the probstub function will have its ENDBR stripped and if
   a tprobe is attached to it with IBT enabled, it will go *boom*.

* tag 'trace-v7.1-rc6' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
  tracing: Fix CFI violation in probestub being called by tprobes
…/drm/xe/kernel into drm-fixes

- Revert removing support for unpublished NVL-S GuC (Daniele)
- Suspend fixes related to multi-queue (Niranjana)

Signed-off-by: Dave Airlie <airlied@redhat.com>

From: Rodrigo Vivi <rodrigo.vivi@intel.com>
Link: https://patch.msgid.link/aiHPGiPrAyHgwBZl@intel.com
…git/netdev/net

Pull networking fixes from Jakub Kicinski:
 "Including fixes from Netfilter, wireless and Bluetooth.

  Current release - fix to a fix:

   - Bluetooth: MGMT: fix backward compatibility with bluetoothd
     which adds stray bytes to MGMT_OP_ADD_EXT_ADV_DATA

  Previous releases - regressions:

   - af_unix: fix inq_len update inaccuracy on partial read

   - eth: fec: fix pinctrl default state restore order on resume

   - wifi: iwlwifi:
       - mvm: don't support the reset handshake for old firmwares
       - pcie: simplify the resume flow if fast resume is not used,
         work around NIC access failures

  Previous releases - always broken:

   - Bluetooth: L2CAP: reject BR/EDR signaling packets over MTUsig

   - sctp: fix a couple of bugs in COOKIE_ECHO processing

   - sched: fix pedit partial COW leading to page cache corruption

   - wifi: nl80211: reject oversized EMA RNR lists

   - netfilter:
       - conntrack_irc: fix possible out-of-bounds read
       - bridge: make ebt_snat ARP rewrite writable

   - appletalk: zero-initialize aarp_entry to prevent heap info leak

   - ipv4: restrict IPOPT_SSRR and IPOPT_LSRR options

   - mptcp: fix number of bugs reported by AI scans and discovered
     during NVMe over MPTCP testing"

* tag 'net-7.1-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net: (85 commits)
  Reapply "bnxt_en: bring back rtnl_lock() in the bnxt_open() path"
  udp: clear skb->dev before running a sockmap verdict
  sctp: purge outqueue on stale COOKIE-ECHO handling
  bonding: annotate data-races arcound churn variables
  net/802/mrp: fix vector attribute parsing in mrp_pdu_parse_vecattr
  rtase: Avoid sleeping in get_stats64()
  ieee802154: 6lowpan: only accept IPv6 packets in lowpan_xmit()
  ipv6: mcast: Fix use-after-free when processing MLD queries
  selftests: net: add vxlan vnifilter notification test
  vxlan: vnifilter: fix spurious notification on VNI update
  vxlan: vnifilter: send notification on VNI add
  rtase: Reset TX subqueue when clearing TX ring
  octeontx2-af: npc: Fix CPT channel mask in npc_install_flow
  dt-bindings: ethernet: eswin: fix hsp-sp-csr backward compatibility
  sctp: validate cached peer INIT chunk length in COOKIE_ECHO processing
  net/sched: fix pedit partial COW leading to page cache corruption
  vsock/vmci: fix sk_ack_backlog leak on failed handshake
  net: bonding: fix NULL pointer dereference in bond_do_ioctl()
  geneve: fix length used in GRO hint UDP checksum adjustment
  net: ethernet: mtk_eth_soc: Fix use-after-free in metadata dst teardown
  ...
…rser

NPU_SET_IFM_REGION extracts the region index with param & 0x7f, giving
a maximum value of 127. However region_size[] and output_region[] in
struct ethosu_validated_cmdstream_info are both sized to
NPU_BASEP_REGION_MAX (8), giving valid indices [0..7].

Every other region assignment in the same switch uses param & 0x7:
  NPU_SET_OFM_REGION:  st.ofm.region  = param & 0x7;
  NPU_SET_IFM2_REGION: st.ifm2.region = param & 0x7;
  NPU_SET_WEIGHT_REGION: st.weight[0].region = param & 0x7;
  NPU_SET_SCALE_REGION:  st.scale[0].region  = param & 0x7;

The 0x7f mask on IFM is inconsistent and appears to be a typo.

feat_matrix_length() and calc_sizes() use the region index directly
as an array subscript into the kzalloc'd info struct:
  info->region_size[fm->region] = max(...);

A userspace caller supplying NPU_SET_IFM_REGION with param > 7 causes
a write up to 127*8 = 1016 bytes past the start of region_size[],
corrupting adjacent kernel heap data.

Fix by applying the same & 0x7 mask used by all other region
assignments.

Fixes: 5a5e9c0 ("accel: Add Arm Ethos-U NPU driver")
Cc: stable@vger.kernel.org
Signed-off-by: Muhammad Bilal <meatuni001@gmail.com>
Link: https://patch.msgid.link/20260523195159.55801-1-meatuni001@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
NPU_OP_RESIZE is a U85-only command that the driver does not yet
implement. The existing WARN_ON(1) placeholder fires unconditionally
whenever userspace submits this command via DRM_IOCTL_ETHOSU_GEM_CREATE,
causing unbounded kernel log spam.

If panic_on_warn is set the kernel panics, giving any unprivileged user
with access to the DRM device a trivial denial-of-service primitive.

Replace the WARN_ON(1) with an explicit -EINVAL return so the ioctl
rejects the command before it reaches hardware.

Fixes: 5a5e9c0 ("accel: Add Arm Ethos-U NPU driver")
Cc: stable@vger.kernel.org
Signed-off-by: Muhammad Bilal <meatuni001@gmail.com>
Link: https://patch.msgid.link/20260523210840.92039-2-meatuni001@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
On non-U65 hardware (e.g. U85), opcode 0x4093 is NPU_SET_WEIGHT2_LENGTH.
The BASE handler for the same opcode correctly assigns to
st.weight[2].base, but the LENGTH handler mistakenly assigns cmds[1]
to st.weight[1].length instead of st.weight[2].length.

This leaves weight[2].length at its initialised sentinel value of
0xffffffff and corrupts weight[1].length with the user-supplied value,
breaking the software bounds-check state for both weight buffers on U85.

Fix the index to match the BASE handler.

Fixes: 5a5e9c0 ("accel: Add Arm Ethos-U NPU driver")
Cc: stable@vger.kernel.org
Signed-off-by: Muhammad Bilal <meatuni001@gmail.com>
Link: https://patch.msgid.link/20260523210840.92039-3-meatuni001@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
dma_length() derives DMA region usage from command stream values and
updates region_size[]:

    len = ((len + stride[0]) * size0 + stride[1]) * size1
    region_size[region] = max(..., len + dma->offset)

Several arithmetic issues can corrupt the derived region size:

- signed stride values may underflow when added to len
- intermediate multiplications may overflow
- len + dma->offset may overflow during region_size updates
- dma_length() error returns were not validated by the caller

region_size[] is later used by ethosu_job.c to validate command stream
accesses against GEM buffer sizes. Arithmetic wraparound can therefore
under-report region usage and bypass the bounds validation.

Fix by validating signed additions, using overflow helpers for
multiplications and offset updates, and propagating dma_length()
failures to the caller.

Fixes: 5a5e9c0 ("accel: Add Arm Ethos-U NPU driver")
Cc: stable@vger.kernel.org
Signed-off-by: Muhammad Bilal <meatuni001@gmail.com>
Link: https://patch.msgid.link/20260524103710.47397-1-meatuni001@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
cmd_state_init() initializes the command state with memset(0xff),
leaving dma->len at U64_MAX to signal missing setup. The only setter
is NPU_SET_DMA0_LEN; if userspace omits this command and issues
NPU_OP_DMA_START, dma->len remains U64_MAX.

In dma_length(), a positive stride added to U64_MAX wraps to a small
value. With size0 == 1, check_mul_overflow() does not trigger and
dma_length() returns 0 instead of U64_MAX. The caller's U64_MAX check
then passes, region_size[] stays 0, and the bounds check in
ethosu_job.c is bypassed, allowing hardware to execute DMA with stale
physical addresses.

Fix by checking for U64_MAX at the start of dma_length() before any
arithmetic, consistent with the sentinel value used throughout the
driver to detect uninitialized fields.

Fixes: 5a5e9c0 ("accel: Add Arm Ethos-U NPU driver")
Cc: stable@vger.kernel.org
Signed-off-by: Muhammad Bilal <meatuni001@gmail.com>
Link: https://patch.msgid.link/20260524130319.12747-1-meatuni001@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
On netns teardown, fqdir_pre_exit() walks the fqdir rhashtable and
flushes every fragment queue that is not yet complete using
inet_frag_queue_flush(). That helper frees all the skbs queued on the
fragment queue but does not set INET_FRAG_COMPLETE, and leaves
q->fragments_tail and q->last_run_head pointing at the freed skbs.
The queue itself stays in the rhashtable.

fqdir_pre_exit() first lowers high_thresh to 0 to stop new queue lookups,
but it cannot stop a fragment that already obtained the queue through
inet_frag_find() earlier and stalled just before taking the queue lock.
Once that fragment resumes after the flush and takes the queue lock,
it passes the INET_FRAG_COMPLETE check and then dereferences the freed
fragments_tail. inet_frag_queue_insert() reads FRAG_CB() and ->len of
that pointer and, on the append path, writes ->next_frag, causing a
slab use-after-free. IPv6, nf_conntrack_reasm6 and 6lowpan reassembly
share the same flush path and are affected as well.

Reset rb_fragments, fragments_tail and last_run_head in
inet_frag_queue_flush() so a flushed queue no longer points at the
freed skbs. A fragment that resumes after the flush and takes the
queue lock then finds an empty queue and starts a new run instead of
dereferencing the freed fragments_tail. ip_frag_reinit() already
performed this reset after its own flush, so drop the now duplicate
code there.

Cc: stable@vger.kernel.org
Fixes: 006a503 ("inet: frags: flush pending skbs in fqdir_pre_exit()")
Suggested-by: Eric Dumazet <edumazet@google.com>
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
Link: https://patch.msgid.link/ah6ukYq5G98LshdA@v4bel
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Platform devices created with platform_device_alloc() call
platform_device_release() when the last reference to the device's
kobject is dropped. This function calls of_node_put() unconditionally.
This works fine for devices created with platform_device_register_full()
but users of the split approach (platform_device_alloc() +
platform_device_add()) must bump the reference of the of_node they
assign manually. Add the missing call to of_node_get().

Cc: stable@vger.kernel.org
Fixes: 76723bc ("net: mv643xx_eth: add DT parsing support")
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
Link: https://patch.msgid.link/20260602073414.22500-1-bartosz.golaszewski@oss.qualcomm.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
The command stream parsing loop increments the index variable a second
time when a 64-bit command word is encountered (bit 14 set), but does
not re-check the loop bound before writing the second word:

    for (i = 0; i < size / 4; i++) {
        bocmds[i] = cmds[0];
        if (cmd & 0x4000) {
            i++;
            bocmds[i] = cmds[1];   /* unchecked */
        }
    }

The buffer bocmds is backed by a DMA allocation of exactly size bytes
from drm_gem_dma_create(ddev, size), giving valid indices [0, size/4-1].

When i == size/4 - 1 on entry to an iteration and bit 14 of cmds[0] is
set, bocmds[size/4-1] is written in bounds, i is then incremented to
size/4, and bocmds[size/4] writes four bytes past the end of the
allocation.

Userspace controls both the buffer contents and the size argument via
the ioctl, making this a userspace-triggerable heap out-of-bounds write.

Fix by checking the incremented index against the buffer bound before
the second write and returning -EINVAL if the buffer is too small to
contain the extended command.

Fixes: 5a5e9c0 ("accel: Add Arm Ethos-U NPU driver")
Cc: stable@vger.kernel.org
Signed-off-by: Muhammad Bilal <meatuni001@gmail.com>
Link: https://patch.msgid.link/20260523190843.33977-1-meatuni001@gmail.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
The dummy sequencer port forwards events by copying an incoming
struct snd_seq_event into a stack temporary, rewriting source and
destination, and dispatching the temporary to subscribers. That legacy
event storage is smaller than struct snd_seq_ump_event.

When a UMP event reaches the dummy client, the copy leaves the UMP flag
set but only provides legacy-sized stack storage. The subscriber
delivery path then uses snd_seq_event_packet_size() and copies a
UMP-sized packet from that stack object, reading past the end of the
temporary.

Use the existing union __snd_seq_event storage and copy the packet size
reported for the incoming event before rewriting the common routing
fields. This preserves the full UMP packet for UMP events while keeping
legacy event handling unchanged.

Fixes: 32cb23a ("ALSA: seq: dummy: Allow UMP conversion")
Signed-off-by: Kyle Zeng <kylebot@openai.com>
Link: https://patch.msgid.link/20260605080204.32045-1-kylebot@openai.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
topology_num_nodes_per_package() reports values greater than one on certain
AMD systems resulting in resctrl's Intel model specific SNC detection
printing the confusing message:

   "CoD enabled system? Resctrl not supported"

Add a check for Intel systems before looking at the topology.

[ reinette: Add Closes tag, fix tag typos, rework changelog ]

Fixes: 59674fc ("x86/resctrl: Fix SNC detection")
Reported-by: Babu Moger <babu.moger@amd.com>
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Tested-by: Babu Moger <babu.moger@amd.com>
Link: https://patch.msgid.link/9849330f45ac86344cc5ac54df2d313906d70bc4.1780634584.git.reinette.chatre@intel.com
Closes: https://lore.kernel.org/lkml/37ac0376-43a3-4283-a3d5-4d57b3bec578@amd.com/
…he erased entry

vgic_its_invalidate_cache() walks the per-ITS translation cache with
xa_for_each() and drops the cache's reference on each entry with
vgic_put_irq(). It puts the iterated pointer, though, rather than the
value returned by xa_erase().

The function is called from contexts that do not exclude one another: the
ITS command handlers hold its_lock, the GITS_CTLR write path holds
cmd_lock, and the path that clears EnableLPIs in a redistributor's
GICR_CTLR holds neither. Two or more of them can drain the same cache
concurrently, and if each one observes the same entry, erases it and then
puts it, the single reference the cache holds on that entry is dropped
more than once. The entry can then be freed while an ITE still maps it.

xa_erase() is atomic and returns the previous entry, so put only the entry
that this context actually removed. The cache reference is then dropped
exactly once per entry even when the invalidations run concurrently, and
the behavior is unchanged when only one context runs.

Fixes: 8201d10 ("KVM: arm64: vgic-its: Maintain a translation cache per ITS")
Signed-off-by: Hyunwoo Kim <imv4bel@gmail.com>
Reviewed-by: Oliver Upton <oupton@kernel.org>
Link: https://patch.msgid.link/ah2c5lu4JbUg7dj-@v4bel
Signed-off-by: Marc Zyngier <maz@kernel.org>
Cc: stable@vger.kernel.org
torvalds added 3 commits June 13, 2026 18:21
…/kernel/git/clk/linux

Pull clk fixes from Stephen Boyd:
 "Fixes for the Qualcomm and Google GS101 clk drivers:

   - Skip parking clks on some Qualcomm platforms so that the recovery
     console keeps working

   - Fix Google GS101 resume by using the correct div register"

* tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
  clk: qcom: dispcc-sc8280xp: Don't park mdp_clk_src at registration time
  clk: samsung: gs101: Fix missing USI7_USI DIV clock in peric0_clk_regs
  clk: qcom: x1e80100-dispcc: Stop disp_cc_mdss_mdp_clk_src from getting parked
…t/rmk/linux

Pull ARM fixes from Russell King:

 - Avoid KASAN instrumentation of half-word IO

 - Use a byte load for KASAN shadow stack

 - Fix kexec and hibernation with PAN

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rmk/linux:
  ARM: 9476/1: mm: fix kexec and hibernation with CONFIG_CPU_TTBR0_PAN
  ARM: 9475/1: entry: use byte load for KASAN VMAP stack shadow
  ARM: 9474/1: io: avoid KASAN instrumentation of raw halfword I/O
@qcomlnxci qcomlnxci requested a review from a team June 18, 2026 08:39
@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1377

PR: #1377
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27747413296

# Error File:Line PR-introduced? Root Cause
1 Merge conflict arch/arm64/boot/dts/qcom/qcm6490-idp.dts N/A PR branch is out of sync with integration baseline; the file has been modified in the integration branch since PR was created

Verdict

This is not a compilation failure but a merge conflict. The PR needs to be rebased on the current integration branch baseline (8dba925) to resolve conflicts in qcm6490-idp.dts.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1377

PR: #1377
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27747413296

# Error File:Line PR-introduced? Root Cause
1 Merge conflict during integration arch/arm64/boot/dts/qcom/qcm6490-idp.dts Yes The PR adds an &ipa node to qcm6490-idp.dts, but the integration branch has conflicting changes in the same region of the file. The conflict occurred when merging PR #1377 into the integration branch that already includes topic/tech/net/rmnet.

Verdict

This is a merge conflict, not a compilation error. The build failed during the git merge step before any compilation occurred. The PR needs to be rebased on the current integration branch to resolve the conflict.

📎 Detailed analysis: Full report

@rpavanqcom rpavanqcom changed the base branch from tech/net/rmnet to tech/all/dt/qcs6490 June 18, 2026 09:28
@qcomlnxci qcomlnxci requested review from a team, Komal-Bajaj, jingyiwang42 and mukeshojha-linux and removed request for a team June 18, 2026 09:32
@qlijarvis

Copy link
Copy Markdown

PR #1377 — validate-patch

PR: #1377

Verdict Issues Detailed Report
10 Full report

Final Summary

  1. Lore link present: Yes — link provided in commit message footer
  2. Lore link matches PR commits: Cannot verify — network access restricted; lore.kernel.org unreachable
  3. Upstream patch status: Unknown — cannot fetch from lore; FROMLIST prefix suggests patch is under review but not yet merged
  4. PR present in qcom-next: Not checked — no kernel tree access per constraints

Required Actions:

  1. Fix commit message formatting: separate subject from body with blank line
  2. Ensure subject line is ≤75 characters
  3. Fix grammar: "ipa apps loads" → "IPA apps load"
  4. Verify lore link is valid and points to the correct upstream submission
  5. Confirm patch content matches upstream version exactly (when network available)
Verdict: ❌ — click to expand

🔍 Patch Validation

PR: #1377 - arm64: dts: qcom: qcm6490-idp: add and enable IPA node
Upstream commit: https://lore.kernel.org/lkml/20250304152133.GA2763820@hu-kapandey-hyd.qualcomm.com/T/#u (unable to verify - network restricted)
Verdict: ❌ FAIL

Commit Message

Check Status Note
Subject matches upstream ⚠️ Cannot verify - lore link inaccessible; subject line malformed (missing newline)
Body preserves rationale Commit message body merged into subject line; no proper paragraph structure
Fixes tag present/correct N/A Not a fix commit
Authorship preserved Author: Pavan Kumar M rpavan@qti.qualcomm.com
Backport note (if applicable) N/A FROMLIST prefix indicates pending upstream submission

Diff

File Status Notes
arch/arm64/boot/dts/qcom/qcm6490-idp.dts:515 IPA node configuration looks syntactically correct

Issues

Critical: Commit Message Formatting

  • The subject line and body are improperly merged into a single line:
    Subject: [PATCH] FROMLIST: arm64: dts: qcom: qcm6490-idp: add and enable IPA
     node Enable IPA and ensure ipa apps loads the gsi firmware because modem
     doesn't support IPA FW loading.
    
  • Expected format:
    Subject: [PATCH] FROMLIST: arm64: dts: qcom: qcm6490-idp: add and enable IPA node
    
    Enable IPA and ensure ipa apps loads the gsi firmware because modem
    doesn't support IPA FW loading.
    
  • The subject line must be a single, concise line (≤75 chars recommended)
  • The body must be separated from the subject by a blank line
  • Current subject is 138+ characters when unwrapped

Minor: Grammar

  • "ipa apps loads" should be "IPA apps load" (subject-verb agreement)
  • Consider: "Enable IPA and configure it to load GSI firmware from the application processor, as the modem does not support IPA firmware loading."

Lore Link Verification

  • Cannot verify patch content matches upstream (network access restricted)
  • Link format appears valid but message ID may not exist (dated 2025-03-04, but PR date is 2026-06-18)
  • The lore link uses /T/#u fragment which is unusual; typically raw patches use no fragment or /raw

Verdict

Reject - Commit message formatting is broken and must be fixed before merge. The subject and body are improperly concatenated, violating kernel commit message standards.

Final Summary

  1. Lore link present: Yes — link provided in commit message footer
  2. Lore link matches PR commits: Cannot verify — network access restricted; lore.kernel.org unreachable
  3. Upstream patch status: Unknown — cannot fetch from lore; FROMLIST prefix suggests patch is under review but not yet merged
  4. PR present in qcom-next: Not checked — no kernel tree access per constraints

Required Actions:

  1. Fix commit message formatting: separate subject from body with blank line
  2. Ensure subject line is ≤75 characters
  3. Fix grammar: "ipa apps loads" → "IPA apps load"
  4. Verify lore link is valid and points to the correct upstream submission
  5. Confirm patch content matches upstream version exactly (when network available)

@qlijarvis

Copy link
Copy Markdown

PR #1377 — checker-log-analyzer

PR: #1377
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/27750261021

Checker Result Summary
Checker Result Summary
checkpatch No style issues detected
dt-binding-check ⏭️ Skipped - no binding changes
dtb-check DTB validation passed
sparse-check ⏭️ Skipped - no C code changes
check-uapi-headers ⏭️ Skipped - no UAPI changes
check-patch-compliance FAILED - Author mismatch & content differs from upstream
tag-check N/A Not applicable for this PR
qcom-next-check FROMLIST prefix present

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1377 - FROMLIST: arm64: dts: qcom: qcm6490-idp: add and enable IPA node
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/27750261021

Checker Result Summary
checkpatch No style issues detected
dt-binding-check ⏭️ Skipped - no binding changes
dtb-check DTB validation passed
sparse-check ⏭️ Skipped - no C code changes
check-uapi-headers ⏭️ Skipped - no UAPI changes
check-patch-compliance FAILED - Author mismatch & content differs from upstream
tag-check N/A Not applicable for this PR
qcom-next-check FROMLIST prefix present

❌ check-patch-compliance

Root cause: The commit author differs from the original upstream patch author, and the patch content does not match the linked lore.kernel.org patch.

Failure details:

Checking commit: FROMLIST: arm64: dts: qcom: qcm6490-idp: add and enable IPA node Enable IPA and ensure ipa apps loads the gsi firmware because modem doesn't support IPA FW loading.

Change is different from the one mentioned in Link

Author mismatch:
  Original author: Kaustubh Pandey <quic_kapandey@quicinc.com>
  Commit author : Pavan Kumar M <rpavan@qti.qualcomm.com>

Analysis:

The check-patch-compliance checker validates that FROMLIST/UPSTREAM patches match their upstream source. This PR fails on two counts:

  1. Author Mismatch: The original patch on lore.kernel.org was authored by Kaustubh Pandey <quic_kapandey@quicinc.com>, but the commit in this PR is authored by Pavan Kumar M <rpavan@qti.qualcomm.com>. When backporting FROMLIST patches, the original author must be preserved.

  2. Content Difference: The checker detected that the patch content differs from what was posted to the mailing list at the linked URL: https://lore.kernel.org/lkml/20250304152133.GA2763820@hu-kapandey-hyd.qualcomm.com/T/#u

Fix:

To resolve this failure, you must:

  1. Preserve the original author: Use git commit --amend --author="Kaustubh Pandey <quic_kapandey@quicinc.com>" to set the correct author, or cherry-pick the original patch with git cherry-pick -x to maintain authorship.

  2. Ensure patch content matches upstream: Fetch the exact patch from lore.kernel.org using b4:

    b4 am https://lore.kernel.org/lkml/20250304152133.GA2763820@hu-kapandey-hyd.qualcomm.com/
    git am ./v1_*.mbx

    This ensures the patch content, commit message, and authorship all match the upstream submission.

  3. Add your sign-off: After applying the original patch, add your Signed-off-by trailer to indicate you've reviewed and tested it:

    git commit --amend -s

Reproduce locally:

cd /path/to/kernel-topics
git fetch origin pull/1377/head:pr-1377
git checkout pr-1377

# Clone kernel-checkers
git clone https://github.com/qualcomm-linux/kernel-checkers.git

# Run the compliance check
bash kernel-checkers/check-patch-compliance.sh \
  --kernel-src . \
  --base 8dba9258929fce68a7b0d148c2a461ba2159f930 \
  --head HEAD

Verdict

1 blocker to fix: The check-patch-compliance failure must be resolved before this PR can be merged. The patch must preserve the original author (Kaustubh Pandey) and match the content posted to lore.kernel.org. All other checkers passed or were correctly skipped.

@shashim-quic

Copy link
Copy Markdown
Collaborator

can you rebase on latest baseline

@rpavanqcom

Copy link
Copy Markdown
Author

can you rebase on latest baseline

I have already rebased this & I don't see any conflicts on tip

Enable IPA and ensure ipa apps loads the gsi firmware because
modem doesn't support IPA FW loading.

Link: https://lore.kernel.org/all/20260618124700.2001191-1-sarat.addepalli@oss.qualcomm.com/
Signed-off-by: Sarat Addepalli <sarat.addepalli@oss.qualcomm.com>
Signed-off-by: Pavan Kumar M <rpavan@qti.qualcomm.com>
Signed-off-by: rpavanqcom <rpavan@qti.qualcomm.com>
@rpavanqcom rpavanqcom closed this Jun 29, 2026
@rpavanqcom

Copy link
Copy Markdown
Author

#1420

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1377

PR: #1377
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28357986608

# Error File:Line PR-introduced? Root Cause
1 Merge conflict (content) arch/arm64/boot/dts/qcom/Makefile Yes PR adds qcs6490-rb3gen2-el2 entries that conflict with baseline integration branch
2 Merge conflict (add/add) arch/arm64/boot/dts/qcom/kodiak-el2.dtso Yes PR creates new file kodiak-el2.dtso that already exists in baseline with different content

Verdict

Both failures are merge conflicts introduced by this PR during integration with the baseline branch (19b282f417584cfe14ce6a262122c51553d026ec). These are not compilation errors but integration conflicts that must be resolved before the build can proceed.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

🔨 Build Failure Analysis — PR #1377

PR: #1377
Build run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28357986608

# Error File:Line PR-introduced? Root Cause
1 Merge conflict (content) arch/arm64/boot/dts/qcom/Makefile Yes PR adds qcs6490-rb3gen2-el2 entries that conflict with baseline changes in the same region
2 Merge conflict (add/add) arch/arm64/boot/dts/qcom/kodiak-el2.dtso Yes PR creates new file kodiak-el2.dtso that already exists in baseline with different content

Verdict

This is not a compilation failure — the build failed during the merge/integration phase before compilation could begin. Both merge conflicts are introduced by this PR's changes conflicting with the integration baseline.

📎 Detailed analysis: Full report

@qlijarvis

Copy link
Copy Markdown

PR #1377 — validate-patch

PR: #1377

Verdict Issues Detailed Report
⚠️ 4 Full report

Final Summary

  1. Lore link present: No — patch file contains no commit messages or Link: tags
  2. Lore link matches PR commits: N/A — no lore links to compare; raw diff format prevents commit-level analysis
  3. Upstream patch status: Unknown — appears to be bulk upstream merge (VERSION 7, EXTRAVERSION -rc1 → empty), but cannot verify without git metadata
  4. PR present in qcom-next: Not checked — cannot verify without access to repository or PR metadata

Note: This validation is severely limited by:

  • Lack of network access to GitHub API or lore.kernel.org
  • Absence of git metadata in the patch file
  • Unavailability of the validate-patch skill reference materials
  • Raw diff format instead of proper git-format-patch output
Verdict: ⚠️ — click to expand

🔍 Patch Validation

PR: #1377 (Title unknown - metadata not accessible)
Upstream commit: N/A - This appears to be a massive upstream merge/sync
Verdict: ⚠️ CANNOT FULLY VALIDATE

Analysis Summary

This PR contains an extremely large changeset with 48,184 files modified and 83,655 index entries, indicating this is a major upstream kernel merge or synchronization rather than a typical patch submission.

Observations

Patch Characteristics:

  • Scale: 48,184 files changed across the entire kernel tree
  • Format: Raw unified diff without standard git-format-patch headers (no From:, Subject:, Date:, commit message, or trailers)
  • Version Change: Makefile shows EXTRAVERSION changing from -rc1 to empty string, suggesting a release candidate to final release merge
  • Scope: Changes span all subsystems (.mailmap, Documentation/, arch/, drivers/, etc.)

Commit Message

Check Status Note
Subject matches upstream No commit message present in patch file
Body preserves rationale No commit message body
Fixes tag present/correct N/A Not applicable for merge commits
Authorship preserved No Author: field in patch
Backport note (if applicable) N/A This appears to be a forward merge, not a backport

Diff

Scope Status Notes
Overall structure ⚠️ Raw diff format without git metadata; no commit boundaries
File count ⚠️ 48K+ files - typical of major version merge
Duplicate entries Makefile appears 31 times, suggesting concatenated patches or malformed diff
Content validity ⚠️ Cannot validate individual changes without upstream references

Issues

Critical Issues:

  1. No commit metadata: Patch lacks standard git-format-patch headers (From, Date, Subject, commit message, Signed-off-by, Link tags)
  2. No upstream references: Cannot verify individual changes against lore.kernel.org without commit SHAs or message-IDs
  3. Duplicate diff entries: Multiple files (e.g., Makefile) appear multiple times, suggesting either:
    • Multiple commits improperly concatenated
    • Malformed patch generation
    • Merge conflict artifacts
  4. No authorship preservation: Original authors of individual changes cannot be identified
  5. No traceability: Without Link: tags or commit references, changes cannot be traced to upstream discussions

Structural Issues:

  • Raw diff format makes it impossible to validate individual commit messages
  • Cannot verify Signed-off-by chains
  • Cannot check if changes match their upstream counterparts
  • No way to identify which upstream kernel version this represents

Verdict

Cannot validate this PR using standard patch validation criteria. This appears to be a bulk upstream merge that should be handled as a merge commit, not as a patch series.

Recommendations:

  1. If this is an upstream merge, it should be done via git merge with proper merge commit message documenting:
    • Source branch/tag (e.g., v7.0, v7.1-rc1)
    • Merge rationale
    • Any conflict resolutions
  2. If this represents multiple upstream commits, they should be:
    • Applied individually with git cherry-pick or git am
    • Preserve original commit messages and authorship
    • Include Link: tags to lore.kernel.org
  3. The duplicate entries (Makefile appearing 31 times) need investigation

Final Summary

  1. Lore link present: No — patch file contains no commit messages or Link: tags
  2. Lore link matches PR commits: N/A — no lore links to compare; raw diff format prevents commit-level analysis
  3. Upstream patch status: Unknown — appears to be bulk upstream merge (VERSION 7, EXTRAVERSION -rc1 → empty), but cannot verify without git metadata
  4. PR present in qcom-next: Not checked — cannot verify without access to repository or PR metadata

Note: This validation is severely limited by:

  • Lack of network access to GitHub API or lore.kernel.org
  • Absence of git metadata in the patch file
  • Unavailability of the validate-patch skill reference materials
  • Raw diff format instead of proper git-format-patch output

@qlijarvis

Copy link
Copy Markdown

PR #1377 — checker-log-analyzer

PR: #1377
Checker run: https://github.com/qualcomm-linux/kernel-config/actions/runs/28357987617

Checker Result Summary
Checker Result Summary
checkpatch ⏭️ Skipped - merge conflict during integration
dt-binding-check ⏭️ Skipped - merge conflict during integration
dtb-check ⏭️ Skipped - merge conflict during integration
sparse-check ⏭️ Skipped - merge conflict during integration
check-uapi-headers ⏭️ Skipped - merge conflict during integration
check-patch-compliance ⏭️ Skipped - merge conflict during integration
tag-check N/A Not applicable for upstream merges
qcom-next-check N/A Not applicable for upstream merges

Detailed report: Full report

Checker analysis — click to expand

🤖 CI Checker Analysis (checker-log-analyzer)

PR: #1377 (Large upstream kernel merge - appears to be v6.9 final release)
Source: https://github.com/qualcomm-linux/kernel-config/actions/runs/28357987617

Checker Result Summary
checkpatch ⏭️ Skipped - merge conflict during integration
dt-binding-check ⏭️ Skipped - merge conflict during integration
dtb-check ⏭️ Skipped - merge conflict during integration
sparse-check ⏭️ Skipped - merge conflict during integration
check-uapi-headers ⏭️ Skipped - merge conflict during integration
check-patch-compliance ⏭️ Skipped - merge conflict during integration
tag-check N/A Not applicable for upstream merges
qcom-next-check N/A Not applicable for upstream merges

❌ Integration Merge Conflict

Root cause: The kernel-checker CI workflow attempts to merge PR #1377 into an integration branch that includes topic branches. When merging topic/tech/all/dt/qcs6490, conflicts occurred in device tree files that overlap with changes in this massive upstream merge.

Failure details:

2026-06-29T08:31:02.2118136Z CONFLICT (content): Merge conflict in arch/arm64/boot/dts/qcom/Makefile
2026-06-29T08:31:02.2119369Z CONFLICT (add/add): Merge conflict in arch/arm64/boot/dts/qcom/kodiak-el2.dtso
2026-06-29T08:31:02.2729185Z Automatic merge failed; fix conflicts and then commit the result.
2026-06-29T08:31:02.2845447Z Merge failed, manual merge

Analysis:

This is not a code quality issue with PR #1377 itself. The failure occurred during the CI workflow's integration testing phase, which:

  1. Creates an integration branch based on baseline commit 19b282f417584cfe14ce6a262122c51553d026ec
  2. Merges the PR into this branch
  3. Attempts to merge additional topic branches (e.g., topic/tech/all/dt/qcs6490)
  4. Fails when merging the topic branch due to conflicts with the upstream changes

Conflicting files:

  • arch/arm64/boot/dts/qcom/Makefile - Content conflict
  • arch/arm64/boot/dts/qcom/kodiak-el2.dtso - Add/add conflict (file added in both branches)

Why this happened:

PR #1377 is a massive upstream merge (86,224 files changed) that brings in v6.9 kernel changes. The topic branch topic/tech/all/dt/qcs6490 contains Qualcomm-specific device tree additions that were developed against an older baseline. When the CI tries to integrate both:

  • The upstream merge includes new/modified DTS files and Makefile entries
  • The topic branch also adds/modifies overlapping DTS files (kodiak-el2.dtso, Makefile)
  • Git cannot automatically resolve which version to keep

Fix:

This is not a blocker for merging PR #1377. The conflict is between the PR and a separate topic branch, not with the target branch itself. The resolution depends on the workflow:

Option 1: Merge PR #1377 first (Recommended)

# PR #1377 should merge cleanly into the target branch
# Then rebase topic/tech/all/dt/qcs6490 on top of the new baseline
git checkout topic/tech/all/dt/qcs6490
git rebase <new-baseline-after-pr1377>
# Resolve conflicts in kodiak-el2.dtso and Makefile during rebase

Option 2: Rebase topic branch first

# Rebase the topic branch onto the PR's head
git checkout topic/tech/all/dt/qcs6490
git rebase <pr1377-head>
# Resolve conflicts, then re-run CI

Option 3: Manual conflict resolution in integration

# During the integration merge, manually resolve:
# 1. arch/arm64/boot/dts/qcom/Makefile - merge both sets of entries
# 2. arch/arm64/boot/dts/qcom/kodiak-el2.dtso - keep topic branch version if it's newer
git checkout integ
git merge topic/tech/all/dt/qcs6490
# Edit conflicting files
git add arch/arm64/boot/dts/qcom/Makefile arch/arm64/boot/dts/qcom/kodiak-el2.dtso
git commit

Reproduce locally:

# Clone the kernel-config repo and set up the integration environment
git clone <kernel-topics-repo>
cd kernel-topics
git fetch origin pull/1377/head:pr1377
git checkout -b test-integ 19b282f417584cfe14ce6a262122c51553d026ec
git merge pr1377
git merge topic/tech/all/dt/qcs6490
# Conflicts will appear - resolve manually

Verdict

PR #1377 is ready to merge from a code quality perspective. All checker failures are due to integration conflicts with a separate topic branch (topic/tech/all/dt/qcs6490), not issues with the PR's code itself.

Action required: The topic branch needs to be rebased on top of the new baseline after PR #1377 is merged, or conflicts need to be resolved during integration. This is a normal part of managing multiple development branches and does not indicate any problem with the upstream merge in PR #1377.

Recommendation: Merge PR #1377 into the target branch, then rebase/update the conflicting topic branch to resolve the device tree conflicts.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.