Skip to content

Conversation

@jacob-keller
Copy link

  • ice: use pack_fields API
  • WIP: use u16 for packed field sizes
  • packing: generate CHECK_PACKED_FIELDS_N definitions via Kbuild

This worked for me, using a simple C program to generate the packing checks.
I'm not 100% sure if everything is totally correct, and I also included my
ice driver changes as well as the u16 change, though I am still unclear
about that as well.

Update the ice driver to use the new pack_fields() API of the packing
library instead of implementing its own version.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Currently <linux/packing.h> includes 20K lines of macro definitions for
CHECK_PACKED_FIELDS_1 through CHECK_PACKED_FIELDS_50. These macros are
necessary to perform compile-time checks on packed field arrays. They are
generated via some simple C code, but currently committed to the header
file directly.

Instead, move these definitions into a separate
<generated/packing-checks.h> header file which we include. Use Kbuild to
generate a gen_packing_checks program which outputs the contents. This way,
we do not need to commit 20k lines to the <linux/packing.h> header, and we
can easily change the number of definitions generated by updating the
lib/gen_packing_checks.c host program file.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
@jacob-keller
Copy link
Author

Feel free to squash things in. I presume the ice driver change can be kept out and squashed into my series, depending on how we want to organize sending things.

@jacob-keller
Copy link
Author

If the C program isn't super well liked, I also have a shell-script version, but I think the C program is better.

Copy link
Owner

@vladimiroltean vladimiroltean left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please wait until tomorrow, I might have some ideas on how to make the size_t -> u16 change look a bit nicer while at the same time remaining size-conscious.

@jacob-keller
Copy link
Author

Awesome, I look forward to it!

@vladimiroltean vladimiroltean merged this pull request into vladimiroltean:packing-selftests Sep 6, 2024
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
If SER L2 occurs during the WoWLAN resume flow, the add interface flow
is triggered by ieee80211_reconfig(). However, due to
rtw89_wow_resume() return failure, it will cause the add interface flow
to be executed again, resulting in a double add list and causing a kernel
panic. Therefore, we have added a check to prevent double adding of the
list.

list_add double add: new=ffff99d6992e2010, prev=ffff99d6992e2010, next=ffff99d695302628.
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:37!
invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
CPU: 0 PID: 9 Comm: kworker/0:1 Tainted: G        W  O       6.6.30-02659-gc18865c4dfbd #1 770df2933251a0e3c888ba69d1053a817a6376a7
Hardware name: HP Grunt/Grunt, BIOS Google_Grunt.11031.169.0 06/24/2021
Workqueue: events_freezable ieee80211_restart_work [mac80211]
RIP: 0010:__list_add_valid_or_report+0x5e/0xb0
Code: c7 74 18 48 39 ce 74 13 b0 01 59 5a 5e 5f 41 58 41 59 41 5a 5d e9 e2 d6 03 00 cc 48 c7 c7 8d 4f 17 83 48 89 c2 e8 02 c0 00 00 <0f> 0b 48 c7 c7 aa 8c 1c 83 e8 f4 bf 00 00 0f 0b 48 c7 c7 c8 bc 12
RSP: 0018:ffffa91b8007bc50 EFLAGS: 00010246
RAX: 0000000000000058 RBX: ffff99d6992e0900 RCX: a014d76c70ef3900
RDX: ffffa91b8007bae8 RSI: 00000000ffffdfff RDI: 0000000000000001
RBP: ffffa91b8007bc88 R08: 0000000000000000 R09: ffffa91b8007bae0
R10: 00000000ffffdfff R11: ffffffff83a79800 R12: ffff99d695302060
R13: ffff99d695300900 R14: ffff99d6992e1be0 R15: ffff99d6992e2010
FS:  0000000000000000(0000) GS:ffff99d6aac00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000078fbdba43480 CR3: 000000010e464000 CR4: 00000000001506f0
Call Trace:
 <TASK>
 ? __die_body+0x1f/0x70
 ? die+0x3d/0x60
 ? do_trap+0xa4/0x110
 ? __list_add_valid_or_report+0x5e/0xb0
 ? do_error_trap+0x6d/0x90
 ? __list_add_valid_or_report+0x5e/0xb0
 ? handle_invalid_op+0x30/0x40
 ? __list_add_valid_or_report+0x5e/0xb0
 ? exc_invalid_op+0x3c/0x50
 ? asm_exc_invalid_op+0x16/0x20
 ? __list_add_valid_or_report+0x5e/0xb0
 rtw89_ops_add_interface+0x309/0x310 [rtw89_core 7c32b1ee6854761c0321027c8a58c5160e41f48f]
 drv_add_interface+0x5c/0x130 [mac80211 83e989e6e616bd5b4b8a2b0a9f9352a2c385a3bc]
 ieee80211_reconfig+0x241/0x13d0 [mac80211 83e989e6e616bd5b4b8a2b0a9f9352a2c385a3bc]
 ? finish_wait+0x3e/0x90
 ? synchronize_rcu_expedited+0x174/0x260
 ? sync_rcu_exp_done_unlocked+0x50/0x50
 ? wake_bit_function+0x40/0x40
 ieee80211_restart_work+0xf0/0x140 [mac80211 83e989e6e616bd5b4b8a2b0a9f9352a2c385a3bc]
 process_scheduled_works+0x1e5/0x480
 worker_thread+0xea/0x1e0
 kthread+0xdb/0x110
 ? move_linked_works+0x90/0x90
 ? kthread_associate_blkcg+0xa0/0xa0
 ret_from_fork+0x3b/0x50
 ? kthread_associate_blkcg+0xa0/0xa0
 ret_from_fork_asm+0x11/0x20
 </TASK>
Modules linked in: dm_integrity async_xor xor async_tx lz4 lz4_compress zstd zstd_compress zram zsmalloc rfcomm cmac uinput algif_hash algif_skcipher af_alg btusb btrtl iio_trig_hrtimer industrialio_sw_trigger btmtk industrialio_configfs btbcm btintel uvcvideo videobuf2_vmalloc iio_trig_sysfs videobuf2_memops videobuf2_v4l2 videobuf2_common uvc snd_hda_codec_hdmi veth snd_hda_intel snd_intel_dspcfg acpi_als snd_hda_codec industrialio_triggered_buffer kfifo_buf snd_hwdep industrialio i2c_piix4 snd_hda_core designware_i2s ip6table_nat snd_soc_max98357a xt_MASQUERADE xt_cgroup snd_soc_acp_rt5682_mach fuse rtw89_8922ae(O) rtw89_8922a(O) rtw89_pci(O) rtw89_core(O) 8021q mac80211(O) bluetooth ecdh_generic ecc cfg80211 r8152 mii joydev
gsmi: Log Shutdown Reason 0x03
---[ end trace 0000000000000000 ]---

Signed-off-by: Chih-Kang Chang <gary.chang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Link: https://patch.msgid.link/20240731070506.46100-4-pkshih@realtek.com
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
Ethtool callbacks can be executed while reset is in progress and try to
access deleted resources, e.g. getting coalesce settings can result in a
NULL pointer dereference seen below.

Reproduction steps:
Once the driver is fully initialized, trigger reset:
	# echo 1 > /sys/class/net/<interface>/device/reset
when reset is in progress try to get coalesce settings using ethtool:
	# ethtool -c <interface>

BUG: kernel NULL pointer dereference, address: 0000000000000020
PGD 0 P4D 0
Oops: Oops: 0000 [#1] PREEMPT SMP PTI
CPU: 11 PID: 19713 Comm: ethtool Tainted: G S                 6.10.0-rc7+ torvalds#7
RIP: 0010:ice_get_q_coalesce+0x2e/0xa0 [ice]
RSP: 0018:ffffbab1e9bcf6a8 EFLAGS: 00010206
RAX: 000000000000000c RBX: ffff94512305b028 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffff9451c3f2e588 RDI: ffff9451c3f2e588
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: ffff9451c3f2e580 R11: 000000000000001f R12: ffff945121fa9000
R13: ffffbab1e9bcf760 R14: 0000000000000013 R15: ffffffff9e65dd40
FS:  00007faee5fbe740(0000) GS:ffff94546fd80000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000020 CR3: 0000000106c2e005 CR4: 00000000001706f0
Call Trace:
<TASK>
ice_get_coalesce+0x17/0x30 [ice]
coalesce_prepare_data+0x61/0x80
ethnl_default_doit+0xde/0x340
genl_family_rcv_msg_doit+0xf2/0x150
genl_rcv_msg+0x1b3/0x2c0
netlink_rcv_skb+0x5b/0x110
genl_rcv+0x28/0x40
netlink_unicast+0x19c/0x290
netlink_sendmsg+0x222/0x490
__sys_sendto+0x1df/0x1f0
__x64_sys_sendto+0x24/0x30
do_syscall_64+0x82/0x160
entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7faee60d8e27

Calling netif_device_detach() before reset makes the net core not call
the driver when ethtool command is issued, the attempt to execute an
ethtool command during reset will result in the following message:

    netlink error: No such device

instead of NULL pointer dereference. Once reset is done and
ice_rebuild() is executing, the netif_device_attach() is called to allow
for ethtool operations to occur again in a safe manner.

Fixes: fcea6f3 ("ice: Add stats and ethtool support")
Suggested-by: Jakub Kicinski <kuba@kernel.org>
Reviewed-by: Igor Bagnucki <igor.bagnucki@intel.com>
Signed-off-by: Dawid Osuchowski <dawid.osuchowski@linux.intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Reviewed-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
Steve French reported null pointer dereference error from sha256 lib.
cifs.ko can send session setup requests on reused connection.
If reused connection is used for binding session, conn->binding can
still remain true and generate_preauth_hash() will not set
sess->Preauth_HashValue and it will be NULL.
It is used as a material to create an encryption key in
ksmbd_gen_smb311_encryptionkey. ->Preauth_HashValue cause null pointer
dereference error from crypto_shash_update().

BUG: kernel NULL pointer dereference, address: 0000000000000000
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: 0000 [#1] PREEMPT SMP PTI
CPU: 8 PID: 429254 Comm: kworker/8:39
Hardware name: LENOVO 20MAS08500/20MAS08500, BIOS N2CET69W (1.52 )
Workqueue: ksmbd-io handle_ksmbd_work [ksmbd]
RIP: 0010:lib_sha256_base_do_update.isra.0+0x11e/0x1d0 [sha256_ssse3]
<TASK>
? show_regs+0x6d/0x80
? __die+0x24/0x80
? page_fault_oops+0x99/0x1b0
? do_user_addr_fault+0x2ee/0x6b0
? exc_page_fault+0x83/0x1b0
? asm_exc_page_fault+0x27/0x30
? __pfx_sha256_transform_rorx+0x10/0x10 [sha256_ssse3]
? lib_sha256_base_do_update.isra.0+0x11e/0x1d0 [sha256_ssse3]
? __pfx_sha256_transform_rorx+0x10/0x10 [sha256_ssse3]
? __pfx_sha256_transform_rorx+0x10/0x10 [sha256_ssse3]
_sha256_update+0x77/0xa0 [sha256_ssse3]
sha256_avx2_update+0x15/0x30 [sha256_ssse3]
crypto_shash_update+0x1e/0x40
hmac_update+0x12/0x20
crypto_shash_update+0x1e/0x40
generate_key+0x234/0x380 [ksmbd]
generate_smb3encryptionkey+0x40/0x1c0 [ksmbd]
ksmbd_gen_smb311_encryptionkey+0x72/0xa0 [ksmbd]
ntlm_authenticate.isra.0+0x423/0x5d0 [ksmbd]
smb2_sess_setup+0x952/0xaa0 [ksmbd]
__process_request+0xa3/0x1d0 [ksmbd]
__handle_ksmbd_work+0x1c4/0x2f0 [ksmbd]
handle_ksmbd_work+0x2d/0xa0 [ksmbd]
process_one_work+0x16c/0x350
worker_thread+0x306/0x440
? __pfx_worker_thread+0x10/0x10
kthread+0xef/0x120
? __pfx_kthread+0x10/0x10
ret_from_fork+0x44/0x70
? __pfx_kthread+0x10/0x10
ret_from_fork_asm+0x1b/0x30
</TASK>

Fixes: f5a544e ("ksmbd: add support for SMB3 multichannel")
Cc: stable@vger.kernel.org # v5.15+
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Signed-off-by: Steve French <stfrench@microsoft.com>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
When we cork messages in psock->cork, the last message triggers the
flushing will result in sending a sk_msg larger than the current
message size. In this case, in tcp_bpf_send_verdict(), 'copied' becomes
negative at least in the following case:

468         case __SK_DROP:
469         default:
470                 sk_msg_free_partial(sk, msg, tosend);
471                 sk_msg_apply_bytes(psock, tosend);
472                 *copied -= (tosend + delta); // <==== HERE
473                 return -EACCES;

Therefore, it could lead to the following BUG with a proper value of
'copied' (thanks to syzbot). We should not use negative 'copied' as a
return value here.

  ------------[ cut here ]------------
  kernel BUG at net/socket.c:733!
  Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP
  Modules linked in:
  CPU: 0 UID: 0 PID: 3265 Comm: syz-executor510 Not tainted 6.11.0-rc3-syzkaller-00060-gd07b43284ab3 #0
  Hardware name: linux,dummy-virt (DT)
  pstate: 61400009 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--)
  pc : sock_sendmsg_nosec net/socket.c:733 [inline]
  pc : sock_sendmsg_nosec net/socket.c:728 [inline]
  pc : __sock_sendmsg+0x5c/0x60 net/socket.c:745
  lr : sock_sendmsg_nosec net/socket.c:730 [inline]
  lr : __sock_sendmsg+0x54/0x60 net/socket.c:745
  sp : ffff800088ea3b30
  x29: ffff800088ea3b30 x28: fbf00000062bc900 x27: 0000000000000000
  x26: ffff800088ea3bc0 x25: ffff800088ea3bc0 x24: 0000000000000000
  x23: f9f00000048dc000 x22: 0000000000000000 x21: ffff800088ea3d90
  x20: f9f00000048dc000 x19: ffff800088ea3d90 x18: 0000000000000001
  x17: 0000000000000000 x16: 0000000000000000 x15: 000000002002ffaf
  x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
  x11: 0000000000000000 x10: ffff8000815849c0 x9 : ffff8000815b49c0
  x8 : 0000000000000000 x7 : 000000000000003f x6 : 0000000000000000
  x5 : 00000000000007e0 x4 : fff07ffffd239000 x3 : fbf00000062bc900
  x2 : 0000000000000000 x1 : 0000000000000000 x0 : 00000000fffffdef
  Call trace:
   sock_sendmsg_nosec net/socket.c:733 [inline]
   __sock_sendmsg+0x5c/0x60 net/socket.c:745
   ____sys_sendmsg+0x274/0x2ac net/socket.c:2597
   ___sys_sendmsg+0xac/0x100 net/socket.c:2651
   __sys_sendmsg+0x84/0xe0 net/socket.c:2680
   __do_sys_sendmsg net/socket.c:2689 [inline]
   __se_sys_sendmsg net/socket.c:2687 [inline]
   __arm64_sys_sendmsg+0x24/0x30 net/socket.c:2687
   __invoke_syscall arch/arm64/kernel/syscall.c:35 [inline]
   invoke_syscall+0x48/0x110 arch/arm64/kernel/syscall.c:49
   el0_svc_common.constprop.0+0x40/0xe0 arch/arm64/kernel/syscall.c:132
   do_el0_svc+0x1c/0x28 arch/arm64/kernel/syscall.c:151
   el0_svc+0x34/0xec arch/arm64/kernel/entry-common.c:712
   el0t_64_sync_handler+0x100/0x12c arch/arm64/kernel/entry-common.c:730
   el0t_64_sync+0x19c/0x1a0 arch/arm64/kernel/entry.S:598
  Code: f9404463 d63f0060 3108441f 54fffe81 (d4210000)
  ---[ end trace 0000000000000000 ]---

Fixes: 4f738ad ("bpf: create tcp_bpf_ulp allowing BPF to monitor socket TX/RX data")
Reported-by: syzbot+58c03971700330ce14d8@syzkaller.appspotmail.com
Cc: Jakub Sitnicki <jakub@cloudflare.com>
Signed-off-by: Cong Wang <cong.wang@bytedance.com>
Reviewed-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Martin KaFai Lau <martin.lau@kernel.org>
Link: https://patch.msgid.link/20240821030744.320934-1-xiyou.wangcong@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
The fscache_cookie_lru_timer is initialized when the fscache module
is inserted, but is not deleted when the fscache module is removed.
If timer_reduce() is called before removing the fscache module,
the fscache_cookie_lru_timer will be added to the timer list of
the current cpu. Afterwards, a use-after-free will be triggered
in the softIRQ after removing the fscache module, as follows:

==================================================================
BUG: unable to handle page fault for address: fffffbfff803c9e9
 PF: supervisor read access in kernel mode
 PF: error_code(0x0000) - not-present page
PGD 21ffea067 P4D 21ffea067 PUD 21ffe6067 PMD 110a7c067 PTE 0
Oops: Oops: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 1 UID: 0 PID: 0 Comm: swapper/1 Tainted: G W 6.11.0-rc3 torvalds#855
Tainted: [W]=WARN
RIP: 0010:__run_timer_base.part.0+0x254/0x8a0
Call Trace:
 <IRQ>
 tmigr_handle_remote_up+0x627/0x810
 __walk_groups.isra.0+0x47/0x140
 tmigr_handle_remote+0x1fa/0x2f0
 handle_softirqs+0x180/0x590
 irq_exit_rcu+0x84/0xb0
 sysvec_apic_timer_interrupt+0x6e/0x90
 </IRQ>
 <TASK>
 asm_sysvec_apic_timer_interrupt+0x1a/0x20
RIP: 0010:default_idle+0xf/0x20
 default_idle_call+0x38/0x60
 do_idle+0x2b5/0x300
 cpu_startup_entry+0x54/0x60
 start_secondary+0x20d/0x280
 common_startup_64+0x13e/0x148
 </TASK>
Modules linked in: [last unloaded: netfs]
==================================================================

Therefore delete fscache_cookie_lru_timer when removing the fscahe module.

Fixes: 12bb21a ("fscache: Implement cookie user counting and resource pinning")
Cc: stable@kernel.org
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Link: https://lore.kernel.org/r/20240826112056.2458299-1-libaokun@huaweicloud.com
Acked-by: David Howells <dhowells@redhat.com>
Signed-off-by: Christian Brauner <brauner@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
Commit 8c61291 ("mm: fix incorrect vbq reference in
purge_fragmented_block") extended the 'vmap_block' structure to contain a
'cpu' field which is set at allocation time to the id of the initialising
CPU.

When a new 'vmap_block' is being instantiated by new_vmap_block(), the
partially initialised structure is added to the local 'vmap_block_queue'
xarray before the 'cpu' field has been initialised.  If another CPU is
concurrently walking the xarray (e.g.  via vm_unmap_aliases()), then it
may perform an out-of-bounds access to the remote queue thanks to an
uninitialised index.

This has been observed as UBSAN errors in Android:

 | Internal error: UBSAN: array index out of bounds: 00000000f2005512 [#1] PREEMPT SMP
 |
 | Call trace:
 |  purge_fragmented_block+0x204/0x21c
 |  _vm_unmap_aliases+0x170/0x378
 |  vm_unmap_aliases+0x1c/0x28
 |  change_memory_common+0x1dc/0x26c
 |  set_memory_ro+0x18/0x24
 |  module_enable_ro+0x98/0x238
 |  do_init_module+0x1b0/0x310

Move the initialisation of 'vb->cpu' in new_vmap_block() ahead of the
addition to the xarray.

Link: https://lkml.kernel.org/r/20240812171606.17486-1-will@kernel.org
Fixes: 8c61291 ("mm: fix incorrect vbq reference in purge_fragmented_block")
Signed-off-by: Will Deacon <will@kernel.org>
Reviewed-by: Baoquan He <bhe@redhat.com>
Reviewed-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
Cc: Zhaoyang Huang <zhaoyang.huang@unisoc.com>
Cc: Hailong.Liu <hailong.liu@oppo.com>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Lorenzo Stoakes <lstoakes@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
When enable CONFIG_MEMCG & CONFIG_KFENCE & CONFIG_KMEMLEAK, the following
warning always occurs,This is because the following call stack occurred:
mem_pool_alloc
    kmem_cache_alloc_noprof
        slab_alloc_node
            kfence_alloc

Once the kfence allocation is successful,slab->obj_exts will not be empty,
because it has already been assigned a value in kfence_init_pool.

Since in the prepare_slab_obj_exts_hook function,we perform a check for
s->flags & (SLAB_NO_OBJ_EXT | SLAB_NOLEAKTRACE),the alloc_tag_add function
will not be called as a result.Therefore,ref->ct remains NULL.

However,when we call mem_pool_free,since obj_ext is not empty, it
eventually leads to the alloc_tag_sub scenario being invoked.  This is
where the warning occurs.

So we should add corresponding checks in the alloc_tagging_slab_free_hook.
For __GFP_NO_OBJ_EXT case,I didn't see the specific case where it's using
kfence,so I won't add the corresponding check in
alloc_tagging_slab_free_hook for now.

[    3.734349] ------------[ cut here ]------------
[    3.734807] alloc_tag was not set
[    3.735129] WARNING: CPU: 4 PID: 40 at ./include/linux/alloc_tag.h:130 kmem_cache_free+0x444/0x574
[    3.735866] Modules linked in: autofs4
[    3.736211] CPU: 4 UID: 0 PID: 40 Comm: ksoftirqd/4 Tainted: G        W          6.11.0-rc3-dirty #1
[    3.736969] Tainted: [W]=WARN
[    3.737258] Hardware name: QEMU KVM Virtual Machine, BIOS unknown 2/2/2022
[    3.737875] pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    3.738501] pc : kmem_cache_free+0x444/0x574
[    3.738951] lr : kmem_cache_free+0x444/0x574
[    3.739361] sp : ffff80008357bb60
[    3.739693] x29: ffff80008357bb70 x28: 0000000000000000 x27: 0000000000000000
[    3.740338] x26: ffff80008207f000 x25: ffff000b2eb2fd60 x24: ffff0000c0005700
[    3.740982] x23: ffff8000804229e4 x22: ffff800082080000 x21: ffff800081756000
[    3.741630] x20: fffffd7ff8253360 x19: 00000000000000a8 x18: ffffffffffffffff
[    3.742274] x17: ffff800ab327f000 x16: ffff800083398000 x15: ffff800081756df0
[    3.742919] x14: 0000000000000000 x13: 205d344320202020 x12: 5b5d373038343337
[    3.743560] x11: ffff80008357b650 x10: 000000000000005d x9 : 00000000ffffffd0
[    3.744231] x8 : 7f7f7f7f7f7f7f7f x7 : ffff80008237bad0 x6 : c0000000ffff7fff
[    3.744907] x5 : ffff80008237ba78 x4 : ffff8000820bbad0 x3 : 0000000000000001
[    3.745580] x2 : 68d66547c09f7800 x1 : 68d66547c09f7800 x0 : 0000000000000000
[    3.746255] Call trace:
[    3.746530]  kmem_cache_free+0x444/0x574
[    3.746931]  mem_pool_free+0x44/0xf4
[    3.747306]  free_object_rcu+0xc8/0xdc
[    3.747693]  rcu_do_batch+0x234/0x8a4
[    3.748075]  rcu_core+0x230/0x3e4
[    3.748424]  rcu_core_si+0x14/0x1c
[    3.748780]  handle_softirqs+0x134/0x378
[    3.749189]  run_ksoftirqd+0x70/0x9c
[    3.749560]  smpboot_thread_fn+0x148/0x22c
[    3.749978]  kthread+0x10c/0x118
[    3.750323]  ret_from_fork+0x10/0x20
[    3.750696] ---[ end trace 0000000000000000 ]---

Link: https://lkml.kernel.org/r/20240816013336.17505-1-hao.ge@linux.dev
Fixes: 4b87369 ("mm/slab: add allocation accounting into slab allocation and free paths")
Signed-off-by: Hao Ge <gehao@kylinos.cn>
Cc: Christoph Lameter <cl@linux.com>
Cc: David Rientjes <rientjes@google.com>
Cc: Hyeonggon Yoo <42.hyeyoo@gmail.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Kees Cook <kees@kernel.org>
Cc: Kent Overstreet <kent.overstreet@linux.dev>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Roman Gushchin <roman.gushchin@linux.dev>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
The main threat to data consistency in ice_xdp() is a possible asynchronous
PF reset. It can be triggered by a user or by TX timeout handler.

XDP setup and PF reset code access the same resources in the following
sections:
* ice_vsi_close() in ice_prepare_for_reset() - already rtnl-locked
* ice_vsi_rebuild() for the PF VSI - not protected
* ice_vsi_open() - already rtnl-locked

With an unfortunate timing, such accesses can result in a crash such as the
one below:

[ +1.999878] ice 0000:b1:00.0: Registered XDP mem model MEM_TYPE_XSK_BUFF_POOL on Rx ring 14
[ +2.002992] ice 0000:b1:00.0: Registered XDP mem model MEM_TYPE_XSK_BUFF_POOL on Rx ring 18
[Mar15 18:17] ice 0000:b1:00.0 ens801f0np0: NETDEV WATCHDOG: CPU: 38: transmit queue 14 timed out 80692736 ms
[ +0.000093] ice 0000:b1:00.0 ens801f0np0: tx_timeout: VSI_num: 6, Q 14, NTC: 0x0, HW_HEAD: 0x0, NTU: 0x0, INT: 0x4000001
[ +0.000012] ice 0000:b1:00.0 ens801f0np0: tx_timeout recovery level 1, txqueue 14
[ +0.394718] ice 0000:b1:00.0: PTP reset successful
[ +0.006184] BUG: kernel NULL pointer dereference, address: 0000000000000098
[ +0.000045] #PF: supervisor read access in kernel mode
[ +0.000023] #PF: error_code(0x0000) - not-present page
[ +0.000023] PGD 0 P4D 0
[ +0.000018] Oops: 0000 [#1] PREEMPT SMP NOPTI
[ +0.000023] CPU: 38 PID: 7540 Comm: kworker/38:1 Not tainted 6.8.0-rc7 #1
[ +0.000031] Hardware name: Intel Corporation S2600WFT/S2600WFT, BIOS SE5C620.86B.02.01.0014.082620210524 08/26/2021
[ +0.000036] Workqueue: ice ice_service_task [ice]
[ +0.000183] RIP: 0010:ice_clean_tx_ring+0xa/0xd0 [ice]
[...]
[ +0.000013] Call Trace:
[ +0.000016] <TASK>
[ +0.000014] ? __die+0x1f/0x70
[ +0.000029] ? page_fault_oops+0x171/0x4f0
[ +0.000029] ? schedule+0x3b/0xd0
[ +0.000027] ? exc_page_fault+0x7b/0x180
[ +0.000022] ? asm_exc_page_fault+0x22/0x30
[ +0.000031] ? ice_clean_tx_ring+0xa/0xd0 [ice]
[ +0.000194] ice_free_tx_ring+0xe/0x60 [ice]
[ +0.000186] ice_destroy_xdp_rings+0x157/0x310 [ice]
[ +0.000151] ice_vsi_decfg+0x53/0xe0 [ice]
[ +0.000180] ice_vsi_rebuild+0x239/0x540 [ice]
[ +0.000186] ice_vsi_rebuild_by_type+0x76/0x180 [ice]
[ +0.000145] ice_rebuild+0x18c/0x840 [ice]
[ +0.000145] ? delay_tsc+0x4a/0xc0
[ +0.000022] ? delay_tsc+0x92/0xc0
[ +0.000020] ice_do_reset+0x140/0x180 [ice]
[ +0.000886] ice_service_task+0x404/0x1030 [ice]
[ +0.000824] process_one_work+0x171/0x340
[ +0.000685] worker_thread+0x277/0x3a0
[ +0.000675] ? preempt_count_add+0x6a/0xa0
[ +0.000677] ? _raw_spin_lock_irqsave+0x23/0x50
[ +0.000679] ? __pfx_worker_thread+0x10/0x10
[ +0.000653] kthread+0xf0/0x120
[ +0.000635] ? __pfx_kthread+0x10/0x10
[ +0.000616] ret_from_fork+0x2d/0x50
[ +0.000612] ? __pfx_kthread+0x10/0x10
[ +0.000604] ret_from_fork_asm+0x1b/0x30
[ +0.000604] </TASK>

The previous way of handling this through returning -EBUSY is not viable,
particularly when destroying AF_XDP socket, because the kernel proceeds
with removal anyway.

There is plenty of code between those calls and there is no need to create
a large critical section that covers all of them, same as there is no need
to protect ice_vsi_rebuild() with rtnl_lock().

Add xdp_state_lock mutex to protect ice_vsi_rebuild() and ice_xdp().

Leaving unprotected sections in between would result in two states that
have to be considered:
1. when the VSI is closed, but not yet rebuild
2. when VSI is already rebuild, but not yet open

The latter case is actually already handled through !netif_running() case,
we just need to adjust flag checking a little. The former one is not as
trivial, because between ice_vsi_close() and ice_vsi_rebuild(), a lot of
hardware interaction happens, this can make adding/deleting rings exit
with an error. Luckily, VSI rebuild is pending and can apply new
configuration for us in a managed fashion.

Therefore, add an additional VSI state flag ICE_VSI_REBUILD_PENDING to
indicate that ice_xdp() can just hot-swap the program.

Also, as ice_vsi_rebuild() flow is touched in this patch, make it more
consistent by deconfiguring VSI when coalesce allocation fails.

Fixes: 2d4238f ("ice: Add support for AF_XDP")
Fixes: efc2214 ("ice: Add support for XDP")
Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Chandan Kumar Rout <chandanx.rout@intel.com>
Signed-off-by: Larysa Zaremba <larysa.zaremba@intel.com>
Reviewed-by: Maciej Fijalkowski <maciej.fijalkowski@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
If we have 2 threads that are using the same file descriptor and one of
them is doing direct IO writes while the other is doing fsync, we have a
race where we can end up either:

1) Attempt a fsync without holding the inode's lock, triggering an
   assertion failures when assertions are enabled;

2) Do an invalid memory access from the fsync task because the file private
   points to memory allocated on stack by the direct IO task and it may be
   used by the fsync task after the stack was destroyed.

The race happens like this:

1) A user space program opens a file descriptor with O_DIRECT;

2) The program spawns 2 threads using libpthread for example;

3) One of the threads uses the file descriptor to do direct IO writes,
   while the other calls fsync using the same file descriptor.

4) Call task A the thread doing direct IO writes and task B the thread
   doing fsyncs;

5) Task A does a direct IO write, and at btrfs_direct_write() sets the
   file's private to an on stack allocated private with the member
   'fsync_skip_inode_lock' set to true;

6) Task B enters btrfs_sync_file() and sees that there's a private
   structure associated to the file which has 'fsync_skip_inode_lock' set
   to true, so it skips locking the inode's VFS lock;

7) Task A completes the direct IO write, and resets the file's private to
   NULL since it had no prior private and our private was stack allocated.
   Then it unlocks the inode's VFS lock;

8) Task B enters btrfs_get_ordered_extents_for_logging(), then the
   assertion that checks the inode's VFS lock is held fails, since task B
   never locked it and task A has already unlocked it.

The stack trace produced is the following:

   assertion failed: inode_is_locked(&inode->vfs_inode), in fs/btrfs/ordered-data.c:983
   ------------[ cut here ]------------
   kernel BUG at fs/btrfs/ordered-data.c:983!
   Oops: invalid opcode: 0000 [#1] PREEMPT SMP PTI
   CPU: 9 PID: 5072 Comm: worker Tainted: G     U     OE      6.10.5-1-default #1 openSUSE Tumbleweed 69f48d427608e1c09e60ea24c6c55e2ca1b049e8
   Hardware name: Acer Predator PH315-52/Covini_CFS, BIOS V1.12 07/28/2020
   RIP: 0010:btrfs_get_ordered_extents_for_logging.cold+0x1f/0x42 [btrfs]
   Code: 50 d6 86 c0 e8 (...)
   RSP: 0018:ffff9e4a03dcfc78 EFLAGS: 00010246
   RAX: 0000000000000054 RBX: ffff9078a9868e98 RCX: 0000000000000000
   RDX: 0000000000000000 RSI: ffff907dce4a7800 RDI: ffff907dce4a7800
   RBP: ffff907805518800 R08: 0000000000000000 R09: ffff9e4a03dcfb38
   R10: ffff9e4a03dcfb30 R11: 0000000000000003 R12: ffff907684ae7800
   R13: 0000000000000001 R14: ffff90774646b600 R15: 0000000000000000
   FS:  00007f04b96006c0(0000) GS:ffff907dce480000(0000) knlGS:0000000000000000
   CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
   CR2: 00007f32acbfc000 CR3: 00000001fd4fa005 CR4: 00000000003726f0
   Call Trace:
    <TASK>
    ? __die_body.cold+0x14/0x24
    ? die+0x2e/0x50
    ? do_trap+0xca/0x110
    ? do_error_trap+0x6a/0x90
    ? btrfs_get_ordered_extents_for_logging.cold+0x1f/0x42 [btrfs bb26272d49b4cdc847cf3f7faadd459b62caee9a]
    ? exc_invalid_op+0x50/0x70
    ? btrfs_get_ordered_extents_for_logging.cold+0x1f/0x42 [btrfs bb26272d49b4cdc847cf3f7faadd459b62caee9a]
    ? asm_exc_invalid_op+0x1a/0x20
    ? btrfs_get_ordered_extents_for_logging.cold+0x1f/0x42 [btrfs bb26272d49b4cdc847cf3f7faadd459b62caee9a]
    ? btrfs_get_ordered_extents_for_logging.cold+0x1f/0x42 [btrfs bb26272d49b4cdc847cf3f7faadd459b62caee9a]
    btrfs_sync_file+0x21a/0x4d0 [btrfs bb26272d49b4cdc847cf3f7faadd459b62caee9a]
    ? __seccomp_filter+0x31d/0x4f0
    __x64_sys_fdatasync+0x4f/0x90
    do_syscall_64+0x82/0x160
    ? do_futex+0xcb/0x190
    ? __x64_sys_futex+0x10e/0x1d0
    ? switch_fpu_return+0x4f/0xd0
    ? syscall_exit_to_user_mode+0x72/0x220
    ? do_syscall_64+0x8e/0x160
    ? syscall_exit_to_user_mode+0x72/0x220
    ? do_syscall_64+0x8e/0x160
    ? syscall_exit_to_user_mode+0x72/0x220
    ? do_syscall_64+0x8e/0x160
    ? syscall_exit_to_user_mode+0x72/0x220
    ? do_syscall_64+0x8e/0x160
    entry_SYSCALL_64_after_hwframe+0x76/0x7e

Another problem here is if task B grabs the private pointer and then uses
it after task A has finished, since the private was allocated in the stack
of task A, it results in some invalid memory access with a hard to predict
result.

This issue, triggering the assertion, was observed with QEMU workloads by
two users in the Link tags below.

Fix this by not relying on a file's private to pass information to fsync
that it should skip locking the inode and instead pass this information
through a special value stored in current->journal_info. This is safe
because in the relevant section of the direct IO write path we are not
holding a transaction handle, so current->journal_info is NULL.

The following C program triggers the issue:

   $ cat repro.c
   /* Get the O_DIRECT definition. */
   #ifndef _GNU_SOURCE
   #define _GNU_SOURCE
   #endif

   #include <stdio.h>
   #include <stdlib.h>
   #include <unistd.h>
   #include <stdint.h>
   #include <fcntl.h>
   #include <errno.h>
   #include <string.h>
   #include <pthread.h>

   static int fd;

   static ssize_t do_write(int fd, const void *buf, size_t count, off_t offset)
   {
       while (count > 0) {
           ssize_t ret;

           ret = pwrite(fd, buf, count, offset);
           if (ret < 0) {
               if (errno == EINTR)
                   continue;
               return ret;
           }
           count -= ret;
           buf += ret;
       }
       return 0;
   }

   static void *fsync_loop(void *arg)
   {
       while (1) {
           int ret;

           ret = fsync(fd);
           if (ret != 0) {
               perror("Fsync failed");
               exit(6);
           }
       }
   }

   int main(int argc, char *argv[])
   {
       long pagesize;
       void *write_buf;
       pthread_t fsyncer;
       int ret;

       if (argc != 2) {
           fprintf(stderr, "Use: %s <file path>\n", argv[0]);
           return 1;
       }

       fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC | O_DIRECT, 0666);
       if (fd == -1) {
           perror("Failed to open/create file");
           return 1;
       }

       pagesize = sysconf(_SC_PAGE_SIZE);
       if (pagesize == -1) {
           perror("Failed to get page size");
           return 2;
       }

       ret = posix_memalign(&write_buf, pagesize, pagesize);
       if (ret) {
           perror("Failed to allocate buffer");
           return 3;
       }

       ret = pthread_create(&fsyncer, NULL, fsync_loop, NULL);
       if (ret != 0) {
           fprintf(stderr, "Failed to create writer thread: %d\n", ret);
           return 4;
       }

       while (1) {
           ret = do_write(fd, write_buf, pagesize, 0);
           if (ret != 0) {
               perror("Write failed");
               exit(5);
           }
       }

       return 0;
   }

   $ mkfs.btrfs -f /dev/sdi
   $ mount /dev/sdi /mnt/sdi
   $ timeout 10 ./repro /mnt/sdi/foo

Usually the race is triggered within less than 1 second. A test case for
fstests will follow soon.

Reported-by: Paulo Dias <paulo.miguel.dias@gmail.com>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=219187
Reported-by: Andreas Jahn <jahn-andi@web.de>
Link: https://bugzilla.kernel.org/show_bug.cgi?id=219199
Reported-by: syzbot+4704b3cc972bd76024f1@syzkaller.appspotmail.com
Link: https://lore.kernel.org/linux-btrfs/00000000000044ff540620d7dee2@google.com/
Fixes: 939b656 ("btrfs: fix corruption after buffer fault in during direct IO append write")
CC: stable@vger.kernel.org # 5.15+
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
Daniel Machon says:

====================
net: microchip: add FDMA library and use it for Sparx5

This patch series is the first of a 2-part series, that adds a new
common FDMA library for Microchip switch chips Sparx5 and lan966x. These
chips share the same FDMA engine, and as such will benefit from a
common library with a common implementation.  This also has the benefit
of removing a lot open-coded bookkeeping and duplicate code for the two
drivers.

Additionally, upstreaming efforts for a third chip, lan969x, will begin
in the near future. This chip will use the new library too.

In this first series, the FDMA library is introduced and used by the
Sparx5 switch driver.

 ###################
 # Example of use: #
 ###################

- Initialize the rx and tx fdma structs with values for: number of
  DCB's, number of DB's, channel ID, DB size (data buffer size), and
  total size of the requested memory. Also provide two callbacks:
  nextptr_cb() and dataptr_cb() for getting the nextptr and dataptr.

- Allocate memory using fdma_alloc_phys() or fdma_alloc_coherent().

- Initialize the DCB's with fdma_dcb_init().

- Add new DCB's with fdma_dcb_add().

- Free memory with fdma_free_phys() or fdma_free_coherent().

 #####################
 # Patch  breakdown: #
 #####################

Patch #1:  introduces library and selects it for Sparx5.

Patch #2:  includes the fdma_api.h header and removes old symbols.

Patch #3:  replaces old rx and tx variables with equivalent ones from the
           fdma struct. Only the variables that can be changed without
           breaking traffic is changed in this patch.

Patch #4:  uses the library for allocation of rx buffers. This requires
           quite a bit of refactoring in this single patch.

Patch #5:  uses the library for adding DCB's in the rx path.

Patch torvalds#6:  uses the library for freeing rx buffers.

Patch torvalds#7:  uses the library helpers in the rx path.

Patch torvalds#8:  uses the library for allocation of tx buffers. This requires
           quite a bit of refactoring in this single patch.

Patch torvalds#9:  uses the library for adding DCB's in the tx path.

Patch torvalds#10: uses the library helpers in the tx path.

Patch torvalds#11: ditches the existing linked list for storing buffer addresses,
           and instead uses offsets into contiguous memory.

Patch torvalds#12: modifies existing rx and tx functions to be direction
           independent.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
We observed a null-ptr-deref in fou_gro_receive() while shutting down
a host.  [0]

The NULL pointer is sk->sk_user_data, and the offset 8 is of protocol
in struct fou.

When fou_release() is called due to netns dismantle or explicit tunnel
teardown, udp_tunnel_sock_release() sets NULL to sk->sk_user_data.
Then, the tunnel socket is destroyed after a single RCU grace period.

So, in-flight udp4_gro_receive() could find the socket and execute the
FOU GRO handler, where sk->sk_user_data could be NULL.

Let's use rcu_dereference_sk_user_data() in fou_from_sock() and add NULL
checks in FOU GRO handlers.

[0]:
BUG: kernel NULL pointer dereference, address: 0000000000000008
 PF: supervisor read access in kernel mode
 PF: error_code(0x0000) - not-present page
PGD 80000001032f4067 P4D 80000001032f4067 PUD 103240067 PMD 0
SMP PTI
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 5.10.216-204.855.amzn2.x86_64 #1
Hardware name: Amazon EC2 c5.large/, BIOS 1.0 10/16/2017
RIP: 0010:fou_gro_receive (net/ipv4/fou.c:233) [fou]
Code: 41 5f c3 cc cc cc cc e8 e7 2e 69 f4 0f 1f 80 00 00 00 00 0f 1f 44 00 00 49 89 f8 41 54 48 89 f7 48 89 d6 49 8b 80 88 02 00 00 <0f> b6 48 08 0f b7 42 4a 66 25 fd fd 80 cc 02 66 89 42 4a 0f b6 42
RSP: 0018:ffffa330c0003d08 EFLAGS: 00010297
RAX: 0000000000000000 RBX: ffff93d9e3a6b900 RCX: 0000000000000010
RDX: ffff93d9e3a6b900 RSI: ffff93d9e3a6b900 RDI: ffff93dac2e24d08
RBP: ffff93d9e3a6b900 R08: ffff93dacbce6400 R09: 0000000000000002
R10: 0000000000000000 R11: ffffffffb5f369b0 R12: ffff93dacbce6400
R13: ffff93dac2e24d08 R14: 0000000000000000 R15: ffffffffb4edd1c0
FS:  0000000000000000(0000) GS:ffff93daee800000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000008 CR3: 0000000102140001 CR4: 00000000007706f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
PKRU: 55555554
Call Trace:
 <IRQ>
 ? show_trace_log_lvl (arch/x86/kernel/dumpstack.c:259)
 ? __die_body.cold (arch/x86/kernel/dumpstack.c:478 arch/x86/kernel/dumpstack.c:420)
 ? no_context (arch/x86/mm/fault.c:752)
 ? exc_page_fault (arch/x86/include/asm/irqflags.h:49 arch/x86/include/asm/irqflags.h:89 arch/x86/mm/fault.c:1435 arch/x86/mm/fault.c:1483)
 ? asm_exc_page_fault (arch/x86/include/asm/idtentry.h:571)
 ? fou_gro_receive (net/ipv4/fou.c:233) [fou]
 udp_gro_receive (include/linux/netdevice.h:2552 net/ipv4/udp_offload.c:559)
 udp4_gro_receive (net/ipv4/udp_offload.c:604)
 inet_gro_receive (net/ipv4/af_inet.c:1549 (discriminator 7))
 dev_gro_receive (net/core/dev.c:6035 (discriminator 4))
 napi_gro_receive (net/core/dev.c:6170)
 ena_clean_rx_irq (drivers/amazon/net/ena/ena_netdev.c:1558) [ena]
 ena_io_poll (drivers/amazon/net/ena/ena_netdev.c:1742) [ena]
 napi_poll (net/core/dev.c:6847)
 net_rx_action (net/core/dev.c:6917)
 __do_softirq (arch/x86/include/asm/jump_label.h:25 include/linux/jump_label.h:200 include/trace/events/irq.h:142 kernel/softirq.c:299)
 asm_call_irq_on_stack (arch/x86/entry/entry_64.S:809)
</IRQ>
 do_softirq_own_stack (arch/x86/include/asm/irq_stack.h:27 arch/x86/include/asm/irq_stack.h:77 arch/x86/kernel/irq_64.c:77)
 irq_exit_rcu (kernel/softirq.c:393 kernel/softirq.c:423 kernel/softirq.c:435)
 common_interrupt (arch/x86/kernel/irq.c:239)
 asm_common_interrupt (arch/x86/include/asm/idtentry.h:626)
RIP: 0010:acpi_idle_do_entry (arch/x86/include/asm/irqflags.h:49 arch/x86/include/asm/irqflags.h:89 drivers/acpi/processor_idle.c:114 drivers/acpi/processor_idle.c:575)
Code: 8b 15 d1 3c c4 02 ed c3 cc cc cc cc 65 48 8b 04 25 40 ef 01 00 48 8b 00 a8 08 75 eb 0f 1f 44 00 00 0f 00 2d d5 09 55 00 fb f4 <fa> c3 cc cc cc cc e9 be fc ff ff 66 66 2e 0f 1f 84 00 00 00 00 00
RSP: 0018:ffffffffb5603e58 EFLAGS: 00000246
RAX: 0000000000004000 RBX: ffff93dac0929c00 RCX: ffff93daee833900
RDX: ffff93daee800000 RSI: ffff93daee87dc00 RDI: ffff93daee87dc64
RBP: 0000000000000001 R08: ffffffffb5e7b6c0 R09: 0000000000000044
R10: ffff93daee831b04 R11: 00000000000001cd R12: 0000000000000001
R13: ffffffffb5e7b740 R14: 0000000000000001 R15: 0000000000000000
 ? sched_clock_cpu (kernel/sched/clock.c:371)
 acpi_idle_enter (drivers/acpi/processor_idle.c:712 (discriminator 3))
 cpuidle_enter_state (drivers/cpuidle/cpuidle.c:237)
 cpuidle_enter (drivers/cpuidle/cpuidle.c:353)
 cpuidle_idle_call (kernel/sched/idle.c:158 kernel/sched/idle.c:239)
 do_idle (kernel/sched/idle.c:302)
 cpu_startup_entry (kernel/sched/idle.c:395 (discriminator 1))
 start_kernel (init/main.c:1048)
 secondary_startup_64_no_verify (arch/x86/kernel/head_64.S:310)
Modules linked in: udp_diag tcp_diag inet_diag nft_nat ipip tunnel4 dummy fou ip_tunnel nft_masq nft_chain_nat nf_nat wireguard nft_ct curve25519_x86_64 libcurve25519_generic nf_conntrack libchacha20poly1305 nf_defrag_ipv6 nf_defrag_ipv4 nft_objref chacha_x86_64 nft_counter nf_tables nfnetlink poly1305_x86_64 ip6_udp_tunnel udp_tunnel libchacha crc32_pclmul ghash_clmulni_intel aesni_intel crypto_simd cryptd glue_helper mousedev psmouse button ena ptp pps_core crc32c_intel
CR2: 0000000000000008

Fixes: d92283e ("fou: change to use UDP socket GRO")
Reported-by: Alphonse Kurian <alkurian@amazon.com>
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://patch.msgid.link/20240902173927.62706-1-kuniyu@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
Chi Zhiling reported:

  We found a null pointer accessing in tracefs[1], the reason is that the
  variable 'ei_child' is set to LIST_POISON1, that means the list was
  removed in eventfs_remove_rec. so when access the ei_child->is_freed, the
  panic triggered.

  by the way, the following script can reproduce this panic

  loop1 (){
      while true
      do
          echo "p:kp submit_bio" > /sys/kernel/debug/tracing/kprobe_events
          echo "" > /sys/kernel/debug/tracing/kprobe_events
      done
  }
  loop2 (){
      while true
      do
          tree /sys/kernel/debug/tracing/events/kprobes/
      done
  }
  loop1 &
  loop2

  [1]:
  [ 1147.959632][T17331] Unable to handle kernel paging request at virtual address dead000000000150
  [ 1147.968239][T17331] Mem abort info:
  [ 1147.971739][T17331]   ESR = 0x0000000096000004
  [ 1147.976172][T17331]   EC = 0x25: DABT (current EL), IL = 32 bits
  [ 1147.982171][T17331]   SET = 0, FnV = 0
  [ 1147.985906][T17331]   EA = 0, S1PTW = 0
  [ 1147.989734][T17331]   FSC = 0x04: level 0 translation fault
  [ 1147.995292][T17331] Data abort info:
  [ 1147.998858][T17331]   ISV = 0, ISS = 0x00000004, ISS2 = 0x00000000
  [ 1148.005023][T17331]   CM = 0, WnR = 0, TnD = 0, TagAccess = 0
  [ 1148.010759][T17331]   GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
  [ 1148.016752][T17331] [dead000000000150] address between user and kernel address ranges
  [ 1148.024571][T17331] Internal error: Oops: 0000000096000004 [#1] SMP
  [ 1148.030825][T17331] Modules linked in: team_mode_loadbalance team nlmon act_gact cls_flower sch_ingress bonding tls macvlan dummy ib_core bridge stp llc veth amdgpu amdxcp mfd_core gpu_sched drm_exec drm_buddy radeon crct10dif_ce video drm_suballoc_helper ghash_ce drm_ttm_helper sha2_ce ttm sha256_arm64 i2c_algo_bit sha1_ce sbsa_gwdt cp210x drm_display_helper cec sr_mod cdrom drm_kms_helper binfmt_misc sg loop fuse drm dm_mod nfnetlink ip_tables autofs4 [last unloaded: tls]
  [ 1148.072808][T17331] CPU: 3 PID: 17331 Comm: ls Tainted: G        W         ------- ----  6.6.43 #2
  [ 1148.081751][T17331] Source Version: 21b3b386e948bedd29369af66f3e98ab01b1c650
  [ 1148.088783][T17331] Hardware name: Greatwall GW-001M1A-FTF/GW-001M1A-FTF, BIOS KunLun BIOS V4.0 07/16/2020
  [ 1148.098419][T17331] pstate: 20000005 (nzCv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
  [ 1148.106060][T17331] pc : eventfs_iterate+0x2c0/0x398
  [ 1148.111017][T17331] lr : eventfs_iterate+0x2fc/0x398
  [ 1148.115969][T17331] sp : ffff80008d56bbd0
  [ 1148.119964][T17331] x29: ffff80008d56bbf0 x28: ffff001ff5be2600 x27: 0000000000000000
  [ 1148.127781][T17331] x26: ffff001ff52ca4e0 x25: 0000000000009977 x24: dead000000000100
  [ 1148.135598][T17331] x23: 0000000000000000 x22: 000000000000000b x21: ffff800082645f10
  [ 1148.143415][T17331] x20: ffff001fddf87c70 x19: ffff80008d56bc90 x18: 0000000000000000
  [ 1148.151231][T17331] x17: 0000000000000000 x16: 0000000000000000 x15: ffff001ff52ca4e0
  [ 1148.159048][T17331] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
  [ 1148.166864][T17331] x11: 0000000000000000 x10: 0000000000000000 x9 : ffff8000804391d0
  [ 1148.174680][T17331] x8 : 0000000180000000 x7 : 0000000000000018 x6 : 0000aaab04b92862
  [ 1148.182498][T17331] x5 : 0000aaab04b92862 x4 : 0000000080000000 x3 : 0000000000000068
  [ 1148.190314][T17331] x2 : 000000000000000f x1 : 0000000000007ea8 x0 : 0000000000000001
  [ 1148.198131][T17331] Call trace:
  [ 1148.201259][T17331]  eventfs_iterate+0x2c0/0x398
  [ 1148.205864][T17331]  iterate_dir+0x98/0x188
  [ 1148.210036][T17331]  __arm64_sys_getdents64+0x78/0x160
  [ 1148.215161][T17331]  invoke_syscall+0x78/0x108
  [ 1148.219593][T17331]  el0_svc_common.constprop.0+0x48/0xf0
  [ 1148.224977][T17331]  do_el0_svc+0x24/0x38
  [ 1148.228974][T17331]  el0_svc+0x40/0x168
  [ 1148.232798][T17331]  el0t_64_sync_handler+0x120/0x130
  [ 1148.237836][T17331]  el0t_64_sync+0x1a4/0x1a8
  [ 1148.242182][T17331] Code: 54ffff6c f9400676 910006d6 f900067 (b9405300)
  [ 1148.248955][T17331] ---[ end trace 0000000000000000 ]---

The issue is that list_del() is used on an SRCU protected list variable
before the synchronization occurs. This can poison the list pointers while
there is a reader iterating the list.

This is simply fixed by using list_del_rcu() that is specifically made for
this purpose.

Link: https://lore.kernel.org/linux-trace-kernel/20240829085025.3600021-1-chizhiling@163.com/

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Link: https://lore.kernel.org/20240904131605.640d42b1@gandalf.local.home
Fixes: 43aa6f9 ("eventfs: Get rid of dentry pointers without refcounts")
Reported-by: Chi Zhiling <chizhiling@kylinos.cn>
Tested-by: Chi Zhiling <chizhiling@kylinos.cn>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
vladimiroltean pushed a commit that referenced this pull request Sep 6, 2024
The start_kthread() and stop_thread() code was not always called with the
interface_lock held. This means that the kthread variable could be
unexpectedly changed causing the kthread_stop() to be called on it when it
should not have been, leading to:

 while true; do
   rtla timerlat top -u -q & PID=$!;
   sleep 5;
   kill -INT $PID;
   sleep 0.001;
   kill -TERM $PID;
   wait $PID;
  done

Causing the following OOPS:

 Oops: general protection fault, probably for non-canonical address 0xdffffc0000000002: 0000 [#1] PREEMPT SMP KASAN PTI
 KASAN: null-ptr-deref in range [0x0000000000000010-0x0000000000000017]
 CPU: 5 UID: 0 PID: 885 Comm: timerlatu/5 Not tainted 6.11.0-rc4-test-00002-gbc754cc76d1b-dirty torvalds#125 a533010b71dab205ad2f507188ce8c82203b0254
 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
 RIP: 0010:hrtimer_active+0x58/0x300
 Code: 48 c1 ee 03 41 54 48 01 d1 48 01 d6 55 53 48 83 ec 20 80 39 00 0f 85 30 02 00 00 49 8b 6f 30 4c 8d 75 10 4c 89 f0 48 c1 e8 03 <0f> b6 3c 10 4c 89 f0 83 e0 07 83 c0 03 40 38 f8 7c 09 40 84 ff 0f
 RSP: 0018:ffff88811d97f940 EFLAGS: 00010202
 RAX: 0000000000000002 RBX: ffff88823c6b5b28 RCX: ffffed10478d6b6b
 RDX: dffffc0000000000 RSI: ffffed10478d6b6c RDI: ffff88823c6b5b28
 RBP: 0000000000000000 R08: ffff88823c6b5b58 R09: ffff88823c6b5b60
 R10: ffff88811d97f957 R11: 0000000000000010 R12: 00000000000a801d
 R13: ffff88810d8b35d8 R14: 0000000000000010 R15: ffff88823c6b5b28
 FS:  0000000000000000(0000) GS:ffff88823c680000(0000) knlGS:0000000000000000
 CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
 CR2: 0000561858ad7258 CR3: 000000007729e001 CR4: 0000000000170ef0
 Call Trace:
  <TASK>
  ? die_addr+0x40/0xa0
  ? exc_general_protection+0x154/0x230
  ? asm_exc_general_protection+0x26/0x30
  ? hrtimer_active+0x58/0x300
  ? __pfx_mutex_lock+0x10/0x10
  ? __pfx_locks_remove_file+0x10/0x10
  hrtimer_cancel+0x15/0x40
  timerlat_fd_release+0x8e/0x1f0
  ? security_file_release+0x43/0x80
  __fput+0x372/0xb10
  task_work_run+0x11e/0x1f0
  ? _raw_spin_lock+0x85/0xe0
  ? __pfx_task_work_run+0x10/0x10
  ? poison_slab_object+0x109/0x170
  ? do_exit+0x7a0/0x24b0
  do_exit+0x7bd/0x24b0
  ? __pfx_migrate_enable+0x10/0x10
  ? __pfx_do_exit+0x10/0x10
  ? __pfx_read_tsc+0x10/0x10
  ? ktime_get+0x64/0x140
  ? _raw_spin_lock_irq+0x86/0xe0
  do_group_exit+0xb0/0x220
  get_signal+0x17ba/0x1b50
  ? vfs_read+0x179/0xa40
  ? timerlat_fd_read+0x30b/0x9d0
  ? __pfx_get_signal+0x10/0x10
  ? __pfx_timerlat_fd_read+0x10/0x10
  arch_do_signal_or_restart+0x8c/0x570
  ? __pfx_arch_do_signal_or_restart+0x10/0x10
  ? vfs_read+0x179/0xa40
  ? ksys_read+0xfe/0x1d0
  ? __pfx_ksys_read+0x10/0x10
  syscall_exit_to_user_mode+0xbc/0x130
  do_syscall_64+0x74/0x110
  ? __pfx___rseq_handle_notify_resume+0x10/0x10
  ? __pfx_ksys_read+0x10/0x10
  ? fpregs_restore_userregs+0xdb/0x1e0
  ? fpregs_restore_userregs+0xdb/0x1e0
  ? syscall_exit_to_user_mode+0x116/0x130
  ? do_syscall_64+0x74/0x110
  ? do_syscall_64+0x74/0x110
  ? do_syscall_64+0x74/0x110
  entry_SYSCALL_64_after_hwframe+0x71/0x79
 RIP: 0033:0x7ff0070eca9c
 Code: Unable to access opcode bytes at 0x7ff0070eca72.
 RSP: 002b:00007ff006dff8c0 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
 RAX: 0000000000000000 RBX: 0000000000000005 RCX: 00007ff0070eca9c
 RDX: 0000000000000400 RSI: 00007ff006dff9a0 RDI: 0000000000000003
 RBP: 00007ff006dffde0 R08: 0000000000000000 R09: 00007ff000000ba0
 R10: 00007ff007004b08 R11: 0000000000000246 R12: 0000000000000003
 R13: 00007ff006dff9a0 R14: 0000000000000007 R15: 0000000000000008
  </TASK>
 Modules linked in: snd_hda_intel snd_intel_dspcfg snd_intel_sdw_acpi snd_hda_codec snd_hwdep snd_hda_core
 ---[ end trace 0000000000000000 ]---

This is because it would mistakenly call kthread_stop() on a user space
thread making it "exit" before it actually exits.

Since kthreads are created based on global behavior, use a cpumask to know
when kthreads are running and that they need to be shutdown before
proceeding to do new work.

Link: https://lore.kernel.org/all/20240820130001.124768-1-tglozar@redhat.com/

This was debugged by using the persistent ring buffer:

Link: https://lore.kernel.org/all/20240823013902.135036960@goodmis.org/

Note, locking was originally used to fix this, but that proved to cause too
many deadlocks to work around:

  https://lore.kernel.org/linux-trace-kernel/20240823102816.5e55753b@gandalf.local.home/

Cc: stable@vger.kernel.org
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: "Luis Claudio R. Goncalves" <lgoncalv@redhat.com>
Link: https://lore.kernel.org/20240904103428.08efdf4c@gandalf.local.home
Fixes: e88ed22 ("tracing/timerlat: Add user-space interface")
Reported-by: Tomas Glozar <tglozar@redhat.com>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
@vladimiroltean
Copy link
Owner

I've updated the patch set with a template-oriented idea: multiple variants of struct packed_field instead of a single one-size-fits-all, and a single pair of macros that works on any data type. I'm a bit concerned that in this case, the expanded code in sja1105 will blow up more than the rodata will be reduced, but that needs to be actually tested. Unfortunately, I ran out of steam on this particular topic right now, since I need to deal with more important things. I will pause for now and return later to complete the sja1105 conversion and test it.

@jacob-keller
Copy link
Author

Thanks! Can take a look. I think I can probably figure out the issue with KBUILD_OUTPUT too.

@vladimiroltean
Copy link
Owner

Sadly I figured out only today that there's a bug in the macro variants of pack_fields() and unpack_fields(). Here's the mistake in case you haven't already figured it out as well.

From 2b15ef0ea95464f9a34ad0a5d23cc16c4278175c Mon Sep 17 00:00:00 2001
From: Vladimir Oltean <vladimir.oltean@nxp.com>
Date: Tue, 10 Sep 2024 00:46:35 +0300
Subject: [PATCH] lib: packing: fix pack_fields_m() and unpack_fields_m()
 macros

In u64_to_ustruct_field() and ustruct_field_to_u64(), ustruct is a
void *, and arithmetic works on that just as on an u8 *.

As opposed to those, ustruct in the macro variant has the typeof() of
the container scope, and arithmetic works way different. If ustruct is a
structure as it should be, ustruct + field->offset is actually
interpreted as the array element &ustruct[field->offset], so it shoots
way past the goal posts. Fix that.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 include/linux/packing.h | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)

diff --git a/include/linux/packing.h b/include/linux/packing.h
index 47bec489f17c..c6d6ed323436 100644
--- a/include/linux/packing.h
+++ b/include/linux/packing.h
@@ -22401,16 +22401,16 @@ void unpack_fields(const void *pbuf, size_t pbuflen, void *ustruct,
 										\
 			switch (field->size) {					\
 			case 1:							\
-				uval = *((u8 *)(ustruct + field->offset));	\
+				uval = *((u8 *)((u8 *)ustruct + field->offset)); \
 				break;						\
 			case 2:							\
-				uval = *((u16 *)(ustruct + field->offset));	\
+				uval = *((u16 *)((u8 *)ustruct + field->offset)); \
 				break;						\
 			case 4:							\
-				uval = *((u32 *)(ustruct + field->offset));	\
+				uval = *((u32 *)((u8 *)ustruct + field->offset)); \
 				break;						\
 			default:						\
-				uval = *((u64 *)(ustruct + field->offset));	\
+				uval = *((u64 *)((u8 *)ustruct + field->offset)); \
 				break;						\
 			}							\
 										\
@@ -22432,16 +22432,16 @@ void unpack_fields(const void *pbuf, size_t pbuflen, void *ustruct,
 										\
 			switch (field->size) {					\
 			case 1:							\
-				*((u8 *)(ustruct + field->offset)) = uval;	\
+				*((u8 *)((u8 *)ustruct + field->offset)) = uval; \
 				break;						\
 			case 2:							\
-				*((u16 *)(ustruct + field->offset)) = uval;	\
+				*((u16 *)((u8 *)ustruct + field->offset)) = uval; \
 				break;						\
 			case 4:							\
-				*((u32 *)(ustruct + field->offset)) = uval;	\
+				*((u32 *)((u8 *)ustruct + field->offset)) = uval; \
 				break;						\
 			default:						\
-				*((u64 *)(ustruct + field->offset)) = uval;	\
+				*((u64 *)((u8 *)ustruct + field->offset)) = uval; \
 				break;						\
 			}							\
 		}								\
-- 
2.34.1

@jacob-keller
Copy link
Author

diff --git a/include/linux/packing.h b/include/linux/packing.h
index 47bec489f17c..c6d6ed323436 100644
--- a/include/linux/packing.h
+++ b/include/linux/packing.h
@@ -22401,16 +22401,16 @@ void unpack_fields(const void *pbuf, size_t pbuflen, void *ustruct,
\

Bit surprising that gits regex for finding a function header doesn't work for macros. This confused me for a bit.

  	switch (field->size) {					\
  	case 1:							\
  • 		uval = *((u8 *)(ustruct + field->offset));	\
    
  • 		uval = *((u8 *)((u8 *)ustruct + field->offset)); \
    		break;						\
    	case 2:							\
    
  • 		uval = *((u16 *)(ustruct + field->offset));	\
    
  • 		uval = *((u16 *)((u8 *)ustruct + field->offset)); \
    		break;						\
    	case 4:							\
    
  • 		uval = *((u32 *)(ustruct + field->offset));	\
    
  • 		uval = *((u32 *)((u8 *)ustruct + field->offset)); \
    		break;						\
    	default:						\
    
  • 		uval = *((u64 *)(ustruct + field->offset));	\
    
  • 		uval = *((u64 *)((u8 *)ustruct + field->offset)); \
    		break;						\
    	}							\
    								\
    

Ah, makes sense, we have to cast back to a proper pointer size, because otherwise it will break. Makes sense.

@jacob-keller
Copy link
Author

Sadly I figured out only today that there's a bug in the macro variants of pack_fields() and unpack_fields(). Here's the mistake in case you haven't already figured it out as well.

I added your patch to my new PR at #2

@vladimiroltean
Copy link
Owner

Sadly I still get the "fatal error: generated/packing-checks.h: No such file or directory" until I repeat the build command for long enough that the build progresses.

[/opt/net-next] $ source /opt/gcc-arm-9.2-2019.12-x86_64-arm-none-linux-gnueabihf/envsetup
[/opt/net-next] $ LOADADDR=0x80008000 make -j 8 uImage dtbs && sudo cp $KBUILD_OUTPUT/arch/arm/boot/{uImage,dts/nxp/ls/ls1021a-tsn*.dtb} /srv/tftpboot/ls1021atsn/
make[1]: Entering directory '/opt/net-next/output-arm'
  SYNC    include/config/auto.conf.cmd
  GEN     Makefile
  GEN     Makefile
mkdir -p /opt/net-next/output-arm/tools/bpf/resolve_btfids && make O=/opt/net-next/output-arm subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids
  INSTALL libsubcmd_headers
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  CC      arch/arm/kernel/asm-offsets.s
  DTC     arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-lynx.dtb
  DTC     arch/arm/boot/dts/nxp/imx/imx6dl-yapp4-phoenix.dtb
  DTC     arch/arm/boot/dts/ti/omap/omap3-n900.dtb
  DTC     arch/arm/boot/dts/nxp/imx/imx6q-yapp4-pegasus.dtb
  DTC     arch/arm/boot/dts/nxp/imx/imx6qp-yapp4-pegasus-plus.dtb
  CALL    ../scripts/checksyscalls.sh
  CC      arch/arm/mach-actions/platsmp.o
  CC      arch/arm/mach-artpec/board-artpec6.o
  CC      arch/arm/vfp/vfpmodule.o
  CC      arch/arm/mach-at91/pm.o
  CC      arch/arm/mach-berlin/platsmp.o
  CC      init/main.o
  CC      arch/arm/mach-bcm/platsmp.o
  CC      arch/arm/mach-exynos/exynos.o
  AR      arch/arm/mach-berlin/built-in.a
  CC      arch/arm/mach-exynos/firmware.o
  AR      arch/arm/mach-actions/built-in.a
  CC      arch/arm/mach-highbank/highbank.o
  CC      arch/arm/mach-bcm/bcm_kona_smc.o
  AR      arch/arm/mach-artpec/built-in.a
  CC      arch/arm/mach-hisi/platmcpm.o
  CC      arch/arm/mach-hisi/platsmp.o
  CC      arch/arm/mach-bcm/platsmp-brcmstb.o
  CC      arch/arm/mach-exynos/pm.o
  AR      arch/arm/vfp/built-in.a
  AR      arch/arm/mach-at91/built-in.a
  CC      arch/arm/mach-hisi/hotplug.o
  CC      arch/arm/mach-highbank/pm.o
  CC      arch/arm/common/firmware.o
  CC      arch/arm/mm/fault.o
  CC      arch/arm/kernel/irq.o
  CC      arch/arm/mach-bcm/bcm63xx_smp.o
  CC      arch/arm/mach-exynos/suspend.o
  AR      arch/arm/mach-highbank/built-in.a
  AR      arch/arm/mach-hisi/built-in.a
  CC      arch/arm/mm/init.o
  CC      arch/arm/common/mcpm_entry.o
  CC      arch/arm/probes/decode-arm.o
  CC      init/do_mounts.o
  CC      arch/arm/kernel/process.o
  CC      arch/arm/kernel/ptrace.o
  AR      arch/arm/mach-bcm/built-in.a
  CC      init/do_mounts_rd.o
  CC      arch/arm/probes/uprobes/core.o
  CC      arch/arm/mach-exynos/platsmp.o
  CC      arch/arm/common/mcpm_platsmp.o
  AR      arch/arm/probes/uprobes/built-in.a
  CC      arch/arm/mm/iomap.o
  AR      arch/arm/probes/built-in.a
  CC      init/do_mounts_initrd.o
  CC      init/initramfs.o
  CC      arch/arm/mm/dma-mapping.o
  CC      arch/arm/kernel/reboot.o
  CC      arch/arm/mach-exynos/mcpm-exynos.o
  CC      arch/arm/kernel/setup.o
  AR      arch/arm/common/built-in.a
  CC      arch/arm/mm/fault-armv.o
  CC      arch/arm/kernel/signal.o
  CC      init/init_task.o
  AR      arch/arm/mach-exynos/built-in.a
  CC      arch/arm/mach-keystone/keystone.o
  CC      arch/arm/mm/flush.o
  CC      arch/arm/kernel/stacktrace.o
  AR      arch/arm/mach-keystone/built-in.a
  CC      arch/arm/mach-meson/platsmp.o
  CC      arch/arm/kernel/sys_arm.o
  CC      arch/arm/kernel/traps.o
  CC      init/version.o
  CC      arch/arm/mm/idmap.o
  CC      arch/arm/kernel/atags_parse.o
  AR      init/built-in.a
  CC      arch/arm/mm/ioremap.o
  CC      arch/arm/mach-mvebu/board-v7.o
  CC      arch/arm/mach-imx/pm-imx5.o
  AR      arch/arm/mach-meson/built-in.a
  CC      arch/arm/mach-mediatek/platsmp.o
  AS      arch/arm/kernel/entry-armv.o
  CC      arch/arm/mm/mmap.o
  CC      arch/arm/mach-milbeaut/platsmp.o
  CC      arch/arm/mach-imx/cpuidle-imx6sx.o
  CC      arch/arm/mach-mvebu/coherency.o
  AR      arch/arm/mach-mediatek/built-in.a
  CC      arch/arm/mm/pgd.o
  CC      arch/arm/kernel/fiq.o
  CC      arch/arm/mach-mvebu/pmsu.o
  CC      arch/arm/mm/mmu.o
  CC      arch/arm/mach-imx/mmdc.o
  AR      arch/arm/mach-milbeaut/built-in.a
  CC      arch/arm/mach-imx/platsmp.o
  CC      arch/arm/mach-omap2/id.o
  CC      arch/arm/kernel/armksyms.o
  CC      arch/arm/mach-omap2/io.o
  CC      arch/arm/mach-mvebu/pm.o
  CC      arch/arm/mach-omap2/control.o
  CC      arch/arm/mach-rockchip/pm.o
  CC      arch/arm/mach-imx/hotplug.o
  CC      arch/arm/mach-omap2/devices.o
  CC      arch/arm/mach-mvebu/platsmp.o
  CC      arch/arm/mach-rockchip/platsmp.o
  CC      arch/arm/mach-imx/mach-imx6q.o
  CC      arch/arm/kernel/module.o
  CC      arch/arm/mm/pageattr.o
  CC      arch/arm/mach-socfpga/socfpga.o
  CC      arch/arm/mach-shmobile/setup-emev2.o
  CC      arch/arm/mach-omap2/fb.o
  AR      arch/arm/mach-mvebu/built-in.a
  CC      arch/arm/mach-sti/platsmp.o
  CC      arch/arm/mm/proc-syms.o
  AR      arch/arm/mach-rockchip/built-in.a
  CC      arch/arm/mach-omap2/pm.o
  CC      arch/arm/kernel/module-plts.o
  CC      arch/arm/mach-shmobile/setup-rcar-gen2.o
  CC      arch/arm/mach-socfpga/platsmp.o
  CC      arch/arm/mach-imx/mach-imx7d.o
  AR      arch/arm/mach-sti/built-in.a
  CC      arch/arm/mm/cache.o
  CC      arch/arm/mach-shmobile/platsmp-apmu.o
  CC      arch/arm/kernel/bios32.o
  AR      arch/arm/mach-socfpga/built-in.a
  CC      arch/arm/mach-shmobile/platsmp.o
  CC      arch/arm/mach-sunxi/mc_smp.o
  CC      arch/arm/mach-imx/pm-imx6.o
  CC      arch/arm/mach-omap2/common.o
  CC      arch/arm/mm/copypage-v6.o
  CC      arch/arm/mach-omap2/dma.o
  CC      arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.o
  CC      arch/arm/mach-tegra/io.o
  CC      arch/arm/mach-shmobile/suspend.o
  AR      arch/arm/mach-sunxi/built-in.a
  CC      arch/arm/mm/context.o
  CC      arch/arm/kernel/suspend.o
  AR      arch/arm/mach-imx/built-in.a
  CC      arch/arm/kernel/smp.o
  CC      arch/arm/mach-tegra/pm.o
  CC      arch/arm/mach-omap2/sram.o
  CC      arch/arm/mach-ux500/pm.o
  CC      arch/arm/kernel/smp_tlb.o
  CC      arch/arm/mach-shmobile/platsmp-scu.o
  CC      arch/arm/mach-omap2/omap_hwmod.o
  CC      arch/arm/mm/cache-b15-rac.o
  CC      arch/arm/mach-omap2/omap_hwmod_common_data.o
  CC      arch/arm/mach-ux500/cpu-db8500.o
  CC      arch/arm/kernel/smp_scu.o
  CC      arch/arm/mach-omap2/omap_hwmod_common_ipblock_data.o
  CC      arch/arm/mach-tegra/reset.o
  CC      arch/arm/mach-shmobile/smp-r8a7779.o
  CC      arch/arm/mm/cache-feroceon-l2.o
  CC      arch/arm/kernel/machine_kexec.o
  CC      arch/arm/mach-tegra/tegra.o
  CC      arch/arm/mach-ux500/platsmp.o
  CC      arch/arm/mach-omap2/omap_device.o
  CC      arch/arm/mach-zynq/common.o
  AR      arch/arm/mach-shmobile/built-in.a
  CC      arch/arm/mach-omap2/display.o
  CC      arch/arm/mm/cache-l2x0.o
  AR      arch/arm/mach-ux500/built-in.a
  CC      arch/arm/kernel/devtree.o
  CC      arch/arm/mach-versatile/spc.o
  CC      arch/arm/mach-versatile/tc2_pm.o
  CC      arch/arm/mach-zynq/platsmp.o
  CC      arch/arm/mach-tegra/platsmp.o
  CC      arch/arm/mach-omap2/hdq1w.o
  CC      arch/arm/mach-omap2/i2c.o
  CC      arch/arm/kernel/swp_emulate.o
  CC      arch/arm/mach-versatile/platsmp.o
  AR      arch/arm/mach-tegra/built-in.a
  CC      arch/arm/mm/cache-tauros2.o
  CC      arch/arm/mach-spear/restart.o
  CC      arch/arm/mach-versatile/platsmp-vexpress.o
  CC      arch/arm/mach-omap2/wd_timer.o
  AR      arch/arm/mach-zynq/built-in.a
  CC      arch/arm/kernel/hw_breakpoint.o
  CC      kernel/fork.o
  CC      arch/arm/mach-spear/time.o
  AR      arch/arm/mm/built-in.a
  CC      kernel/exec_domain.o
  CC      arch/arm/mach-spear/spear13xx.o
  AR      arch/arm/mach-versatile/built-in.a
  CC      arch/arm/mach-omap2/omap-secure.o
  CC      kernel/panic.o
  CC      mm/filemap.o
  CC      kernel/cpu.o
  CC      arch/arm/mach-spear/platsmp.o
  CC      arch/arm/mach-spear/hotplug.o
  CC      arch/arm/kernel/perf_regs.o
  CC      arch/arm/mach-omap2/sdrc.o
  CC      kernel/exit.o
  CC      arch/arm/mach-spear/spear1310.o
  CC      arch/arm/kernel/perf_callchain.o
  CC      arch/arm/mach-omap2/omap4-common.o
  CC      kernel/softirq.o
  CC      arch/arm/mach-spear/spear1340.o
  CC      arch/arm/kernel/vdso.o
  CC      arch/arm/mach-omap2/omap-wakeupgen.o
  AR      arch/arm/mach-spear/built-in.a
  CC      kernel/resource.o
  CC      arch/arm/kernel/efi.o
  CC      arch/arm/mach-omap2/omap-smp.o
  CC      ipc/util.o
  CC      arch/arm/kernel/spectre.o
  CC      arch/arm/mach-omap2/omap-hotplug.o
  CC      fs/open.o
  CC      security/keys/gc.o
  CC      arch/arm/mach-omap2/timer.o
  CC      kernel/sysctl.o
  AR      arch/arm/kernel/built-in.a
  AR      arch/arm/built-in.a
  CC      fs/read_write.o
  CC      fs/file_table.o
  CC      security/keys/key.o
  CC      arch/arm/mach-omap2/ti81xx-restart.o
  CC      ipc/msgutil.o
  CC      arch/arm/mach-omap2/am33xx-restart.o
  CC      mm/mempool.o
  CC      ipc/msg.o
  CC      mm/oom_kill.o
  CC      fs/super.o
  CC      arch/arm/mach-omap2/omap4-restart.o
  CC      security/keys/keyring.o
  CC      kernel/capability.o
  CC      ipc/sem.o
  CC      arch/arm/mach-omap2/omap3-restart.o
  CC      security/keys/keyctl.o
  CC      mm/fadvise.o
  CC      arch/arm/mach-omap2/omap-mpuss-lowpower.o
  CC      fs/char_dev.o
  CC      security/commoncap.o
  CC      kernel/ptrace.o
  CC      security/keys/permission.o
  CC      mm/maccess.o
  CC      arch/arm/mach-omap2/pm34xx.o
  CC      security/keys/process_keys.o
  CC      ipc/shm.o
  CC      fs/stat.o
  CC      security/min_addr.o
  CC      arch/arm/mach-omap2/pm44xx.o
  CC      mm/page-writeback.o
  CC      crypto/api.o
  CC      kernel/signal.o
  CC      security/keys/request_key.o
  CC      fs/exec.o
  CC      arch/arm/mach-omap2/pm33xx-core.o
  CC      ipc/syscall.o
  CC      mm/folio-compat.o
  CC      crypto/cipher.o
  CC      arch/arm/mach-omap2/cpuidle34xx.o
  CC      security/keys/request_key_auth.o
  AR      ipc/built-in.a
  CC      kernel/sys.o
  CC      arch/arm/mach-omap2/cpuidle44xx.o
  CC      crypto/compress.o
  CC      security/keys/user_defined.o
  CC      mm/readahead.o
  CC      mm/swap.o
  CC      fs/pipe.o
  CC      arch/arm/mach-omap2/prm_common.o
  CC      crypto/algapi.o
  CC      security/keys/proc.o
  CC      arch/arm/mach-omap2/prm3xxx.o
  CC      security/inode.o
  CC      security/keys/sysctl.o
  CC      crypto/scatterwalk.o
  CC      kernel/umh.o
  CC      security/keys/keyctl_pkey.o
  CC      fs/namei.o
  CC      arch/arm/mach-omap2/vc3xxx_data.o
  CC      mm/truncate.o
  CC      security/device_cgroup.o
  CC      crypto/proc.o
  CC      mm/vmscan.o
  AR      security/keys/built-in.a
  CC      block/bdev.o
  CC      arch/arm/mach-omap2/vp3xxx_data.o
  CC      crypto/aead.o
  CC      kernel/workqueue.o
  AR      security/built-in.a
  CC      fs/fcntl.o
  CC      arch/arm/mach-omap2/prm44xx.o
  CC      kernel/pid.o
  CC      crypto/geniv.o
  CC      arch/arm/mach-omap2/prcm_mpu44xx.o
  CC      block/fops.o
  CC      fs/ioctl.o
  CC      arch/arm/mach-omap2/prminst44xx.o
  CC      block/bio.o
  CC      crypto/lskcipher.o
  CC      mm/shrinker.o
  CC      kernel/task_work.o
  CC      arch/arm/mach-omap2/vc44xx_data.o
  CC      fs/readdir.o
  CC      arch/arm/mach-omap2/vp44xx_data.o
  CC      block/elevator.o
  CC      io_uring/io_uring.o
  CC      mm/shmem.o
  CC      crypto/skcipher.o
  CC      arch/arm/mach-omap2/voltage.o
  CC      kernel/extable.o
  CC      mm/util.o
  CC      fs/select.o
  CC      arch/arm/mach-omap2/vp.o
  CC      block/blk-core.o
  CC      kernel/params.o
  CC      arch/arm/mach-omap2/voltagedomains3xxx_data.o
  CC      crypto/seqiv.o
  CC      crypto/echainiv.o
  CC      kernel/kthread.o
  CC      arch/arm/mach-omap2/voltagedomains44xx_data.o
  CC      crypto/ahash.o
  CC      fs/dcache.o
  CC      arch/arm/mach-omap2/voltagedomains54xx_data.o
  CC      mm/mmzone.o
  CC      lib/bug.o
  CC      block/blk-sysfs.o
  CC      mm/vmstat.o
  CC      arch/arm/mach-omap2/powerdomain.o
  CC      kernel/nsproxy.o
  CC      io_uring/opdef.o
  CC      lib/buildid.o
  CC      crypto/shash.o
  CC      block/blk-flush.o
  CC      io_uring/kbuf.o
  CC      arch/arm/mach-omap2/powerdomains54xx_data.o
  CC      lib/cpumask.o
  CC      kernel/notifier.o
  CC      arch/arm/mach-omap2/clockdomains54xx_data.o
  CC      mm/backing-dev.o
  CC      lib/dump_stack.o
  CC      fs/inode.o
  CC      crypto/akcipher.o
  CC      block/blk-settings.o
  CC      io_uring/rsrc.o
  CC      arch/arm/mach-omap2/clock.o
  CC      kernel/ksysfs.o
  CC      lib/kobject_uevent.o
  CC      mm/mm_init.o
  CC      block/blk-ioc.o
  CC      crypto/sig.o
  CC      arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.o
  CC      io_uring/notif.o
  CC      kernel/cred.o
  CC      arch/arm/mach-omap2/omap_hwmod_3xxx_data.o
  CC      fs/attr.o
  CC      lib/logic_pio.o
  CC      crypto/kpp.o
  CC      io_uring/tctx.o
  CC      block/blk-map.o
  CC      arch/arm/mach-omap2/omap_hwmod_81xx_data.o
  CC      mm/percpu.o
  CC      kernel/reboot.o
  CC      lib/maple_tree.o
  CC      io_uring/filetable.o
  CC      arch/arm/mach-omap2/board-generic.o
  CC      fs/file.o
  CC      crypto/rsa.o
  CC      block/blk-merge.o
  CC      arch/arm/mach-omap2/pdata-quirks.o
  CC      io_uring/rw.o
  CC      crypto/rsa-pkcs1pad.o
  CC      kernel/ksyms_common.o
  CC      arch/arm/mach-omap2/omap-iommu.o
  CC      crypto/acompress.o
  CC      kernel/groups.o
  CC      io_uring/net.o
  CC      mm/slab_common.o
  AR      arch/arm/mach-omap2/built-in.a
  CC      fs/filesystems.o
  CC      block/blk-timeout.o
  CC      drivers/irqchip/irq-alpine-msi.o
  CC      crypto/scompress.o
  CC      kernel/sched/core.o
  CC      drivers/irqchip/irq-gic.o
  CC      block/blk-lib.o
  CC      fs/namespace.o
  CC      io_uring/poll.o
  CC      crypto/algboss.o
  CC      mm/compaction.o
  CC      drivers/irqchip/irq-msi-lib.o
  CC      block/blk-mq.o
  CC      lib/nmi_backtrace.o
  CC      drivers/irqchip/irq-gic-v2m.o
  CC      crypto/testmgr.o
  CC      io_uring/eventfd.o
  CC      lib/vsprintf.o
  CC      drivers/irqchip/irq-gic-v3.o
  CC      io_uring/uring_cmd.o
  CC      crypto/crypto_user.o
  CC      drivers/irqchip/irq-gic-v3-mbi.o
  CC      crypto/hmac.o
  CC      fs/seq_file.o
  CC      io_uring/openclose.o
  CC      mm/show_mem.o
  CC      drivers/irqchip/irq-gic-v3-its.o
  CC      crypto/crypto_null.o
  CC      lib/bust_spinlocks.o
  CC      io_uring/sqpoll.o
  CC      block/blk-mq-tag.o
  CC      fs/xattr.o
  CC      crypto/sha1_generic.o
  CC      lib/scatterlist.o
  CC      mm/shmem_quota.o
  CC      kernel/sched/fair.o
  CC      crypto/sha256_generic.o
  CC      mm/interval_tree.o
  CC      block/blk-stat.o
  CC      io_uring/xattr.o
  CC      lib/iov_iter.o
  CC      fs/libfs.o
  CC      mm/list_lru.o
  CC      crypto/sha512_generic.o
  CC      drivers/irqchip/irq-gic-v3-its-msi-parent.o
  CC      io_uring/nop.o
  CC      block/blk-mq-sysfs.o
  CC      drivers/irqchip/irq-vic.o
  CC      io_uring/fs.o
  CC      mm/workingset.o
  CC      block/blk-mq-cpumap.o
  CC      crypto/gcm.o
  CC      drivers/irqchip/irq-atmel-aic5.o
  CC      io_uring/splice.o
  CC      fs/fs-writeback.o
  CC      mm/debug.o
  CC      lib/bsearch.o
  CC      block/blk-mq-sched.o
  CC      crypto/ccm.o
  CC      io_uring/sync.o
  CC      drivers/irqchip/irq-ls-scfg-msi.o
  CC      lib/kfifo.o
  CC      kernel/sched/build_policy.o
  CC      crypto/cryptd.o
  AR      drivers/irqchip/built-in.a
  CC      io_uring/msg_ring.o
  CC      mm/gup.o
  CC      drivers/bus/arm-cci.o
  CC      block/ioctl.o
  CC      io_uring/advise.o
  CC      lib/percpu-refcount.o
  CC      drivers/bus/moxtet.o
  CC      block/genhd.o
  CC      crypto/deflate.o
  CC      io_uring/epoll.o
  CC      crypto/authenc.o
  CC      fs/splice.o
  CC      lib/rhashtable.o
  CC      io_uring/statx.o
  CC      drivers/bus/mvebu-mbus.o
  CC      mm/mmap_lock.o
  CC      io_uring/timeout.o
  CC      block/ioprio.o
  CC      crypto/authencesn.o
  AR      drivers/bus/built-in.a
  CC      lib/bucket_locks.o
  CC      drivers/phy/phy-core.o
  CC      mm/highmem.o
  CC      block/partitions/core.o
  CC      io_uring/fdinfo.o
  CC      fs/sync.o
  CC      crypto/lzo.o
  CC      lib/bitmap-str.o
  CC      io_uring/cancel.o
  CC      crypto/lzo-rle.o
  CC      mm/memory.o
  CC      block/partitions/cmdline.o
  CC      drivers/phy/phy-core-mipi-dphy.o
  CC      fs/utimes.o
  CC      crypto/rng.o
  CC      lib/string_helpers.o
  CC      io_uring/waitid.o
  CC      block/partitions/msdos.o
  CC      fs/d_path.o
  CC      kernel/sched/build_utility.o
  CC      drivers/phy/allwinner/phy-sun4i-usb.o
  CC      io_uring/register.o
  CC      crypto/drbg.o
  CC      lib/kunit/test.o
  CC      block/partitions/efi.o
  CC      crypto/zstd.o
  CC      drivers/phy/allwinner/phy-sun9i-usb.o
  AR      block/partitions/built-in.a
  CC      block/blk-rq-qos.o
  CC      fs/statfs.o
  CC      lib/kunit/resource.o
  CC      io_uring/truncate.o
  CC      crypto/ecdh.o
  AR      drivers/phy/allwinner/built-in.a
  CC      block/disk-events.o
  CC      drivers/phy/amlogic/phy-meson8b-usb2.o
  CC      lib/kunit/user_alloc.o
  CC      io_uring/memmap.o
  AR      crypto/built-in.a
  CC      drivers/phy/broadcom/phy-bcm-cygnus-pcie.o
  CC      fs/nsfs.o
  CC      drivers/phy/amlogic/phy-meson-gxl-usb2.o
  CC      lib/kunit/static_stub.o
  CC      io_uring/io-wq.o
  CC      drivers/phy/broadcom/phy-bcm-ns2-pcie.o
  CC      block/blk-ia-ranges.o
  CC      mm/mincore.o
  CC      drivers/phy/amlogic/phy-meson-g12a-usb2.o
  CC      lib/kunit/string-stream.o
  CC      fs/fs_context.o
  CC      drivers/phy/broadcom/phy-bcm-ns2-usbdrd.o
  CC      lib/kunit/assert.o
  CC      block/early-lookup.o
  CC      mm/mlock.o
  CC      drivers/phy/amlogic/phy-meson-g12a-usb3-pcie.o
  CC      io_uring/futex.o
  CC      drivers/phy/broadcom/phy-brcm-sata.o
  AR      kernel/sched/built-in.a
  CC      kernel/locking/mutex.o
  CC      lib/kunit/try-catch.o
  CC      block/bounce.o
  CC      drivers/phy/amlogic/phy-meson-g12a-mipi-dphy-analog.o
  CC      fs/fs_parser.o
  CC      io_uring/napi.o
  CC      lib/kunit/executor.o
  CC      drivers/phy/broadcom/phy-bcm-sr-pcie.o
  CC      block/bsg.o
  CC      drivers/phy/amlogic/phy-meson-axg-pcie.o
  CC      lib/kunit/attributes.o
  CC      mm/mmap.o
  CC      drivers/phy/broadcom/phy-bcm-sr-usb.o
  CC      fs/fsopen.o
  CC      drivers/phy/amlogic/phy-meson-axg-mipi-pcie-analog.o
  CC      lib/kunit/device.o
  AR      io_uring/built-in.a
  CC      block/mq-deadline.o
  AR      drivers/phy/broadcom/built-in.a
  CC      drivers/phy/cadence/phy-cadence-salvo.o
  CC      drivers/phy/hisilicon/phy-hix5hd2-sata.o
  CC      drivers/phy/amlogic/phy-meson-axg-mipi-dphy.o
  CC      fs/init.o
  AR      lib/kunit/built-in.a
  AR      drivers/phy/hisilicon/built-in.a
  CC      kernel/locking/semaphore.o
  AR      drivers/phy/cadence/built-in.a
  CC      block/kyber-iosched.o
  CC      lib/crypto/mpi/generic_mpih-lshift.o
  CC      drivers/pinctrl/pinctrl-palmas.o
  CC      block/bfq-iosched.o
  AR      drivers/phy/amlogic/built-in.a
  CC      drivers/phy/marvell/phy-armada375-usb2.o
  CC      fs/kernel_read_file.o
  CC      lib/crypto/mpi/generic_mpih-mul1.o
  CC      kernel/locking/mutex-debug.o
  CC      drivers/phy/marvell/phy-berlin-sata.o
  CC      lib/crypto/mpi/generic_mpih-mul2.o
  CC      drivers/pinctrl/nomadik/pinctrl-abx500.o
  CC      kernel/locking/lockdep.o
  CC      lib/crypto/mpi/generic_mpih-mul3.o
  CC      fs/remap_range.o
  CC      drivers/phy/marvell/phy-berlin-usb.o
  CC      mm/mmu_gather.o
  CC      lib/crypto/mpi/generic_mpih-rshift.o
  CC      kernel/power/qos.o
  AR      drivers/pinctrl/nomadik/built-in.a
  CC      drivers/pinctrl/renesas/pfc-sh73a0.o
  CC      drivers/phy/marvell/phy-mvebu-a3700-comphy.o
  CC      lib/crypto/mpi/generic_mpih-sub1.o
  CC      mm/mprotect.o
  CC      lib/crypto/mpi/generic_mpih-add1.o
  CC      block/bfq-wf2q.o
  AR      drivers/pinctrl/renesas/built-in.a
  CC      fs/pidfs.o
  CC      drivers/pinctrl/sunxi/pinctrl-sunxi.o
  CC      lib/crypto/mpi/ec.o
  CC      drivers/phy/marvell/phy-mvebu-a3700-utmi.o
  CC      kernel/power/main.o
  CC      mm/mremap.o
  CC      block/bfq-cgroup.o
  CC      fs/buffer.o
  CC      drivers/phy/marvell/phy-mvebu-sata.o
  AR      drivers/pinctrl/sunxi/built-in.a
  CC      drivers/pinctrl/tegra/pinctrl-tegra-xusb.o
  CC      mm/msync.o
  CC      lib/crypto/mpi/mpicoder.o
  CC      block/blk-mq-pci.o
  AR      drivers/phy/marvell/built-in.a
  CC      drivers/phy/qualcomm/phy-qcom-usb-hs.o
  CC      kernel/power/console.o
  CC      mm/page_vma_mapped.o
  CC      drivers/phy/qualcomm/phy-qcom-snps-femto-v2.o
  CC      block/blk-mq-virtio.o
  CC      lib/crypto/mpi/mpi-add.o
  AR      drivers/pinctrl/tegra/built-in.a
  CC      kernel/locking/lockdep_proc.o
  AR      drivers/pinctrl/built-in.a
  CC      kernel/power/process.o
  CC      kernel/printk/printk.o
  CC      mm/pagewalk.o
  AR      drivers/phy/qualcomm/built-in.a
  CC      drivers/phy/rockchip/phy-rockchip-usb.o
  CC      lib/crypto/mpi/mpi-bit.o
  CC      block/blk-mq-debugfs.o
  CC      kernel/locking/rtmutex_api.o
  CC      mm/pgtable-generic.o
  CC      kernel/power/suspend.o
  CC      fs/mpage.o
  AR      drivers/phy/rockchip/built-in.a
  CC      drivers/phy/samsung/phy-exynos-dp-video.o
  CC      lib/crypto/mpi/mpi-cmp.o
  CC      mm/rmap.o
  CC      drivers/phy/samsung/phy-exynos-mipi-video.o
  CC      block/blk-pm.o
  CC      lib/crypto/mpi/mpi-sub-ui.o
  AR      kernel/locking/built-in.a
  CC      kernel/printk/printk_safe.o
  CC      kernel/power/suspend_test.o
  CC      fs/proc_namespace.o
  CC      drivers/phy/samsung/phy-exynos5-usbdrd.o
  CC      drivers/phy/socionext/phy-uniphier-usb2.o
  AR      block/built-in.a
  CC      mm/vmalloc.o
  AR      kernel/power/built-in.a
  CC      lib/crypto/mpi/mpi-div.o
  AR      kernel/printk/built-in.a
  CC      fs/direct-io.o
  CC      drivers/gpio/gpiolib.o
  CC      kernel/irq/manage.o
  CC      drivers/phy/socionext/phy-uniphier-usb3hs.o
  AR      drivers/phy/samsung/built-in.a
  CC      kernel/rcu/update.o
  CC      lib/crypto/mpi/mpi-inv.o
  CC      mm/process_vm_access.o
  CC      drivers/phy/socionext/phy-uniphier-usb3ss.o
  CC      lib/crypto/mpi/mpi-mod.o
  CC      drivers/pwm/core.o
  CC      fs/notify/fsnotify.o
  CC      drivers/phy/socionext/phy-uniphier-ahci.o
  CC      lib/crypto/mpi/mpi-mul.o
  CC      kernel/irq/cpuhotplug.o
  AR      drivers/phy/socionext/built-in.a
  CC      kernel/irq/pm.o
  CC      drivers/phy/st/phy-miphy28lp.o
  CC      lib/crypto/mpi/mpih-cmp.o
  CC      fs/notify/notification.o
  CC      lib/crypto/mpi/mpih-div.o
  CC      mm/page_alloc.o
  CC      kernel/irq/msi.o
  AR      drivers/pwm/built-in.a
  CC      lib/crypto/mpi/mpih-mul.o
  CC      drivers/phy/st/phy-spear1310-miphy.o
  CC      fs/notify/group.o
  CC      drivers/gpio/gpiolib-cdev.o
  CC      kernel/rcu/tree.o
  CC      lib/crypto/mpi/mpi-pow.o
  CC      drivers/pci/access.o
  CC      drivers/phy/st/phy-spear1340-miphy.o
  AR      kernel/irq/built-in.a
  CC      drivers/pci/bus.o
  CC      fs/notify/mark.o
  CC      drivers/phy/st/phy-stih407-usb.o
  CC      lib/crypto/mpi/mpiutil.o
  CC      drivers/phy/st/phy-stm32-usbphyc.o
  CC      drivers/gpio/gpio-palmas.o
  CC      drivers/pci/probe.o
  AR      lib/crypto/mpi/built-in.a
  AR      lib/crypto/built-in.a
  CC      lib/packing.o
In file included from ../lib/packing.c:5:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [../scripts/Makefile.build:244: lib/packing.o] Error 1
make[3]: *** [../scripts/Makefile.build:485: lib] Error 2
make[3]: *** Waiting for unfinished jobs....
  CC      fs/notify/fdinfo.o
  CC      drivers/gpio/gpio-pca953x.o
  CC      fs/eventpoll.o
  CC      drivers/video/aperture.o
  AR      drivers/phy/st/built-in.a
  CC      drivers/phy/tegra/xusb.o
  CC      fs/notify/dnotify/dnotify.o
  CC      drivers/gpio/gpio-pcf857x.o
  AR      fs/notify/dnotify/built-in.a
  CC      fs/notify/inotify/inotify_user.o
  CC      mm/init-mm.o
  CC      drivers/video/screen_info_pci.o
  CC      drivers/pci/host-bridge.o
  CC      drivers/gpio/gpio-pl061.o
  CC      mm/memblock.o
  CC      drivers/phy/tegra/xusb-tegra124.o
  CC      mm/slub.o
  AR      fs/notify/inotify/built-in.a
  AR      fs/notify/built-in.a
  CC      fs/anon_inodes.o
  CC      drivers/video/cmdline.o
  CC      drivers/gpio/gpio-tps65910.o
  CC      drivers/pci/remove.o
  AR      drivers/gpio/built-in.a
  CC      kernel/dma/mapping.o
  CC      fs/signalfd.o
  CC      drivers/video/console/dummycon.o
  AR      drivers/phy/tegra/built-in.a
  CC      drivers/pci/pci.o
  CC      mm/madvise.o
  CC      drivers/phy/ti/phy-omap-usb2.o
  CC      fs/timerfd.o
  AR      drivers/video/console/built-in.a
  CC      drivers/video/backlight/as3711_bl.o
  CC      kernel/dma/direct.o
  CC      drivers/phy/ti/phy-ti-pipe3.o
  CC      fs/eventfd.o
  CC      drivers/video/fbdev/core/fb_notify.o
  CC      drivers/video/backlight/backlight.o
  CC      kernel/dma/ops_helpers.o
  CC      drivers/phy/ti/phy-gmii-sel.o
  CC      kernel/dma/dummy.o
  CC      drivers/video/fbdev/core/fb_info.o
  AR      drivers/phy/ti/built-in.a
  AR      drivers/phy/built-in.a
  CC      mm/page_io.o
  CC      fs/aio.o
  CC      drivers/video/backlight/gpio_backlight.o
  CC      drivers/pci/pci-driver.o
  CC      kernel/dma/contiguous.o
  CC      drivers/video/fbdev/core/fbmem.o
  AR      kernel/rcu/built-in.a
  CC      fs/locks.o
  CC      kernel/dma/coherent.o
  CC      drivers/video/backlight/pwm_bl.o
  CC      drivers/amba/bus.o
  CC      mm/swap_state.o
  CC      kernel/dma/remap.o
  CC      drivers/video/fbdev/core/fbcmap.o
  CC      drivers/pci/search.o
  AR      drivers/video/backlight/built-in.a
  CC      drivers/video/fbdev/wm8505fb.o
  AR      kernel/dma/built-in.a
  CC      kernel/module/main.o
  AR      drivers/amba/built-in.a
  CC      kernel/module/strict_rwx.o
  CC      mm/swapfile.o
  CC      drivers/pci/rom.o
  CC      mm/swap_slots.o
  CC      drivers/video/fbdev/core/modedb.o
  CC      drivers/pci/setup-res.o
  CC      drivers/video/fbdev/core/fbcvt.o
  CC      drivers/pci/irq.o
  CC      mm/dmapool.o
  CC      fs/binfmt_elf.o
  CC      mm/migrate.o
  CC      mm/page_isolation.o
  CC      drivers/video/fbdev/core/fb_cmdline.o
  CC      drivers/pci/vpd.o
  CC      drivers/video/fbdev/core/fb_backlight.o
  CC      kernel/module/kmod.o
  CC      drivers/clk/clk.o
  CC      fs/backing-file.o
  CC      kernel/kcmp.o
  CC      drivers/video/fbdev/core/fbmon.o
  CC      drivers/pci/setup-bus.o
  CC      kernel/freezer.o
  CC      drivers/pci/vc.o
  CC      mm/early_ioremap.o
  CC      kernel/module/tree_lookup.o
  CC      fs/posix_acl.o
  CC      kernel/module/kallsyms.o
  CC      fs/nfs_common/nfsacl.o
  CC      mm/cma.o
  CC      drivers/video/fbdev/core/fb_defio.o
  CC      drivers/pci/mmap.o
  CC      kernel/module/procfs.o
  CC      drivers/video/fbdev/efifb.o
  CC      drivers/pci/devres.o
  CC      kernel/module/sysfs.o
  CC      fs/nfs_common/grace.o
  CC      fs/coredump.o
  CC      mm/memfd.o
  CC      drivers/video/fbdev/core/fb_chrdev.o
  CC      kernel/module/version.o
  CC      kernel/stacktrace.o
  CC      drivers/pci/msi/pcidev_msi.o
  CC      fs/nfs_common/nfs_ssc.o
  CC      mm/execmem.o
  CC      drivers/video/fbdev/core/fb_procfs.o
  AR      kernel/module/built-in.a
  CC      drivers/pci/pcie/portdrv.o
  CC      kernel/time/time.o
  CC      drivers/clk/clk-max77686.o
  CC      drivers/pci/msi/api.o
  AR      mm/built-in.a
  CC      kernel/futex/core.o
  CC      drivers/video/fbdev/core/fbsysfs.o
  CC      kernel/time/timer.o
  CC      drivers/pci/pcie/rcec.o
  CC      drivers/video/fbdev/core/fbcon.o
  AR      fs/nfs_common/built-in.a
  CC      fs/drop_caches.o
  CC      drivers/pci/msi/msi.o
  CC      kernel/futex/syscalls.o
  CC      drivers/clk/imx/clk-imx5.o
  CC      drivers/dma/dmaengine.o
  CC      drivers/pci/pcie/aspm.o
  CC      fs/fhandle.o
  AR      kernel/futex/built-in.a
  CC      drivers/dma/virt-dma.o
  CC      drivers/pci/msi/irqdomain.o
  CC      fs/iomap/trace.o
  AR      drivers/clk/imx/built-in.a
  CC      drivers/video/fbdev/core/bitblit.o
  CC      drivers/pci/pcie/pme.o
  CC      drivers/dma/of-dma.o
  CC      kernel/time/hrtimer.o
  CC      drivers/soc/mediatek/mtk-regulator-coupler.o
  AR      drivers/pci/msi/built-in.a
  CC      drivers/video/fbdev/core/softcursor.o
  CC      drivers/clk/qcom/gdsc.o
  AR      drivers/pci/pcie/built-in.a
  CC      fs/iomap/iter.o
  CC      drivers/pci/proc.o
  CC      drivers/dma/dmatest.o
  CC      drivers/pmdomain/imx/gpc.o
  AR      drivers/soc/mediatek/built-in.a
  CC      drivers/video/fbdev/core/fbcon_rotate.o
  CC      drivers/soc/qcom/spm.o
  CC      fs/iomap/buffered-io.o
  CC      drivers/pci/pci-sysfs.o
  CC      drivers/pmdomain/imx/gpcv2.o
  AR      drivers/clk/qcom/built-in.a
  CC      drivers/video/fbdev/core/fbcon_cw.o
  AR      drivers/soc/qcom/built-in.a
  CC      drivers/soc/rockchip/io-domain.o
  CC      kernel/time/timekeeping.o
  CC      drivers/dma/at_hdmac.o
  AR      drivers/pmdomain/imx/built-in.a
  CC      drivers/pmdomain/mediatek/mtk-scpsys.o
  CC      drivers/clk/tegra/clk-dfll.o
  CC      drivers/pci/slot.o
  AR      drivers/soc/rockchip/built-in.a
  CC      drivers/video/fbdev/core/fbcon_ud.o
  CC      drivers/soc/samsung/exynos-regulator-coupler.o
  CC      drivers/pmdomain/mediatek/mtk-pm-domains.o
  AR      drivers/soc/samsung/built-in.a
  CC      drivers/soc/sunxi/sunxi_mbus.o
  CC      drivers/video/fbdev/core/fbcon_ccw.o
  CC      drivers/pci/iomap.o
  CC      drivers/dma/at_xdmac.o
  CC      fs/iomap/direct-io.o
  AR      drivers/soc/sunxi/built-in.a
  CC      drivers/clk/tegra/clk-tegra124-dfll-fcpu.o
  CC      drivers/soc/tegra/fuse/fuse-tegra.o
  AR      drivers/pmdomain/mediatek/built-in.a
  CC      kernel/time/ntp.o
  CC      drivers/pmdomain/qcom/cpr.o
  CC      drivers/video/fbdev/core/cfbfillrect.o
  CC      drivers/pci/of.o
  AR      drivers/clk/tegra/built-in.a
  CC      drivers/clk/ti/clk.o
  CC      drivers/dma/bcm2835-dma.o
  CC      kernel/time/timer_list.o
  CC      drivers/soc/tegra/fuse/fuse-tegra30.o
  AR      drivers/pmdomain/qcom/built-in.a
  CC      fs/iomap/fiemap.o
  CC      drivers/pmdomain/renesas/rcar-sysc.o
  AR      drivers/clk/ti/built-in.a
  CC      drivers/video/fbdev/core/cfbcopyarea.o
  CC      drivers/pci/quirks.o
  CC      drivers/soc/tegra/fuse/tegra-apbmisc.o
  CC      kernel/time/alarmtimer.o
  AR      drivers/clk/built-in.a
  CC      drivers/video/fbdev/simplefb.o
  CC      drivers/dma/sun4i-dma.o
  AR      drivers/pmdomain/renesas/built-in.a
  CC      drivers/pmdomain/core.o
  CC      fs/iomap/seek.o
  CC      drivers/soc/tegra/fuse/fuse-tegra20.o
  CC      drivers/video/fbdev/core/cfbimgblt.o
  CC      drivers/pci/pci-bridge-emul.o
  CC      drivers/dma/sun6i-dma.o
  CC      drivers/soc/tegra/fuse/speedo-tegra20.o
  CC      fs/iomap/swapfile.o
  CC      kernel/time/posix-timers.o
  CC      drivers/soc/tegra/fuse/speedo-tegra30.o
  CC      drivers/video/fbdev/core/fb_io_fops.o
  CC      drivers/pci/pci-label.o
  CC      drivers/virtio/virtio.o
  CC      drivers/dma/dw/core.o
  AR      drivers/pmdomain/built-in.a
  CC      drivers/soc/tegra/fuse/speedo-tegra114.o
  CC      drivers/soc/ux500/ux500-soc-id.o
  AR      fs/iomap/built-in.a
  CC      fs/proc/task_mmu.o
  CC      drivers/pci/syscall.o
  CC      kernel/time/posix-clock.o
  CC      drivers/soc/tegra/fuse/speedo-tegra124.o
  AR      drivers/soc/ux500/built-in.a
  CC      kernel/smp.o
  CC      drivers/virtio/virtio_ring.o
  CC      drivers/video/fbdev/core/sysfillrect.o
  CC      drivers/pci/ecam.o
  AR      drivers/soc/tegra/fuse/built-in.a
  CC      drivers/soc/tegra/regulators-tegra20.o
  CC      drivers/dma/dw/dw.o
  CC      kernel/time/itimer.o
  CC      drivers/video/fbdev/core/syscopyarea.o
  CC      drivers/soc/tegra/regulators-tegra30.o
  CC      fs/proc/inode.o
  CC      drivers/pci/vgaarb.o
  CC      drivers/dma/dw/idma32.o
  CC      kernel/time/tick-common.o
  CC      drivers/dma/dw/platform.o
  AR      drivers/soc/tegra/built-in.a
  AR      drivers/soc/built-in.a
  CC      drivers/video/fbdev/core/sysimgblt.o
  CC      fs/proc/root.o
  CC      drivers/virtio/virtio_anchor.o
  CC      fs/kernfs/mount.o
  CC      fs/proc/base.o
  CC      drivers/dma/dw/of.o
  CC      drivers/pci/endpoint/pci-ep-cfs.o
  CC      drivers/virtio/virtio_pci_modern_dev.o
  CC      drivers/pci/controller/pci-mvebu.o
  CC      kernel/time/tick-sched.o
  AR      drivers/dma/dw/built-in.a
  CC      drivers/dma/fsl-edma-main.o
  CC      fs/kernfs/inode.o
  CC      drivers/video/fbdev/core/fb_sys_fops.o
  CC      drivers/pci/endpoint/pci-epc-core.o
  CC      fs/kernfs/dir.o
  CC      drivers/pci/controller/pci-tegra.o
  CC      drivers/virtio/virtio_pci_legacy_dev.o
  CC      drivers/dma/fsl-edma-common.o
  AR      drivers/video/fbdev/core/built-in.a
  AR      drivers/video/fbdev/built-in.a
  AR      drivers/video/built-in.a
  CC      kernel/time/timer_migration.o
  CC      fs/proc/generic.o
  CC      kernel/time/vsyscall.o
  CC      drivers/virtio/virtio_mmio.o
  CC      kernel/uid16.o
  CC      drivers/pci/endpoint/pci-epf-core.o
  CC      drivers/pci/controller/pci-rcar-gen2.o
  CC      fs/kernfs/file.o
  CC      fs/proc/array.o
  CC      drivers/virtio/virtio_pci_modern.o
  CC      drivers/virtio/virtio_pci_common.o
  CC      drivers/dma/fsl-edma-trace.o
  CC      kernel/time/timekeeping_debug.o
  CC      drivers/pci/controller/pcie-rcar.o
  CC      drivers/pci/endpoint/pci-epc-mem.o
  CC      drivers/pci/endpoint/functions/pci-epf-test.o
  CC      fs/proc/fd.o
  AR      kernel/time/built-in.a
  CC      drivers/virtio/virtio_pci_legacy.o
  CC      kernel/kallsyms.o
  CC      drivers/pci/controller/pcie-rcar-host.o
  CC      drivers/dma/imx-dma.o
  CC      fs/kernfs/symlink.o
  CC      fs/proc/proc_tty.o
  AR      drivers/virtio/built-in.a
  AR      drivers/pci/endpoint/functions/built-in.a
  AR      drivers/pci/endpoint/built-in.a
  CC      drivers/regulator/core.o
  CC      drivers/pci/controller/pci-host-common.o
  CC      drivers/regulator/dummy.o
  AR      fs/kernfs/built-in.a
  CC      drivers/dma/imx-sdma.o
  CC      kernel/kexec_core.o
  CC      fs/proc/cmdline.o
  CC      drivers/tty/tty_io.o
  CC      drivers/pci/controller/pci-host-generic.o
  CC      fs/proc/devices.o
  CC      kernel/kexec.o
  CC      drivers/tty/n_tty.o
  CC      drivers/tty/tty_ioctl.o
  CC      drivers/pci/controller/pcie-iproc.o
  CC      fs/proc/loadavg.o
  CC      drivers/dma/mv_xor.o
  CC      kernel/cgroup/cgroup.o
  CC      fs/proc/meminfo.o
  CC      drivers/char/mem.o
  CC      fs/proc/uptime.o
  CC      drivers/regulator/fixed-helper.o
  CC      drivers/dma/mxs-dma.o
  CC      drivers/pci/controller/pcie-iproc-msi.o
  CC      drivers/tty/tty_ldisc.o
  CC      fs/proc/util.o
  CC      kernel/cgroup/rstat.o
  CC      drivers/char/random.o
  CC      drivers/dma/owl-dma.o
  CC      fs/proc/version.o
  CC      drivers/tty/tty_buffer.o
  CC      drivers/pci/controller/pcie-iproc-platform.o
  CC      drivers/regulator/helpers.o
  CC      fs/proc/softirqs.o
  CC      kernel/cgroup/namespace.o
  CC      drivers/dma/pl330.o
  CC      fs/proc/namespaces.o
  CC      drivers/pci/controller/pcie-iproc-bcma.o
  CC      drivers/tty/tty_port.o
  CC      drivers/char/misc.o
  CC      drivers/pci/controller/pcie-brcmstb.o
  CC      fs/proc/self.o
  CC      drivers/regulator/devres.o
  CC      drivers/pci/controller/dwc/pcie-designware.o
  CC      fs/proc/thread_self.o
  CC      drivers/tty/tty_mutex.o
  CC      drivers/dma/sh/rcar-dmac.o
  CC      drivers/char/virtio_console.o
  CC      fs/proc/proc_sysctl.o
  CC      kernel/cgroup/cgroup-v1.o
  CC      drivers/regulator/irq_helpers.o
  CC      fs/sysfs/file.o
  CC      drivers/tty/tty_ldsem.o
  CC      drivers/pci/controller/dwc/pcie-designware-host.o
  AR      drivers/dma/sh/built-in.a
  CC      drivers/dma/ste_dma40.o
  CC      fs/sysfs/symlink.o
  CC      drivers/regulator/of_regulator.o
  AR      drivers/char/built-in.a
  CC      drivers/iommu/arm/arm-smmu/qcom_iommu.o
  CC      drivers/tty/tty_baudrate.o
  CC      kernel/cgroup/freezer.o
  CC      fs/proc/proc_net.o
  CC      drivers/pci/controller/dwc/pcie-designware-ep.o
^Cmake[5]: *** Deleting file 'drivers/regulator/of_regulator.o'
make[5]: *** Deleting file 'drivers/tty/tty_baudrate.o'
make[7]: *** Deleting file 'drivers/iommu/arm/arm-smmu/qcom_iommu.o'
make[5]: *** Deleting file 'fs/sysfs/symlink.o'
make[5]: *** [../scripts/Makefile.build:244: drivers/tty/tty_baudrate.o] Interrupt
make[7]: *** [../scripts/Makefile.build:244: drivers/pci/controller/dwc/pcie-designware-ep.o] Interrupt
make[4]: *** [../scripts/Makefile.build:485: drivers/tty] Interrupt
make[6]: *** [../scripts/Makefile.build:485: drivers/pci/controller/dwc] Interrupt
make[5]: *** [../scripts/Makefile.build:244: drivers/regulator/of_regulator.o] Interrupt
make[5]: *** [../scripts/Makefile.build:485: drivers/pci/controller] Interrupt
make[7]: *** [../scripts/Makefile.build:244: drivers/iommu/arm/arm-smmu/qcom_iommu.o] Interrupt
make[4]: *** [../scripts/Makefile.build:485: drivers/pci] Interrupt
make[6]: *** [../scripts/Makefile.build:485: drivers/iommu/arm/arm-smmu] Interrupt
make[5]: *** [../scripts/Makefile.build:485: drivers/iommu/arm] Interrupt
make[4]: *** [../scripts/Makefile.build:485: drivers/iommu] Interrupt
make[5]: *** [../scripts/Makefile.build:244: fs/sysfs/symlink.o] Interrupt
make[5]: *** [../scripts/Makefile.build:244: drivers/dma/ste_dma40.o] Interrupt
make[5]: *** [../scripts/Makefile.build:244: fs/proc/proc_net.o] Interrupt
make[4]: *** [../scripts/Makefile.build:485: fs/sysfs] Interrupt
make[4]: *** [../scripts/Makefile.build:485: drivers/dma] Interrupt
make[4]: *** [../scripts/Makefile.build:485: fs/proc] Interrupt
make[4]: *** [../scripts/Makefile.build:485: drivers/regulator] Interrupt
make[5]: *** [../scripts/Makefile.build:244: kernel/cgroup/freezer.o] Interrupt
make[3]: *** [../scripts/Makefile.build:485: drivers] Interrupt
make[4]: *** [../scripts/Makefile.build:485: kernel/cgroup] Interrupt
make[3]: *** [../scripts/Makefile.build:485: fs] Interrupt
make[3]: *** [../scripts/Makefile.build:485: kernel] Interrupt
make[2]: *** [/opt/net-next/Makefile:1926: .] Interrupt
make[1]: *** [/opt/net-next/Makefile:224: __sub-make] Interrupt
make: *** [Makefile:224: __sub-make] Interrupt

[/opt/net-next] $ LOADADDR=0x80008000 make -j 8 uImage dtbs && sudo cp $KBUILD_OUTPUT/arch/arm/boot/{uImage,dts/nxp/ls/ls1021a-tsn*.dtb} /srv/tftpboot/ls1021atsn/
make[1]: Entering directory '/opt/net-next/output-arm'
  GEN     Makefile
mkdir -p /opt/net-next/output-arm/tools/bpf/resolve_btfids && make O=/opt/net-next/output-arm subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids
  INSTALL libsubcmd_headers
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  CALL    ../scripts/checksyscalls.sh
  CC      init/version.o
  AR      init/built-in.a
  CC      kernel/sys.o
  CC      net/devres.o
  CC      net/socket.o
  AR      lib/lib.a
  CC      fs/proc/page.o
  CC      fs/proc/proc_net.o
  CC      lib/packing.o
In file included from ../lib/packing.c:5:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [../scripts/Makefile.build:244: lib/packing.o] Error 1
make[3]: *** [../scripts/Makefile.build:485: lib] Error 2
make[3]: *** Waiting for unfinished jobs....
  CC      net/core/sock.o
  CC      net/core/request_sock.o
  CC      fs/sysfs/mount.o
  AR      fs/proc/built-in.a
  CC      fs/configfs/inode.o
  CC      net/llc/llc_core.o
  CC      fs/devpts/inode.o
  CC      drivers/pci/controller/dwc/pci-dra7xx.o
  CC      fs/sysfs/symlink.o
  CC      fs/configfs/dir.o
  AR      fs/devpts/built-in.a
  CC      drivers/pci/controller/dwc/pci-layerscape.o
  CC      fs/ext4/balloc.o
  CC      net/llc/llc_input.o
  CC      kernel/module/main.o
  CC      drivers/pci/controller/dwc/pcie-designware-ep.o
  AR      fs/sysfs/built-in.a
  CC      fs/jbd2/transaction.o
  CC      fs/jbd2/commit.o
  CC      fs/configfs/mount.o
  CC      fs/ext4/bitmap.o
  AR      fs/configfs/built-in.a
  CC      net/llc/llc_output.o
  CC      net/core/skbuff.o
  AR      drivers/pci/controller/dwc/built-in.a
  AR      drivers/pci/controller/built-in.a
  AR      drivers/pci/built-in.a
  CC      fs/ext4/block_validity.o
  CC      net/ethernet/eth.o
  CC      fs/jbd2/recovery.o
  CC      drivers/dma/ste_dma40_ll.o
  AR      kernel/module/built-in.a
  CC      net/llc/llc_if.o
  CC      kernel/cgroup/freezer.o
  CC      fs/ext4/dir.o
  CC      drivers/dma/tegra20-apb-dma.o
  CC      fs/jbd2/checkpoint.o
  CC      net/llc/llc_c_ev.o
  AR      kernel/cgroup/built-in.a
  CC      kernel/pid_namespace.o
  CC      fs/ext4/ext4_jbd2.o
  CC      fs/squashfs/block.o
  CC      fs/jbd2/revoke.o
  AR      net/ethernet/built-in.a
  CC      net/802/p8022.o
  CC      drivers/dma/uniphier-mdmac.o
  CC      fs/squashfs/cache.o
  CC      net/llc/llc_c_ac.o
  CC      fs/jbd2/journal.o
  CC      fs/ext4/extents.o
  CC      kernel/stop_machine.o
  CC      drivers/dma/qcom/bam_dma.o
  CC      fs/squashfs/file.o
  CC      net/802/psnap.o
  CC      net/llc/llc_conn.o
  CC      kernel/seccomp.o
  AR      drivers/dma/qcom/built-in.a
  CC      drivers/dma/stm32/stm32-dma.o
  CC      fs/squashfs/inode.o
  CC      net/core/datagram.o
  CC      net/802/stp.o
  CC      fs/squashfs/namei.o
  CC      net/llc/llc_c_st.o
  CC      drivers/dma/stm32/stm32-dmamux.o
  CC      fs/squashfs/super.o
  AR      fs/jbd2/built-in.a
  CC      fs/ramfs/inode.o
  AR      net/802/built-in.a
  CC      kernel/relay.o
  CC      drivers/dma/stm32/stm32-mdma.o
  CC      net/llc/llc_pdu.o
  CC      fs/ext4/extents_status.o
  CC      fs/squashfs/symlink.o
  CC      fs/ramfs/file-mmu.o
  CC      net/core/stream.o
  CC      fs/squashfs/decompressor.o
  CC      net/llc/llc_sap.o
  CC      fs/fat/cache.o
  AR      fs/ramfs/built-in.a
  CC      fs/fat/dir.o
  AR      drivers/dma/stm32/built-in.a
  CC      fs/squashfs/page_actor.o
  CC      kernel/trace/ring_buffer.o
  CC      drivers/dma/ti/edma.o
  CC      fs/ext4/file.o
  CC      drivers/dma/xilinx/xilinx_dma.o
  CC      net/llc/llc_s_ac.o
  CC      fs/squashfs/file_cache.o
  CC      net/core/scm.o
  CC      fs/squashfs/decompressor_single.o
  CC      fs/ext4/fsmap.o
  CC      net/llc/llc_s_ev.o
  CC      drivers/dma/ti/omap-dma.o
  CC      fs/squashfs/lzo_wrapper.o
  CC      fs/fat/fatent.o
  CC      fs/squashfs/xz_wrapper.o
  CC      net/llc/llc_s_st.o
  AR      drivers/dma/xilinx/built-in.a
  CC      net/sched/sch_generic.o
  CC      fs/ext4/fsync.o
  CC      net/core/gen_stats.o
  CC      drivers/dma/ti/dma-crossbar.o
  CC      kernel/trace/trace.o
  CC      fs/squashfs/zlib_wrapper.o
  CC      net/llc/af_llc.o
  AR      drivers/dma/ti/built-in.a
  CC      drivers/dma/ste_dma40.o
  AR      fs/squashfs/built-in.a
  CC      fs/fat/file.o
  CC      net/core/gen_estimator.o
  CC      fs/ext4/hash.o
  CC      fs/ext4/ialloc.o
  CC      net/llc/llc_station.o
  CC      fs/nfs/client.o
  AR      drivers/dma/built-in.a
  CC      fs/fat/inode.o
  CC      drivers/regulator/fixed.o
  CC      net/sched/sch_mq.o
  CC      net/core/net_namespace.o
  CC      net/llc/llc_proc.o
  CC      drivers/regulator/cpcap-regulator.o
  CC      net/sched/sch_frag.o
  CC      fs/ext4/indirect.o
  CC      fs/fat/misc.o
  CC      drivers/regulator/ab8500-ext.o
  CC      net/llc/sysctl_net_llc.o
  CC      net/core/secure_seq.o
  CC      fs/nfs/dir.o
  CC      kernel/trace/trace_output.o
  CC      drivers/regulator/ab8500.o
  AR      net/llc/built-in.a
  CC      fs/ext4/inline.o
  CC      net/sched/sch_api.o
  CC      fs/nfs/file.o
  CC      fs/fat/nfs.o
  CC      drivers/regulator/act8865-regulator.o
  CC      fs/fat/namei_vfat.o
  CC      net/core/flow_dissector.o
  CC      drivers/regulator/act8945a-regulator.o
  CC      kernel/trace/trace_stat.o
  CC      fs/ext4/inode.o
  CC      drivers/regulator/anatop-regulator.o
  CC      fs/fat/namei_msdos.o
  CC      net/sched/sch_blackhole.o
  CC      kernel/trace/trace_printk.o
  CC      fs/nfs/getroot.o
  CC      drivers/regulator/scmi-regulator.o
  AR      fs/fat/built-in.a
  CC      drivers/regulator/as3711-regulator.o
  CC      net/sched/sch_fifo.o
  CC      net/netlink/af_netlink.o
  CC      fs/nfs/inode.o
  CC      fs/nfs/super.o
  CC      kernel/trace/pid_list.o
  CC      drivers/regulator/as3722-regulator.o
  CC      net/core/sysctl_net_core.o
  CC      kernel/trace/trace_sched_switch.o
  CC      drivers/regulator/axp20x-regulator.o
  CC      net/sched/sch_mqprio.o
  CC      kernel/trace/trace_preemptirq.o
  CC      drivers/regulator/bcm590xx-regulator.o
  CC      net/core/dev.o
  CC      fs/ext4/ioctl.o
  CC      net/sched/sch_mqprio_lib.o
  CC      drivers/regulator/da9210-regulator.o
  CC      net/sched/sch_cbs.o
  CC      fs/nfs/io.o
  CC      kernel/trace/trace_nop.o
  CC      net/netlink/genetlink.o
  CC      drivers/regulator/dbx500-prcmu.o
  CC      drivers/regulator/db8500-prcmu.o
  CC      net/sched/sch_etf.o
  CC      kernel/trace/blktrace.o
  CC      fs/ext4/mballoc.o
  CC      net/netlink/policy.o
  CC      fs/nfs/direct.o
  CC      drivers/regulator/fan53555.o
  CC      drivers/regulator/gpio-regulator.o
  CC      kernel/trace/trace_events.o
  CC      net/sched/sch_taprio.o
  CC      net/netlink/diag.o
  CC      kernel/trace/trace_export.o
  CC      drivers/regulator/lp872x.o
  CC      kernel/trace/trace_event_perf.o
  AR      net/netlink/built-in.a
  CC      drivers/regulator/max8907-regulator.o
  CC      fs/nfs/pagelist.o
  CC      net/core/dev_addr_lists.o
  CC      drivers/regulator/max8973-regulator.o
  CC      fs/nfs/read.o
  CC      kernel/trace/trace_events_filter.o
  CC      drivers/regulator/max77686-regulator.o
  CC      fs/ext4/migrate.o
  AR      net/sched/built-in.a
  CC      net/bpf/test_run.o
  CC      drivers/regulator/max77802-regulator.o
  CC      net/ethtool/ioctl.o
  CC      fs/ext4/mmp.o
  CC      drivers/regulator/qcom_rpm-regulator.o
  CC      fs/lockd/clntlock.o
  CC      fs/nfs/symlink.o
  CC      kernel/trace/trace_events_trigger.o
  CC      fs/ext4/move_extent.o
  CC      drivers/regulator/qcom_smd-regulator.o
  CC      fs/nfs/unlink.o
  CC      fs/ext4/namei.o
  CC      drivers/regulator/qcom_spmi-regulator.o
  AR      net/bpf/built-in.a
  CC      fs/lockd/clntproc.o
  CC      drivers/tty/tty_jobctrl.o
  CC      kernel/trace/trace_eprobe.o
  CC      net/core/dst.o
  CC      net/ethtool/common.o
  CC      drivers/regulator/palmas-regulator.o
  CC      fs/nfs/write.o
  CC      drivers/tty/n_null.o
  CC      kernel/trace/bpf_trace.o
  CC      drivers/tty/pty.o
  CC      drivers/regulator/pwm-regulator.o
  CC      net/core/netevent.o
  CC      fs/lockd/clntxdr.o
  CC      fs/ext4/page-io.o
  CC      net/ethtool/netlink.o
  CC      drivers/tty/sysrq.o
  CC      drivers/regulator/tps51632-regulator.o
  CC      fs/lockd/host.o
  CC      net/core/neighbour.o
  CC      fs/ext4/readpage.o
  CC      drivers/regulator/pbias-regulator.o
  CC      net/ethtool/bitset.o
  CC      fs/nfs/namespace.o
  CC      drivers/tty/vt/vt_ioctl.o
  CC      fs/ext4/resize.o
  CC      drivers/regulator/rk808-regulator.o
  CC      fs/lockd/svc.o
  CC      kernel/trace/error_report-traces.o
  CC      drivers/regulator/rn5t618-regulator.o
  CC      net/ethtool/strset.o
  CC      drivers/tty/vt/vc_screen.o
  CC      drivers/regulator/s2mps11.o
  CC      kernel/trace/power-traces.o
  CC      fs/nfs/mount_clnt.o
  CC      fs/lockd/svclock.o
  CC      fs/ext4/super.o
  CC      net/ethtool/linkinfo.o
  CC      drivers/regulator/s5m8767.o
  CC      drivers/tty/vt/selection.o
  CC      fs/nfs/nfstrace.o
  CC      net/ethtool/linkmodes.o
  CC      drivers/regulator/stm32-pwr.o
  CC      net/core/rtnetlink.o
  CC      drivers/tty/vt/keyboard.o
  CC      fs/lockd/svcshare.o
  CC      kernel/trace/rpm-traces.o
  CC      drivers/regulator/stpmic1_regulator.o
  CC      net/ethtool/rss.o
  CC      fs/lockd/svcproc.o
  CC      drivers/regulator/sun20i-regulator.o
  CC      net/ethtool/linkstate.o
  CC      drivers/regulator/ti-abb-regulator.o
  CC      kernel/trace/trace_dynevent.o
  CC      drivers/tty/vt/vt.o
  CC      fs/lockd/svcsubs.o
  CC      drivers/regulator/tps62360-regulator.o
  CC      net/ethtool/debug.o
  CC      kernel/trace/trace_probe.o
  CC      drivers/regulator/tps65090-regulator.o
  CC      net/ethtool/wol.o
  CC      fs/lockd/mon.o
  CC      fs/nfs/export.o
  CC      drivers/regulator/tps65217-regulator.o
  CC      kernel/trace/trace_uprobe.o
  CC      net/ethtool/features.o
  CC      drivers/tty/vt/consolemap.o
  CC      net/core/utils.o
  CC      drivers/regulator/tps65218-regulator.o
  CC      fs/lockd/trace.o
  CC      fs/nfs/sysfs.o
  CC      net/ethtool/privflags.o
  CC      drivers/regulator/tps6586x-regulator.o
  AR      drivers/tty/vt/built-in.a
  CC      drivers/tty/hvc/hvc_console.o
  CC      fs/lockd/xdr.o
  CC      drivers/regulator/tps65910-regulator.o
  CC      net/core/link_watch.o
  AR      kernel/trace/built-in.a
  CC      net/ethtool/rings.o
  CC      kernel/bpf/core.o
  CC      fs/ext4/symlink.o
  CC      fs/nfs/fs_context.o
  CC      fs/lockd/clnt4xdr.o
  AR      drivers/tty/hvc/built-in.a
  CC      drivers/regulator/twl-regulator.o
  CC      drivers/tty/serial/serial_core.o
  CC      fs/ext4/sysfs.o
  CC      net/ethtool/channels.o
  CC      drivers/regulator/twl6030-regulator.o
  CC      net/core/filter.o
  CC      fs/ext4/xattr.o
  CC      fs/lockd/xdr4.o
  CC      net/ethtool/coalesce.o
  CC      drivers/regulator/uniphier-regulator.o
  CC      drivers/regulator/vexpress-regulator.o
  CC      fs/lockd/svc4proc.o
  CC      fs/nfs/nfsroot.o
  CC      net/ethtool/pause.o
  CC      drivers/tty/serial/serial_base_bus.o
  CC      drivers/regulator/of_regulator.o
  CC      fs/ext4/xattr_hurd.o
  CC      kernel/bpf/syscall.o
  CC      drivers/tty/serial/serial_ctrl.o
  CC      net/ethtool/eee.o
  CC      fs/lockd/procfs.o
  CC      fs/nfs/sysctl.o
  CC      fs/ext4/xattr_trusted.o
  CC      drivers/tty/serial/serial_port.o
  AR      drivers/regulator/built-in.a
  AR      fs/lockd/built-in.a
  CC      fs/nfs/nfs2super.o
  CC      kernel/events/core.o
  CC      net/ethtool/tsinfo.o
  CC      fs/ext4/xattr_user.o
  CC      drivers/iommu/arm/arm-smmu/qcom_iommu.o
  CC      drivers/tty/serial/earlycon.o
  CC      fs/ext4/fast_commit.o
  CC      fs/nfs/proc.o
  CC      net/ethtool/cabletest.o
  AR      drivers/iommu/arm/arm-smmu/built-in.a
  AR      drivers/iommu/arm/built-in.a
  CC      drivers/iommu/iommu.o
  CC      drivers/tty/serial/8250/8250_core.o
  CC      fs/nfs/nfs2xdr.o
  CC      fs/ext4/orphan.o
  CC      drivers/tty/serial/8250/8250_platform.o
  CC      net/ethtool/tunnels.o
  CC      drivers/iommu/iommu-traces.o
  CC      kernel/bpf/verifier.o
  CC      fs/nfs/nfs3super.o
  CC      fs/ext4/xattr_security.o
  CC      drivers/tty/serial/8250/8250_port.o
  CC      net/ethtool/fec.o
  CC      net/core/sock_diag.o
  CC      fs/nfs/nfs3client.o
  AR      fs/ext4/built-in.a
  CC      drivers/iommu/iommu-sysfs.o
  CC      fs/nfs/nfs3proc.o
  CC      net/ethtool/eeprom.o
  CC      drivers/iommu/io-pgtable.o
  CC      drivers/tty/serial/8250/8250_dma.o
  CC      net/ethtool/stats.o
  CC      net/core/dev_ioctl.o
  CC      drivers/tty/serdev/serdev-ttyport.o
  CC      fs/nfs/nfs3xdr.o
  CC      drivers/iommu/io-pgtable-arm.o
  AR      drivers/tty/serdev/built-in.a
  CC      kernel/context_tracking.o
  CC      drivers/tty/serial/8250/8250_dwlib.o
  CC      drivers/iommu/iova.o
  CC      net/ethtool/phc_vclocks.o
  CC      fs/nfs/nfs3acl.o
  CC      fs/nfs/nfs4proc.o
  CC      net/core/tso.o
  CC      kernel/events/ring_buffer.o
  CC      drivers/tty/serial/8250/8250_pcilib.o
  CC      drivers/iommu/of_iommu.o
  CC      net/ethtool/mm.o
  CC      net/ethtool/module.o
  CC      drivers/tty/serial/8250/8250_early.o
  CC      drivers/iommu/omap-iommu.o
  CC      kernel/events/callchain.o
  CC      net/core/sock_reuseport.o
  CC      drivers/tty/serial/8250/8250_bcm2835aux.o
  CC      drivers/tty/serial/amba-pl011.o
  CC      net/ethtool/cmis_fw_update.o
  CC      kernel/events/hw_breakpoint.o
  CC      drivers/tty/serial/8250/8250_bcm7271.o
  CC      drivers/iommu/omap-iommu-debug.o
  CC      net/ethtool/cmis_cdb.o
  CC      drivers/tty/serial/8250/8250_dw.o
  CC      drivers/iommu/rockchip-iommu.o
  CC      net/core/fib_notifier.o
  CC      fs/jffs2/compr.o
  CC      net/ethtool/pse-pd.o
  CC      drivers/tty/serial/8250/8250_em.o
  CC      kernel/events/uprobes.o
  CC      fs/jffs2/dir.o
  CC      drivers/iommu/tegra-smmu.o
  CC      drivers/tty/serial/8250/8250_exar.o
  CC      net/core/xdp.o
  CC      net/ethtool/plca.o
  CC      fs/jffs2/file.o
  CC      drivers/iommu/exynos-iommu.o
  CC      kernel/bpf/inode.o
  CC      drivers/tty/serial/8250/8250_fsl.o
  CC      fs/jffs2/ioctl.o
  CC      net/ethtool/phy.o
  CC      fs/jffs2/nodelist.o
  AR      kernel/events/built-in.a
  CC      drivers/tty/serial/8250/8250_mtk.o
  AR      drivers/iommu/built-in.a
  CC      kernel/bpf/helpers.o
  CC      net/core/flow_offload.o
  CC      fs/nfs/nfs4xdr.o
  CC      fs/jffs2/malloc.o
  AR      net/ethtool/built-in.a
  CC      drivers/tty/serial/8250/8250_of.o
  CC      kernel/iomem.o
  CC      fs/ubifs/shrinker.o
  CC      drivers/gpu/host1x/bus.o
  CC      fs/jffs2/read.o
  CC      drivers/tty/serial/8250/8250_omap.o
  CC      fs/ubifs/journal.o
  CC      drivers/gpu/host1x/syncpt.o
  CC      fs/jffs2/nodemgmt.o
  CC      net/core/gro.o
  CC      fs/ubifs/file.o
  CC      kernel/bpf/log.o
  CC      fs/jffs2/readinode.o
  CC      drivers/tty/serial/8250/8250_pci.o
  CC      drivers/gpu/host1x/dev.o
  CC      drivers/tty/serial/atmel_serial.o
  CC      fs/ubifs/dir.o
  CC      fs/jffs2/write.o
  CC      kernel/bpf/token.o
  CC      net/core/netdev-genl.o
  CC      drivers/tty/serial/8250/8250_pericom.o
  CC      fs/jffs2/scan.o
  CC      fs/jffs2/gc.o
  CC      drivers/gpu/host1x/intr.o
  CC      kernel/bpf/bpf_iter.o
  CC      fs/ubifs/super.o
  CC      drivers/tty/serial/8250/8250_uniphier.o
  CC      drivers/gpu/host1x/cdma.o
  CC      drivers/tty/tty_baudrate.o
  CC      fs/nfs/nfs4state.o
  CC      net/core/netdev-genl-gen.o
  CC      drivers/tty/serial/8250/8250_tegra.o
  CC      fs/jffs2/symlink.o
  CC      kernel/bpf/map_iter.o
  CC      drivers/gpu/host1x/channel.o
  CC      fs/jffs2/build.o
  CC      fs/ubifs/sb.o
  AR      drivers/tty/serial/8250/built-in.a
  CC      drivers/tty/serial/bcm63xx_uart.o
  CC      net/core/gso.o
  CC      net/ipv4/route.o
  CC      kernel/bpf/task_iter.o
  CC      fs/jffs2/erase.o
  CC      drivers/gpu/host1x/job.o
  CC      drivers/tty/serial/digicolor-usart.o
  CC      fs/ubifs/io.o
  CC      fs/jffs2/background.o
  CC      drivers/tty/serial/fsl_lpuart.o
  CC      net/core/net-sysfs.o
  CC      kernel/bpf/prog_iter.o
  CC      fs/jffs2/fs.o
  CC      drivers/gpu/host1x/debug.o
  CC      fs/ubifs/tnc.o
  CC      fs/nfs/nfs4renewd.o
  CC      drivers/gpu/host1x/mipi.o
  CC      kernel/bpf/link_iter.o
  CC      fs/jffs2/writev.o
  CC      fs/jffs2/super.o
  CC      drivers/tty/serial/imx.o
  CC      fs/nfs/nfs4super.o
  CC      kernel/bpf/hashtab.o
  CC      drivers/gpu/host1x/hw/host1x01.o
  CC      fs/ubifs/master.o
  CC      fs/jffs2/debug.o
  CC      net/ipv4/inetpeer.o
  CC      net/core/hotdata.o
  CC      drivers/gpu/host1x/hw/host1x02.o
  CC      fs/ubifs/scan.o
  CC      fs/nfs/nfs4file.o
  CC      fs/jffs2/wbuf.o
  CC      drivers/tty/serial/imx_earlycon.o
  CC      fs/ubifs/replay.o
  CC      drivers/gpu/host1x/hw/host1x04.o
  CC      drivers/tty/serial/milbeaut_usio.o
  CC      fs/jffs2/compr_rtime.o
  CC      net/core/page_pool.o
  CC      fs/nfs/delegation.o
  CC      net/ipv4/protocol.o
  CC      fs/jffs2/compr_zlib.o
  CC      fs/ubifs/log.o
  CC      drivers/tty/serial/meson_uart.o
  CC      drivers/gpu/host1x/hw/host1x05.o
  CC      kernel/bpf/arraymap.o
  AR      fs/jffs2/built-in.a
  CC      kernel/rseq.o
  CC      drivers/tty/serial/msm_serial.o
  CC      fs/ubifs/commit.o
  CC      drivers/gpu/host1x/hw/host1x06.o
  CC      net/ipv4/ip_input.o
  CC      net/core/page_pool_user.o
  CC      drivers/base/core.o
  CC      kernel/bpf/lpm_trie.o
  CC      fs/ubifs/gc.o
  CC      drivers/gpu/host1x/hw/host1x07.o
  CC      drivers/tty/serial/owl-uart.o
  CC      fs/nfs/nfs4idmap.o
  CC      net/core/net-procfs.o
  CC      fs/ubifs/orphan.o
  CC      drivers/tty/serial/samsung_tty.o
  CC      drivers/gpu/host1x/hw/host1x08.o
  CC      kernel/bpf/map_in_map.o
  CC      net/ipv4/ip_fragment.o
  CC      kernel/bpf/bloom_filter.o
  CC      net/core/netpoll.o
  CC      fs/ubifs/budget.o
  CC      drivers/gpu/host1x/context.o
  CC      kernel/bpf/local_storage.o
  CC      drivers/tty/serial/sh-sci.o
  CC      fs/ubifs/find.o
  CC      fs/nfs/callback.o
  CC      drivers/base/dd.o
  AR      drivers/gpu/host1x/built-in.a
  CC      kernel/bpf/queue_stack_maps.o
  CC      drivers/gpu/drm/drm_atomic.o
  CC      fs/ubifs/tnc_commit.o
  CC      net/ipv4/ip_forward.o
  CC      fs/nfs/callback_xdr.o
  CC      kernel/bpf/ringbuf.o
  CC      drivers/tty/serial/st-asc.o
  CC      drivers/base/syscore.o
  CC      net/core/fib_rules.o
  CC      fs/ubifs/compress.o
  CC      drivers/tty/serial/stm32-usart.o
  CC      net/ipv4/ip_options.o
  CC      drivers/gpu/drm/drm_atomic_uapi.o
  CC      kernel/bpf/bpf_local_storage.o
  CC      fs/nfs/callback_proc.o
  CC      drivers/base/class.o
  CC      fs/ubifs/lpt.o
  CC      drivers/tty/serial/sunplus-uart.o
  CC      net/core/net-traces.o
  CC      kernel/bpf/bpf_task_storage.o
  CC      drivers/base/platform.o
  CC      drivers/gpu/drm/drm_auth.o
  CC      fs/nfs/nfs4namespace.o
  CC      net/ipv4/ip_output.o
  CC      fs/ubifs/lprops.o
  CC      drivers/tty/serial/serial-tegra.o
  CC      kernel/bpf/disasm.o
  CC      drivers/gpu/drm/drm_blend.o
  CC      drivers/base/cpu.o
  CC      fs/ubifs/recovery.o
  CC      fs/nfs/nfs4getroot.o
  CC      drivers/tty/serial/vt8500_serial.o
  CC      kernel/bpf/mprog.o
  CC      drivers/gpu/drm/drm_bridge.o
  CC      drivers/base/init.o
  CC      drivers/tty/serial/xilinx_uartps.o
  CC      fs/nfs/nfs4client.o
  CC      fs/ubifs/ioctl.o
  CC      kernel/bpf/btf.o
  CC      drivers/base/topology.o
  CC      fs/ubifs/lpt_commit.o
  CC      drivers/base/property.o
  CC      drivers/gpu/drm/drm_cache.o
  CC      drivers/tty/serial/serial_mctrl_gpio.o
  CC      net/ipv4/ip_sockglue.o
  CC      drivers/gpu/drm/drm_client.o
  AR      drivers/tty/serial/built-in.a
  AR      drivers/tty/built-in.a
  CC      fs/nfs/nfs4session.o
  CC      net/ipv4/inet_hashtables.o
  CC      fs/ubifs/tnc_misc.o
  CC      drivers/base/devtmpfs.o
  CC      drivers/gpu/drm/drm_client_modeset.o
  CC      fs/ubifs/debug.o
  CC      net/core/selftests.o
  CC      drivers/base/power/qos.o
  CC      fs/autofs/init.o
  CC      fs/nfs/dns_resolve.o
  CC      fs/autofs/inode.o
  CC      drivers/gpu/drm/drm_color_mgmt.o
  CC      fs/ubifs/misc.o
  CC      fs/nfs/nfs4trace.o
  CC      net/ipv4/inet_timewait_sock.o
  CC      net/core/ptp_classifier.o
  CC      drivers/base/power/main.o
  CC      fs/autofs/root.o
  CC      fs/ubifs/sysfs.o
  CC      kernel/bpf/memalloc.o
  CC      drivers/gpu/drm/drm_connector.o
  CC      fs/autofs/symlink.o
  CC      fs/ubifs/xattr.o
  CC      net/core/dst_cache.o
  CC      net/ipv4/inet_connection_sock.o
  CC      kernel/bpf/devmap.o
  CC      fs/autofs/waitq.o
  AR      fs/ubifs/built-in.a
  CC      drivers/base/power/wakeup.o
  CC      fs/fuse/dev.o
  CC      fs/autofs/expire.o
  CC      drivers/gpu/drm/drm_crtc.o
  CC      net/core/gro_cells.o
  CC      kernel/bpf/cpumap.o
  CC      fs/autofs/dev-ioctl.o
  AR      drivers/base/power/built-in.a
  CC      drivers/base/firmware_loader/main.o
  CC      drivers/gpu/drm/drm_drv.o
  AR      fs/autofs/built-in.a
  CC      fs/fuse/dir.o
  CC      fs/nfs/nfs4sysctl.o
  CC      net/core/failover.o
  CC      net/ipv4/tcp.o
  CC      kernel/bpf/offload.o
  AR      drivers/base/firmware_loader/built-in.a
  CC      fs/nfs/pnfs.o
  CC      drivers/base/regmap/regmap.o
  CC      drivers/gpu/drm/drm_dumb_buffers.o
  CC      fs/nfs/pnfs_dev.o
  CC      fs/fuse/file.o
  CC      drivers/gpu/drm/drm_edid.o
  CC      net/core/skmsg.o
  CC      kernel/bpf/net_namespace.o
  CC      net/ipv4/tcp_input.o
  CC      kernel/bpf/tcx.o
  CC      fs/fuse/inode.o
  CC      drivers/base/regmap/regmap-i2c.o
  CC      net/core/sock_map.o
  CC      kernel/bpf/stackmap.o
  CC      drivers/gpu/drm/drm_encoder.o
  CC      fs/nfs/pnfs_nfs.o
  CC      kernel/bpf/cgroup_iter.o
  CC      drivers/base/regmap/regmap-spi.o
  CC      fs/nfs/nfs42proc.o
  CC      kernel/bpf/bpf_cgrp_storage.o
  CC      drivers/gpu/drm/drm_file.o
  CC      fs/fuse/control.o
  CC      drivers/base/regmap/regmap-i3c.o
  CC      fs/fuse/xattr.o
  CC      kernel/bpf/reuseport_array.o
  CC      fs/overlayfs/super.o
  CC      drivers/gpu/drm/drm_framebuffer.o
  CC      fs/fuse/acl.o
  CC      net/core/bpf_sk_storage.o
  AR      drivers/base/regmap/built-in.a
  CC      drivers/base/devcoredump.o
  CC      kernel/bpf/crypto.o
  CC      fs/fuse/readdir.o
  CC      drivers/base/arch_topology.o
  CC      fs/overlayfs/namei.o
  CC      fs/nfs/nfs42xattr.o
  CC      drivers/gpu/drm/drm_gem.o
  CC      fs/fuse/ioctl.o
  CC      net/ipv4/tcp_output.o
  CC      kernel/bpf/relo_core.o
  CC      net/core/of_net.o
  CC      fs/overlayfs/util.o
  CC      fs/fuse/iomode.o
  CC      drivers/base/trace.o
  CC      fs/nfs/filelayout/filelayout.o
  CC      drivers/gpu/drm/drm_ioctl.o
  CC      fs/fuse/passthrough.o
  AR      drivers/base/built-in.a
  CC      kernel/bpf/btf_iter.o
  CC      net/tls/tls_main.o
  CC      fs/overlayfs/inode.o
  AR      net/core/built-in.a
  CC      net/ipv4/tcp_timer.o
  AR      fs/fuse/built-in.a
  CC      drivers/gpu/trace/trace_gpu_mem.o
  CC      kernel/bpf/btf_relocate.o
  CC      drivers/gpu/drm/drm_lease.o
  CC      fs/nfs/filelayout/filelayoutdev.o
  CC      fs/overlayfs/file.o
  CC      net/tls/tls_sw.o
  CC      drivers/gpu/drm/drm_managed.o
  AR      drivers/gpu/trace/built-in.a
  AR      kernel/bpf/built-in.a
  AR      kernel/built-in.a
  CC      drivers/block/brd.o
  CC      drivers/misc/ad525x_dpot-i2c.o
  CC      fs/overlayfs/dir.o
  AR      fs/nfs/filelayout/built-in.a
  CC      fs/nfs/flexfilelayout/flexfilelayout.o
  CC      drivers/misc/ics932s401.o
  CC      net/ipv4/tcp_ipv4.o
  CC      fs/overlayfs/readdir.o
  CC      drivers/block/loop.o
  CC      drivers/gpu/drm/drm_mode_config.o
  CC      drivers/misc/apds9802als.o
  CC      fs/nfs/flexfilelayout/flexfilelayoutdev.o
  CC      fs/overlayfs/copy_up.o
  CC      drivers/misc/isl29003.o
  CC      drivers/gpu/drm/drm_mode_object.o
  CC      drivers/block/virtio_blk.o
  CC      net/tls/tls_proc.o
  AR      fs/nfs/flexfilelayout/built-in.a
  AR      fs/nfs/built-in.a
  CC      fs/debugfs/inode.o
  CC      drivers/misc/eeprom/at24.o
  CC      drivers/mfd/act8945a.o
  CC      fs/overlayfs/export.o
  AR      drivers/block/built-in.a
  CC      drivers/gpu/drm/drm_modes.o
  CC      fs/tracefs/inode.o
  CC      net/tls/trace.o
  CC      drivers/mfd/bcm590xx.o
  AR      drivers/misc/eeprom/built-in.a
  CC      drivers/misc/sram-exec.o
  CC      fs/overlayfs/params.o
  CC      fs/debugfs/file.o
  CC      drivers/mfd/stmpe.o
  CC      fs/tracefs/event_inode.o
  CC      net/ipv4/tcp_minisocks.o
  CC      net/tls/tls_strp.o
  CC      drivers/misc/pci_endpoint_test.o
  CC      fs/overlayfs/xattrs.o
  CC      drivers/gpu/drm/drm_modeset_lock.o
  AR      fs/overlayfs/built-in.a
  AR      fs/tracefs/built-in.a
  CC      net/tls/tls_device.o
  CC      net/ipv4/tcp_cong.o
  AR      drivers/misc/built-in.a
  CC      net/tls/tls_device_fallback.o
  CC      drivers/mfd/stmpe-i2c.o
  AR      fs/debugfs/built-in.a
  CC      net/ipv4/tcp_metrics.o
  CC      fs/btrfs/super.o
  CC      drivers/mfd/tps65217.o
  CC      drivers/gpu/drm/drm_plane.o
  CC      net/ipv4/tcp_fastopen.o
  CC      drivers/mfd/tps65218.o
  CC      fs/pstore/inode.o
  CC      net/xfrm/xfrm_policy.o
  CC      net/unix/af_unix.o
  CC      drivers/gpu/drm/drm_prime.o
  AR      net/tls/built-in.a
  CC      net/ipv4/tcp_rate.o
  CC      fs/pstore/platform.o
  CC      drivers/mfd/tps65910.o
  CC      net/unix/garbage.o
  CC      drivers/gpu/drm/drm_property.o
  CC      drivers/mfd/twl-core.o
  CC      fs/pstore/ram.o
  CC      net/ipv4/tcp_recovery.o
  CC      drivers/gpu/drm/drm_syncobj.o
  CC      fs/pstore/ram_core.o
  CC      fs/btrfs/ctree.o
  CC      drivers/mfd/twl6030-irq.o
  CC      net/ipv4/tcp_ulp.o
  AR      fs/pstore/built-in.a
  CC      net/ipv4/tcp_offload.o
  CC      net/unix/sysctl_net_unix.o
  CC      drivers/gpu/drm/drm_sysfs.o
  CC      drivers/mfd/mfd-core.o
  CC      net/ipv4/tcp_plb.o
  CC      net/unix/unix_bpf.o
  CC      net/xfrm/xfrm_state.o
  CC      net/xfrm/xfrm_hash.o
  CC      drivers/mfd/ocelot-core.o
  CC      fs/btrfs/extent-tree.o
  CC      net/unix/diag.o
  CC      drivers/gpu/drm/drm_trace_points.o
  CC      drivers/mfd/ocelot-spi.o
  CC      drivers/gpu/drm/drm_vblank.o
  CC      net/ipv4/datagram.o
  CC      net/xfrm/xfrm_input.o
  AR      net/unix/built-in.a
  CC      drivers/mfd/motorola-cpcap.o
  CC      drivers/dma-buf/dma-buf.o
  CC      net/xfrm/xfrm_output.o
  CC      drivers/mfd/axp20x.o
  CC      net/ipv4/raw.o
  CC      drivers/gpu/drm/drm_vblank_work.o
  CC      drivers/dma-buf/dma-fence.o
  CC      drivers/gpu/drm/drm_vma_manager.o
  CC      net/ipv4/udp.o
  CC      drivers/mfd/axp20x-i2c.o
  CC      net/xfrm/xfrm_sysctl.o
  CC      net/ipv6/af_inet6.o
  CC      fs/btrfs/print-tree.o
  CC      drivers/gpu/drm/drm_writeback.o
  CC      drivers/mfd/max14577.o
  CC      drivers/dma-buf/dma-resv.o
  CC      net/xfrm/xfrm_replay.o
  CC      net/ipv4/udplite.o
  CC      fs/btrfs/root-tree.o
  CC      drivers/gpu/drm/drm_panel.o
  CC      drivers/mfd/max77686.o
  CC      drivers/mfd/max8907.o
  AR      drivers/dma-buf/built-in.a
  CC      net/ipv4/udp_offload.o
  CC      fs/btrfs/dir-item.o
  CC      net/ipv6/anycast.o
  CC      drivers/gpu/drm/drm_of.o
  CC      net/xfrm/xfrm_device.o
  CC      drivers/mfd/max8997.o
  CC      drivers/gpu/drm/drm_pci.o
  CC      fs/btrfs/file-item.o
  CC      drivers/gpu/drm/drm_debugfs.o
  CC      net/xfrm/xfrm_nat_keepalive.o
  CC      net/ipv6/ip6_output.o
  CC      fs/btrfs/inode-item.o
  CC      net/ipv4/arp.o
  CC      drivers/mfd/max8997-irq.o
  CC      net/ipv4/icmp.o
  CC      net/ipv4/devinet.o
  CC      drivers/mfd/max8998.o
  CC      drivers/gpu/drm/drm_debugfs_crc.o
  CC      fs/btrfs/disk-io.o
  CC      net/xfrm/xfrm_algo.o
  CC      drivers/mfd/abx500-core.o
  CC      drivers/gpu/drm/drm_panel_orientation_quirks.o
  CC      drivers/gpu/drm/drm_atomic_helper.o
  CC      net/xfrm/xfrm_user.o
  CC      net/xfrm/xfrm_state_bpf.o
  CC      drivers/mfd/db8500-prcmu.o
  CC      drivers/scsi/scsi.o
  CC      net/ipv4/af_inet.o
  CC      drivers/nvme/host/core.o
  CC      fs/btrfs/transaction.o
  CC      net/ipv6/ip6_input.o
  CC      drivers/gpu/drm/drm_atomic_state_helper.o
  CC      drivers/mfd/ab8500-core.o
  CC      drivers/scsi/hosts.o
  CC      drivers/mfd/ab8500-sysctrl.o
  AR      net/xfrm/built-in.a
  CC      drivers/gpu/drm/drm_bridge_connector.o
  CC      net/ipv4/igmp.o
  CC      fs/btrfs/inode.o
  CC      drivers/nvme/host/ioctl.o
  CC      drivers/scsi/scsi_ioctl.o
  CC      drivers/mfd/tps6586x.o
  CC      drivers/gpu/drm/drm_crtc_helper.o
  CC      drivers/ata/libata-core.o
  CC      net/ipv6/addrconf.o
  CC      drivers/scsi/scsicam.o
  CC      drivers/nvme/host/sysfs.o
  CC      drivers/mfd/omap-usb-host.o
  CC      drivers/gpu/drm/drm_damage_helper.o
  CC      drivers/scsi/scsi_error.o
  CC      net/ipv4/fib_frontend.o
  CC      drivers/mfd/tps65090.o
  CC      drivers/nvme/host/pr.o
  CC      drivers/mfd/palmas.o
  CC      drivers/gpu/drm/drm_encoder_slave.o
  CC      drivers/nvme/host/trace.o
  CC      drivers/scsi/scsi_lib.o
  CC      drivers/gpu/drm/drm_flip_work.o
  CC      drivers/mfd/rk8xx-core.o
  CC      drivers/nvme/host/pci.o
  CC      net/ipv4/fib_semantics.o
  CC      drivers/gpu/drm/drm_gem_atomic_helper.o
  CC      drivers/mfd/rk8xx-i2c.o
  CC      drivers/ata/libata-scsi.o
  CC      fs/btrfs/file.o
  CC      drivers/mfd/rn5t618.o
  CC      drivers/scsi/scsi_lib_dma.o
  CC      drivers/gpu/drm/drm_gem_framebuffer_helper.o
  CC      net/ipv6/addrlabel.o
  CC      drivers/mfd/sec-core.o
  CC      drivers/scsi/scsi_scan.o
  AR      drivers/nvme/host/built-in.a
  AR      drivers/nvme/built-in.a
  CC      net/packet/af_packet.o
  CC      drivers/mfd/as3711.o
  CC      drivers/gpu/drm/drm_modeset_helper.o
  CC      net/ipv6/route.o
  CC      net/ipv4/fib_trie.o
  CC      drivers/ata/libata-eh.o
  CC      drivers/mfd/as3722.o
  CC      fs/btrfs/defrag.o
  CC      drivers/scsi/scsi_sysfs.o
  CC      drivers/gpu/drm/drm_plane_helper.o
  CC      drivers/mfd/stpmic1.o
  CC      drivers/mfd/stmfx.o
  CC      drivers/gpu/drm/drm_probe_helper.o
  CC      fs/btrfs/extent_map.o
  CC      drivers/scsi/scsi_devinfo.o
  AR      drivers/mfd/built-in.a
  CC      drivers/ata/libata-transport.o
  CC      net/packet/diag.o
  CC      net/ipv4/fib_notifier.o
  CC      drivers/gpu/drm/drm_self_refresh_helper.o
  CC      fs/btrfs/sysfs.o
  CC      drivers/mtd/mtdcore.o
  CC      drivers/scsi/scsi_sysctl.o
  AR      net/packet/built-in.a
  CC      net/ipv6/ip6_fib.o
  CC      net/ipv4/inet_fragment.o
  CC      drivers/scsi/scsi_proc.o
  CC      drivers/gpu/drm/drm_simple_kms_helper.o
  CC      drivers/ata/libata-trace.o
  CC      fs/btrfs/accessors.o
  CC      drivers/ata/libata-sata.o
  CC      drivers/gpu/drm/bridge/panel.o
  CC      drivers/scsi/scsi_debugfs.o
  CC      drivers/mtd/mtdsuper.o
  CC      drivers/spi/spi.o
  CC      fs/btrfs/xattr.o
  CC      drivers/scsi/scsi_trace.o
  CC      net/ipv4/ping.o
  CC      drivers/gpu/drm/drm_fb_helper.o
  CC      drivers/ata/libata-sff.o
  CC      drivers/scsi/scsi_logging.o
  CC      net/ipv6/ipv6_sockglue.o
  CC      drivers/mtd/mtdconcat.o
  CC      fs/btrfs/ordered-data.o
  CC      drivers/scsi/scsi_pm.o
  CC      drivers/mtd/mtdchar.o
  CC      drivers/gpu/drm/display/drm_dp_aux_bus.o
  CC      net/ipv4/ip_tunnel_core.o
  CC      fs/btrfs/extent_io.o
  CC      drivers/scsi/scsi_bsg.o
  CC      drivers/ata/libata-pmp.o
  CC      drivers/gpu/drm/display/drm_dp_dual_mode_helper.o
  CC      drivers/scsi/sd.o
  CC      drivers/mtd/mtd_blkdevs.o
  CC      net/ipv6/ndisc.o
  CC      drivers/spi/spi-mem.o
  CC      drivers/ata/ahci.o
  CC      net/ipv4/gre_offload.o
  CC      drivers/gpu/drm/display/drm_dp_helper.o
  CC      drivers/mtd/nand/raw/nand_base.o
  CC      drivers/spi/spidev.o
  CC      drivers/ata/libahci.o
  CC      fs/btrfs/volumes.o
  CC      drivers/scsi/sr.o
  CC      net/ipv4/metrics.o
  CC      drivers/spi/spi-aspeed-smc.o
  CC      net/ipv6/udp.o
  CC      drivers/scsi/sr_ioctl.o
  CC      drivers/spi/spi-atmel.o
  CC      drivers/gpu/drm/display/drm_dp_mst_topology.o
  CC      drivers/scsi/sr_vendor.o
  CC      net/ipv4/netlink.o
  CC      drivers/ata/ahci_platform.o
  CC      drivers/spi/atmel-quadspi.o
  AR      drivers/scsi/built-in.a
  CC      drivers/gpu/drm/display/drm_dsc_helper.o
  CC      drivers/mtd/nand/raw/denali.o
  CC      drivers/ata/libahci_platform.o
  CC      drivers/spi/spi-bcm2835.o
  CC      net/ipv4/nexthop.o
  CC      fs/btrfs/async-thread.o
  CC      drivers/spi/spi-bcm2835aux.o
  CC      net/ipv6/udplite.o
  CC      drivers/mtd/nand/raw/atmel/nand-controller.o
  CC      drivers/ata/sata_highbank.o
  CC      drivers/gpu/drm/display/drm_hdmi_helper.o
  CC      net/ipv6/raw.o
  CC      drivers/spi/spi-bcm-qspi.o
  CC      fs/btrfs/ioctl.o
  CC      drivers/spmi/spmi.o
  CC      drivers/ata/ahci_brcm.o
  CC      drivers/gpu/drm/display/drm_scdc_helper.o
  AR      drivers/mtd/nand/raw/atmel/built-in.a
  CC      drivers/mtd/nand/raw/omap2.o
  CC      drivers/ata/ahci_dm816.o
  CC      drivers/spi/spi-bitbang.o
  CC      drivers/gpu/drm/display/drm_hdmi_state_helper.o
  CC      drivers/mtd/nand/raw/marvell_nand.o
  CC      drivers/ata/ahci_imx.o
  AR      drivers/spmi/built-in.a
  CC      fs/btrfs/locking.o
  CC      net/ipv4/udp_tunnel_stub.o
  CC      drivers/spi/spi-cadence.o
  CC      net/ipv6/icmp.o
  AR      drivers/gpu/drm/display/built-in.a
  CC      drivers/gpu/drm/tegra/drm.o
  CC      drivers/ata/ahci_sunxi.o
  CC      fs/btrfs/orphan.o
  CC      drivers/spi/spi-davinci.o
  CC      drivers/net/dummy.o
  CC      drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.o
  CC      fs/btrfs/export.o
  CC      drivers/gpu/drm/tegra/uapi.o
  CC      drivers/ata/ahci_st.o
  CC      net/ipv4/ip_tunnel.o
  CC      drivers/spi/spi-fsl-dspi.o
  CC      drivers/net/macvlan.o
  AR      drivers/mtd/nand/raw/gpmi-nand/built-in.a
  CC      drivers/mtd/nand/raw/brcmnand/brcmnand.o
  CC      drivers/gpu/drm/tegra/submit.o
  CC      drivers/ata/ahci_tegra.o
  CC      fs/btrfs/tree-log.o
  CC      net/ipv6/mcast.o
  CC      drivers/spi/spi-fsl-qspi.o
  CC      drivers/ata/ahci_qoriq.o
  CC      drivers/gpu/drm/tegra/firewall.o
  CC      drivers/spi/spi-gpio.o
  CC      drivers/ata/sata_mv.o
  CC      drivers/gpu/drm/tegra/gem.o
  AR      drivers/mtd/nand/raw/brcmnand/built-in.a
  CC      drivers/mtd/nand/raw/stm32_fmc2_nand.o
  CC      drivers/spi/spi-gxp.o
  CC      drivers/net/macvtap.o
  CC      net/ipv4/sysctl_net_ipv4.o
  CC      drivers/gpu/drm/tegra/fb.o
  CC      drivers/spi/spi-omap2-mcspi.o
  CC      drivers/net/mii.o
  CC      drivers/mtd/nand/raw/pl35x-nand-controller.o
  CC      drivers/gpu/drm/tegra/dp.o
  CC      net/ipv4/proc.o
  CC      drivers/ata/sata_rcar.o
  CC      fs/btrfs/free-space-cache.o
  CC      drivers/spi/spi-orion.o
  CC      drivers/gpu/drm/tegra/hub.o
  AR      drivers/mtd/nand/raw/built-in.a
  AR      drivers/mtd/nand/built-in.a
  CC      drivers/mtd/spi-nor/core.o
  AR      drivers/ata/built-in.a
  CC      net/ipv6/reassembly.o
  CC      drivers/mtd/ubi/vtbl.o
  CC      drivers/net/mdio.o
  CC      net/ipv4/fib_rules.o
  CC      drivers/spi/spi-pl022.o
  CC      drivers/mtd/ubi/vmt.o
  CC      drivers/spi/spi-qup.o
  CC      drivers/net/loopback.o
  CC      drivers/gpu/drm/tegra/plane.o
  CC      drivers/mtd/ubi/upd.o
  CC      drivers/mtd/spi-nor/sfdp.o
  CC      net/ipv6/tcp_ipv6.o
  CC      net/ipv4/esp4.o
  CC      fs/btrfs/zlib.o
  CC      drivers/mtd/ubi/build.o
  CC      drivers/gpu/drm/tegra/dc.o
  CC      drivers/spi/spi-rockchip.o
  CC      drivers/mtd/spi-nor/swp.o
  CC      drivers/net/netconsole.o
  CC      fs/btrfs/lzo.o
  CC      drivers/spi/spi-rspi.o
  CC      drivers/mtd/ubi/cdev.o
  CC      drivers/mtd/spi-nor/otp.o
  CC      fs/btrfs/zstd.o
  CC      net/ipv4/tunnel4.o
  CC      drivers/mtd/ubi/kapi.o
  CC      drivers/net/phy/mdio-boardinfo.o
  CC      drivers/spi/spi-s3c64xx.o
  CC      drivers/mtd/spi-nor/sysfs.o
  CC      drivers/gpu/drm/tegra/output.o
  CC      drivers/mtd/spi-nor/atmel.o
  CC      fs/btrfs/compression.o
  CC      drivers/mtd/ubi/eba.o
  CC      drivers/spi/spi-sc18is602.o
  CC      drivers/net/phy/stubs.o
  CC      net/ipv6/ping.o
  CC      drivers/mtd/spi-nor/eon.o
  CC      drivers/gpu/drm/tegra/rgb.o
  CC      net/ipv4/ipconfig.o
  CC      drivers/spi/spi-sh-hspi.o
  CC      drivers/mtd/spi-nor/esmt.o
  CC      drivers/mtd/ubi/io.o
  CC      fs/btrfs/delayed-ref.o
  CC      drivers/gpu/drm/tegra/hdmi.o
  CC      drivers/mtd/spi-nor/everspin.o
  CC      drivers/net/phy/mdio_devres.o
  CC      drivers/spi/spi-sh-msiof.o
  CC      net/ipv6/exthdrs.o
  CC      drivers/mtd/ubi/wl.o
  CC      drivers/mtd/spi-nor/gigadevice.o
  CC      net/ipv4/inet_diag.o
  CC      drivers/mtd/spi-nor/intel.o
  CC      fs/btrfs/relocation.o
  CC      drivers/net/phy/phylink.o
  CC      drivers/spi/spi-stm32.o
  CC      drivers/mtd/ubi/attach.o
  CC      drivers/mtd/spi-nor/issi.o
  CC      drivers/mtd/spi-nor/macronix.o
  CC      drivers/gpu/drm/tegra/dsi.o
  CC      drivers/spi/spi-stm32-qspi.o
  CC      drivers/mtd/ubi/misc.o
  CC      drivers/mtd/spi-nor/micron-st.o
  CC      net/ipv4/tcp_diag.o
  CC      drivers/mtd/ubi/debug.o
  CC      drivers/mtd/spi-nor/spansion.o
  CC      drivers/spi/spi-sun4i.o
  CC      net/ipv6/datagram.o
  CC      drivers/net/phy/phy.o
  CC      fs/btrfs/delayed-inode.o
  AR      drivers/mtd/ubi/built-in.a
  CC      drivers/uio/uio.o
  CC      net/ipv4/tcp_cubic.o
  CC      drivers/spi/spi-sun6i.o
  CC      drivers/mtd/spi-nor/sst.o
  CC      drivers/gpu/drm/tegra/sor.o
  CC      drivers/mtd/spi-nor/winbond.o
  CC      drivers/spi/spi-tegra114.o
  CC      drivers/uio/uio_cif.o
  CC      net/ipv4/tcp_bpf.o
  CC      drivers/mtd/spi-nor/xmc.o
  CC      drivers/uio/uio_dmem_genirq.o
  CC      fs/btrfs/scrub.o
  CC      drivers/net/phy/phy-c45.o
  CC      net/ipv6/ip6_flowlabel.o
  CC      drivers/mtd/spi-nor/debugfs.o
  CC      drivers/spi/spi-tegra20-sflash.o
  CC      drivers/uio/uio_aec.o
  AR      drivers/mtd/spi-nor/built-in.a
  AR      drivers/mtd/built-in.a
  CC      drivers/cdrom/cdrom.o
  CC      drivers/spi/spi-tegra20-slink.o
  CC      drivers/uio/uio_sercos3.o
  CC      net/ipv4/udp_bpf.o
  CC      drivers/net/phy/phy-core.o
  CC      drivers/uio/uio_pci_generic.o
  CC      drivers/gpu/drm/tegra/dpaux.o
  CC      drivers/spi/spi-xilinx.o
  CC      net/ipv6/inet6_connection_sock.o
  CC      fs/btrfs/backref.o
  CC      drivers/uio/uio_netx.o
  CC      drivers/spi/spi-slave-time.o
  CC      drivers/uio/uio_mf624.o
  AR      drivers/cdrom/built-in.a
  CC      net/ipv4/xfrm4_policy.o
  CC      drivers/gpu/drm/tegra/gr2d.o
  CC      drivers/net/phy/phy_device.o
  CC      drivers/spi/spi-slave-system-control.o
  CC      drivers/net/phy/linkmode.o
  AR      drivers/uio/built-in.a
  CC      net/key/af_key.o
  CC      drivers/gpu/drm/tegra/gr3d.o
  CC      net/ipv6/udp_offload.o
  CC      net/ipv4/xfrm4_state.o
  AR      drivers/spi/built-in.a
  CC      drivers/net/phy/phy_link_topology.o
  CC      fs/btrfs/qgroup.o
  CC      fs/btrfs/send.o
  CC      drivers/gpu/drm/tegra/falcon.o
  CC      net/ipv6/seg6.o
  CC      net/ipv4/xfrm4_input.o
  CC      drivers/gpu/drm/tegra/vic.o
  CC      net/ipv4/xfrm4_output.o
  AR      net/key/built-in.a
  CC      drivers/net/phy/mdio_bus.o
  CC      net/ipv6/fib6_notifier.o
  CC      net/bridge/br.o
  CC      drivers/gpu/drm/tegra/nvdec.o
  CC      net/ipv6/rpl.o
  CC      net/ipv4/xfrm4_protocol.o
  CC      net/bridge/br_device.o
  CC      drivers/gpu/drm/tegra/trace.o
  CC      drivers/gpu/drm/panel/panel-simple.o
  CC      net/ipv6/ioam6.o
  CC      drivers/net/phy/mdio_device.o
  CC      drivers/gpu/drm/tegra/fbdev.o
  CC      drivers/gpu/drm/panel/panel-edp.o
  CC      net/bridge/br_fdb.o
  CC      fs/btrfs/dev-replace.o
  AR      net/ipv4/built-in.a
  CC      net/ipv6/sysctl_net_ipv6.o
  AR      drivers/gpu/drm/tegra/built-in.a
  CC      drivers/usb/common/common.o
  CC      net/devlink/core.o
  CC      drivers/net/phy/swphy.o
  AR      drivers/gpu/drm/panel/built-in.a
  CC      drivers/net/mdio/fwnode_mdio.o
  AR      drivers/gpu/drm/built-in.a
  AR      drivers/gpu/built-in.a
  CC      net/devlink/netlink.o
  CC      net/ipv6/xfrm6_policy.o
  CC      drivers/usb/common/usb-conn-gpio.o
  CC      fs/btrfs/raid56.o
  CC      drivers/net/phy/sfp.o
  AR      drivers/usb/common/built-in.a
  CC      fs/btrfs/uuid-tree.o
  CC      drivers/net/mdio/of_mdio.o
  CC      drivers/usb/core/usb.o
  CC      net/ipv6/xfrm6_state.o
  CC      net/bridge/br_forward.o
  CC      drivers/net/pcs/pcs-xpcs.o
  CC      net/devlink/netlink_gen.o
  CC      net/ipv6/xfrm6_input.o
  CC      fs/btrfs/props.o
  CC      drivers/net/phy/sfp-bus.o
  CC      drivers/usb/core/hub.o
  CC      drivers/net/mdio/mdio-bcm-iproc.o
  CC      net/devlink/dev.o
  CC      fs/btrfs/free-space-tree.o
  CC      drivers/net/mdio/mdio-bcm-unimac.o
  CC      net/bridge/br_if.o
  CC      drivers/net/pcs/pcs-xpcs-plat.o
  CC      drivers/net/phy/ax88796b.o
  CC      net/ipv6/xfrm6_output.o
  CC      drivers/net/mdio/mdio-bitbang.o
  CC      drivers/net/pcs/pcs-xpcs-nxp.o
  CC      fs/btrfs/tree-checker.o
  CC      drivers/net/phy/bcm54140.o
  CC      net/devlink/port.o
  CC      net/ipv6/xfrm6_protocol.o
  CC      drivers/net/pcs/pcs-xpcs-wx.o
  CC      net/bridge/br_input.o
  CC      drivers/net/mdio/mdio-i2c.o
  CC      drivers/usb/core/hcd.o
  CC      drivers/net/phy/bcm7xxx.o
  CC      drivers/net/pcs/pcs-lynx.o
  CC      fs/btrfs/space-info.o
  CC      drivers/net/phy/bcm84881.o
  CC      drivers/net/mdio/mdio-mscc-miim.o
  CC      net/ipv6/fib6_rules.o
  CC      net/devlink/sb.o
  CC      drivers/usb/core/urb.o
  CC      net/bridge/br_ioctl.o
  CC      drivers/net/phy/bcm-phy-lib.o
  CC      drivers/net/pcs/pcs-mtk-lynxi.o
  CC      fs/btrfs/block-rsv.o
  CC      drivers/net/mdio/mdio-sun4i.o
  CC      drivers/usb/core/message.o
  CC      net/bridge/br_stp.o
  CC      net/ipv6/proc.o
  CC      drivers/net/pcs/pcs-rzn1-miic.o
  CC      drivers/net/mdio/mdio-mux.o
  CC      fs/btrfs/delalloc-space.o
  CC      drivers/net/phy/broadcom.o
  CC      net/devlink/dpipe.o
  CC      net/ipv6/sit.o
  AR      drivers/net/pcs/built-in.a
  CC      net/bridge/br_stp_bpdu.o
  CC      drivers/net/mdio/mdio-mux-bcm-iproc.o
  CC      drivers/net/phy/dp83867.o
  CC      fs/btrfs/block-group.o
  CC      drivers/usb/core/buffer.o
  CC      net/bridge/br_stp_if.o
  CC      drivers/usb/core/sysfs.o
  AR      drivers/net/mdio/built-in.a
  CC      net/devlink/resource.o
  CC      net/bridge/br_stp_timer.o
  CC      drivers/net/phy/fixed_phy.o
  CC      net/devlink/param.o
  CC      drivers/net/team/team_core.o
  CC      drivers/usb/core/devio.o
  CC      net/ipv6/addrconf_core.o
  CC      net/bridge/br_netlink.o
  CC      drivers/net/phy/icplus.o
  CC      drivers/net/tap.o
  CC      fs/btrfs/discard.o
  CC      net/devlink/region.o
  CC      net/ipv6/exthdrs_core.o
  CC      drivers/net/phy/marvell10g.o
  CC      net/bridge/br_netlink_tunnel.o
  CC      drivers/usb/core/devices.o
  CC      fs/btrfs/reflink.o
  CC      drivers/net/team/team_nl.o
  CC      drivers/usb/core/phy.o
  CC      drivers/net/phy/marvell.o
  CC      net/bridge/br_arp_nd_proxy.o
  CC      net/ipv6/ip6_checksum.o
  CC      drivers/net/team/team_mode_broadcast.o
  CC      fs/btrfs/subpage.o
  CC      drivers/net/veth.o
  CC      net/devlink/health.o
  CC      drivers/usb/core/port.o
  CC      drivers/net/team/team_mode_roundrobin.o
  CC      net/bridge/br_sysfs_if.o
  CC      drivers/net/phy/mediatek-ge.o
  CC      net/ipv6/ip6_icmp.o
  CC      drivers/usb/core/of.o
  CC      drivers/net/team/team_mode_random.o
  CC      fs/btrfs/tree-mod-log.o
  CC      drivers/net/phy/meson-gxl.o
  CC      net/bridge/br_sysfs_br.o
  CC      net/ipv6/output_core.o
  CC      drivers/net/team/team_mode_activebackup.o
  CC      net/devlink/trap.o
  CC      drivers/usb/core/hcd-pci.o
  CC      net/devlink/rate.o
  CC      fs/btrfs/extent-io-tree.o
  CC      drivers/net/phy/micrel.o
  CC      drivers/net/team/team_mode_loadbalance.o
  CC      net/bridge/br_multicast.o
  AR      drivers/usb/core/built-in.a
  CC      drivers/usb/phy/of.o
  CC      net/ipv6/protocol.o
  CC      fs/btrfs/fs.o
  AR      drivers/net/team/built-in.a
  CC      drivers/usb/dwc3/core.o
  CC      drivers/usb/dwc2/core.o
  CC      drivers/usb/phy/phy-ab8500-usb.o
  CC      net/devlink/linecard.o
  CC      fs/btrfs/messages.o
  CC      drivers/net/phy/microchip.o
  CC      net/ipv6/ip6_offload.o
  CC      fs/btrfs/bio.o
  CC      drivers/usb/phy/phy-generic.o
  CC      drivers/net/phy/nxp-c45-tja11xx.o
  CC      drivers/usb/dwc2/core_intr.o
  CC      drivers/usb/phy/phy-tegra-usb.o
  CC      net/ipv6/tcpv6_offload.o
  AR      net/devlink/built-in.a
  CC      drivers/usb/phy/phy-isp1301.o
  CC      fs/btrfs/lru_cache.o
  CC      drivers/usb/dwc2/platform.o
  CC      drivers/net/phy/nxp-tja11xx.o
  CC      drivers/usb/dwc3/trace.o
  CC      fs/btrfs/raid-stripe-tree.o
  CC      drivers/usb/dwc2/drd.o
  CC      net/bridge/br_mdb.o
  CC      net/ipv6/exthdrs_offload.o
  CC      drivers/usb/phy/phy-mxs-usb.o
  CC      drivers/net/phy/realtek.o
  CC      drivers/net/phy/qcom/qcom-phy-lib.o
  CC      fs/btrfs/fiemap.o
  CC      drivers/usb/dwc3/host.o
  CC      drivers/usb/dwc2/params.o
  CC      net/ipv6/inet6_hashtables.o
  CC      drivers/usb/phy/phy-ulpi.o
  CC      drivers/usb/dwc3/gadget.o
  CC      drivers/usb/dwc2/hcd.o
  CC      fs/btrfs/direct-io.o
  CC      net/bridge/br_multicast_eht.o
  CC      drivers/net/phy/qcom/at803x.o
  CC      drivers/usb/phy/phy-ulpi-viewport.o
  CC      net/ipv6/mcast_snoop.o
  AR      fs/btrfs/built-in.a
  AR      fs/built-in.a
  CC      drivers/usb/isp1760/isp1760-core.o
  CC      drivers/usb/cdns3/core.o
  AR      drivers/usb/phy/built-in.a
  CC      drivers/usb/dwc2/hcd_intr.o
  CC      net/bridge/br_vlan.o
  AR      drivers/net/phy/qcom/built-in.a
  CC      drivers/net/phy/rockchip.o
  CC      drivers/usb/isp1760/isp1760-if.o
  AR      net/ipv6/built-in.a
  CC      drivers/usb/cdns3/drd.o
  CC      drivers/net/phy/smsc.o
  CC      net/dsa/stubs.o
  CC      net/can/af_can.o
  CC      drivers/usb/isp1760/isp1760-hcd.o
  CC      drivers/usb/dwc2/hcd_queue.o
  CC      drivers/usb/dwc3/ep0.o
  CC      drivers/usb/cdns3/cdns3-plat.o
  CC      drivers/usb/dwc2/hcd_ddma.o
  CC      drivers/net/phy/vitesse.o
  CC      drivers/usb/dwc3/drd.o
  AR      drivers/usb/cdns3/built-in.a
  CC      net/dsa/conduit.o
  CC      drivers/usb/isp1760/isp1760-udc.o
  CC      net/can/proc.o
  CC      net/sunrpc/clnt.o
  AR      drivers/net/phy/built-in.a
  CC      drivers/net/virtio_net.o
  CC      net/bridge/br_vlan_tunnel.o
  CC      drivers/usb/dwc2/gadget.o
  CC      net/dsa/devlink.o
  AR      drivers/usb/isp1760/built-in.a
  CC      drivers/usb/dwc3/debugfs.o
  CC      net/bridge/br_vlan_options.o
  CC      net/can/raw.o
  CC      drivers/usb/dwc2/debugfs.o
  CC      drivers/usb/dwc3/dwc3-omap.o
  CC      net/bridge/br_mst.o
  CC      net/can/bcm.o
  CC      net/dsa/dsa.o
  CC      drivers/usb/dwc3/dwc3-exynos.o
  CC      drivers/input/serio/serport.o
  AR      drivers/usb/dwc2/built-in.a
  CC      net/bridge/br_switchdev.o
  CC      drivers/usb/dwc3/dwc3-haps.o
  CC      net/sunrpc/xprt.o
  CC      drivers/input/serio/ambakmi.o
  CC      net/can/gw.o
  CC      net/bridge/br_mrp_switchdev.o
  CC      drivers/usb/dwc3/dwc3-keystone.o
  AR      drivers/input/serio/built-in.a
  CC      net/dsa/netlink.o
  CC      drivers/net/nlmon.o
  CC      drivers/usb/dwc3/dwc3-meson-g12a.o
  CC      net/strparser/strparser.o
  CC      drivers/usb/host/pci-quirks.o
  CC      net/bridge/br_mrp.o
  AR      net/can/built-in.a
  CC      drivers/usb/dwc3/dwc3-of-simple.o
  CC      net/dsa/port.o
  CC      drivers/net/can/dev/skb.o
  CC      net/sunrpc/socklib.o
  CC      drivers/usb/dwc3/dwc3-st.o
  CC      drivers/usb/host/ehci-hcd.o
  CC      net/bridge/br_mrp_netlink.o
  AR      net/strparser/built-in.a
  CC      drivers/net/can/dev/calc_bittiming.o
  CC      net/dsa/switch.o
  CC      drivers/usb/dwc3/dwc3-qcom.o
  CC      drivers/net/can/dev/bittiming.o
  CC      net/sunrpc/xprtsock.o
  CC      drivers/net/dsa/bcm_sf2.o
  CC      drivers/net/dsa/bcm_sf2_cfp.o
  AR      drivers/usb/dwc3/built-in.a
  CC      drivers/net/can/dev/dev.o
  CC      net/bridge/br_cfm.o
  CC      net/dsa/tag.o
  CC      drivers/input/joydev.o
  CC      drivers/net/can/dev/length.o
  CC      drivers/net/dsa/lantiq_gswip.o
  CC      net/bridge/br_cfm_netlink.o
  CC      drivers/input/evdev.o
  CC      drivers/usb/host/ehci-pci.o
  CC      net/dsa/tag_8021q.o
  CC      net/sunrpc/sched.o
  CC      drivers/net/can/dev/netlink.o
  CC      drivers/usb/host/ehci-platform.o
  CC      drivers/usb/storage/scsiglue.o
  AR      net/bridge/built-in.a
  CC      drivers/usb/host/ehci-omap.o
  CC      drivers/input/mouse/elan_i2c_core.o
  CC      drivers/net/dsa/mt7530.o
  CC      drivers/input/mouse/elan_i2c_i2c.o
  CC      drivers/net/can/dev/rx-offload.o
  CC      drivers/usb/host/ehci-orion.o
  CC      net/dsa/trace.o
  CC      drivers/net/dsa/mt7530-mdio.o
  CC      drivers/usb/storage/protocol.o
  CC      drivers/usb/host/ehci-spear.o
  CC      drivers/input/mouse/synaptics.o
  CC      drivers/usb/host/ehci-st.o
  CC      drivers/usb/storage/transport.o
  CC      net/sunrpc/auth.o
  AR      drivers/net/can/dev/built-in.a
  CC      drivers/net/can/spi/mcp251x.o
  CC      drivers/input/mouse/elantech.o
  CC      drivers/usb/host/ehci-atmel.o
  CC      net/dsa/user.o
  CC      drivers/net/dsa/mt7530-mmio.o
  CC      drivers/usb/host/ohci-hcd.o
  CC      drivers/usb/storage/usb.o
  AR      drivers/net/can/spi/built-in.a
  CC      drivers/net/can/sun4i_can.o
  CC      drivers/input/mouse/cypress_ps2.o
  CC      drivers/net/dsa/mv88e6060.o
  CC      drivers/usb/misc/usb3503.o
  CC      drivers/input/mouse/psmouse-smbus.o
  CC      drivers/net/can/xilinx_can.o
  CC      drivers/usb/storage/initializers.o
  AR      drivers/usb/misc/built-in.a
  AR      drivers/input/mouse/built-in.a
  CC      drivers/net/dsa/rzn1_a5psw.o
  CC      drivers/input/touchscreen/stmpe-ts.o
  CC      drivers/usb/storage/sierra_ms.o
  CC      drivers/net/ethernet/allwinner/sun4i-emac.o
  CC      drivers/usb/host/ohci-pci.o
  CC      net/dsa/tag_ar9331.o
  AR      drivers/input/touchscreen/built-in.a
  AR      drivers/input/built-in.a
  CC      drivers/usb/storage/option_ms.o
  CC      net/8021q/vlan_core.o
  CC      net/sunrpc/auth_null.o
  AR      drivers/net/can/built-in.a
  CC      net/dsa/tag_brcm.o
  CC      drivers/usb/host/ohci-platform.o
  AR      drivers/usb/storage/built-in.a
  CC      net/8021q/vlan.o
  CC      drivers/net/dsa/lan9303-core.o
  AR      drivers/net/ethernet/allwinner/built-in.a
  CC      drivers/net/ethernet/cadence/macb_main.o
  CC      net/sunrpc/auth_tls.o
  CC      drivers/net/ethernet/cadence/macb_ptp.o
  CC      drivers/usb/host/ohci-spear.o
  CC      net/dsa/tag_dsa.o
  CC      drivers/usb/host/ohci-st.o
  CC      drivers/rtc/interface.o
  CC      net/8021q/vlan_dev.o
  CC      net/sunrpc/auth_unix.o
  CC      drivers/usb/host/ohci-at91.o
  CC      net/dsa/tag_gswip.o
  CC      drivers/net/dsa/lan9303_i2c.o
  CC      drivers/usb/chipidea/core.o
  CC      drivers/usb/host/xhci.o
  CC      net/sunrpc/svc.o
  CC      net/8021q/vlan_netlink.o
  CC      net/dsa/tag_ksz.o
  CC      drivers/net/dsa/lan9303_mdio.o
  AR      drivers/net/ethernet/cadence/built-in.a
  CC      drivers/net/ethernet/broadcom/bcm4908_enet.o
  CC      drivers/rtc/rtc-brcmstb-waketimer.o
  CC      net/8021q/vlanproc.o
  CC      drivers/usb/chipidea/otg.o
  CC      net/dsa/tag_lan9303.o
  CC      drivers/net/dsa/vitesse-vsc73xx-core.o
  CC      drivers/rtc/rtc-ds1307.o
  AR      net/8021q/built-in.a
  CC      net/sunrpc/svcsock.o
  CC      drivers/net/ethernet/broadcom/bgmac.o
  CC      drivers/usb/chipidea/debug.o
  CC      net/dsa/tag_mtk.o
  CC      drivers/i2c/i2c-boardinfo.o
  CC      drivers/rtc/rtc-em3027.o
  CC      drivers/usb/chipidea/ulpi.o
  CC      drivers/usb/host/xhci-mem.o
  CC      drivers/rtc/rtc-max77686.o
  CC      net/dsa/tag_none.o
  CC      drivers/usb/chipidea/udc.o
  CC      drivers/i2c/i2c-core-base.o
  CC      drivers/net/dsa/vitesse-vsc73xx-platform.o
  CC      drivers/rtc/rtc-palmas.o
  CC      drivers/net/ethernet/broadcom/bgmac-bcma.o
  CC      net/dsa/tag_ocelot.o
  CC      drivers/net/dsa/vitesse-vsc73xx-spi.o
  CC      drivers/rtc/rtc-pl031.o
  CC      net/sunrpc/svcauth.o
  CC      drivers/usb/chipidea/trace.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../net/dsa/tag_ocelot.c:4:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_ocelot.o] Error 1
make[4]: *** [../scripts/Makefile.build:485: net/dsa] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC      drivers/usb/host/xhci-ext-caps.o
  CC      drivers/net/dsa/b53/b53_common.o
  CC      drivers/net/ethernet/broadcom/bgmac-bcma-mdio.o
  AR      drivers/rtc/built-in.a
  CC      drivers/i3c/device.o
  CC      drivers/net/dsa/b53/b53_spi.o
  CC      drivers/i2c/i2c-core-smbus.o
  CC      drivers/usb/chipidea/host.o
  CC      drivers/usb/host/xhci-ring.o
  CC      drivers/usb/chipidea/ci_hdrc_usb2.o
  CC      drivers/i3c/master.o
  CC      drivers/net/ethernet/broadcom/bgmac-platform.o
  CC      net/sunrpc/svcauth_unix.o
  CC      drivers/usb/gadget/udc/core.o
  CC      drivers/usb/chipidea/ci_hdrc_msm.o
  CC      drivers/i2c/i2c-core-slave.o
  CC      drivers/net/ethernet/broadcom/asp2/bcmasp.o
  CC      drivers/net/dsa/b53/b53_mdio.o
  CC      drivers/usb/chipidea/ci_hdrc_npcm.o
  CC      drivers/usb/gadget/udc/trace.o
  CC      drivers/usb/chipidea/ci_hdrc_pci.o
  CC      drivers/i3c/master/svc-i3c-master.o
  CC      drivers/usb/host/xhci-hub.o
  CC      drivers/i2c/i2c-core-of.o
  CC      drivers/net/dsa/b53/b53_mmap.o
  CC      drivers/usb/chipidea/usbmisc_imx.o
  CC      net/sunrpc/addr.o
  CC      drivers/usb/gadget/udc/snps_udc_core.o
  CC      drivers/net/ethernet/broadcom/asp2/bcmasp_intf.o
  AR      drivers/i3c/master/built-in.a
  AR      drivers/i3c/built-in.a
  CC      net/sunrpc/rpcb_clnt.o
  CC      drivers/i2c/i2c-smbus.o
  CC      drivers/net/dsa/b53/b53_serdes.o
  CC      drivers/usb/chipidea/ci_hdrc_imx.o
  CC      drivers/usb/host/xhci-trace.o
  CC      drivers/usb/gadget/udc/snps_udc_plat.o
  CC      drivers/i2c/i2c-dev.o
  CC      drivers/net/ethernet/broadcom/asp2/bcmasp_ethtool.o
  CC      drivers/usb/chipidea/ci_hdrc_tegra.o
  CC      drivers/usb/gadget/udc/bdc/bdc_core.o
  CC      net/sunrpc/timer.o
  AR      drivers/net/dsa/b53/built-in.a
  CC      drivers/net/dsa/microchip/ksz_common.o
  CC      drivers/i2c/i2c-mux.o
  AR      drivers/usb/chipidea/built-in.a
  CC      drivers/net/usb/pegasus.o
  CC      drivers/net/dsa/mv88e6xxx/chip.o
  AR      drivers/net/ethernet/broadcom/asp2/built-in.a
  AR      drivers/net/ethernet/broadcom/built-in.a
  CC      drivers/net/ethernet/calxeda/xgmac.o
  CC      drivers/usb/gadget/udc/bdc/bdc_cmd.o
  CC      drivers/usb/host/xhci-pci.o
  CC      drivers/usb/gadget/udc/bdc/bdc_ep.o
  CC      net/sunrpc/xdr.o
  CC      drivers/i2c/algos/i2c-algo-bit.o
  CC      drivers/net/usb/r8152.o
  AR      drivers/net/ethernet/calxeda/built-in.a
  CC      drivers/net/ethernet/freescale/fec_main.o
  CC      drivers/usb/host/xhci-plat.o
  CC      drivers/usb/gadget/udc/bdc/bdc_udc.o
  AR      drivers/i2c/algos/built-in.a
  CC      drivers/i2c/busses/i2c-bcm2835.o
  CC      drivers/net/dsa/microchip/ksz_dcb.o
  AR      drivers/usb/gadget/udc/bdc/built-in.a
  AR      drivers/usb/gadget/udc/built-in.a
  AR      drivers/usb/gadget/built-in.a
  CC      drivers/i2c/muxes/i2c-demux-pinctrl.o
  CC      drivers/net/dsa/mv88e6xxx/devlink.o
  AR      drivers/usb/host/built-in.a
  CC      drivers/usb/typec/tcpm/tcpci.o
  CC      drivers/i2c/busses/i2c-bcm-iproc.o
  CC      drivers/i2c/muxes/i2c-mux-gpio.o
  CC      drivers/net/dsa/microchip/ksz9477.o
  CC      net/sunrpc/sunrpc_syms.o
  CC      drivers/net/dsa/mv88e6xxx/global1.o
  CC      drivers/i2c/muxes/i2c-mux-gpmux.o
  CC      drivers/i2c/busses/i2c-cadence.o
  AR      drivers/usb/typec/tcpm/built-in.a
  AR      drivers/usb/typec/built-in.a
  AR      drivers/usb/built-in.a
  CC      drivers/media/i2c/ov5640.o
  CC      drivers/net/ethernet/freescale/fec_ptp.o
  CC      drivers/i2c/muxes/i2c-mux-pca954x.o
  CC      drivers/net/dsa/mv88e6xxx/global1_atu.o
  CC      net/sunrpc/cache.o
  CC      drivers/i2c/busses/i2c-davinci.o
  CC      drivers/net/dsa/microchip/ksz9477_acl.o
  CC      drivers/i2c/muxes/i2c-mux-pinctrl.o
  CC      drivers/net/ethernet/freescale/fsl_pq_mdio.o
  AR      drivers/media/i2c/built-in.a
  CC      drivers/media/mc/mc-device.o
  CC      drivers/i2c/busses/i2c-designware-common.o
  AR      drivers/i2c/muxes/built-in.a
  CC      drivers/i2c/i2c-slave-eeprom.o
  CC      drivers/net/dsa/mv88e6xxx/global1_vtu.o
  CC      drivers/net/dsa/microchip/ksz9477_tc_flower.o
  CC      drivers/net/ethernet/freescale/gianfar.o
  CC      drivers/net/usb/smsc75xx.o
  CC      drivers/net/dsa/ocelot/felix.o
  CC      drivers/media/mc/mc-devnode.o
  CC      drivers/i2c/busses/i2c-designware-master.o
  CC      drivers/net/dsa/mv88e6xxx/global2.o
  CC      drivers/net/dsa/microchip/ksz8.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/felix.c:17:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/felix.o] Error 1
make[6]: *** [../scripts/Makefile.build:485: drivers/net/dsa/ocelot] Error 2
make[6]: *** Waiting for unfinished jobs....
  CC      drivers/net/net_failover.o
  CC      drivers/media/mc/mc-entity.o
  CC      net/sunrpc/rpc_pipe.o
  CC      drivers/net/usb/smsc95xx.o
  CC      drivers/i2c/busses/i2c-designware-platdrv.o
  CC      drivers/net/ethernet/freescale/gianfar_ethtool.o
  CC      drivers/net/dsa/mv88e6xxx/global2_avb.o
  CC      drivers/media/mc/mc-request.o
  CC      drivers/net/dsa/microchip/lan937x_main.o
  CC      drivers/i2c/busses/i2c-exynos5.o
  CC      drivers/net/usb/usbnet.o
  CC      drivers/net/dsa/mv88e6xxx/global2_scratch.o
  CC      net/sunrpc/sysfs.o
  CC      drivers/i2c/busses/i2c-imx.o
  CC      drivers/net/ethernet/freescale/enetc/enetc_pci_mdio.o
  CC      drivers/net/dsa/mv88e6xxx/pcs-6185.o
  CC      drivers/media/mc/mc-dev-allocator.o
  AR      drivers/net/dsa/microchip/built-in.a
  CC      drivers/net/ethernet/freescale/enetc/enetc_mdio.o
  CC      drivers/media/v4l2-core/v4l2-async.o
  CC      net/sunrpc/svc_xprt.o
  CC      drivers/i2c/busses/i2c-meson.o
  AR      drivers/media/mc/built-in.a
  CC      drivers/net/dsa/mv88e6xxx/pcs-6352.o
  CC      drivers/ptp/ptp_clock.o
  CC      drivers/media/dvb-core/dvbdev.o
  AR      drivers/net/usb/built-in.a
  CC      drivers/ptp/ptp_chardev.o
  CC      drivers/i2c/busses/i2c-mv64xxx.o
  CC      drivers/media/v4l2-core/v4l2-fwnode.o
  AR      drivers/net/ethernet/freescale/enetc/built-in.a
  AR      drivers/net/ethernet/freescale/built-in.a
  CC      drivers/net/ethernet/hisilicon/hix5hd2_gmac.o
  CC      drivers/net/dsa/mv88e6xxx/pcs-639x.o
  CC      drivers/power/supply/sbs-battery.o
  CC      drivers/ptp/ptp_sysfs.o
  CC      drivers/media/dvb-core/dmxdev.o
  CC      drivers/i2c/busses/i2c-nomadik.o
  CC      drivers/ptp/ptp_vclock.o
  CC      drivers/media/v4l2-core/v4l2-dv-timings.o
  AR      drivers/net/ethernet/hisilicon/built-in.a
  CC      drivers/net/ethernet/intel/libeth/rx.o
  AR      drivers/power/supply/built-in.a
  AR      drivers/power/built-in.a
  CC      drivers/net/dsa/mv88e6xxx/phy.o
  CC      drivers/net/ethernet/intel/libie/rx.o
  CC      net/sunrpc/xprtmultipath.o
  CC      drivers/i2c/busses/i2c-omap.o
  CC      drivers/media/dvb-core/dvb_ca_en50221.o
  CC      drivers/ptp/ptp_dte.o
  CC      drivers/media/v4l2-core/v4l2-dev.o
  CC      drivers/net/dsa/mv88e6xxx/port.o
  CC      drivers/i2c/busses/i2c-owl.o
  CC      net/sunrpc/backchannel_rqst.o
  AR      drivers/net/ethernet/intel/libie/built-in.a
  AR      drivers/net/ethernet/intel/libeth/built-in.a
  CC      drivers/hwmon/hwmon.o
  CC      drivers/net/ethernet/intel/e1000e/82571.o
  CC      drivers/ptp/ptp_kvm_common.o
  CC      drivers/i2c/busses/i2c-qup.o
  CC      drivers/media/dvb-core/dvb_frontend.o
  CC      drivers/ptp/ptp_qoriq.o
  CC      drivers/net/dsa/mv88e6xxx/port_hidden.o
  CC      drivers/net/ethernet/intel/e1000e/ich8lan.o
  CC      drivers/media/v4l2-core/v4l2-ioctl.o
  CC      net/sunrpc/stats.o
  CC      drivers/hwmon/lm90.o
  CC      drivers/i2c/busses/i2c-riic.o
  CC      drivers/ptp/ptp_qoriq_debugfs.o
  CC      drivers/net/dsa/mv88e6xxx/serdes.o
  CC      drivers/i2c/busses/i2c-rk3x.o
  CC      drivers/media/dvb-core/dvb_net.o
  AR      drivers/ptp/built-in.a
  CC      drivers/thermal/thermal_core.o
  CC      drivers/hwmon/lm95245.o
  CC      drivers/net/dsa/mv88e6xxx/smi.o
  CC      drivers/i2c/busses/i2c-s3c2410.o
  CC      net/sunrpc/sysctl.o
  CC      drivers/net/ethernet/intel/e1000e/80003es2lan.o
  AR      drivers/hwmon/built-in.a
  CC      drivers/media/v4l2-core/v4l2-device.o
  CC      drivers/media/cec/core/cec-core.o
  AR      drivers/media/dvb-core/built-in.a
  CC      drivers/net/dsa/mv88e6xxx/switchdev.o
  CC      drivers/net/ethernet/intel/igb/igb_main.o
  CC      drivers/i2c/busses/i2c-sh_mobile.o
  CC      net/sunrpc/auth_gss/auth_gss.o
  CC      drivers/net/ethernet/intel/e1000e/mac.o
  CC      drivers/thermal/samsung/exynos_tmu.o
  CC      drivers/media/v4l2-core/v4l2-fh.o
  CC      drivers/media/cec/core/cec-adap.o
  CC      drivers/net/dsa/mv88e6xxx/trace.o
  CC      drivers/i2c/busses/i2c-st.o
  AR      drivers/thermal/samsung/built-in.a
  CC      drivers/thermal/qcom/tsens.o
  CC      drivers/net/ethernet/intel/e1000e/manage.o
  CC      drivers/media/v4l2-core/v4l2-event.o
  CC      drivers/i2c/busses/i2c-stm32f7.o
  CC      drivers/net/dsa/mv88e6xxx/hwtstamp.o
  CC      net/sunrpc/auth_gss/gss_generic_token.o
  AR      drivers/thermal/qcom/built-in.a
  AR      drivers/thermal/built-in.a
  CC      drivers/media/cec/core/cec-api.o
  CC      drivers/net/ethernet/intel/e1000e/nvm.o
  CC      drivers/media/v4l2-core/v4l2-subdev.o
  CC      drivers/net/ethernet/intel/igc/igc_main.o
  CC      drivers/net/dsa/mv88e6xxx/ptp.o
  CC      drivers/i2c/busses/i2c-stm32.o
  CC      drivers/media/cec/core/cec-notifier.o
  CC      net/sunrpc/auth_gss/gss_mech_switch.o
  CC      drivers/net/ethernet/intel/e1000e/phy.o
  CC      drivers/i2c/busses/i2c-sun6i-p2wi.o
  AR      drivers/net/dsa/mv88e6xxx/built-in.a
make[5]: *** [../scripts/Makefile.build:485: drivers/net/dsa] Error 2
make[5]: *** Waiting for unfinished jobs....
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_main.o
  CC      drivers/i2c/busses/i2c-tegra.o
  AR      drivers/media/cec/core/built-in.a
  AR      drivers/media/cec/built-in.a
  CC      drivers/media/v4l2-core/v4l2-common.o
  CC      drivers/net/ethernet/intel/igb/igb_ethtool.o
  CC      drivers/net/ethernet/intel/e1000e/param.o
  CC      net/sunrpc/auth_gss/svcauth_gss.o
  CC      drivers/watchdog/watchdog_core.o
  CC      drivers/i2c/busses/i2c-uniphier.o
  CC      drivers/net/ethernet/intel/e1000e/ethtool.o
  CC      drivers/media/v4l2-core/v4l2-ctrls-core.o
  CC      drivers/i2c/busses/i2c-uniphier-f.o
  CC      drivers/net/ethernet/intel/igc/igc_mac.o
  CC      drivers/watchdog/sp805_wdt.o
  CC      drivers/net/ethernet/intel/igb/e1000_82575.o
  CC      drivers/i2c/busses/i2c-xiic.o
  AR      drivers/watchdog/built-in.a
  CC      net/sunrpc/auth_gss/gss_rpc_upcall.o
  CC      drivers/net/ethernet/intel/igc/igc_i225.o
  CC      drivers/net/ethernet/intel/e1000e/netdev.o
  CC      drivers/media/v4l2-core/v4l2-ctrls-api.o
  CC      drivers/net/ethernet/intel/ixgbevf/vf.o
  CC      drivers/i2c/busses/i2c-rcar.o
  CC      drivers/net/ethernet/intel/igc/igc_base.o
  CC      net/sunrpc/auth_gss/gss_rpc_xdr.o
  CC      drivers/net/ethernet/intel/igb/e1000_mac.o
  CC      drivers/net/ethernet/intel/ixgbevf/mbx.o
  CC      drivers/i2c/busses/i2c-bcm-kona.o
  CC      drivers/net/ethernet/intel/igc/igc_nvm.o
  CC      drivers/media/v4l2-core/v4l2-ctrls-request.o
  CC      net/sunrpc/auth_gss/trace.o
  CC      drivers/net/ethernet/intel/igb/e1000_nvm.o
  CC      drivers/i2c/busses/i2c-brcmstb.o
  CC      drivers/net/ethernet/intel/ixgbevf/ethtool.o
  CC      drivers/net/ethernet/intel/igc/igc_phy.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_common.o
  CC      drivers/media/v4l2-core/v4l2-ctrls-defs.o
  AR      drivers/i2c/busses/built-in.a
  AR      drivers/i2c/built-in.a
  CC      drivers/edac/edac_mc.o
  CC      drivers/net/ethernet/intel/igb/e1000_phy.o
  CC      drivers/net/ethernet/intel/igc/igc_diag.o
  CC      drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.o
  CC      drivers/net/ethernet/intel/e1000e/ptp.o
  CC      net/sunrpc/auth_gss/gss_krb5_mech.o
  CC      drivers/media/v4l2-core/v4l2-mc.o
  CC      drivers/net/ethernet/intel/igc/igc_ethtool.o
  CC      drivers/net/ethernet/intel/igb/e1000_mbx.o
  CC      drivers/edac/edac_device.o
  AR      drivers/net/ethernet/intel/e1000e/built-in.a
  CC      drivers/edac/edac_mc_sysfs.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_ethtool.o
  CC      net/sunrpc/auth_gss/gss_krb5_seal.o
  CC      drivers/net/ethernet/intel/igb/e1000_i210.o
  CC      drivers/net/ethernet/intel/igc/igc_ptp.o
  CC      drivers/media/v4l2-core/v4l2-spi.o
  CC      drivers/edac/edac_module.o
  CC      net/sunrpc/auth_gss/gss_krb5_unseal.o
  CC      drivers/net/ethernet/intel/igb/igb_ptp.o
  CC      drivers/media/v4l2-core/v4l2-trace.o
  CC      net/sunrpc/auth_gss/gss_krb5_wrap.o
  AR      drivers/net/ethernet/intel/ixgbevf/built-in.a
  CC      drivers/media/v4l2-core/v4l2-i2c.o
  CC      drivers/edac/edac_device_sysfs.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_82599.o
  CC      drivers/net/ethernet/intel/igc/igc_dump.o
  CC      net/sunrpc/auth_gss/gss_krb5_crypto.o
  CC      drivers/opp/core.o
  CC      drivers/edac/wq.o
  CC      drivers/net/ethernet/intel/igb/igb_hwmon.o
  CC      drivers/net/ethernet/intel/igc/igc_tsn.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_82598.o
  AR      drivers/media/v4l2-core/built-in.a
  CC      drivers/edac/edac_pci.o
  CC      drivers/net/ethernet/intel/igc/igc_xdp.o
  AR      drivers/net/ethernet/intel/igb/built-in.a
  CC      net/sunrpc/auth_gss/gss_krb5_keys.o
  CC      drivers/net/ethernet/marvell/mvmdio.o
  AR      drivers/media/built-in.a
  CC      drivers/cpufreq/cpufreq.o
  CC      drivers/net/ethernet/marvell/mv643xx_eth.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_phy.o
  CC      drivers/opp/ti-opp-supply.o
  CC      drivers/edac/edac_pci_sysfs.o
  AR      drivers/net/ethernet/intel/igc/built-in.a
  CC      drivers/edac/fsl_ddr_edac.o
  CC      drivers/net/ethernet/intel/i40e/i40e_main.o
  AR      net/sunrpc/auth_gss/built-in.a
  AR      net/sunrpc/built-in.a
make[3]: *** [../scripts/Makefile.build:485: net] Error 2
  AR      drivers/opp/built-in.a
  CC      drivers/cpuidle/cpuidle.o
  CC      drivers/net/ethernet/intel/iavf/iavf_main.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_main.o
  CC      drivers/edac/layerscape_edac.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.o
  CC      drivers/net/ethernet/marvell/mvneta.o
  CC      drivers/cpufreq/cpufreq-dt.o
  CC      drivers/edac/highbank_mc_edac.o
  AR      drivers/cpuidle/built-in.a
  CC      drivers/net/ethernet/intel/ice/ice_main.o
  CC      drivers/edac/highbank_l2_edac.o
  CC      drivers/cpufreq/imx6q-cpufreq.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_common.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_mbx.o
  CC      drivers/edac/synopsys_edac.o
  CC      drivers/cpufreq/omap-cpufreq.o
In file included from ../drivers/net/ethernet/intel/ice/ice_common.h:8,
                 from ../drivers/net/ethernet/intel/ice/ice_switch.h:7,
                 from ../drivers/net/ethernet/intel/ice/ice.h:62,
                 from ../drivers/net/ethernet/intel/ice/ice_main.c:10:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[8]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/intel/ice/ice_main.o] Error 1
make[7]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel/ice] Error 2
make[7]: *** Waiting for unfinished jobs....
  CC      drivers/net/ethernet/intel/iavf/iavf_ethtool.o
  CC      drivers/net/ethernet/micrel/ks8851_common.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_pci.o
  AR      drivers/edac/built-in.a
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_x540.o
  CC      drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.o
  AR      drivers/cpufreq/built-in.a
  CC      drivers/net/ethernet/mscc/ocelot.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/ethernet/mscc/ocelot.c:7:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/mscc/ocelot.o] Error 1
make[6]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/mscc] Error 2
make[6]: *** Waiting for unfinished jobs....
  CC      drivers/net/ethernet/microchip/fdma/fdma_api.o
  CC      drivers/net/ethernet/intel/iavf/iavf_virtchnl.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_x550.o
  CC      drivers/net/ethernet/micrel/ks8851_spi.o
  CC      drivers/net/ethernet/microchip/vcap/vcap_api.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_netdev.o
  AR      drivers/net/ethernet/marvell/built-in.a
  CC      drivers/net/ethernet/intel/i40e/i40e_ethtool.o
  AR      drivers/net/ethernet/microchip/fdma/built-in.a
  CC      drivers/net/ethernet/microchip/vcap/vcap_tc.o
  AR      drivers/net/ethernet/micrel/built-in.a
  CC      drivers/mmc/core/core.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_lib.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_ethtool.o
  CC      drivers/net/ethernet/intel/iavf/iavf_fdir.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.o
  CC      drivers/net/ethernet/intel/i40e/i40e_adminq.o
  CC      drivers/mmc/core/bus.o
  AR      drivers/net/ethernet/microchip/vcap/built-in.a
  AR      drivers/net/ethernet/microchip/built-in.a
  CC      drivers/net/ethernet/intel/iavf/iavf_adv_rss.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_pf.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_vf.o
  CC      drivers/net/ethernet/intel/i40e/i40e_common.o
  CC      drivers/mmc/host/mmci.o
  CC      drivers/leds/led-triggers.o
  CC      drivers/mmc/core/host.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_xsk.o
  CC      drivers/net/ethernet/intel/iavf/iavf_txrx.o
  CC      drivers/firmware/dmi_scan.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_mbx.o
  CC      drivers/mmc/host/mmci_qcom_dml.o
  CC      drivers/leds/trigger/ledtrig-backlight.o
  CC      drivers/mmc/core/mmc.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_sysfs.o
  CC      drivers/firmware/raspberrypi.o
  CC      drivers/mmc/host/mmci_stm32_sdmmc.o
  AR      drivers/leds/trigger/built-in.a
  CC      drivers/net/ethernet/intel/i40e/i40e_nvm.o
  AR      drivers/leds/built-in.a
  CC      drivers/net/ethernet/intel/fm10k/fm10k_iov.o
  CC      drivers/mmc/host/sdhci.o
  CC      drivers/net/ethernet/intel/iavf/iavf_common.o
  CC      drivers/firmware/sysfb.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_debugfs.o
  CC      drivers/mmc/host/sdhci-pxav3.o
  CC      drivers/mmc/core/mmc_ops.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_tlv.o
  CC      drivers/net/ethernet/intel/i40e/i40e_debugfs.o
  CC      drivers/net/ethernet/intel/iavf/iavf_adminq.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_debugfs.o
  AR      drivers/net/ethernet/intel/ixgbe/built-in.a
  CC      drivers/mmc/core/sd.o
  CC      drivers/firmware/arm_scmi/driver.o
  CC      drivers/net/ethernet/intel/i40e/i40e_diag.o
  CC      drivers/mmc/core/sd_ops.o
  CC      drivers/net/ethernet/intel/fm10k/fm10k_dcbnl.o
  AR      drivers/net/ethernet/intel/iavf/built-in.a
  CC      drivers/firmware/broadcom/bcm47xx_sprom.o
  CC      drivers/firmware/arm_scmi/notify.o
  CC      drivers/mmc/core/sdio.o
  CC      drivers/mmc/host/sdhci-s3c.o
  AR      drivers/net/ethernet/intel/fm10k/built-in.a
  CC      drivers/mmc/core/sdio_ops.o
  CC      drivers/firmware/efi/efi.o
  CC      drivers/net/ethernet/intel/i40e/i40e_txrx.o
  CC      drivers/mmc/host/sdhci-spear.o
  CC      drivers/mmc/core/sdio_bus.o
  CC      drivers/mmc/host/omap.o
  CC      drivers/clocksource/arm_arch_timer.o
  AR      drivers/firmware/broadcom/built-in.a
  CC      drivers/firmware/psci/psci.o
  AR      drivers/firmware/arm_scmi/built-in.a
  CC      drivers/net/ethernet/intel/i40e/i40e_ptp.o
  CC      drivers/firmware/qcom/qcom_scm.o
  CC      drivers/firmware/efi/memattr.o
  AR      drivers/firmware/psci/built-in.a
  CC      drivers/mmc/host/omap_hsmmc.o
  CC      drivers/mmc/core/sdio_cis.o
  CC      drivers/firmware/efi/tpm.o
  CC      drivers/firmware/efi/memmap.o
  AR      drivers/clocksource/built-in.a
  CC      drivers/mmc/core/sdio_io.o
  CC      drivers/net/ethernet/intel/i40e/i40e_ddp.o
  CC      drivers/firmware/qcom/qcom_scm-smc.o
  CC      drivers/firmware/efi/capsule.o
  CC      drivers/mmc/core/sdio_irq.o
  CC      drivers/hid/hid-core.o
  CC      drivers/mmc/host/atmel-mci.o
  CC      drivers/mmc/core/slot-gpio.o
  CC      drivers/firmware/qcom/qcom_scm-legacy.o
  CC      drivers/of/device.o
  CC      drivers/firmware/efi/esrt.o
  CC      drivers/net/ethernet/intel/i40e/i40e_client.o
  CC      drivers/firmware/qcom/qcom_tzmem.o
  CC      drivers/mmc/host/mvsdio.o
  CC      drivers/mmc/core/regulator.o
  CC      drivers/of/platform.o
  CC      drivers/net/ethernet/intel/i40e/i40e_virtchnl_pf.o
  CC      drivers/firmware/efi/runtime-wrappers.o
  CC      drivers/mmc/host/tmio_mmc_core.o
  AR      drivers/firmware/qcom/built-in.a
  CC      drivers/mmc/core/pwrseq.o
  CC      drivers/hid/hid-input.o
  CC      drivers/firmware/efi/sysfb_efi.o
  CC      drivers/of/fdt.o
  CC      drivers/bcma/main.o
  CC      drivers/mmc/core/debugfs.o
  CC      drivers/firmware/efi/efi-init.o
  CC      drivers/mmc/host/renesas_sdhi_core.o
  CC      drivers/vhost/net.o
  CC      drivers/mmc/core/pwrseq_simple.o
  CC      drivers/of/address.o
  CC      drivers/firmware/efi/arm-runtime.o
  CC      drivers/bcma/scan.o
  CC      drivers/mmc/core/pwrseq_emmc.o
  CC      drivers/net/ethernet/intel/i40e/i40e_xsk.o
  CC      drivers/hid/hid-quirks.o
  CC      drivers/mmc/host/renesas_sdhi_sys_dmac.o
  CC      drivers/firmware/efi/libstub/efi-stub-helper.o
  CC      drivers/bcma/core.o
  CC      drivers/mmc/core/block.o
  CC      drivers/of/of_reserved_mem.o
  CC      drivers/vhost/vhost.o
  CC      drivers/firmware/efi/libstub/gop.o
  CC      drivers/mmc/host/renesas_sdhi_internal_dmac.o
  CC      drivers/hid/hid-debug.o
  CC      drivers/bcma/sprom.o
  CC      drivers/net/ethernet/intel/i40e/i40e_devlink.o
  AR      drivers/of/built-in.a
  CC      drivers/mmc/host/uniphier-sd.o
  CC      drivers/firmware/efi/libstub/secureboot.o
  CC      drivers/bcma/driver_chipcommon.o
  CC      drivers/mmc/core/queue.o
  CC      drivers/mmc/host/dw_mmc.o
  CC      drivers/firmware/efi/libstub/tpm.o
  CC      drivers/hid/hid-generic.o
  CC      drivers/bcma/driver_chipcommon_pmu.o
  AR      drivers/net/ethernet/intel/i40e/built-in.a
make[6]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel] Error 2
make[5]: *** [../scripts/Makefile.build:485: drivers/net/ethernet] Error 2
make[4]: *** [../scripts/Makefile.build:485: drivers/net] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC      drivers/firmware/efi/libstub/file.o
  AR      drivers/mmc/core/built-in.a
  CC      drivers/hid/hid-a4tech.o
  CC      drivers/bcma/driver_chipcommon_b.o
  CC      drivers/bcma/driver_chipcommon_sflash.o
  AR      drivers/vhost/built-in.a
  CC      drivers/mmc/host/dw_mmc-pltfm.o
  CC      drivers/firmware/efi/libstub/mem.o
  CC      drivers/hid/hid-apple.o
  CC      drivers/bcma/driver_pci.o
  CC      drivers/mmc/host/dw_mmc-exynos.o
  CC      drivers/firmware/efi/libstub/random.o
  CC      drivers/mmc/host/dw_mmc-rockchip.o
  CC      drivers/mmc/host/sh_mmcif.o
  CC      drivers/hid/hid-belkin.o
  CC      drivers/bcma/driver_pcie2.o
  CC      drivers/firmware/efi/libstub/randomalloc.o
  CC      drivers/mmc/host/wmt-sdmmc.o
  CC      drivers/bcma/driver_gmac_cmn.o
  CC      drivers/bcma/driver_gpio.o
  CC      drivers/firmware/efi/libstub/pci.o
  CC      drivers/hid/hid-cherry.o
  CC      drivers/mmc/host/meson-mx-sdhc-mmc.o
  CC      drivers/hid/hid-chicony.o
  CC      drivers/bcma/host_pci.o
  CC      drivers/mmc/host/meson-mx-sdio.o
  CC      drivers/bcma/host_soc.o
  CC      drivers/firmware/efi/libstub/alignedmem.o
  CC      drivers/firmware/efi/libstub/relocate.o
  CC      drivers/mmc/host/sunxi-mmc.o
  CC      drivers/hid/hid-cypress.o
  CC      drivers/firmware/efi/libstub/printk.o
  CC      drivers/firmware/efi/libstub/fdt.o
  CC      drivers/hid/hid-ezkey.o
  CC      drivers/mmc/host/bcm2835.o
  CC      drivers/mmc/host/owl-mmc.o
  AR      drivers/bcma/built-in.a
  CC      drivers/hid/hid-ite.o
  CC      drivers/mmc/host/sdhci-pltfm.o
  CC      drivers/hid/hid-kensington.o
  CC      drivers/firmware/efi/libstub/efi-stub.o
  CC      drivers/mmc/host/sdhci-esdhc-imx.o
  CC      drivers/mmc/host/sdhci-dove.o
  CC      drivers/mmc/host/sdhci-tegra.o
  CC      drivers/hid/hid-lg.o
  CC      drivers/mmc/host/sdhci-of-arasan.o
  CC      drivers/firmware/efi/libstub/intrinsics.o
  CC      drivers/mmc/host/sdhci-of-at91.o
  CC      drivers/hid/hid-lg-g15.o
  CC      drivers/firmware/efi/libstub/systable.o
  CC      drivers/hid/hid-microsoft.o
  CC      drivers/mmc/host/sdhci-of-esdhc.o
  CC      drivers/hid/hid-monterey.o
  CC      drivers/firmware/efi/libstub/screen_info.o
  CC      drivers/hid/hid-redragon.o
  CC      drivers/firmware/efi/libstub/efi-stub-entry.o
  CC      drivers/hid/usbhid/hid-core.o
  CC      drivers/mmc/host/sdhci-bcm-kona.o
  CC      drivers/firmware/efi/libstub/arm32-stub.o
  CC      drivers/mmc/host/sdhci-iproc.o
  STUBCPY drivers/firmware/efi/libstub/alignedmem.stub.o
  STUBCPY drivers/firmware/efi/libstub/efi-stub-entry.stub.o
  CC      drivers/mmc/host/sdhci-msm.o
  STUBCPY drivers/firmware/efi/libstub/efi-stub-helper.stub.o
  CC      drivers/mmc/host/sdhci-st.o
  STUBCPY drivers/firmware/efi/libstub/efi-stub.stub.o
  CC      drivers/mmc/host/sdhci-brcmstb.o
  CC      drivers/mmc/host/sdhci-omap.o
  CC      drivers/mmc/host/cqhci-core.o
  STUBCPY drivers/firmware/efi/libstub/fdt.stub.o
  STUBCPY drivers/firmware/efi/libstub/file.stub.o
  STUBCPY drivers/firmware/efi/libstub/gop.stub.o
  STUBCPY drivers/firmware/efi/libstub/intrinsics.stub.o
  STUBCPY drivers/firmware/efi/libstub/mem.stub.o
  STUBCPY drivers/firmware/efi/libstub/pci.stub.o
  STUBCPY drivers/firmware/efi/libstub/printk.stub.o
  STUBCPY drivers/firmware/efi/libstub/random.stub.o
  STUBCPY drivers/firmware/efi/libstub/randomalloc.stub.o
  STUBCPY drivers/firmware/efi/libstub/relocate.stub.o
  STUBCPY drivers/firmware/efi/libstub/screen_info.stub.o
  STUBCPY drivers/firmware/efi/libstub/secureboot.stub.o
  STUBCPY drivers/firmware/efi/libstub/systable.stub.o
  STUBCPY drivers/firmware/efi/libstub/tpm.stub.o
  STUBCPY drivers/firmware/efi/libstub/arm32-stub.stub.o
  AR      drivers/firmware/efi/libstub/lib.a
  AR      drivers/firmware/efi/built-in.a
  AR      drivers/firmware/built-in.a
  AR      drivers/hid/usbhid/built-in.a
  AR      drivers/hid/built-in.a
  AR      drivers/mmc/host/built-in.a
  AR      drivers/mmc/built-in.a
make[3]: *** [../scripts/Makefile.build:485: drivers] Error 2
make[2]: *** [/opt/net-next/Makefile:1926: .] Error 2
make[1]: *** [/opt/net-next/Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/opt/net-next/output-arm'
make: *** [Makefile:224: __sub-make] Error 2
[/opt/net-next] $ LOADADDR=0x80008000 make -j 8 uImage dtbs && sudo cp $KBUILD_OUTPUT/arch/arm/boot/{uImage,dts/nxp/ls/ls1021a-tsn*.dtb} /srv/tftpboot/ls1021atsn/
make[1]: Entering directory '/opt/net-next/output-arm'
  GEN     Makefile
mkdir -p /opt/net-next/output-arm/tools/bpf/resolve_btfids && make O=/opt/net-next/output-arm subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids
  INSTALL libsubcmd_headers
  CALL    ../scripts/checksyscalls.sh
  CC      lib/packing.o
In file included from ../lib/packing.c:5:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [../scripts/Makefile.build:244: lib/packing.o] Error 1
make[3]: *** [../scripts/Makefile.build:485: lib] Error 2
make[3]: *** Waiting for unfinished jobs....
  CC      net/dsa/tag_ocelot.o
  CC      net/dsa/tag_ocelot_8021q.o
  CC      net/dsa/tag_qca.o
  CC      net/dsa/tag_rtl4_a.o
  CC      net/wireless/wext-core.o
  CC      net/rfkill/core.o
  CC      net/wireless/wext-proc.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../net/dsa/tag_ocelot.c:4:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_ocelot.o] Error 1
make[5]: *** Waiting for unfinished jobs....
  CC      net/dcb/dcbnl.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../net/dsa/tag_ocelot_8021q.c:12:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_ocelot_8021q.o] Error 1
  CC      net/rfkill/input.o
  CC      net/dcb/dcbevent.o
make[4]: *** [../scripts/Makefile.build:485: net/dsa] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC      net/rfkill/rfkill-gpio.o
  AR      net/wireless/built-in.a
  AR      net/rfkill/built-in.a
  CC      drivers/net/dsa/ocelot/felix.o
  CC      drivers/net/dsa/ocelot/felix_vsc9959.o
  CC      drivers/net/dsa/qca/ar9331.o
  CC      drivers/net/dsa/realtek/rtl83xx.o
  CC      drivers/net/dsa/ocelot/ocelot_ext.o
  AR      net/dcb/built-in.a
make[3]: *** [../scripts/Makefile.build:485: net] Error 2
  CC      drivers/net/dsa/ocelot/seville_vsc9953.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/felix.c:17:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/felix.o] Error 1
make[7]: *** Waiting for unfinished jobs....
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/felix_vsc9959.c:14:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/felix_vsc9959.o] Error 1
  CC      drivers/net/dsa/realtek/realtek-mdio.o
  CC      drivers/net/dsa/qca/qca8k-common.o
  CC      drivers/net/ethernet/intel/ice/ice_main.o
  CC      drivers/net/ethernet/intel/ice/ice_controlq.o
In file included from ../drivers/net/ethernet/intel/ice/ice_common.h:8,
                 from ../drivers/net/ethernet/intel/ice/ice_controlq.c:4:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[8]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/intel/ice/ice_controlq.o] Error 1
make[8]: *** Waiting for unfinished jobs....
  CC      drivers/net/dsa/qca/qca8k-8xxx.o
  CC      drivers/net/dsa/qca/qca8k-leds.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/seville_vsc9953.c:14:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/seville_vsc9953.o] Error 1
make[6]: *** [../scripts/Makefile.build:485: drivers/net/dsa/ocelot] Error 2
make[6]: *** Waiting for unfinished jobs....
  CC      drivers/net/dsa/realtek/realtek-smi.o
  CC      drivers/net/dsa/realtek/rtl8366-core.o
In file included from ../drivers/net/ethernet/intel/ice/ice_common.h:8,
                 from ../drivers/net/ethernet/intel/ice/ice_switch.h:7,
                 from ../drivers/net/ethernet/intel/ice/ice.h:62,
                 from ../drivers/net/ethernet/intel/ice/ice_main.c:10:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[8]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/intel/ice/ice_main.o] Error 1
make[7]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel/ice] Error 2
make[6]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel] Error 2
make[5]: *** [../scripts/Makefile.build:485: drivers/net/ethernet] Error 2
make[5]: *** Waiting for unfinished jobs....
  CC      drivers/net/dsa/realtek/rtl8366rb.o
  CC      drivers/net/dsa/realtek/rtl8365mb.o
  AR      drivers/net/dsa/qca/built-in.a
  CC      drivers/platform/chrome/cros_ec_trace.o
  CC      drivers/remoteproc/remoteproc_core.o
  CC      drivers/rpmsg/virtio_rpmsg_bus.o
  CC      drivers/mailbox/pl320-ipc.o
  CC      drivers/devfreq/devfreq.o
  CC      drivers/mailbox/omap-mailbox.o
  CC      drivers/mailbox/bcm2835-mailbox.o
  AR      drivers/platform/chrome/built-in.a
  AR      drivers/platform/built-in.a
  CC      drivers/remoteproc/remoteproc_coredump.o
  AR      drivers/rpmsg/built-in.a
  AR      drivers/net/dsa/realtek/built-in.a
make[5]: *** [../scripts/Makefile.build:485: drivers/net/dsa] Error 2
make[4]: *** [../scripts/Makefile.build:485: drivers/net] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC      drivers/remoteproc/remoteproc_debugfs.o
  CC      drivers/memory/pl353-smc.o
  CC      drivers/remoteproc/remoteproc_sysfs.o
  CC      drivers/mailbox/hi6220-mailbox.o
  CC      drivers/memory/tegra/mc.o
  CC      drivers/remoteproc/remoteproc_virtio.o
  CC      drivers/remoteproc/remoteproc_elf_loader.o
  CC      drivers/memory/tegra/tegra114.o
  AR      drivers/mailbox/built-in.a
  AR      drivers/devfreq/built-in.a
  AR      drivers/memory/tegra/built-in.a
  AR      drivers/memory/built-in.a
  AR      drivers/remoteproc/built-in.a
make[3]: *** [../scripts/Makefile.build:485: drivers] Error 2
make[2]: *** [/opt/net-next/Makefile:1926: .] Error 2
make[1]: *** [/opt/net-next/Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/opt/net-next/output-arm'
make: *** [Makefile:224: __sub-make] Error 2
[/opt/net-next] $ LOADADDR=0x80008000 make -j 8 uImage dtbs && sudo cp $KBUILD_OUTPUT/arch/arm/boot/{uImage,dts/nxp/ls/ls1021a-tsn*.dtb} /srv/tftpboot/ls1021atsn/
make[1]: Entering directory '/opt/net-next/output-arm'
  GEN     Makefile
mkdir -p /opt/net-next/output-arm/tools/bpf/resolve_btfids && make O=/opt/net-next/output-arm subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids
  INSTALL libsubcmd_headers
  CALL    ../scripts/checksyscalls.sh
  CC      lib/packing.o
In file included from ../lib/packing.c:5:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [../scripts/Makefile.build:244: lib/packing.o] Error 1
make[3]: *** [../scripts/Makefile.build:485: lib] Error 2
make[3]: *** Waiting for unfinished jobs....
  CC      net/dsa/tag_ocelot.o
  CC      net/dsa/tag_ocelot_8021q.o
  CC      net/dsa/tag_rtl8_4.o
  CC      net/dsa/tag_rzn1_a5psw.o
  CC      net/dsa/tag_sja1105.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../net/dsa/tag_ocelot.c:4:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
  CC      net/dsa/tag_trailer.o
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_ocelot.o] Error 1
make[5]: *** Waiting for unfinished jobs....
  CC      net/sysctl_net.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../net/dsa/tag_ocelot_8021q.c:12:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
  CC      net/dns_resolver/dns_query.o
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_ocelot_8021q.o] Error 1
  CC      net/hsr/hsr_main.o
  CC      net/switchdev/switchdev.o
In file included from ../net/dsa/tag_sja1105.c:7:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_sja1105.o] Error 1
  CC      net/hsr/hsr_framereg.o
  CC      net/l3mdev/l3mdev.o
make[4]: *** [../scripts/Makefile.build:485: net/dsa] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC      net/hsr/hsr_device.o
  AR      net/dns_resolver/built-in.a
  CC      net/hsr/hsr_netlink.o
  CC      net/hsr/hsr_slave.o
  CC      net/hsr/hsr_forward.o
  CC      net/hsr/hsr_debugfs.o
  CC      drivers/net/dsa/ocelot/felix.o
  AR      net/l3mdev/built-in.a
  AR      net/switchdev/built-in.a
  CC      drivers/net/dsa/sja1105/sja1105_spi.o
  AR      net/hsr/built-in.a
make[3]: *** [../scripts/Makefile.build:485: net] Error 2
  CC      drivers/net/dsa/ocelot/felix_vsc9959.o
  CC      drivers/net/dsa/sja1105/sja1105_main.o
  CC      drivers/net/dsa/ocelot/seville_vsc9953.o
  CC      drivers/net/dsa/sja1105/sja1105_mdio.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/felix.c:17:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/felix.o] Error 1
make[7]: *** Waiting for unfinished jobs....
  CC      drivers/net/dsa/xrs700x/xrs700x.o
In file included from ../drivers/net/dsa/sja1105/sja1105_spi.c:7:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/sja1105/sja1105_spi.o] Error 1
make[7]: *** Waiting for unfinished jobs....
  CC      drivers/net/dsa/xrs700x/xrs700x_i2c.o
  CC      drivers/net/ethernet/intel/ice/ice_main.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/felix_vsc9959.c:14:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/felix_vsc9959.o] Error 1
In file included from ../drivers/net/dsa/sja1105/sja1105_static_config.h:8,
                 from ../drivers/net/dsa/sja1105/sja1105.h:14,
                 from ../drivers/net/dsa/sja1105/sja1105_main.c:26:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/seville_vsc9953.c:14:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/sja1105/sja1105_main.o] Error 1
In file included from ../drivers/net/dsa/sja1105/sja1105_static_config.h:8,
                 from ../drivers/net/dsa/sja1105/sja1105.h:14,
                 from ../drivers/net/dsa/sja1105/sja1105_mdio.c:6:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/seville_vsc9953.o] Error 1
make[6]: *** [../scripts/Makefile.build:485: drivers/net/dsa/ocelot] Error 2
make[6]: *** Waiting for unfinished jobs....
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/sja1105/sja1105_mdio.o] Error 1
make[6]: *** [../scripts/Makefile.build:485: drivers/net/dsa/sja1105] Error 2
  CC      drivers/net/ethernet/intel/ice/ice_controlq.o
  CC      drivers/net/dsa/xrs700x/xrs700x_mdio.o
In file included from ../drivers/net/ethernet/intel/ice/ice_common.h:8,
                 from ../drivers/net/ethernet/intel/ice/ice_controlq.c:4:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[8]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/intel/ice/ice_controlq.o] Error 1
make[8]: *** Waiting for unfinished jobs....
  CC      drivers/net/ethernet/mscc/ocelot.o
  CC      drivers/net/ethernet/mscc/ocelot_devlink.o
  CC      drivers/net/ethernet/mscc/ocelot_flower.o
  CC      drivers/net/ethernet/mscc/ocelot_io.o
In file included from ../drivers/net/ethernet/intel/ice/ice_common.h:8,
                 from ../drivers/net/ethernet/intel/ice/ice_switch.h:7,
                 from ../drivers/net/ethernet/intel/ice/ice.h:62,
                 from ../drivers/net/ethernet/intel/ice/ice_main.c:10:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[8]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/intel/ice/ice_main.o] Error 1
make[7]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel/ice] Error 2
make[6]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel] Error 2
make[6]: *** Waiting for unfinished jobs....
  CC      drivers/net/ethernet/mscc/ocelot_mm.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/ethernet/mscc/ocelot.c:7:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/mscc/ocelot.o] Error 1
make[7]: *** Waiting for unfinished jobs....
  AR      drivers/net/dsa/xrs700x/built-in.a
make[5]: *** [../scripts/Makefile.build:485: drivers/net/dsa] Error 2
make[5]: *** Waiting for unfinished jobs....
  CC      drivers/perf/arm_pmu.o
  CC      drivers/ras/ras.o
  CC      drivers/iio/industrialio-event.o
  CC      drivers/hwtracing/coresight/coresight-core.o
  CC      drivers/perf/arm_pmu_platform.o
  CC      drivers/iio/industrialio-buffer.o
  CC      drivers/hwtracing/coresight/coresight-etm-perf.o
  CC      drivers/hwtracing/coresight/coresight-platform.o
  CC      drivers/perf/arm_v7_pmu.o
make[6]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/mscc] Error 2
make[5]: *** [../scripts/Makefile.build:485: drivers/net/ethernet] Error 2
make[4]: *** [../scripts/Makefile.build:485: drivers/net] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC      drivers/iio/adc/ab8500-gpadc.o
  CC      drivers/hwtracing/coresight/coresight-sysfs.o
  AR      drivers/ras/built-in.a
  CC      drivers/hwtracing/coresight/coresight-syscfg.o
  CC      drivers/hwtracing/coresight/coresight-config.o
  AR      drivers/iio/adc/built-in.a
  CC      drivers/hwtracing/coresight/coresight-cfg-preload.o
  AR      drivers/perf/built-in.a
  CC      drivers/iio/buffer/kfifo_buf.o
  CC      drivers/hwtracing/coresight/coresight-cfg-afdo.o
  CC      drivers/hwtracing/coresight/coresight-syscfg-configfs.o
  CC      drivers/iio/gyro/mpu3050-core.o
  CC      drivers/iio/light/isl29018.o
  CC      drivers/iio/magnetometer/ak8975.o
  CC      drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_core.o
  CC      drivers/iio/gyro/mpu3050-i2c.o
  AR      drivers/iio/buffer/built-in.a
  CC      drivers/iio/light/isl29028.o
  CC      drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_buffer.o
  AR      drivers/hwtracing/coresight/built-in.a
  CC      drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_shub.o
  CC      drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i2c.o
  AR      drivers/iio/magnetometer/built-in.a
  CC      drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_spi.o
  CC      drivers/iio/imu/st_lsm6dsx/st_lsm6dsx_i3c.o
  AR      drivers/iio/gyro/built-in.a
  AR      drivers/iio/light/built-in.a
  AR      drivers/iio/imu/st_lsm6dsx/built-in.a
  AR      drivers/iio/imu/built-in.a
  AR      drivers/iio/built-in.a
make[3]: *** [../scripts/Makefile.build:485: drivers] Error 2
make[2]: *** [/opt/net-next/Makefile:1926: .] Error 2
make[1]: *** [/opt/net-next/Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/opt/net-next/output-arm'
make: *** [Makefile:224: __sub-make] Error 2
[/opt/net-next] $ LOADADDR=0x80008000 make -j 8 uImage dtbs && sudo cp $KBUILD_OUTPUT/arch/arm/boot/{uImage,dts/nxp/ls/ls1021a-tsn*.dtb} /srv/tftpboot/ls1021atsn/
make[1]: Entering directory '/opt/net-next/output-arm'
  GEN     Makefile
mkdir -p /opt/net-next/output-arm/tools/bpf/resolve_btfids && make O=/opt/net-next/output-arm subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids
  INSTALL libsubcmd_headers
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  CALL    ../scripts/checksyscalls.sh
  CC      init/version.o
  AR      init/built-in.a
  CC      kernel/sys.o
  CC      lib/packing.o
  HOSTCC  lib/gen_packing_checks
In file included from ../lib/packing.c:5:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: *** [../scripts/Makefile.build:244: lib/packing.o] Error 1
make[3]: *** [../scripts/Makefile.build:485: lib] Error 2
make[3]: *** Waiting for unfinished jobs....
  CC      net/dsa/tag_ocelot.o
  CC      net/dsa/tag_ocelot_8021q.o
  CC      net/dsa/tag_sja1105.o
  CC      drivers/base/firmware_loader/main.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../net/dsa/tag_ocelot.c:4:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_ocelot.o] Error 1
make[5]: *** Waiting for unfinished jobs....
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../net/dsa/tag_ocelot_8021q.c:12:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_ocelot_8021q.o] Error 1
  CC      net/handshake/alert.o
  CC      kernel/module/main.o
  CC      net/handshake/genl.o
In file included from ../net/dsa/tag_sja1105.c:7:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[5]: *** [../scripts/Makefile.build:244: net/dsa/tag_sja1105.o] Error 1
make[4]: *** [../scripts/Makefile.build:485: net/dsa] Error 2
make[4]: *** Waiting for unfinished jobs....
  CC      net/handshake/netlink.o
  CC      drivers/net/dsa/ocelot/felix.o
  CC      net/handshake/request.o
  AR      drivers/base/firmware_loader/built-in.a
  AR      drivers/base/built-in.a
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_main.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/dsa/ocelot/felix.c:17:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
  CC      drivers/net/ethernet/intel/i40e/i40e_main.o
make[7]: *** [../scripts/Makefile.build:244: drivers/net/dsa/ocelot/felix.o] Error 1
make[6]: *** [../scripts/Makefile.build:485: drivers/net/dsa/ocelot] Error 2
make[5]: *** [../scripts/Makefile.build:485: drivers/net/dsa] Error 2
make[5]: *** Waiting for unfinished jobs....
  CC      net/handshake/tlshd.o
  CC      net/handshake/trace.o
  CC      drivers/net/ethernet/intel/ice/ice_main.o
  CC      drivers/net/ethernet/intel/ice/ice_controlq.o
In file included from ../drivers/net/ethernet/intel/ice/ice_common.h:8,
                 from ../drivers/net/ethernet/intel/ice/ice_controlq.c:4:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[8]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/intel/ice/ice_controlq.o] Error 1
make[8]: *** Waiting for unfinished jobs....
  AR      kernel/module/built-in.a
In file included from ../drivers/net/ethernet/intel/ice/ice_common.h:8,
                 from ../drivers/net/ethernet/intel/ice/ice_switch.h:7,
                 from ../drivers/net/ethernet/intel/ice/ice.h:62,
                 from ../drivers/net/ethernet/intel/ice/ice_main.c:10:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[8]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/intel/ice/ice_main.o] Error 1
make[7]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel/ice] Error 2
make[7]: *** Waiting for unfinished jobs....
  AR      kernel/built-in.a
  CC      drivers/net/ethernet/mscc/ocelot.o
  AR      net/handshake/built-in.a
make[3]: *** [../scripts/Makefile.build:485: net] Error 2
  CC      drivers/net/ethernet/mscc/ocelot_police.o
  CC      drivers/net/ethernet/mscc/ocelot_ptp.o
  CC      drivers/net/ethernet/mscc/ocelot_stats.o
  CC      drivers/net/ethernet/mscc/ocelot_vcap.o
  CC      drivers/net/ethernet/mscc/vsc7514_regs.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/ethernet/mscc/ocelot.c:7:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/mscc/ocelot.o] Error 1
make[7]: *** Waiting for unfinished jobs....
  CC      drivers/net/ethernet/realtek/r8169_main.o
In file included from ../include/linux/dsa/ocelot.h:11,
                 from ../drivers/net/ethernet/mscc/ocelot_ptp.c:9:
../include/linux/packing.h:66:10: fatal error: generated/packing-checks.h: No such file or directory
   66 | #include <generated/packing-checks.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[7]: *** [../scripts/Makefile.build:244: drivers/net/ethernet/mscc/ocelot_ptp.o] Error 1
  CC      drivers/net/ethernet/renesas/sh_eth.o
  CC      drivers/net/ethernet/realtek/r8169_phy_config.o
make[6]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/mscc] Error 2
make[6]: *** Waiting for unfinished jobs....
  CC      drivers/nvmem/layouts.o
  CC      drivers/tee/tee_shm.o
  CC      drivers/tee/tee_shm_pool.o
  CC      drivers/tee/optee/core.o
  AR      drivers/net/ethernet/renesas/built-in.a
  CC      drivers/tee/optee/call.o
  AR      drivers/net/ethernet/realtek/built-in.a
  CC      drivers/gnss/core.o
  CC      drivers/nvmem/qfprom.o
  CC      drivers/interconnect/core.o
  CC      drivers/dpll/dpll_core.o
  CC      drivers/dpll/dpll_netlink.o
  CC      drivers/tee/optee/rpc.o
  AR      drivers/net/ethernet/intel/ixgbe/built-in.a
  CC      drivers/dpll/dpll_nl.o
  AR      drivers/nvmem/built-in.a
  CC      drivers/tee/optee/smc_abi.o
  AR      drivers/gnss/built-in.a
  CC      drivers/tee/optee/ffa_abi.o
  AR      drivers/interconnect/built-in.a
  AR      drivers/tee/optee/built-in.a
  AR      drivers/tee/built-in.a
  AR      drivers/net/ethernet/intel/i40e/built-in.a
make[6]: *** [../scripts/Makefile.build:485: drivers/net/ethernet/intel] Error 2
make[5]: *** [../scripts/Makefile.build:485: drivers/net/ethernet] Error 2
make[4]: *** [../scripts/Makefile.build:485: drivers/net] Error 2
make[4]: *** Waiting for unfinished jobs....
  AR      drivers/dpll/built-in.a
make[3]: *** [../scripts/Makefile.build:485: drivers] Error 2
make[2]: *** [/opt/net-next/Makefile:1926: .] Error 2
make[1]: *** [/opt/net-next/Makefile:224: __sub-make] Error 2
make[1]: Leaving directory '/opt/net-next/output-arm'
make: *** [Makefile:224: __sub-make] Error 2
[/opt/net-next] $ LOADADDR=0x80008000 make -j 8 uImage dtbs && sudo cp $KBUILD_OUTPUT/arch/arm/boot/{uImage,dts/nxp/ls/ls1021a-tsn*.dtb} /srv/tftpboot/ls1021atsn/
make[1]: Entering directory '/opt/net-next/output-arm'
  GEN     Makefile
mkdir -p /opt/net-next/output-arm/tools/bpf/resolve_btfids && make O=/opt/net-next/output-arm subdir=tools/bpf/resolve_btfids --no-print-directory -C bpf/resolve_btfids
  INSTALL libsubcmd_headers
  UPD     include/config/kernel.release
  UPD     include/generated/utsrelease.h
  CALL    ../scripts/checksyscalls.sh
  CC      init/version.o
  AR      init/built-in.a
  CC      kernel/sys.o
  UPD     include/generated/packing-checks.h
  CC      lib/packing.o
  CC      lib/raid6/algos.o
  CC      lib/raid6/recov.o
  CC      net/dsa/tag_ocelot.o
  CC      lib/syscall.o
  CC      lib/raid6/tables.o
  CC      lib/nlattr.o
  CC      lib/raid6/int1.o
  CC      net/dsa/tag_ocelot_8021q.o
  CC      lib/raid6/int2.o
  CC      lib/dynamic_queue_limits.o
  CC      lib/raid6/int4.o
  CC      kernel/module/main.o
  CC      net/dsa/tag_sja1105.o
  CC      lib/dim/net_dim.o
  CC      lib/raid6/int8.o
  CC      lib/raid6/neon.o
  CC      lib/strncpy_from_user.o
  CC      drivers/base/firmware_loader/main.o
  CC      lib/strnlen_user.o
  CC      lib/raid6/recov_neon.o
  CC      lib/net_utils.o
  CC      net/dsa/tag_vsc73xx_8021q.o
  AR      lib/raid6/built-in.a
  AR      lib/dim/built-in.a
  CC      lib/sg_split.o
  CC      lib/sg_pool.o
  CC      net/dsa/tag_xrs700x.o
  CC      lib/stackdepot.o
  AR      drivers/base/firmware_loader/built-in.a
  AR      drivers/base/built-in.a
  CC      lib/pldmfw/pldmfw.o
  AR      kernel/module/built-in.a
  CC      lib/devmem_is_allowed.o
  AR      kernel/built-in.a
  AR      net/dsa/built-in.a
  AR      net/built-in.a
  CC      drivers/net/dsa/ocelot/felix.o
  CC      drivers/net/dsa/ocelot/felix_vsc9959.o
  AR      lib/pldmfw/built-in.a
  AR      lib/built-in.a
  CC      drivers/net/dsa/sja1105/sja1105_spi.o
  CC      drivers/net/dsa/sja1105/sja1105_main.o
  CC      drivers/net/dsa/sja1105/sja1105_mdio.o
  CC      drivers/net/ethernet/intel/ixgbe/ixgbe_main.o
  CC      drivers/net/dsa/sja1105/sja1105_flower.o
  CC      drivers/net/ethernet/intel/i40e/i40e_main.o
  CC      drivers/net/dsa/ocelot/seville_vsc9953.o
  CC      drivers/net/dsa/sja1105/sja1105_ethtool.o
  CC      drivers/net/ethernet/intel/ice/ice_main.o
  CC      drivers/net/dsa/sja1105/sja1105_devlink.o
  CC      drivers/net/dsa/sja1105/sja1105_clocking.o
  AR      drivers/net/dsa/ocelot/built-in.a
  CC      drivers/net/ethernet/intel/ice/ice_controlq.o
  CC      drivers/net/ethernet/intel/ice/ice_common.o
  CC      drivers/net/ethernet/intel/ice/ice_nvm.o
  CC      drivers/net/dsa/sja1105/sja1105_static_config.o
  CC      drivers/net/dsa/sja1105/sja1105_dynamic_config.o
  CC      drivers/net/ethernet/intel/ice/ice_switch.o
  CC      drivers/net/dsa/sja1105/sja1105_ptp.o
  CC      drivers/net/ethernet/mscc/ocelot.o
  AR      drivers/net/ethernet/intel/ixgbe/built-in.a
  CC      drivers/net/ethernet/intel/ice/ice_sched.o
  CC      drivers/net/ethernet/intel/ice/ice_base.o
  CC      drivers/net/ethernet/intel/ice/ice_lib.o
  AR      drivers/net/ethernet/intel/i40e/built-in.a
  CC      drivers/net/ethernet/mscc/ocelot_ptp.o
  CC      drivers/net/ethernet/intel/ice/ice_txrx_lib.o
  CC      drivers/net/ethernet/intel/ice/ice_txrx.o
  CC      drivers/net/ethernet/intel/ice/ice_fltr.o
  CC      drivers/net/ethernet/intel/ice/ice_irq.o
  CC      drivers/net/ethernet/mscc/ocelot_mrp.o
  CC      drivers/net/ethernet/smsc/smsc911x.o
  CC      drivers/net/ethernet/socionext/sni_ave.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_main.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.o
  CC      drivers/net/ethernet/intel/ice/ice_pf_vsi_vlan_ops.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_mdio.o
  AR      drivers/net/ethernet/mscc/built-in.a
  AR      drivers/net/ethernet/socionext/built-in.a
  CC      drivers/net/ethernet/stmicro/stmmac/ring_mode.o
  CC      drivers/net/ethernet/intel/ice/ice_vsi_vlan_ops.o
  CC      drivers/net/ethernet/intel/ice/ice_vsi_vlan_lib.o
  AR      drivers/net/ethernet/smsc/built-in.a
  CC      drivers/net/ethernet/stmicro/stmmac/chain_mode.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac_lib.o
  CC      drivers/net/ethernet/intel/ice/ice_fdir.o
  CC      drivers/net/ethernet/intel/ice/ice_ethtool_fdir.o
  CC      drivers/net/ethernet/intel/ice/ice_vlan_mode.o
  CC      drivers/net/ethernet/ti/cpsw-common.o
  CC      drivers/net/ethernet/ti/davinci_mdio.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac1000_core.o
  CC      drivers/net/ethernet/ti/cpts.o
  CC      drivers/net/ethernet/intel/ice/ice_flex_pipe.o
  CC      drivers/net/ethernet/ti/cpsw.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.o
  CC      drivers/net/ethernet/xilinx/xilinx_emaclite.o
  CC      drivers/net/ethernet/ti/davinci_cpdma.o
  AR      drivers/net/ethernet/xilinx/built-in.a
  CC      drivers/net/ethernet/ti/cpsw_ale.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac100_core.o
  CC      drivers/net/ethernet/intel/ice/ice_flow.o
  CC      drivers/net/ethernet/ti/cpsw_priv.o
  CC      drivers/net/ethernet/intel/ice/ice_parser.o
  CC      drivers/net/ethernet/intel/ice/ice_parser_rt.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.o
  CC      drivers/net/ethernet/intel/ice/ice_idc.o
  CC      drivers/net/ethernet/ti/cpsw_ethtool.o
  CC      drivers/net/ethernet/stmicro/stmmac/enh_desc.o
  CC      drivers/net/ethernet/intel/ice/devlink/devlink.o
  CC      drivers/net/ethernet/stmicro/stmmac/norm_desc.o
  CC      drivers/net/ethernet/ti/cpsw_switchdev.o
  CC      drivers/net/ethernet/stmicro/stmmac/mmc_core.o
  CC      drivers/net/ethernet/intel/ice/devlink/devlink_port.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_hwtstamp.o
  CC      drivers/net/ethernet/intel/ice/ice_ddp.o
  CC      drivers/net/ethernet/ti/cpsw_new.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_ptp.o
  CC      drivers/net/ethernet/intel/ice/ice_fw_update.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac4_descs.o
  CC      drivers/net/ethernet/intel/ice/ice_lag.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac4_dma.o
  CC      drivers/net/ethernet/intel/ice/ice_ethtool.o
  CC      drivers/net/ethernet/intel/ice/ice_repr.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac4_lib.o
  CC      drivers/net/ethernet/intel/ice/ice_tc_lib.o
  AR      drivers/net/ethernet/ti/built-in.a
  CC      drivers/net/ethernet/intel/ice/ice_fwlog.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac4_core.o
  CC      drivers/net/ethernet/intel/ice/ice_debugfs.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwmac5.o
  CC      drivers/net/ethernet/intel/ice/ice_adapter.o
  CC      drivers/net/ethernet/stmicro/stmmac/hwif.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_tc.o
  CC      drivers/net/ethernet/intel/ice/ice_ptp.o
  CC      drivers/net/ethernet/intel/ice/ice_ptp_hw.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwxgmac2_core.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwxgmac2_dma.o
  CC      drivers/net/ethernet/intel/ice/ice_dpll.o
  CC      drivers/net/ethernet/stmicro/stmmac/dwxgmac2_descs.o
  CC      drivers/net/ethernet/intel/ice/ice_dcb.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_xdp.o
  CC      drivers/net/ethernet/intel/ice/ice_dcb_nl.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_est.o
  CC      drivers/net/ethernet/intel/ice/ice_dcb_lib.o
  CC      drivers/net/ethernet/intel/ice/ice_arfs.o
  CC      drivers/net/ethernet/stmicro/stmmac/stmmac_selftests.o
  CC      drivers/net/ethernet/intel/ice/ice_eswitch.o
  CC      drivers/net/ethernet/intel/ice/ice_eswitch_br.o
  CC      drivers/net/ethernet/intel/ice/ice_gnss.o
  CC      drivers/net/ethernet/intel/ice/ice_hwmon.o
  AR      drivers/net/ethernet/stmicro/stmmac/built-in.a
  AR      drivers/net/ethernet/stmicro/built-in.a
  AR      drivers/net/ethernet/intel/ice/built-in.a
  AR      drivers/net/ethernet/intel/built-in.a
  AR      drivers/net/ethernet/built-in.a

@jacob-keller
Copy link
Author

jacob-keller commented Sep 10, 2024

I wonder if thats because you're using make uImage which somehow doesn't trigger the always-y goals? Hmmmm.

That, or the include is missing a dependency:
UPD include/generated/packing-checks.h

Eventually you do build it, which makes me think it must be an issue with parallelism.

@jacob-keller
Copy link
Author

Maybe if we added the packing-checks file as a dependency of prepare in Kbuild..

@jacob-keller
Copy link
Author

I updated #2 again with a fix to make the packing-checks.h header a dependency of the prepare target, matching the other headers done in the root Kbuild.

I also squashed all the fixes down into their respective patches.

vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
When interrupting perf stat in repeat mode with a signal the signal is
passed to the child process but the repeat doesn't terminate:
```
$ perf stat -v --null --repeat 10 sleep 1
Control descriptor is not initialized
[ perf stat: executing run #1 ... ]
[ perf stat: executing run #2 ... ]
^Csleep: Interrupt
[ perf stat: executing run #3 ... ]
[ perf stat: executing run #4 ... ]
[ perf stat: executing run #5 ... ]
[ perf stat: executing run torvalds#6 ... ]
[ perf stat: executing run torvalds#7 ... ]
[ perf stat: executing run torvalds#8 ... ]
[ perf stat: executing run torvalds#9 ... ]
[ perf stat: executing run torvalds#10 ... ]

 Performance counter stats for 'sleep 1' (10 runs):

            0.9500 +- 0.0512 seconds time elapsed  ( +-  5.39% )

0.01user 0.02system 0:09.53elapsed 0%CPU (0avgtext+0avgdata 18940maxresident)k
29944inputs+0outputs (0major+2629minor)pagefaults 0swaps
```

Terminate the repeated run and give a reasonable exit value:
```
$ perf stat -v --null --repeat 10 sleep 1
Control descriptor is not initialized
[ perf stat: executing run #1 ... ]
[ perf stat: executing run #2 ... ]
[ perf stat: executing run #3 ... ]
^Csleep: Interrupt

 Performance counter stats for 'sleep 1' (10 runs):

             0.680 +- 0.321 seconds time elapsed  ( +- 47.16% )

Command exited with non-zero status 130
0.00user 0.01system 0:02.05elapsed 0%CPU (0avgtext+0avgdata 70688maxresident)k
0inputs+0outputs (0major+5002minor)pagefaults 0swaps
```

Note, this also changes the exit value for non-repeat runs when
interrupted by a signal.

Reported-by: Ingo Molnar <mingo@kernel.org>
Closes: https://lore.kernel.org/lkml/aS5wjmbAM9ka3M2g@gmail.com/
Signed-off-by: Ian Rogers <irogers@google.com>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
As Jiaming Zhang and syzbot reported, there is potential deadlock in
f2fs as below:

Chain exists of:
  &sbi->cp_rwsem --> fs_reclaim --> sb_internal#2

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  rlock(sb_internal#2);
                               lock(fs_reclaim);
                               lock(sb_internal#2);
  rlock(&sbi->cp_rwsem);

 *** DEADLOCK ***

3 locks held by kswapd0/73:
 #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: balance_pgdat mm/vmscan.c:7015 [inline]
 #0: ffffffff8e247a40 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0x951/0x2800 mm/vmscan.c:7389
 #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_trylock_shared fs/super.c:562 [inline]
 #1: ffff8880118400e0 (&type->s_umount_key#50){.+.+}-{4:4}, at: super_cache_scan+0x91/0x4b0 fs/super.c:197
 #2: ffff888011840610 (sb_internal#2){.+.+}-{0:0}, at: f2fs_evict_inode+0x8d9/0x1b60 fs/f2fs/inode.c:890

stack backtrace:
CPU: 0 UID: 0 PID: 73 Comm: kswapd0 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Call Trace:
 <TASK>
 dump_stack_lvl+0x189/0x250 lib/dump_stack.c:120
 print_circular_bug+0x2ee/0x310 kernel/locking/lockdep.c:2043
 check_noncircular+0x134/0x160 kernel/locking/lockdep.c:2175
 check_prev_add kernel/locking/lockdep.c:3165 [inline]
 check_prevs_add kernel/locking/lockdep.c:3284 [inline]
 validate_chain+0xb9b/0x2140 kernel/locking/lockdep.c:3908
 __lock_acquire+0xab9/0xd20 kernel/locking/lockdep.c:5237
 lock_acquire+0x120/0x360 kernel/locking/lockdep.c:5868
 down_read+0x46/0x2e0 kernel/locking/rwsem.c:1537
 f2fs_down_read fs/f2fs/f2fs.h:2278 [inline]
 f2fs_lock_op fs/f2fs/f2fs.h:2357 [inline]
 f2fs_do_truncate_blocks+0x21c/0x10c0 fs/f2fs/file.c:791
 f2fs_truncate_blocks+0x10a/0x300 fs/f2fs/file.c:867
 f2fs_truncate+0x489/0x7c0 fs/f2fs/file.c:925
 f2fs_evict_inode+0x9f2/0x1b60 fs/f2fs/inode.c:897
 evict+0x504/0x9c0 fs/inode.c:810
 f2fs_evict_inode+0x1dc/0x1b60 fs/f2fs/inode.c:853
 evict+0x504/0x9c0 fs/inode.c:810
 dispose_list fs/inode.c:852 [inline]
 prune_icache_sb+0x21b/0x2c0 fs/inode.c:1000
 super_cache_scan+0x39b/0x4b0 fs/super.c:224
 do_shrink_slab+0x6ef/0x1110 mm/shrinker.c:437
 shrink_slab_memcg mm/shrinker.c:550 [inline]
 shrink_slab+0x7ef/0x10d0 mm/shrinker.c:628
 shrink_one+0x28a/0x7c0 mm/vmscan.c:4955
 shrink_many mm/vmscan.c:5016 [inline]
 lru_gen_shrink_node mm/vmscan.c:5094 [inline]
 shrink_node+0x315d/0x3780 mm/vmscan.c:6081
 kswapd_shrink_node mm/vmscan.c:6941 [inline]
 balance_pgdat mm/vmscan.c:7124 [inline]
 kswapd+0x147c/0x2800 mm/vmscan.c:7389
 kthread+0x70e/0x8a0 kernel/kthread.c:463
 ret_from_fork+0x4bc/0x870 arch/x86/kernel/process.c:158
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
 </TASK>

The root cause is deadlock among four locks as below:

kswapd
- fs_reclaim				--- Lock A
 - shrink_one
  - evict
   - f2fs_evict_inode
    - sb_start_intwrite			--- Lock B

- iput
 - evict
  - f2fs_evict_inode
   - sb_start_intwrite			--- Lock B
   - f2fs_truncate
    - f2fs_truncate_blocks
     - f2fs_do_truncate_blocks
      - f2fs_lock_op			--- Lock C

ioctl
- f2fs_ioc_commit_atomic_write
 - f2fs_lock_op				--- Lock C
  - __f2fs_commit_atomic_write
   - __replace_atomic_write_block
    - f2fs_get_dnode_of_data
     - __get_node_folio
      - f2fs_check_nid_range
       - f2fs_handle_error
        - f2fs_record_errors
         - f2fs_down_write		--- Lock D

open
- do_open
 - do_truncate
  - security_inode_need_killpriv
   - f2fs_getxattr
    - lookup_all_xattrs
     - f2fs_handle_error
      - f2fs_record_errors
       - f2fs_down_write		--- Lock D
        - f2fs_commit_super
         - read_mapping_folio
          - filemap_alloc_folio_noprof
           - prepare_alloc_pages
            - fs_reclaim_acquire	--- Lock A

In order to avoid such deadlock, we need to avoid grabbing sb_lock in
f2fs_handle_error(), so, let's use asynchronous method instead:
- remove f2fs_handle_error() implementation
- rename f2fs_handle_error_async() to f2fs_handle_error()
- spread f2fs_handle_error()

Fixes: 95fa90c ("f2fs: support recording errors into superblock")
Cc: stable@kernel.org
Reported-by: syzbot+14b90e1156b9f6fc1266@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-f2fs-devel/68eae49b.050a0220.ac43.0001.GAE@google.com
Reported-by: Jiaming Zhang <r772577952@gmail.com>
Closes: https://lore.kernel.org/lkml/CANypQFa-Gy9sD-N35o3PC+FystOWkNuN8pv6S75HLT0ga-Tzgw@mail.gmail.com
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
As syzbot reported:

F2FS-fs (loop0): __update_extent_tree_range: extent len is zero, type: 0, extent [0, 0, 0], age [0, 0]
------------[ cut here ]------------
kernel BUG at fs/f2fs/extent_cache.c:678!
Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 0 UID: 0 PID: 5336 Comm: syz.0.0 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:__update_extent_tree_range+0x13bc/0x1500 fs/f2fs/extent_cache.c:678
Call Trace:
 <TASK>
 f2fs_update_read_extent_cache_range+0x192/0x3e0 fs/f2fs/extent_cache.c:1085
 f2fs_do_zero_range fs/f2fs/file.c:1657 [inline]
 f2fs_zero_range+0x10c1/0x1580 fs/f2fs/file.c:1737
 f2fs_fallocate+0x583/0x990 fs/f2fs/file.c:2030
 vfs_fallocate+0x669/0x7e0 fs/open.c:342
 ioctl_preallocate fs/ioctl.c:289 [inline]
 file_ioctl+0x611/0x780 fs/ioctl.c:-1
 do_vfs_ioctl+0xb33/0x1430 fs/ioctl.c:576
 __do_sys_ioctl fs/ioctl.c:595 [inline]
 __se_sys_ioctl+0x82/0x170 fs/ioctl.c:583
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0x3b0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f07bc58eec9

In error path of f2fs_zero_range(), it may add a zero-sized extent
into extent cache, it should be avoided.

Fixes: 6e96194 ("f2fs: support in batch fzero in dnode page")
Cc: stable@kernel.org
Reported-by: syzbot+24124df3170c3638b35f@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-f2fs-devel/68e5d698.050a0220.256323.0032.GAE@google.com
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Bai, Shuangpeng <sjb7183@psu.edu> reported a bug as below:

Oops: divide error: 0000 [#1] SMP KASAN PTI
CPU: 0 UID: 0 PID: 11441 Comm: syz.0.46 Not tainted 6.17.0 #1 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
RIP: 0010:f2fs_all_cluster_page_ready+0x106/0x550 fs/f2fs/compress.c:857
Call Trace:
 <TASK>
 f2fs_write_cache_pages fs/f2fs/data.c:3078 [inline]
 __f2fs_write_data_pages fs/f2fs/data.c:3290 [inline]
 f2fs_write_data_pages+0x1c19/0x3600 fs/f2fs/data.c:3317
 do_writepages+0x38e/0x640 mm/page-writeback.c:2634
 filemap_fdatawrite_wbc mm/filemap.c:386 [inline]
 __filemap_fdatawrite_range mm/filemap.c:419 [inline]
 file_write_and_wait_range+0x2ba/0x3e0 mm/filemap.c:794
 f2fs_do_sync_file+0x6e6/0x1b00 fs/f2fs/file.c:294
 generic_write_sync include/linux/fs.h:3043 [inline]
 f2fs_file_write_iter+0x76e/0x2700 fs/f2fs/file.c:5259
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0x7e9/0xe00 fs/read_write.c:686
 ksys_write+0x19d/0x2d0 fs/read_write.c:738
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xf7/0x470 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

The bug was triggered w/ below race condition:

fsync				setattr			ioctl
- f2fs_do_sync_file
 - file_write_and_wait_range
  - f2fs_write_cache_pages
  : inode is non-compressed
  : cc.cluster_size =
    F2FS_I(inode)->i_cluster_size = 0
   - tag_pages_for_writeback
				- f2fs_setattr
				 - truncate_setsize
				 - f2fs_truncate
							- f2fs_fileattr_set
							 - f2fs_setflags_common
							  - set_compress_context
							  : F2FS_I(inode)->i_cluster_size = 4
							  : set_inode_flag(inode, FI_COMPRESSED_FILE)
   - f2fs_compressed_file
   : return true
   - f2fs_all_cluster_page_ready
   : "pgidx % cc->cluster_size" trigger dividing 0 issue

Let's change as below to fix this issue:
- introduce a new atomic type variable .writeback in structure f2fs_inode_info
to track the number of threads which calling f2fs_write_cache_pages().
- use .i_sem lock to protect .writeback update.
- check .writeback before update compression context in f2fs_setflags_common()
to avoid race w/ ->writepages.

Fixes: 4c8ff70 ("f2fs: support data compression")
Cc: stable@kernel.org
Reported-by: Bai, Shuangpeng <sjb7183@psu.edu>
Tested-by: Bai, Shuangpeng <sjb7183@psu.edu>
Closes: https://lore.kernel.org/lkml/44D8F7B3-68AD-425F-9915-65D27591F93F@psu.edu
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
As Hong Yun reported in mailing list:

loop7: detected capacity change from 0 to 131072
------------[ cut here ]------------
kmem_cache of name 'f2fs_xattr_entry-7:7' already exists
WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 kmem_cache_sanity_check mm/slab_common.c:109 [inline]
WARNING: CPU: 0 PID: 24426 at mm/slab_common.c:110 __kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307
CPU: 0 UID: 0 PID: 24426 Comm: syz.7.1370 Not tainted 6.17.0-rc4 #1 PREEMPT(full)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
RIP: 0010:kmem_cache_sanity_check mm/slab_common.c:109 [inline]
RIP: 0010:__kmem_cache_create_args+0xa6/0x320 mm/slab_common.c:307
Call Trace:
 __kmem_cache_create include/linux/slab.h:353 [inline]
 f2fs_kmem_cache_create fs/f2fs/f2fs.h:2943 [inline]
 f2fs_init_xattr_caches+0xa5/0xe0 fs/f2fs/xattr.c:843
 f2fs_fill_super+0x1645/0x2620 fs/f2fs/super.c:4918
 get_tree_bdev_flags+0x1fb/0x260 fs/super.c:1692
 vfs_get_tree+0x43/0x140 fs/super.c:1815
 do_new_mount+0x201/0x550 fs/namespace.c:3808
 do_mount fs/namespace.c:4136 [inline]
 __do_sys_mount fs/namespace.c:4347 [inline]
 __se_sys_mount+0x298/0x2f0 fs/namespace.c:4324
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x8e/0x3a0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x76/0x7e

The bug can be reproduced w/ below scripts:
- mount /dev/vdb /mnt1
- mount /dev/vdc /mnt2
- umount /mnt1
- mounnt /dev/vdb /mnt1

The reason is if we created two slab caches, named f2fs_xattr_entry-7:3
and f2fs_xattr_entry-7:7, and they have the same slab size. Actually,
slab system will only create one slab cache core structure which has
slab name of "f2fs_xattr_entry-7:3", and two slab caches share the same
structure and cache address.

So, if we destroy f2fs_xattr_entry-7:3 cache w/ cache address, it will
decrease reference count of slab cache, rather than release slab cache
entirely, since there is one more user has referenced the cache.

Then, if we try to create slab cache w/ name "f2fs_xattr_entry-7:3" again,
slab system will find that there is existed cache which has the same name
and trigger the warning.

Let's changes to use global inline_xattr_slab instead of per-sb slab cache
for fixing.

Fixes: a999150 ("f2fs: use kmem_cache pool during inline xattr lookups")
Cc: stable@kernel.org
Reported-by: Hong Yun <yhong@link.cuhk.edu.hk>
Tested-by: Hong Yun <yhong@link.cuhk.edu.hk>
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Xfstests generic/335, generic/336 sometimes crash with the following message:

F2FS-fs (dm-0): detect filesystem reference count leak during umount, type: 9, count: 1
------------[ cut here ]------------
kernel BUG at fs/f2fs/super.c:1939!
Oops: invalid opcode: 0000 [#1] SMP NOPTI
CPU: 1 UID: 0 PID: 609351 Comm: umount Tainted: G        W           6.17.0-rc5-xfstests-g9dd1835ecda5 #1 PREEMPT(none)
Tainted: [W]=WARN
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:f2fs_put_super+0x3b3/0x3c0
Call Trace:
 <TASK>
 generic_shutdown_super+0x7e/0x190
 kill_block_super+0x1a/0x40
 kill_f2fs_super+0x9d/0x190
 deactivate_locked_super+0x30/0xb0
 cleanup_mnt+0xba/0x150
 task_work_run+0x5c/0xa0
 exit_to_user_mode_loop+0xb7/0xc0
 do_syscall_64+0x1ae/0x1c0
 entry_SYSCALL_64_after_hwframe+0x76/0x7e
 </TASK>
---[ end trace 0000000000000000 ]---

It appears that sometimes it is possible that f2fs_put_super() is called before
all node page reads are completed.
Adding a call to f2fs_wait_on_all_pages() for F2FS_RD_NODE fixes the problem.

Cc: stable@kernel.org
Fixes: 2087258 ("f2fs: fix to drop all dirty meta/node pages during umount()")
Signed-off-by: Jan Prusakowski <jprusakowski@google.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
With below scripts, it will trigger panic in f2fs:

mkfs.f2fs -f /dev/vdd
mount /dev/vdd /mnt/f2fs
touch /mnt/f2fs/foo
sync
echo 111 >> /mnt/f2fs/foo
f2fs_io fsync /mnt/f2fs/foo
f2fs_io shutdown 2 /mnt/f2fs
umount /mnt/f2fs
mount -o ro,norecovery /dev/vdd /mnt/f2fs
or
mount -o ro,disable_roll_forward /dev/vdd /mnt/f2fs

F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 0
F2FS-fs (vdd): Mounted with checkpoint version = 7f5c361f
F2FS-fs (vdd): Stopped filesystem due to reason: 0
F2FS-fs (vdd): f2fs_recover_fsync_data: recovery fsync data, check_only: 1
Filesystem f2fs get_tree() didn't set fc->root, returned 1
------------[ cut here ]------------
kernel BUG at fs/super.c:1761!
Oops: invalid opcode: 0000 [#1] SMP PTI
CPU: 3 UID: 0 PID: 722 Comm: mount Not tainted 6.18.0-rc2+ torvalds#721 PREEMPT(voluntary)
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:vfs_get_tree.cold+0x18/0x1a
Call Trace:
 <TASK>
 fc_mount+0x13/0xa0
 path_mount+0x34e/0xc50
 __x64_sys_mount+0x121/0x150
 do_syscall_64+0x84/0x800
 entry_SYSCALL_64_after_hwframe+0x76/0x7e
RIP: 0033:0x7fa6cc126cfe

The root cause is we missed to handle error number returned from
f2fs_recover_fsync_data() when mounting image w/ ro,norecovery or
ro,disable_roll_forward mount option, result in returning a positive
error number to vfs_get_tree(), fix it.

Cc: stable@kernel.org
Fixes: 6781eab ("f2fs: give -EINVAL for norecovery and rw mount")
Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
kbd_led_set() can sleep, and so may not be used as the brightness_set()
callback.

Otherwise using this led with a trigger leads to system hangs
accompanied by:
BUG: scheduling while atomic: acpi_fakekeyd/2588/0x00000003
CPU: 4 UID: 0 PID: 2588 Comm: acpi_fakekeyd Not tainted 6.17.9+deb14-amd64 #1 PREEMPT(lazy)  Debian 6.17.9-1
Hardware name: ASUSTeK COMPUTER INC. ASUS EXPERTBOOK B9403CVAR/B9403CVAR, BIOS B9403CVAR.311 12/24/2024
Call Trace:
 <TASK>
 [...]
 schedule_timeout+0xbd/0x100
 __down_common+0x175/0x290
 down_timeout+0x67/0x70
 acpi_os_wait_semaphore+0x57/0x90
 [...]
 asus_wmi_evaluate_method3+0x87/0x190 [asus_wmi]
 led_trigger_event+0x3f/0x60
 [...]

Fixes: 9fe44fc ("platform/x86: asus-wmi: Simplify the keyboard brightness updating process")
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Reviewed-by: Denis Benato <benato.denis96@gmail.com>
Link: https://patch.msgid.link/20251129101307.18085-3-anton@khirnov.net
Reviewed-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
Signed-off-by: Ilpo Järvinen <ilpo.jarvinen@linux.intel.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
At the moment - the memory allocation for fwsec-sb is created as-needed and
is released after being used. Typically this is at some point well after
driver load, which can cause runtime suspend/resume to initially work on
driver load but then later fail on a machine that has been running for long
enough with sufficiently high enough memory pressure:

  kworker/7:1: page allocation failure: order:5, mode:0xcc0(GFP_KERNEL),
  nodemask=(null),cpuset=/,mems_allowed=0
  CPU: 7 UID: 0 PID: 875159 Comm: kworker/7:1 Not tainted
  6.17.8-300.fc43.x86_64 #1 PREEMPT(lazy)
  Hardware name: SLIMBOOK Executive/Executive, BIOS N.1.10GRU06 02/02/2024
  Workqueue: pm pm_runtime_work
  Call Trace:
   <TASK>
   dump_stack_lvl+0x5d/0x80
   warn_alloc+0x163/0x190
   ? __alloc_pages_direct_compact+0x1b3/0x220
   __alloc_pages_slowpath.constprop.0+0x57a/0xb10
   __alloc_frozen_pages_noprof+0x334/0x350
   __alloc_pages_noprof+0xe/0x20
   __dma_direct_alloc_pages.isra.0+0x1eb/0x330
   dma_direct_alloc_pages+0x3c/0x190
   dma_alloc_pages+0x29/0x130
   nvkm_firmware_ctor+0x1ae/0x280 [nouveau]
   nvkm_falcon_fw_ctor+0x3e/0x60 [nouveau]
   nvkm_gsp_fwsec+0x10e/0x2c0 [nouveau]
   ? sysvec_apic_timer_interrupt+0xe/0x90
   nvkm_gsp_fwsec_sb+0x27/0x70 [nouveau]
   tu102_gsp_fini+0x65/0x110 [nouveau]
   ? ktime_get+0x3c/0xf0
   nvkm_subdev_fini+0x67/0xc0 [nouveau]
   nvkm_device_fini+0x94/0x140 [nouveau]
   nvkm_udevice_fini+0x50/0x70 [nouveau]
   nvkm_object_fini+0xb1/0x140 [nouveau]
   nvkm_object_fini+0x70/0x140 [nouveau]
   ? __pfx_pci_pm_runtime_suspend+0x10/0x10
   nouveau_do_suspend+0xe4/0x170 [nouveau]
   nouveau_pmops_runtime_suspend+0x3e/0xb0 [nouveau]
   pci_pm_runtime_suspend+0x67/0x1a0
   ? __pfx_pci_pm_runtime_suspend+0x10/0x10
   __rpm_callback+0x45/0x1f0
   ? __pfx_pci_pm_runtime_suspend+0x10/0x10
   rpm_callback+0x6d/0x80
   rpm_suspend+0xe5/0x5e0
   ? finish_task_switch.isra.0+0x99/0x2c0
   pm_runtime_work+0x98/0xb0
   process_one_work+0x18f/0x350
   worker_thread+0x25a/0x3a0
   ? __pfx_worker_thread+0x10/0x10
   kthread+0xf9/0x240
   ? __pfx_kthread+0x10/0x10
   ? __pfx_kthread+0x10/0x10
   ret_from_fork+0xf1/0x110
   ? __pfx_kthread+0x10/0x10
   ret_from_fork_asm+0x1a/0x30
   </TASK>

The reason this happens is because the fwsec-sb firmware image only
supports being booted from a contiguous coherent sysmem allocation. If a
system runs into enough memory fragmentation from memory pressure, such as
what can happen on systems with low amounts of memory, this can lead to a
situation where it later becomes impossible to find space for a large
enough contiguous allocation to hold fwsec-sb. This causes us to fail to
boot the firmware image, causing the GPU to fail booting and causing the
driver to fail.

Since this firmware can't use non-contiguous allocations, the best solution
to avoid this issue is to simply allocate the memory for fwsec-sb during
initial driver-load, and reuse the memory allocation when fwsec-sb needs to
be used. We then release the memory allocations on driver unload.

Signed-off-by: Lyude Paul <lyude@redhat.com>
Fixes: 594766c ("drm/nouveau/gsp: move booter handling to GPU-specific code")
Cc: <stable@vger.kernel.org> # v6.16+
Reviewed-by: Timur Tabi <ttabi@nvidia.com>
Link: https://patch.msgid.link/20251202175918.63533-1-lyude@redhat.com
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Since commit a735831 ("drm/nouveau: vendor in drm_encoder_slave API")
nouveau appears to be broken for all dispnv04 GPUs (before NV50). Depending
on the kernel version, either having no display output and hanging in
kernel for a long time, or even oopsing in the cleanup path like:

Hardware name: PowerMac11,2 PPC970MP 0x440101 PowerMac
...
nouveau 0000:0a:00.0: drm: 0x14C5: Parsing digital output script table
BUG: Unable to handle kernel data access on read at 0x00041520
Faulting instruction address: 0xc0003d0001be0844
Oops: Kernel access of bad area, sig: 11 [#1]
BE PAGE_SIZE=4K MMU=Hash  SMP NR_CPUS=8 NUMA PowerMac
Modules linked in: windfarm_cpufreq_clamp windfarm_smu_sensors windfarm_smu_controls windfarm_pm112 snd_aoa_codec_onyx snd_aoa_fabric_layout snd_aoa windfarm_pid jo
 apple_mfi_fastcharge rndis_host cdc_ether usbnet mii snd_aoa_i2sbus snd_aoa_soundbus snd_pcm snd_timer snd soundcore rack_meter windfarm_smu_sat windfarm_max6690_s
m75_sensor windfarm_core gpu_sched drm_gpuvm drm_exec drm_client_lib drm_ttm_helper ttm drm_display_helper drm_kms_helper drm drm_panel_orientation_quirks syscopyar
_sys_fops i2c_algo_bit backlight uio_pdrv_genirq uio uninorth_agp agpgart zram dm_mod dax ipv6 nfsv4 dns_resolver nfs lockd grace sunrpc offb cfbfillrect cfbimgblt
ont input_leds sr_mod cdrom sd_mod uas ata_generic hid_apple hid_generic usbhid hid usb_storage pata_macio sata_svw libata firewire_ohci scsi_mod firewire_core ohci
ehci_pci ehci_hcd tg3 ohci_hcd libphy usbcore usb_common nls_base
 led_class
CPU: 0 UID: 0 PID: 245 Comm: (udev-worker) Not tainted 6.14.0-09584-g7d06015d936c torvalds#7 PREEMPTLAZY
Hardware name: PowerMac11,2 PPC970MP 0x440101 PowerMac
NIP:  c0003d0001be0844 LR: c0003d0001be0830 CTR: 0000000000000000
REGS: c0000000053f70e0 TRAP: 0300   Not tainted  (6.14.0-09584-g7d06015d936c)
MSR:  9000000000009032 <SF,HV,EE,ME,IR,DR,RI>  CR: 24222220  XER: 00000000
DAR: 0000000000041520 DSISR: 40000000 IRQMASK: 0 \x0aGPR00: c0003d0001be0830 c0000000053f7380 c0003d0000911900 c000000007bc6800 \x0aGPR04: 0000000000000000 0000000000000000 c000000007bc6e70 0000000000000001 \x0aGPR08: 01f3040000000000 0000000000041520 0000000000000000 c0003d0000813958 \x0aGPR12: c000000000071a48 c000000000e28000 0000000000000020 0000000000000000 \x0aGPR16: 0000000000000000 0000000000f52630 0000000000000000 0000000000000000 \x0aGPR20: 0000000000000000 0000000000000000 0000000000000001 c0003d0000928528 \x0aGPR24: c0003d0000928598 0000000000000000 c000000007025480 c000000007025480 \x0aGPR28: c0000000010b4000 0000000000000000 c000000007bc1800 c000000007bc6800
NIP [c0003d0001be0844] nv_crtc_destroy+0x44/0xd4 [nouveau]
LR [c0003d0001be0830] nv_crtc_destroy+0x30/0xd4 [nouveau]
Call Trace:
[c0000000053f7380] [c0003d0001be0830] nv_crtc_destroy+0x30/0xd4 [nouveau] (unreliable)
[c0000000053f73c0] [c0003d00007f7bf4] drm_mode_config_cleanup+0x27c/0x30c [drm]
[c0000000053f7490] [c0003d0001bdea50] nouveau_display_create+0x1cc/0x550 [nouveau]
[c0000000053f7500] [c0003d0001bcc29c] nouveau_drm_device_init+0x1c8/0x844 [nouveau]
[c0000000053f75e0] [c0003d0001bcc9ec] nouveau_drm_probe+0xd4/0x1e0 [nouveau]
[c0000000053f7670] [c000000000557d24] local_pci_probe+0x50/0xa8
[c0000000053f76f0] [c000000000557fa8] pci_device_probe+0x22c/0x240
[c0000000053f7760] [c0000000005fff3c] really_probe+0x188/0x31c
[c0000000053f77e0] [c000000000600204] __driver_probe_device+0x134/0x13c
[c0000000053f7860] [c0000000006002c0] driver_probe_device+0x3c/0xb4
[c0000000053f78a0] [c000000000600534] __driver_attach+0x118/0x128
[c0000000053f78e0] [c0000000005fe038] bus_for_each_dev+0xa8/0xf4
[c0000000053f7950] [c0000000005ff460] driver_attach+0x2c/0x40
[c0000000053f7970] [c0000000005fea68] bus_add_driver+0x130/0x278
[c0000000053f7a00] [c00000000060117c] driver_register+0x9c/0x1a0
[c0000000053f7a80] [c00000000055623c] __pci_register_driver+0x5c/0x70
[c0000000053f7aa0] [c0003d0001c058a0] nouveau_drm_init+0x254/0x278 [nouveau]
[c0000000053f7b10] [c00000000000e9bc] do_one_initcall+0x84/0x268
[c0000000053f7bf0] [c0000000001a0ba0] do_init_module+0x70/0x2d8
[c0000000053f7c70] [c0000000001a42bc] init_module_from_file+0xb4/0x108
[c0000000053f7d50] [c0000000001a4504] sys_finit_module+0x1ac/0x478
[c0000000053f7e10] [c000000000023230] system_call_exception+0x1a4/0x20c
[c0000000053f7e50] [c00000000000c554] system_call_common+0xf4/0x258
 --- interrupt: c00 at 0xfd5f988
NIP:  000000000fd5f988 LR: 000000000ff9b148 CTR: 0000000000000000
REGS: c0000000053f7e80 TRAP: 0c00   Not tainted  (6.14.0-09584-g7d06015d936c)
MSR:  100000000000d032 <HV,EE,PR,ME,IR,DR,RI>  CR: 28222244  XER: 00000000
IRQMASK: 0 \x0aGPR00: 0000000000000161 00000000ffcdc2d0 00000000405db160 0000000000000020 \x0aGPR04: 000000000ffa2c9c 0000000000000000 000000000000001f 0000000000000045 \x0aGPR08: 0000000011a13770 0000000000000000 0000000000000000 0000000000000000 \x0aGPR12: 0000000000000000 0000000010249d8c 0000000000000020 0000000000000000 \x0aGPR16: 0000000000000000 0000000000f52630 0000000000000000 0000000000000000 \x0aGPR20: 0000000000000000 0000000000000000 0000000000000000 0000000011a11a70 \x0aGPR24: 0000000011a13580 0000000011a11950 0000000011a11a70 0000000000020000 \x0aGPR28: 000000000ffa2c9c 0000000000000000 000000000ffafc40 0000000011a11a70
NIP [000000000fd5f988] 0xfd5f988
LR [000000000ff9b148] 0xff9b148
 --- interrupt: c00
Code: f821ffc1 418200ac e93f0000 e9290038 e9291468 eba90000 48026c0d e8410018 e93f06aa 3d290001 392982a4 79291f24 <7fdd482a> 2c3e0000 41820030 7fc3f378
 ---[ end trace 0000000000000000 ]---

This is caused by the i2c encoder modules vendored into nouveau/ now
depending on the equally vendored nouveau_i2c_encoder_destroy
function. Trying to auto-load this modules hangs on nouveau
initialization until timeout, and nouveau continues without i2c video
encoders.

Fix by avoiding nouveau dependency by __always_inlining that helper
functions into those i2c video encoder modules.

Fixes: a735831 ("drm/nouveau: vendor in drm_encoder_slave API")
Signed-off-by: René Rebe <rene@exactco.de>
Reviewed-by: Lyude Paul <lyude@redhat.com>
[Lyude: fixed commit reference in description]
Signed-off-by: Lyude Paul <lyude@redhat.com>
Link: https://patch.msgid.link/20251202.164952.2216481867721531616.rene@exactco.de
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
… transaction

We can't log a conflicting inode if it's a directory and it was moved
from one parent directory to another parent directory in the current
transaction, as this can result an attempt to have a directory with
two hard links during log replay, one for the old parent directory and
another for the new parent directory.

The following scenario triggers that issue:

1) We have directories "dir1" and "dir2" created in a past transaction.
   Directory "dir1" has inode A as its parent directory;

2) We move "dir1" to some other directory;

3) We create a file with the name "dir1" in directory inode A;

4) We fsync the new file. This results in logging the inode of the new file
   and the inode for the directory "dir1" that was previously moved in the
   current transaction. So the log tree has the INODE_REF item for the
   new location of "dir1";

5) We move the new file to some other directory. This results in updating
   the log tree to included the new INODE_REF for the new location of the
   file and removes the INODE_REF for the old location. This happens
   during the rename when we call btrfs_log_new_name();

6) We fsync the file, and that persists the log tree changes done in the
   previous step (btrfs_log_new_name() only updates the log tree in
   memory);

7) We have a power failure;

8) Next time the fs is mounted, log replay happens and when processing
   the inode for directory "dir1" we find a new INODE_REF and add that
   link, but we don't remove the old link of the inode since we have
   not logged the old parent directory of the directory inode "dir1".

As a result after log replay finishes when we trigger writeback of the
subvolume tree's extent buffers, the tree check will detect that we have
a directory a hard link count of 2 and we get a mount failure.
The errors and stack traces reported in dmesg/syslog are like this:

   [ 3845.729764] BTRFS info (device dm-0): start tree-log replay
   [ 3845.730304] page: refcount:3 mapcount:0 mapping:000000005c8a3027 index:0x1d00 pfn:0x11510c
   [ 3845.731236] memcg:ffff9264c02f4e00
   [ 3845.731751] aops:btree_aops [btrfs] ino:1
   [ 3845.732300] flags: 0x17fffc00000400a(uptodate|private|writeback|node=0|zone=2|lastcpupid=0x1ffff)
   [ 3845.733346] raw: 017fffc00000400a 0000000000000000 dead000000000122 ffff9264d978aea8
   [ 3845.734265] raw: 0000000000001d00 ffff92650e6d4738 00000003ffffffff ffff9264c02f4e00
   [ 3845.735305] page dumped because: eb page dump
   [ 3845.735981] BTRFS critical (device dm-0): corrupt leaf: root=5 block=30408704 slot=6 ino=257, invalid nlink: has 2 expect no more than 1 for dir
   [ 3845.737786] BTRFS info (device dm-0): leaf 30408704 gen 10 total ptrs 17 free space 14881 owner 5
   [ 3845.737789] BTRFS info (device dm-0): refs 4 lock_owner 0 current 30701
   [ 3845.737792] 	item 0 key (256 INODE_ITEM 0) itemoff 16123 itemsize 160
   [ 3845.737794] 		inode generation 3 transid 9 size 16 nbytes 16384
   [ 3845.737795] 		block group 0 mode 40755 links 1 uid 0 gid 0
   [ 3845.737797] 		rdev 0 sequence 2 flags 0x0
   [ 3845.737798] 		atime 1764259517.0
   [ 3845.737800] 		ctime 1764259517.572889464
   [ 3845.737801] 		mtime 1764259517.572889464
   [ 3845.737802] 		otime 1764259517.0
   [ 3845.737803] 	item 1 key (256 INODE_REF 256) itemoff 16111 itemsize 12
   [ 3845.737805] 		index 0 name_len 2
   [ 3845.737807] 	item 2 key (256 DIR_ITEM 2363071922) itemoff 16077 itemsize 34
   [ 3845.737808] 		location key (257 1 0) type 2
   [ 3845.737810] 		transid 9 data_len 0 name_len 4
   [ 3845.737811] 	item 3 key (256 DIR_ITEM 2676584006) itemoff 16043 itemsize 34
   [ 3845.737813] 		location key (258 1 0) type 2
   [ 3845.737814] 		transid 9 data_len 0 name_len 4
   [ 3845.737815] 	item 4 key (256 DIR_INDEX 2) itemoff 16009 itemsize 34
   [ 3845.737816] 		location key (257 1 0) type 2
   [ 3845.737818] 		transid 9 data_len 0 name_len 4
   [ 3845.737819] 	item 5 key (256 DIR_INDEX 3) itemoff 15975 itemsize 34
   [ 3845.737820] 		location key (258 1 0) type 2
   [ 3845.737821] 		transid 9 data_len 0 name_len 4
   [ 3845.737822] 	item 6 key (257 INODE_ITEM 0) itemoff 15815 itemsize 160
   [ 3845.737824] 		inode generation 9 transid 10 size 6 nbytes 0
   [ 3845.737825] 		block group 0 mode 40755 links 2 uid 0 gid 0
   [ 3845.737826] 		rdev 0 sequence 1 flags 0x0
   [ 3845.737827] 		atime 1764259517.572889464
   [ 3845.737828] 		ctime 1764259517.572889464
   [ 3845.737830] 		mtime 1764259517.572889464
   [ 3845.737831] 		otime 1764259517.572889464
   [ 3845.737832] 	item 7 key (257 INODE_REF 256) itemoff 15801 itemsize 14
   [ 3845.737833] 		index 2 name_len 4
   [ 3845.737834] 	item 8 key (257 INODE_REF 258) itemoff 15787 itemsize 14
   [ 3845.737836] 		index 2 name_len 4
   [ 3845.737837] 	item 9 key (257 DIR_ITEM 2507850652) itemoff 15754 itemsize 33
   [ 3845.737838] 		location key (259 1 0) type 1
   [ 3845.737839] 		transid 10 data_len 0 name_len 3
   [ 3845.737840] 	item 10 key (257 DIR_INDEX 2) itemoff 15721 itemsize 33
   [ 3845.737842] 		location key (259 1 0) type 1
   [ 3845.737843] 		transid 10 data_len 0 name_len 3
   [ 3845.737844] 	item 11 key (258 INODE_ITEM 0) itemoff 15561 itemsize 160
   [ 3845.737846] 		inode generation 9 transid 10 size 8 nbytes 0
   [ 3845.737847] 		block group 0 mode 40755 links 1 uid 0 gid 0
   [ 3845.737848] 		rdev 0 sequence 1 flags 0x0
   [ 3845.737849] 		atime 1764259517.572889464
   [ 3845.737850] 		ctime 1764259517.572889464
   [ 3845.737851] 		mtime 1764259517.572889464
   [ 3845.737852] 		otime 1764259517.572889464
   [ 3845.737853] 	item 12 key (258 INODE_REF 256) itemoff 15547 itemsize 14
   [ 3845.737855] 		index 3 name_len 4
   [ 3845.737856] 	item 13 key (258 DIR_ITEM 1843588421) itemoff 15513 itemsize 34
   [ 3845.737857] 		location key (257 1 0) type 2
   [ 3845.737858] 		transid 10 data_len 0 name_len 4
   [ 3845.737860] 	item 14 key (258 DIR_INDEX 2) itemoff 15479 itemsize 34
   [ 3845.737861] 		location key (257 1 0) type 2
   [ 3845.737862] 		transid 10 data_len 0 name_len 4
   [ 3845.737863] 	item 15 key (259 INODE_ITEM 0) itemoff 15319 itemsize 160
   [ 3845.737865] 		inode generation 10 transid 10 size 0 nbytes 0
   [ 3845.737866] 		block group 0 mode 100600 links 1 uid 0 gid 0
   [ 3845.737867] 		rdev 0 sequence 2 flags 0x0
   [ 3845.737868] 		atime 1764259517.580874966
   [ 3845.737869] 		ctime 1764259517.586121869
   [ 3845.737870] 		mtime 1764259517.580874966
   [ 3845.737872] 		otime 1764259517.580874966
   [ 3845.737873] 	item 16 key (259 INODE_REF 257) itemoff 15306 itemsize 13
   [ 3845.737874] 		index 2 name_len 3
   [ 3845.737875] BTRFS error (device dm-0): block=30408704 write time tree block corruption detected
   [ 3845.739448] ------------[ cut here ]------------
   [ 3845.740092] WARNING: CPU: 5 PID: 30701 at fs/btrfs/disk-io.c:335 btree_csum_one_bio+0x25a/0x270 [btrfs]
   [ 3845.741439] Modules linked in: btrfs dm_flakey crc32c_cryptoapi (...)
   [ 3845.750626] CPU: 5 UID: 0 PID: 30701 Comm: mount Tainted: G        W           6.18.0-rc6-btrfs-next-218+ #1 PREEMPT(full)
   [ 3845.752414] Tainted: [W]=WARN
   [ 3845.752828] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.2-0-gea1b7a073390-prebuilt.qemu.org 04/01/2014
   [ 3845.754499] RIP: 0010:btree_csum_one_bio+0x25a/0x270 [btrfs]
   [ 3845.755460] Code: 31 f6 48 89 (...)
   [ 3845.758685] RSP: 0018:ffffa8d9c5677678 EFLAGS: 00010246
   [ 3845.759450] RAX: 0000000000000000 RBX: ffff92650e6d4738 RCX: 0000000000000000
   [ 3845.760309] RDX: 0000000000000000 RSI: ffffffff9aab45b9 RDI: ffff9264c4748000
   [ 3845.761239] RBP: ffff9264d4324000 R08: 0000000000000000 R09: ffffa8d9c5677468
   [ 3845.762607] R10: ffff926bdc1fffa8 R11: 0000000000000003 R12: ffffa8d9c5677680
   [ 3845.764099] R13: 0000000000004000 R14: ffff9264dd624000 R15: ffff9264d978aba8
   [ 3845.765094] FS:  00007f751fa5a840(0000) GS:ffff926c42a82000(0000) knlGS:0000000000000000
   [ 3845.766226] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
   [ 3845.766970] CR2: 0000558df1815380 CR3: 000000010ed88003 CR4: 0000000000370ef0
   [ 3845.768009] Call Trace:
   [ 3845.768392]  <TASK>
   [ 3845.768714]  btrfs_submit_bbio+0x6ee/0x7f0 [btrfs]
   [ 3845.769640]  ? write_one_eb+0x28e/0x340 [btrfs]
   [ 3845.770588]  btree_write_cache_pages+0x2f0/0x550 [btrfs]
   [ 3845.771286]  ? alloc_extent_state+0x19/0x100 [btrfs]
   [ 3845.771967]  ? merge_next_state+0x1a/0x90 [btrfs]
   [ 3845.772586]  ? set_extent_bit+0x233/0x8b0 [btrfs]
   [ 3845.773198]  ? xas_load+0x9/0xc0
   [ 3845.773589]  ? xas_find+0x14d/0x1a0
   [ 3845.773969]  do_writepages+0xc6/0x160
   [ 3845.774367]  filemap_fdatawrite_wbc+0x48/0x60
   [ 3845.775003]  __filemap_fdatawrite_range+0x5b/0x80
   [ 3845.775902]  btrfs_write_marked_extents+0x61/0x170 [btrfs]
   [ 3845.776707]  btrfs_write_and_wait_transaction+0x4e/0xc0 [btrfs]
   [ 3845.777379]  ? _raw_spin_unlock_irqrestore+0x23/0x40
   [ 3845.777923]  btrfs_commit_transaction+0x5ea/0xd20 [btrfs]
   [ 3845.778551]  ? _raw_spin_unlock+0x15/0x30
   [ 3845.778986]  ? release_extent_buffer+0x34/0x160 [btrfs]
   [ 3845.779659]  btrfs_recover_log_trees+0x7a3/0x7c0 [btrfs]
   [ 3845.780416]  ? __pfx_replay_one_buffer+0x10/0x10 [btrfs]
   [ 3845.781499]  open_ctree+0x10bb/0x15f0 [btrfs]
   [ 3845.782194]  btrfs_get_tree.cold+0xb/0x16c [btrfs]
   [ 3845.782764]  ? fscontext_read+0x15c/0x180
   [ 3845.783202]  ? rw_verify_area+0x50/0x180
   [ 3845.783667]  vfs_get_tree+0x25/0xd0
   [ 3845.784047]  vfs_cmd_create+0x59/0xe0
   [ 3845.784458]  __do_sys_fsconfig+0x4f6/0x6b0
   [ 3845.784914]  do_syscall_64+0x50/0x1220
   [ 3845.785340]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
   [ 3845.785980] RIP: 0033:0x7f751fc7f4aa
   [ 3845.786759] Code: 73 01 c3 48 (...)
   [ 3845.789951] RSP: 002b:00007ffcdba45dc8 EFLAGS: 00000246 ORIG_RAX: 00000000000001af
   [ 3845.791402] RAX: ffffffffffffffda RBX: 000055ccc8291c20 RCX: 00007f751fc7f4aa
   [ 3845.792688] RDX: 0000000000000000 RSI: 0000000000000006 RDI: 0000000000000003
   [ 3845.794308] RBP: 000055ccc8292120 R08: 0000000000000000 R09: 0000000000000000
   [ 3845.795829] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
   [ 3845.797183] R13: 00007f751fe11580 R14: 00007f751fe1326c R15: 00007f751fdf8a23
   [ 3845.798633]  </TASK>
   [ 3845.799067] ---[ end trace 0000000000000000 ]---
   [ 3845.800215] BTRFS: error (device dm-0) in btrfs_commit_transaction:2553: errno=-5 IO failure (Error while writing out transaction)
   [ 3845.801860] BTRFS warning (device dm-0 state E): Skipping commit of aborted transaction.
   [ 3845.802815] BTRFS error (device dm-0 state EA): Transaction aborted (error -5)
   [ 3845.803728] BTRFS: error (device dm-0 state EA) in cleanup_transaction:2036: errno=-5 IO failure
   [ 3845.805374] BTRFS: error (device dm-0 state EA) in btrfs_replay_log:2083: errno=-5 IO failure (Failed to recover log tree)
   [ 3845.807919] BTRFS error (device dm-0 state EA): open_ctree failed: -5

Fix this by never logging a conflicting inode that is a directory and was
moved in the current transaction (its last_unlink_trans equals the current
transaction) and instead fallback to a transaction commit.

A test case for fstests will follow soon.

Reported-by: Vyacheslav Kovalevsky <slva.kovalevskiy.2014@gmail.com>
Link: https://lore.kernel.org/linux-btrfs/7bbc9419-5c56-450a-b5a0-efeae7457113@gmail.com/
CC: stable@vger.kernel.org # 6.1+
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
prp_get_untagged_frame() calls __pskb_copy() to create frame->skb_std
but doesn't check if the allocation failed. If __pskb_copy() returns
NULL, skb_clone() is called with a NULL pointer, causing a crash:

Oops: general protection fault, probably for non-canonical address 0xdffffc000000000f: 0000 [#1] SMP KASAN NOPTI
KASAN: null-ptr-deref in range [0x0000000000000078-0x000000000000007f]
CPU: 0 UID: 0 PID: 5625 Comm: syz.1.18 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:skb_clone+0xd7/0x3a0 net/core/skbuff.c:2041
Code: 03 42 80 3c 20 00 74 08 4c 89 f7 e8 23 29 05 f9 49 83 3e 00 0f 85 a0 01 00 00 e8 94 dd 9d f8 48 8d 6b 7e 49 89 ee 49 c1 ee 03 <43> 0f b6 04 26 84 c0 0f 85 d1 01 00 00 44 0f b6 7d 00 41 83 e7 0c
RSP: 0018:ffffc9000d00f200 EFLAGS: 00010207
RAX: ffffffff892235a1 RBX: 0000000000000000 RCX: ffff88803372a480
RDX: 0000000000000000 RSI: 0000000000000820 RDI: 0000000000000000
RBP: 000000000000007e R08: ffffffff8f7d0f77 R09: 1ffffffff1efa1ee
R10: dffffc0000000000 R11: fffffbfff1efa1ef R12: dffffc0000000000
R13: 0000000000000820 R14: 000000000000000f R15: ffff88805144cc00
FS:  0000555557f6d500(0000) GS:ffff88808d72f000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000555581d35808 CR3: 000000005040e000 CR4: 0000000000352ef0
Call Trace:
 <TASK>
 hsr_forward_do net/hsr/hsr_forward.c:-1 [inline]
 hsr_forward_skb+0x1013/0x2860 net/hsr/hsr_forward.c:741
 hsr_handle_frame+0x6ce/0xa70 net/hsr/hsr_slave.c:84
 __netif_receive_skb_core+0x10b9/0x4380 net/core/dev.c:5966
 __netif_receive_skb_one_core net/core/dev.c:6077 [inline]
 __netif_receive_skb+0x72/0x380 net/core/dev.c:6192
 netif_receive_skb_internal net/core/dev.c:6278 [inline]
 netif_receive_skb+0x1cb/0x790 net/core/dev.c:6337
 tun_rx_batched+0x1b9/0x730 drivers/net/tun.c:1485
 tun_get_user+0x2b65/0x3e90 drivers/net/tun.c:1953
 tun_chr_write_iter+0x113/0x200 drivers/net/tun.c:1999
 new_sync_write fs/read_write.c:593 [inline]
 vfs_write+0x5c9/0xb30 fs/read_write.c:686
 ksys_write+0x145/0x250 fs/read_write.c:738
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xfa/0xfa0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f0449f8e1ff
Code: 89 54 24 18 48 89 74 24 10 89 7c 24 08 e8 f9 92 02 00 48 8b 54 24 18 48 8b 74 24 10 41 89 c0 8b 7c 24 08 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 31 44 89 c7 48 89 44 24 08 e8 4c 93 02 00 48
RSP: 002b:00007ffd7ad94c90 EFLAGS: 00000293 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 00007f044a1e5fa0 RCX: 00007f0449f8e1ff
RDX: 000000000000003e RSI: 0000200000000500 RDI: 00000000000000c8
RBP: 00007ffd7ad94d20 R08: 0000000000000000 R09: 0000000000000000
R10: 000000000000003e R11: 0000000000000293 R12: 0000000000000001
R13: 00007f044a1e5fa0 R14: 00007f044a1e5fa0 R15: 0000000000000003
 </TASK>

Add a NULL check immediately after __pskb_copy() to handle allocation
failures gracefully.

Reported-by: syzbot+2fa344348a579b779e05@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=2fa344348a579b779e05
Fixes: f266a68 ("net/hsr: Better frame dispatch")
Cc: stable@vger.kernel.org
Signed-off-by: Shaurya Rane <ssrane_b23@ee.vjti.ac.in>
Reviewed-by: Felix Maurer <fmaurer@redhat.com>
Tested-by: Felix Maurer <fmaurer@redhat.com>
Link: https://patch.msgid.link/20251129093718.25320-1-ssrane_b23@ee.vjti.ac.in
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
…in ets_qdisc_change

zdi-disclosures@trendmicro.com says:

The vulnerability is a race condition between `ets_qdisc_dequeue` and
`ets_qdisc_change`.  It leads to UAF on `struct Qdisc` object.
Attacker requires the capability to create new user and network namespace
in order to trigger the bug.
See my additional commentary at the end of the analysis.

Analysis:

static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt,
                          struct netlink_ext_ack *extack)
{
...

      // (1) this lock is preventing .change handler (`ets_qdisc_change`)
      //to race with .dequeue handler (`ets_qdisc_dequeue`)
      sch_tree_lock(sch);

      for (i = nbands; i < oldbands; i++) {
              if (i >= q->nstrict && q->classes[i].qdisc->q.qlen)
                      list_del_init(&q->classes[i].alist);
              qdisc_purge_queue(q->classes[i].qdisc);
      }

      WRITE_ONCE(q->nbands, nbands);
      for (i = nstrict; i < q->nstrict; i++) {
              if (q->classes[i].qdisc->q.qlen) {
		      // (2) the class is added to the q->active
                      list_add_tail(&q->classes[i].alist, &q->active);
                      q->classes[i].deficit = quanta[i];
              }
      }
      WRITE_ONCE(q->nstrict, nstrict);
      memcpy(q->prio2band, priomap, sizeof(priomap));

      for (i = 0; i < q->nbands; i++)
              WRITE_ONCE(q->classes[i].quantum, quanta[i]);

      for (i = oldbands; i < q->nbands; i++) {
              q->classes[i].qdisc = queues[i];
              if (q->classes[i].qdisc != &noop_qdisc)
                      qdisc_hash_add(q->classes[i].qdisc, true);
      }

      // (3) the qdisc is unlocked, now dequeue can be called in parallel
      // to the rest of .change handler
      sch_tree_unlock(sch);

      ets_offload_change(sch);
      for (i = q->nbands; i < oldbands; i++) {
	      // (4) we're reducing the refcount for our class's qdisc and
	      //  freeing it
              qdisc_put(q->classes[i].qdisc);
	      // (5) If we call .dequeue between (4) and (5), we will have
	      // a strong UAF and we can control RIP
              q->classes[i].qdisc = NULL;
              WRITE_ONCE(q->classes[i].quantum, 0);
              q->classes[i].deficit = 0;
              gnet_stats_basic_sync_init(&q->classes[i].bstats);
              memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats));
      }
      return 0;
}

Comment:
This happens because some of the classes have their qdiscs assigned to
NULL, but remain in the active list. This commit fixes this issue by always
removing the class from the active list before deleting and freeing its
associated qdisc

Reproducer Steps
(trimmed version of what was sent by zdi-disclosures@trendmicro.com)

```
DEV="${DEV:-lo}"
ROOT_HANDLE="${ROOT_HANDLE:-1:}"
BAND2_HANDLE="${BAND2_HANDLE:-20:}"   # child under 1:2
PING_BYTES="${PING_BYTES:-48}"
PING_COUNT="${PING_COUNT:-200000}"
PING_DST="${PING_DST:-127.0.0.1}"

SLOW_TBF_RATE="${SLOW_TBF_RATE:-8bit}"
SLOW_TBF_BURST="${SLOW_TBF_BURST:-100b}"
SLOW_TBF_LAT="${SLOW_TBF_LAT:-1s}"

cleanup() {
  tc qdisc del dev "$DEV" root 2>/dev/null
}
trap cleanup EXIT

ip link set "$DEV" up

tc qdisc del dev "$DEV" root 2>/dev/null || true

tc qdisc add dev "$DEV" root handle "$ROOT_HANDLE" ets bands 2 strict 2

tc qdisc add dev "$DEV" parent 1:2 handle "$BAND2_HANDLE" \
  tbf rate "$SLOW_TBF_RATE" burst "$SLOW_TBF_BURST" latency "$SLOW_TBF_LAT"

tc filter add dev "$DEV" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2
tc -s qdisc ls dev $DEV

ping -I "$DEV" -f -c "$PING_COUNT" -s "$PING_BYTES" -W 0.001 "$PING_DST" \
  >/dev/null 2>&1 &
tc qdisc change dev "$DEV" root handle "$ROOT_HANDLE" ets bands 2 strict 0
tc qdisc change dev "$DEV" root handle "$ROOT_HANDLE" ets bands 2 strict 2
tc -s qdisc ls dev $DEV
tc qdisc del dev "$DEV" parent 1:2 || true
tc -s qdisc ls dev $DEV
tc qdisc change dev "$DEV" root handle "$ROOT_HANDLE" ets bands 1 strict 1
```

KASAN report
```
==================================================================
BUG: KASAN: slab-use-after-free in ets_qdisc_dequeue+0x1071/0x11b0 kernel/net/sched/sch_ets.c:481
Read of size 8 at addr ffff8880502fc018 by task ping/12308
>
CPU: 0 UID: 0 PID: 12308 Comm: ping Not tainted 6.18.0-rc4-dirty #1 PREEMPT(full)
Hardware name: QEMU Ubuntu 25.04 PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
Call Trace:
 <IRQ>
 __dump_stack kernel/lib/dump_stack.c:94
 dump_stack_lvl+0x100/0x190 kernel/lib/dump_stack.c:120
 print_address_description kernel/mm/kasan/report.c:378
 print_report+0x156/0x4c9 kernel/mm/kasan/report.c:482
 kasan_report+0xdf/0x110 kernel/mm/kasan/report.c:595
 ets_qdisc_dequeue+0x1071/0x11b0 kernel/net/sched/sch_ets.c:481
 dequeue_skb kernel/net/sched/sch_generic.c:294
 qdisc_restart kernel/net/sched/sch_generic.c:399
 __qdisc_run+0x1c9/0x1b00 kernel/net/sched/sch_generic.c:417
 __dev_xmit_skb kernel/net/core/dev.c:4221
 __dev_queue_xmit+0x2848/0x4410 kernel/net/core/dev.c:4729
 dev_queue_xmit kernel/./include/linux/netdevice.h:3365
[...]

Allocated by task 17115:
 kasan_save_stack+0x30/0x50 kernel/mm/kasan/common.c:56
 kasan_save_track+0x14/0x30 kernel/mm/kasan/common.c:77
 poison_kmalloc_redzone kernel/mm/kasan/common.c:400
 __kasan_kmalloc+0xaa/0xb0 kernel/mm/kasan/common.c:417
 kasan_kmalloc kernel/./include/linux/kasan.h:262
 __do_kmalloc_node kernel/mm/slub.c:5642
 __kmalloc_node_noprof+0x34e/0x990 kernel/mm/slub.c:5648
 kmalloc_node_noprof kernel/./include/linux/slab.h:987
 qdisc_alloc+0xb8/0xc30 kernel/net/sched/sch_generic.c:950
 qdisc_create_dflt+0x93/0x490 kernel/net/sched/sch_generic.c:1012
 ets_class_graft+0x4fd/0x800 kernel/net/sched/sch_ets.c:261
 qdisc_graft+0x3e4/0x1780 kernel/net/sched/sch_api.c:1196
[...]

Freed by task 9905:
 kasan_save_stack+0x30/0x50 kernel/mm/kasan/common.c:56
 kasan_save_track+0x14/0x30 kernel/mm/kasan/common.c:77
 __kasan_save_free_info+0x3b/0x70 kernel/mm/kasan/generic.c:587
 kasan_save_free_info kernel/mm/kasan/kasan.h:406
 poison_slab_object kernel/mm/kasan/common.c:252
 __kasan_slab_free+0x5f/0x80 kernel/mm/kasan/common.c:284
 kasan_slab_free kernel/./include/linux/kasan.h:234
 slab_free_hook kernel/mm/slub.c:2539
 slab_free kernel/mm/slub.c:6630
 kfree+0x144/0x700 kernel/mm/slub.c:6837
 rcu_do_batch kernel/kernel/rcu/tree.c:2605
 rcu_core+0x7c0/0x1500 kernel/kernel/rcu/tree.c:2861
 handle_softirqs+0x1ea/0x8a0 kernel/kernel/softirq.c:622
 __do_softirq kernel/kernel/softirq.c:656
[...]

Commentary:

1. Maher Azzouzi working with Trend Micro Zero Day Initiative was reported as
the person who found the issue. I requested to get a proper email to add to the
reported-by tag but got no response. For this reason i will credit the person
i exchanged emails with i.e zdi-disclosures@trendmicro.com

2. Neither i nor Victor who did a much more thorough testing was able to
reproduce a UAF with the PoC or other approaches we tried. We were both able to
reproduce a null ptr deref. After exchange with zdi-disclosures@trendmicro.com
they sent a small change to be made to the code to add an extra delay which
was able to simulate the UAF. i.e, this:
   qdisc_put(q->classes[i].qdisc);
   mdelay(90);
   q->classes[i].qdisc = NULL;

I was informed by Thomas Gleixner(tglx@linutronix.de) that adding delays was
acceptable approach for demonstrating the bug, quote:
"Adding such delays is common exploit validation practice"
The equivalent delay could happen "by virt scheduling the vCPU out, SMIs,
NMIs, PREEMPT_RT enabled kernel"

3. I asked the OP to test and report back but got no response and after a
few days gave up and proceeded to submit this fix.

Fixes: de6d259 ("net/sched: sch_ets: don't peek at classes beyond 'nbands'")
Reported-by: zdi-disclosures@trendmicro.com
Tested-by: Victor Nogueira <victor@mojatatu.com>
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Reviewed-by: Davide Caratti <dcaratti@redhat.com>
Link: https://patch.msgid.link/20251128151919.576920-1-jhs@mojatatu.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Clear hca_devcom_comp in device's private data after unregistering it in
LAG teardown. Otherwise a slightly lagging second pass through
mlx5_unload_one() might try to unregister it again and trip over
use-after-free.

On s390 almost all PCI level recovery events trigger two passes through
mxl5_unload_one() - one through the poll_health() method and one through
mlx5_pci_err_detected() as callback from generic PCI error recovery.
While testing PCI error recovery paths with more kernel debug features
enabled, this issue reproducibly led to kernel panics with the following
call chain:

 Unable to handle kernel pointer dereference in virtual kernel address space
 Failing address: 6b6b6b6b6b6b6000 TEID: 6b6b6b6b6b6b6803 ESOP-2 FSI
 Fault in home space mode while using kernel ASCE.
 AS:00000000705c4007 R3:0000000000000024
 Oops: 0038 ilc:3 [#1]SMP

 CPU: 14 UID: 0 PID: 156 Comm: kmcheck Kdump: loaded Not tainted
      6.18.0-20251130.rc7.git0.16131a59cab1.300.fc43.s390x+debug #1 PREEMPT

 Krnl PSW : 0404e00180000000 0000020fc86aa1dc (__lock_acquire+0x5c/0x15f0)
            R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:2 PM:0 RI:0 EA:3
 Krnl GPRS: 0000000000000000 0000020f00000001 6b6b6b6b6b6b6c33 0000000000000000
            0000000000000000 0000000000000000 0000000000000001 0000000000000000
            0000000000000000 0000020fca28b820 0000000000000000 0000010a1ced8100
            0000010a1ced8100 0000020fc9775068 0000018fce14f8b8 0000018fce14f7f8
 Krnl Code: 0000020fc86aa1cc: e3b003400004        lg      %r11,832
            0000020fc86aa1d2: a7840211           brc     8,0000020fc86aa5f4
           *0000020fc86aa1d6: c09000df0b25       larl    %r9,0000020fca28b820
           >0000020fc86aa1dc: d50790002000       clc     0(8,%r9),0(%r2)
            0000020fc86aa1e2: a7840209           brc     8,0000020fc86aa5f4
            0000020fc86aa1e6: c0e001100401       larl    %r14,0000020fca8aa9e8
            0000020fc86aa1ec: c01000e25a00       larl    %r1,0000020fca2f55ec
            0000020fc86aa1f2: a7eb00e8           aghi    %r14,232

 Call Trace:
  __lock_acquire+0x5c/0x15f0
  lock_acquire.part.0+0xf8/0x270
  lock_acquire+0xb0/0x1b0
  down_write+0x5a/0x250
  mlx5_detach_device+0x42/0x110 [mlx5_core]
  mlx5_unload_one_devl_locked+0x50/0xc0 [mlx5_core]
  mlx5_unload_one+0x42/0x60 [mlx5_core]
  mlx5_pci_err_detected+0x94/0x150 [mlx5_core]
  zpci_event_attempt_error_recovery+0xcc/0x388

Fixes: 5a977b5 ("net/mlx5: Lag, move devcom registration to LAG layer")
Signed-off-by: Gerd Bayer <gbayer@linux.ibm.com>
Reviewed-by: Moshe Shemesh <moshe@nvidia.com>
Acked-by: Tariq Toukan <tariqt@nvidia.com>
Link: https://patch.msgid.link/20251202-fix_lag-v1-1-59e8177ffce0@linux.ibm.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
…stats

Cited commit added a dedicated mutex (instead of RTNL) to protect the
multicast route list, so that it will not change while the driver
periodically traverses it in order to update the kernel about multicast
route stats that were queried from the device.

One instance of list entry deletion (during route replace) was missed
and it can result in a use-after-free [1].

Fix by acquiring the mutex before deleting the entry from the list and
releasing it afterwards.

[1]
BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]
Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043

CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full)
Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017
Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum]
Call Trace:
 <TASK>
 dump_stack_lvl+0xba/0x110
 print_report+0x174/0x4f5
 kasan_report+0xdf/0x110
 mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]
 process_one_work+0x9cc/0x18e0
 worker_thread+0x5df/0xe40
 kthread+0x3b8/0x730
 ret_from_fork+0x3e9/0x560
 ret_from_fork_asm+0x1a/0x30
 </TASK>

Allocated by task 29933:
 kasan_save_stack+0x30/0x50
 kasan_save_track+0x14/0x30
 __kasan_kmalloc+0x8f/0xa0
 mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]
 mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]
 process_one_work+0x9cc/0x18e0
 worker_thread+0x5df/0xe40
 kthread+0x3b8/0x730
 ret_from_fork+0x3e9/0x560
 ret_from_fork_asm+0x1a/0x30

Freed by task 29933:
 kasan_save_stack+0x30/0x50
 kasan_save_track+0x14/0x30
 __kasan_save_free_info+0x3b/0x70
 __kasan_slab_free+0x43/0x70
 kfree+0x14e/0x700
 mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]
 mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]
 process_one_work+0x9cc/0x18e0
 worker_thread+0x5df/0xe40
 kthread+0x3b8/0x730
 ret_from_fork+0x3e9/0x560
 ret_from_fork_asm+0x1a/0x30

Fixes: f38656d ("mlxsw: spectrum_mr: Protect multicast route list with a lock")
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Reviewed-by: Petr Machata <petrm@nvidia.com>
Signed-off-by: Petr Machata <petrm@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/f996feecfd59fde297964bfc85040b6d83ec6089.1764695650.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Jakub reported an MPTCP deadlock at fallback time:

 WARNING: possible recursive locking detected
 6.18.0-rc7-virtme #1 Not tainted
 --------------------------------------------
 mptcp_connect/20858 is trying to acquire lock:
 ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_try_fallback+0xd8/0x280

 but task is already holding lock:
 ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0

 other info that might help us debug this:
  Possible unsafe locking scenario:

        CPU0
        ----
   lock(&msk->fallback_lock);
   lock(&msk->fallback_lock);

  *** DEADLOCK ***

  May be due to missing lock nesting notation

 3 locks held by mptcp_connect/20858:
  #0: ff1100001da18290 (sk_lock-AF_INET){+.+.}-{0:0}, at: mptcp_sendmsg+0x114/0x1bc0
  #1: ff1100001db40fd0 (k-sk_lock-AF_INET#2){+.+.}-{0:0}, at: __mptcp_retrans+0x2cb/0xaa0
  #2: ff1100001da18b60 (&msk->fallback_lock){+.-.}-{3:3}, at: __mptcp_retrans+0x352/0xaa0

 stack backtrace:
 CPU: 0 UID: 0 PID: 20858 Comm: mptcp_connect Not tainted 6.18.0-rc7-virtme #1 PREEMPT(full)
 Hardware name: Bochs, BIOS Bochs 01/01/2011
 Call Trace:
  <TASK>
  dump_stack_lvl+0x6f/0xa0
  print_deadlock_bug.cold+0xc0/0xcd
  validate_chain+0x2ff/0x5f0
  __lock_acquire+0x34c/0x740
  lock_acquire.part.0+0xbc/0x260
  _raw_spin_lock_bh+0x38/0x50
  __mptcp_try_fallback+0xd8/0x280
  mptcp_sendmsg_frag+0x16c2/0x3050
  __mptcp_retrans+0x421/0xaa0
  mptcp_release_cb+0x5aa/0xa70
  release_sock+0xab/0x1d0
  mptcp_sendmsg+0xd5b/0x1bc0
  sock_write_iter+0x281/0x4d0
  new_sync_write+0x3c5/0x6f0
  vfs_write+0x65e/0xbb0
  ksys_write+0x17e/0x200
  do_syscall_64+0xbb/0xfd0
  entry_SYSCALL_64_after_hwframe+0x4b/0x53
 RIP: 0033:0x7fa5627cbc5e
 Code: 4d 89 d8 e8 14 bd 00 00 4c 8b 5d f8 41 8b 93 08 03 00 00 59 5e 48 83 f8 fc 74 11 c9 c3 0f 1f 80 00 00 00 00 48 8b 45 10 0f 05 <c9> c3 83 e2 39 83 fa 08 75 e7 e8 13 ff ff ff 0f 1f 00 f3 0f 1e fa
 RSP: 002b:00007fff1fe14700 EFLAGS: 00000202 ORIG_RAX: 0000000000000001
 RAX: ffffffffffffffda RBX: 0000000000000005 RCX: 00007fa5627cbc5e
 RDX: 0000000000001f9c RSI: 00007fff1fe16984 RDI: 0000000000000005
 RBP: 00007fff1fe14710 R08: 0000000000000000 R09: 0000000000000000
 R10: 0000000000000000 R11: 0000000000000202 R12: 00007fff1fe16920
 R13: 0000000000002000 R14: 0000000000001f9c R15: 0000000000001f9c

The packet scheduler could attempt a reinjection after receiving an
MP_FAIL and before the infinite map has been transmitted, causing a
deadlock since MPTCP needs to do the reinjection atomically from WRT
fallback.

Address the issue explicitly avoiding the reinjection in the critical
scenario. Note that this is the only fallback critical section that
could potentially send packets and hit the double-lock.

Reported-by: Jakub Kicinski <kuba@kernel.org>
Closes: https://netdev-ctrl.bots.linux.dev/logs/vmksft/mptcp-dbg/results/412720/1-mptcp-join-sh/stderr
Fixes: f8a1d9b ("mptcp: make fallback action and fallback decision atomic")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20251205-net-mptcp-misc-fixes-6-19-rc1-v1-4-9e4781a6c1b8@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Petr Machata says:

====================
selftests: forwarding: vxlan_bridge_1q_mc_ul: Fix flakiness

The net/forwarding/vxlan_bridge_1q_mc_ul selftest runs an overlay traffic,
forwarded over a multicast-routed VXLAN underlay. In order to determine
whether packets reach their intended destination, it uses a TC match. For
convenience, it uses a flower match, which however does not allow matching
on the encapsulated packet. So various service traffic ends up being
indistinguishable from the test packets, and ends up confusing the test. To
alleviate the problem, the test uses sleep to allow the necessary service
traffic to run and clear the channel, before running the test traffic. This
worked for a while, but lately we have nevertheless seen flakiness of the
test in the CI.

In this patchset, first generalize tc_rule_stats_get() to support u32 in
patch #1, then in patch #2 convert the test to use u32 to allow parsing
deeper into the packet, and in #3 drop the now-unnecessary sleep.
====================

Link: https://patch.msgid.link/cover.1765289566.git.petrm@nvidia.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Fix a loop scenario of ethx:egress->ethx:egress

Example setup to reproduce:
tc qdisc add dev ethx root handle 1: drr
tc filter add dev ethx parent 1: protocol ip prio 1 matchall \
         action mirred egress redirect dev ethx

Now ping out of ethx and you get a deadlock:

[  116.892898][  T307] ============================================
[  116.893182][  T307] WARNING: possible recursive locking detected
[  116.893418][  T307] 6.18.0-rc6-01205-ge05021a829b8-dirty torvalds#204 Not tainted
[  116.893682][  T307] --------------------------------------------
[  116.893926][  T307] ping/307 is trying to acquire lock:
[  116.894133][  T307] ffff88800c122908 (&sch->root_lock_key){+...}-{3:3}, at: __dev_queue_xmit+0x2210/0x3b50
[  116.894517][  T307]
[  116.894517][  T307] but task is already holding lock:
[  116.894836][  T307] ffff88800c122908 (&sch->root_lock_key){+...}-{3:3}, at: __dev_queue_xmit+0x2210/0x3b50
[  116.895252][  T307]
[  116.895252][  T307] other info that might help us debug this:
[  116.895608][  T307]  Possible unsafe locking scenario:
[  116.895608][  T307]
[  116.895901][  T307]        CPU0
[  116.896057][  T307]        ----
[  116.896200][  T307]   lock(&sch->root_lock_key);
[  116.896392][  T307]   lock(&sch->root_lock_key);
[  116.896605][  T307]
[  116.896605][  T307]  *** DEADLOCK ***
[  116.896605][  T307]
[  116.896864][  T307]  May be due to missing lock nesting notation
[  116.896864][  T307]
[  116.897123][  T307] 6 locks held by ping/307:
[  116.897302][  T307]  #0: ffff88800b4b0250 (sk_lock-AF_INET){+.+.}-{0:0}, at: raw_sendmsg+0xb20/0x2cf0
[  116.897808][  T307]  #1: ffffffff88c839c0 (rcu_read_lock){....}-{1:3}, at: ip_output+0xa9/0x600
[  116.898138][  T307]  #2: ffffffff88c839c0 (rcu_read_lock){....}-{1:3}, at: ip_finish_output2+0x2c6/0x1ee0
[  116.898459][  T307]  #3: ffffffff88c83960 (rcu_read_lock_bh){....}-{1:3}, at: __dev_queue_xmit+0x200/0x3b50
[  116.898782][  T307]  #4: ffff88800c122908 (&sch->root_lock_key){+...}-{3:3}, at: __dev_queue_xmit+0x2210/0x3b50
[  116.899132][  T307]  #5: ffffffff88c83960 (rcu_read_lock_bh){....}-{1:3}, at: __dev_queue_xmit+0x200/0x3b50
[  116.899442][  T307]
[  116.899442][  T307] stack backtrace:
[  116.899667][  T307] CPU: 2 UID: 0 PID: 307 Comm: ping Not tainted 6.18.0-rc6-01205-ge05021a829b8-dirty torvalds#204 PREEMPT(voluntary)
[  116.899672][  T307] Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
[  116.899675][  T307] Call Trace:
[  116.899678][  T307]  <TASK>
[  116.899680][  T307]  dump_stack_lvl+0x6f/0xb0
[  116.899688][  T307]  print_deadlock_bug.cold+0xc0/0xdc
[  116.899695][  T307]  __lock_acquire+0x11f7/0x1be0
[  116.899704][  T307]  lock_acquire+0x162/0x300
[  116.899707][  T307]  ? __dev_queue_xmit+0x2210/0x3b50
[  116.899713][  T307]  ? srso_alias_return_thunk+0x5/0xfbef5
[  116.899717][  T307]  ? stack_trace_save+0x93/0xd0
[  116.899723][  T307]  _raw_spin_lock+0x30/0x40
[  116.899728][  T307]  ? __dev_queue_xmit+0x2210/0x3b50
[  116.899731][  T307]  __dev_queue_xmit+0x2210/0x3b50

Fixes: 178ca30 ("Revert "net/sched: Fix mirred deadlock on device recursion"")
Tested-by: Victor Nogueira <victor@mojatatu.com>
Signed-off-by: Jamal Hadi Salim <jhs@mojatatu.com>
Link: https://patch.msgid.link/20251210162255.1057663-1-jhs@mojatatu.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
With the RAPL PMU addition, there is a recursive locking when CPU online
callback function calls rapl_package_add_pmu(). Here cpu_hotplug_lock
is already acquired by cpuhp_thread_fun() and rapl_package_add_pmu()
tries to acquire again.

<4>[ 8.197433] ============================================
<4>[ 8.197437] WARNING: possible recursive locking detected
<4>[ 8.197440] 6.19.0-rc1-lgci-xe-xe-4242-05b7c58b3367dca84+ #1 Not tainted
<4>[ 8.197444] --------------------------------------------
<4>[ 8.197447] cpuhp/0/20 is trying to acquire lock:
<4>[ 8.197450] ffffffff83487870 (cpu_hotplug_lock){++++}-{0:0}, at:
rapl_package_add_pmu+0x37/0x370 [intel_rapl_common]
<4>[ 8.197463]
but task is already holding lock:
<4>[ 8.197466] ffffffff83487870 (cpu_hotplug_lock){++++}-{0:0}, at:
cpuhp_thread_fun+0x6d/0x290
<4>[ 8.197477]
other info that might help us debug this:
<4>[ 8.197480] Possible unsafe locking scenario:

<4>[ 8.197483] CPU0
<4>[ 8.197485] ----
<4>[ 8.197487] lock(cpu_hotplug_lock);
<4>[ 8.197490] lock(cpu_hotplug_lock);
<4>[ 8.197493]
*** DEADLOCK ***
..
..
<4>[ 8.197542] __lock_acquire+0x146e/0x2790
<4>[ 8.197548] lock_acquire+0xc4/0x2c0
<4>[ 8.197550] ? rapl_package_add_pmu+0x37/0x370 [intel_rapl_common]
<4>[ 8.197556] cpus_read_lock+0x41/0x110
<4>[ 8.197558] ? rapl_package_add_pmu+0x37/0x370 [intel_rapl_common]
<4>[ 8.197561] rapl_package_add_pmu+0x37/0x370 [intel_rapl_common]
<4>[ 8.197565] rapl_cpu_online+0x85/0x87 [intel_rapl_msr]
<4>[ 8.197568] ? __pfx_rapl_cpu_online+0x10/0x10 [intel_rapl_msr]
<4>[ 8.197570] cpuhp_invoke_callback+0x41f/0x6c0
<4>[ 8.197573] ? cpuhp_thread_fun+0x6d/0x290
<4>[ 8.197575] cpuhp_thread_fun+0x1e2/0x290
<4>[ 8.197578] ? smpboot_thread_fn+0x26/0x290
<4>[ 8.197581] smpboot_thread_fn+0x12f/0x290
<4>[ 8.197584] ? __pfx_smpboot_thread_fn+0x10/0x10
<4>[ 8.197586] kthread+0x11f/0x250
<4>[ 8.197589] ? __pfx_kthread+0x10/0x10
<4>[ 8.197592] ret_from_fork+0x344/0x3a0
<4>[ 8.197595] ? __pfx_kthread+0x10/0x10
<4>[ 8.197597] ret_from_fork_asm+0x1a/0x30
<4>[ 8.197604] </TASK>

Fix this issue in the same way as rapl powercap package domain is added
from the same CPU online callback by introducing another interface which
doesn't call cpus_read_lock(). Add rapl_package_add_pmu_locked() and
rapl_package_remove_pmu_locked() which don't call cpus_read_lock().

Fixes: 748d6ba ("powercap: intel_rapl: Enable MSR-based RAPL PMU support")
Reported-by: Borah, Chaitanya Kumar <chaitanya.kumar.borah@intel.com>
Closes: https://lore.kernel.org/linux-pm/5427ede1-57a0-43d1-99f3-8ca4b0643e82@intel.com/T/#u
Tested-by: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
Tested-by: RavitejaX Veesam <ravitejax.veesam@intel.com>
Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Link: https://patch.msgid.link/20251217153455.3560176-1-srinivas.pandruvada@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
Avoid a possible UAF in GPU recovery due to a race between
the sched timeout callback and the tdr work queue.

The gpu recovery function calls drm_sched_stop() and
later drm_sched_start().  drm_sched_start() restarts
the tdr queue which will eventually free the job.  If
the tdr queue frees the job before time out callback
completes, the job will be freed and we'll get a UAF
when accessing the pasid.  Cache it early to avoid the
UAF.

Example KASAN trace:
[  493.058141] BUG: KASAN: slab-use-after-free in amdgpu_device_gpu_recover+0x968/0x990 [amdgpu]
[  493.067530] Read of size 4 at addr ffff88b0ce3f794c by task kworker/u128:1/323
[  493.074892]
[  493.076485] CPU: 9 UID: 0 PID: 323 Comm: kworker/u128:1 Tainted: G            E       6.16.0-1289896.2.zuul.bf4f11df81c1410bbe901c4373305a31 #1 PREEMPT(voluntary)
[  493.076493] Tainted: [E]=UNSIGNED_MODULE
[  493.076495] Hardware name: TYAN B8021G88V2HR-2T/S8021GM2NR-2T, BIOS V1.03.B10 04/01/2019
[  493.076500] Workqueue: amdgpu-reset-dev drm_sched_job_timedout [gpu_sched]
[  493.076512] Call Trace:
[  493.076515]  <TASK>
[  493.076518]  dump_stack_lvl+0x64/0x80
[  493.076529]  print_report+0xce/0x630
[  493.076536]  ? _raw_spin_lock_irqsave+0x86/0xd0
[  493.076541]  ? __pfx__raw_spin_lock_irqsave+0x10/0x10
[  493.076545]  ? amdgpu_device_gpu_recover+0x968/0x990 [amdgpu]
[  493.077253]  kasan_report+0xb8/0xf0
[  493.077258]  ? amdgpu_device_gpu_recover+0x968/0x990 [amdgpu]
[  493.077965]  amdgpu_device_gpu_recover+0x968/0x990 [amdgpu]
[  493.078672]  ? __pfx_amdgpu_device_gpu_recover+0x10/0x10 [amdgpu]
[  493.079378]  ? amdgpu_coredump+0x1fd/0x4c0 [amdgpu]
[  493.080111]  amdgpu_job_timedout+0x642/0x1400 [amdgpu]
[  493.080903]  ? pick_task_fair+0x24e/0x330
[  493.080910]  ? __pfx_amdgpu_job_timedout+0x10/0x10 [amdgpu]
[  493.081702]  ? _raw_spin_lock+0x75/0xc0
[  493.081708]  ? __pfx__raw_spin_lock+0x10/0x10
[  493.081712]  drm_sched_job_timedout+0x1b0/0x4b0 [gpu_sched]
[  493.081721]  ? __pfx__raw_spin_lock_irq+0x10/0x10
[  493.081725]  process_one_work+0x679/0xff0
[  493.081732]  worker_thread+0x6ce/0xfd0
[  493.081736]  ? __pfx_worker_thread+0x10/0x10
[  493.081739]  kthread+0x376/0x730
[  493.081744]  ? __pfx_kthread+0x10/0x10
[  493.081748]  ? __pfx__raw_spin_lock_irq+0x10/0x10
[  493.081751]  ? __pfx_kthread+0x10/0x10
[  493.081755]  ret_from_fork+0x247/0x330
[  493.081761]  ? __pfx_kthread+0x10/0x10
[  493.081764]  ret_from_fork_asm+0x1a/0x30
[  493.081771]  </TASK>

Fixes: a72002c ("drm/amdgpu: Make use of drm_wedge_task_info")
Link: HansKristian-Work/vkd3d-proton#2670
Cc: SRINIVASAN.SHANMUGAM@amd.com
Cc: vitaly.prosyak@amd.com
Cc: christian.koenig@amd.com
Suggested-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Srinivasan Shanmugam <srinivasan.shanmugam@amd.com>
Reviewed-by: Lijo Lazar <lijo.lazar@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 20880a3)
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
A race condition was found in sg_proc_debug_helper(). It was observed on
a system using an IBM LTO-9 SAS Tape Drive (ULTRIUM-TD9) and monitoring
/proc/scsi/sg/debug every second. A very large elapsed time would
sometimes appear. This is caused by two race conditions.

We reproduced the issue with an IBM ULTRIUM-HH9 tape drive on an x86_64
architecture. A patched kernel was built, and the race condition could
not be observed anymore after the application of this patch. A
reproducer C program utilising the scsi_debug module was also built by
Changhui Zhong and can be viewed here:

https://github.com/MichaelRabek/linux-tests/blob/master/drivers/scsi/sg/sg_race_trigger.c

The first race happens between the reading of hp->duration in
sg_proc_debug_helper() and request completion in sg_rq_end_io().  The
hp->duration member variable may hold either of two types of
information:

 #1 - The start time of the request. This value is present while
      the request is not yet finished.

 #2 - The total execution time of the request (end_time - start_time).

If sg_proc_debug_helper() executes *after* the value of hp->duration was
changed from #1 to #2, but *before* srp->done is set to 1 in
sg_rq_end_io(), a fresh timestamp is taken in the else branch, and the
elapsed time (value type #2) is subtracted from a timestamp, which
cannot yield a valid elapsed time (which is a type #2 value as well).

To fix this issue, the value of hp->duration must change under the
protection of the sfp->rq_list_lock in sg_rq_end_io().  Since
sg_proc_debug_helper() takes this read lock, the change to srp->done and
srp->header.duration will happen atomically from the perspective of
sg_proc_debug_helper() and the race condition is thus eliminated.

The second race condition happens between sg_proc_debug_helper() and
sg_new_write(). Even though hp->duration is set to the current time
stamp in sg_add_request() under the write lock's protection, it gets
overwritten by a call to get_sg_io_hdr(), which calls copy_from_user()
to copy struct sg_io_hdr from userspace into kernel space. hp->duration
is set to the start time again in sg_common_write(). If
sg_proc_debug_helper() is called between these two calls, an arbitrary
value set by userspace (usually zero) is used to compute the elapsed
time.

To fix this issue, hp->duration must be set to the current timestamp
again after get_sg_io_hdr() returns successfully. A small race window
still exists between get_sg_io_hdr() and setting hp->duration, but this
window is only a few instructions wide and does not result in observable
issues in practice, as confirmed by testing.

Additionally, we fix the format specifier from %d to %u for printing
unsigned int values in sg_proc_debug_helper().

Signed-off-by: Michal Rábek <mrabek@redhat.com>
Suggested-by: Tomas Henzl <thenzl@redhat.com>
Tested-by: Changhui Zhong <czhong@redhat.com>
Reviewed-by: Ewan D. Milne <emilne@redhat.com>
Reviewed-by: John Meneghini <jmeneghi@redhat.com>
Reviewed-by: Tomas Henzl <thenzl@redhat.com>
Link: https://patch.msgid.link/20251212160900.64924-1-mrabek@redhat.com
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
When a page is freed it coalesces with a buddy into a higher order page
while possible.  When the buddy page migrate type differs, it is expected
to be updated to match the one of the page being freed.

However, only the first pageblock of the buddy page is updated, while the
rest of the pageblocks are left unchanged.

That causes warnings in later expand() and other code paths (like below),
since an inconsistency between migration type of the list containing the
page and the page-owned pageblocks migration types is introduced.

[  308.986589] ------------[ cut here ]------------
[  308.987227] page type is 0, passed migratetype is 1 (nr=256)
[  308.987275] WARNING: CPU: 1 PID: 5224 at mm/page_alloc.c:812 expand+0x23c/0x270
[  308.987293] Modules linked in: algif_hash(E) af_alg(E) nft_fib_inet(E) nft_fib_ipv4(E) nft_fib_ipv6(E) nft_fib(E) nft_reject_inet(E) nf_reject_ipv4(E) nf_reject_ipv6(E) nft_reject(E) nft_ct(E) nft_chain_nat(E) nf_nat(E) nf_conntrack(E) nf_defrag_ipv6(E) nf_defrag_ipv4(E) nf_tables(E) s390_trng(E) vfio_ccw(E) mdev(E) vfio_iommu_type1(E) vfio(E) sch_fq_codel(E) drm(E) i2c_core(E) drm_panel_orientation_quirks(E) loop(E) nfnetlink(E) vsock_loopback(E) vmw_vsock_virtio_transport_common(E) vsock(E) ctcm(E) fsm(E) diag288_wdt(E) watchdog(E) zfcp(E) scsi_transport_fc(E) ghash_s390(E) prng(E) aes_s390(E) des_generic(E) des_s390(E) libdes(E) sha3_512_s390(E) sha3_256_s390(E) sha_common(E) paes_s390(E) crypto_engine(E) pkey_cca(E) pkey_ep11(E) zcrypt(E) rng_core(E) pkey_pckmo(E) pkey(E) autofs4(E)
[  308.987439] Unloaded tainted modules: hmac_s390(E):2
[  308.987650] CPU: 1 UID: 0 PID: 5224 Comm: mempig_verify Kdump: loaded Tainted: G            E       6.18.0-gcc-bpf-debug torvalds#431 PREEMPT
[  308.987657] Tainted: [E]=UNSIGNED_MODULE
[  308.987661] Hardware name: IBM 3906 M04 704 (z/VM 7.3.0)
[  308.987666] Krnl PSW : 0404f00180000000 00000349976fa600 (expand+0x240/0x270)
[  308.987676]            R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:3 PM:0 RI:0 EA:3
[  308.987682] Krnl GPRS: 0000034980000004 0000000000000005 0000000000000030 000003499a0e6d88
[  308.987688]            0000000000000005 0000034980000005 000002be803ac000 0000023efe6c8300
[  308.987692]            0000000000000008 0000034998d57290 000002be00000100 0000023e00000008
[  308.987696]            0000000000000000 0000000000000000 00000349976fa5fc 000002c99b1eb6f0
[  308.987708] Krnl Code: 00000349976fa5f0: c020008a02f2	larl	%r2,000003499883abd4
                          00000349976fa5f6: c0e5ffe3f4b5	brasl	%r14,0000034997378f60
                         #00000349976fa5fc: af000000		mc	0,0
                         >00000349976fa600: a7f4ff4c		brc	15,00000349976fa498
                          00000349976fa604: b9040026		lgr	%r2,%r6
                          00000349976fa608: c0300088317f	larl	%r3,0000034998800906
                          00000349976fa60e: c0e5fffdb6e1	brasl	%r14,00000349976b13d0
                          00000349976fa614: af000000		mc	0,0
[  308.987734] Call Trace:
[  308.987738]  [<00000349976fa600>] expand+0x240/0x270
[  308.987744] ([<00000349976fa5fc>] expand+0x23c/0x270)
[  308.987749]  [<00000349976ff95e>] rmqueue_bulk+0x71e/0x940
[  308.987754]  [<00000349976ffd7e>] __rmqueue_pcplist+0x1fe/0x2a0
[  308.987759]  [<0000034997700966>] rmqueue.isra.0+0xb46/0xf40
[  308.987763]  [<0000034997703ec8>] get_page_from_freelist+0x198/0x8d0
[  308.987768]  [<0000034997706fa8>] __alloc_frozen_pages_noprof+0x198/0x400
[  308.987774]  [<00000349977536f8>] alloc_pages_mpol+0xb8/0x220
[  308.987781]  [<0000034997753bf6>] folio_alloc_mpol_noprof+0x26/0xc0
[  308.987786]  [<0000034997753e4c>] vma_alloc_folio_noprof+0x6c/0xa0
[  308.987791]  [<0000034997775b22>] vma_alloc_anon_folio_pmd+0x42/0x240
[  308.987799]  [<000003499777bfea>] __do_huge_pmd_anonymous_page+0x3a/0x210
[  308.987804]  [<00000349976cb08e>] __handle_mm_fault+0x4de/0x500
[  308.987809]  [<00000349976cb14c>] handle_mm_fault+0x9c/0x3a0
[  308.987813]  [<000003499734d70e>] do_exception+0x1de/0x540
[  308.987822]  [<0000034998387390>] __do_pgm_check+0x130/0x220
[  308.987830]  [<000003499839a934>] pgm_check_handler+0x114/0x160
[  308.987838] 3 locks held by mempig_verify/5224:
[  308.987842]  #0: 0000023ea44c1e08 (vm_lock){++++}-{0:0}, at: lock_vma_under_rcu+0xb2/0x2a0
[  308.987859]  #1: 0000023ee4d41b18 (&pcp->lock){+.+.}-{2:2}, at: rmqueue.isra.0+0xad6/0xf40
[  308.987871]  #2: 0000023efe6c8998 (&zone->lock){..-.}-{2:2}, at: rmqueue_bulk+0x5a/0x940
[  308.987886] Last Breaking-Event-Address:
[  308.987890]  [<0000034997379096>] __warn_printk+0x136/0x140
[  308.987897] irq event stamp: 52330356
[  308.987901] hardirqs last  enabled at (52330355): [<000003499838742e>] __do_pgm_check+0x1ce/0x220
[  308.987907] hardirqs last disabled at (52330356): [<000003499839932e>] _raw_spin_lock_irqsave+0x9e/0xe0
[  308.987913] softirqs last  enabled at (52329882): [<0000034997383786>] handle_softirqs+0x2c6/0x530
[  308.987922] softirqs last disabled at (52329859): [<0000034997382f86>] __irq_exit_rcu+0x126/0x140
[  308.987929] ---[ end trace 0000000000000000 ]---
[  308.987936] ------------[ cut here ]------------
[  308.987940] page type is 0, passed migratetype is 1 (nr=256)
[  308.987951] WARNING: CPU: 1 PID: 5224 at mm/page_alloc.c:860 __del_page_from_free_list+0x1be/0x1e0
[  308.987960] Modules linked in: algif_hash(E) af_alg(E) nft_fib_inet(E) nft_fib_ipv4(E) nft_fib_ipv6(E) nft_fib(E) nft_reject_inet(E) nf_reject_ipv4(E) nf_reject_ipv6(E) nft_reject(E) nft_ct(E) nft_chain_nat(E) nf_nat(E) nf_conntrack(E) nf_defrag_ipv6(E) nf_defrag_ipv4(E) nf_tables(E) s390_trng(E) vfio_ccw(E) mdev(E) vfio_iommu_type1(E) vfio(E) sch_fq_codel(E) drm(E) i2c_core(E) drm_panel_orientation_quirks(E) loop(E) nfnetlink(E) vsock_loopback(E) vmw_vsock_virtio_transport_common(E) vsock(E) ctcm(E) fsm(E) diag288_wdt(E) watchdog(E) zfcp(E) scsi_transport_fc(E) ghash_s390(E) prng(E) aes_s390(E) des_generic(E) des_s390(E) libdes(E) sha3_512_s390(E) sha3_256_s390(E) sha_common(E) paes_s390(E) crypto_engine(E) pkey_cca(E) pkey_ep11(E) zcrypt(E) rng_core(E) pkey_pckmo(E) pkey(E) autofs4(E)
[  308.988070] Unloaded tainted modules: hmac_s390(E):2
[  308.988087] CPU: 1 UID: 0 PID: 5224 Comm: mempig_verify Kdump: loaded Tainted: G        W   E       6.18.0-gcc-bpf-debug torvalds#431 PREEMPT
[  308.988095] Tainted: [W]=WARN, [E]=UNSIGNED_MODULE
[  308.988100] Hardware name: IBM 3906 M04 704 (z/VM 7.3.0)
[  308.988105] Krnl PSW : 0404f00180000000 00000349976f9e32 (__del_page_from_free_list+0x1c2/0x1e0)
[  308.988118]            R:0 T:1 IO:0 EX:0 Key:0 M:1 W:0 P:0 AS:3 CC:3 PM:0 RI:0 EA:3
[  308.988127] Krnl GPRS: 0000034980000004 0000000000000005 0000000000000030 000003499a0e6d88
[  308.988133]            0000000000000005 0000034980000005 0000034998d57290 0000023efe6c8300
[  308.988139]            0000000000000001 0000000000000008 000002be00000100 000002be803ac000
[  308.988144]            0000000000000000 0000000000000001 00000349976f9e2e 000002c99b1eb728
[  308.988153] Krnl Code: 00000349976f9e22: c020008a06d9	larl	%r2,000003499883abd4
                          00000349976f9e28: c0e5ffe3f89c	brasl	%r14,0000034997378f60
                         #00000349976f9e2e: af000000		mc	0,0
                         >00000349976f9e32: a7f4ff4e		brc	15,00000349976f9cce
                          00000349976f9e36: b904002b		lgr	%r2,%r11
                          00000349976f9e3a: c030008a06e7	larl	%r3,000003499883ac08
                          00000349976f9e40: c0e5fffdbac8	brasl	%r14,00000349976b13d0
                          00000349976f9e46: af000000		mc	0,0
[  308.988184] Call Trace:
[  308.988188]  [<00000349976f9e32>] __del_page_from_free_list+0x1c2/0x1e0
[  308.988195] ([<00000349976f9e2e>] __del_page_from_free_list+0x1be/0x1e0)
[  308.988202]  [<00000349976ff946>] rmqueue_bulk+0x706/0x940
[  308.988208]  [<00000349976ffd7e>] __rmqueue_pcplist+0x1fe/0x2a0
[  308.988214]  [<0000034997700966>] rmqueue.isra.0+0xb46/0xf40
[  308.988221]  [<0000034997703ec8>] get_page_from_freelist+0x198/0x8d0
[  308.988227]  [<0000034997706fa8>] __alloc_frozen_pages_noprof+0x198/0x400
[  308.988233]  [<00000349977536f8>] alloc_pages_mpol+0xb8/0x220
[  308.988240]  [<0000034997753bf6>] folio_alloc_mpol_noprof+0x26/0xc0
[  308.988247]  [<0000034997753e4c>] vma_alloc_folio_noprof+0x6c/0xa0
[  308.988253]  [<0000034997775b22>] vma_alloc_anon_folio_pmd+0x42/0x240
[  308.988260]  [<000003499777bfea>] __do_huge_pmd_anonymous_page+0x3a/0x210
[  308.988267]  [<00000349976cb08e>] __handle_mm_fault+0x4de/0x500
[  308.988273]  [<00000349976cb14c>] handle_mm_fault+0x9c/0x3a0
[  308.988279]  [<000003499734d70e>] do_exception+0x1de/0x540
[  308.988286]  [<0000034998387390>] __do_pgm_check+0x130/0x220
[  308.988293]  [<000003499839a934>] pgm_check_handler+0x114/0x160
[  308.988300] 3 locks held by mempig_verify/5224:
[  308.988305]  #0: 0000023ea44c1e08 (vm_lock){++++}-{0:0}, at: lock_vma_under_rcu+0xb2/0x2a0
[  308.988322]  #1: 0000023ee4d41b18 (&pcp->lock){+.+.}-{2:2}, at: rmqueue.isra.0+0xad6/0xf40
[  308.988334]  #2: 0000023efe6c8998 (&zone->lock){..-.}-{2:2}, at: rmqueue_bulk+0x5a/0x940
[  308.988346] Last Breaking-Event-Address:
[  308.988350]  [<0000034997379096>] __warn_printk+0x136/0x140
[  308.988356] irq event stamp: 52330356
[  308.988360] hardirqs last  enabled at (52330355): [<000003499838742e>] __do_pgm_check+0x1ce/0x220
[  308.988366] hardirqs last disabled at (52330356): [<000003499839932e>] _raw_spin_lock_irqsave+0x9e/0xe0
[  308.988373] softirqs last  enabled at (52329882): [<0000034997383786>] handle_softirqs+0x2c6/0x530
[  308.988380] softirqs last disabled at (52329859): [<0000034997382f86>] __irq_exit_rcu+0x126/0x140
[  308.988388] ---[ end trace 0000000000000000 ]---

Link: https://lkml.kernel.org/r/20251215081002.3353900A9c-agordeev@linux.ibm.com
Link: https://lkml.kernel.org/r/20251212151457.3898073Add-agordeev@linux.ibm.com
Fixes: e6cf9e1 ("mm: page_alloc: fix up block types when merging compatible blocks")
Signed-off-by: Alexander Gordeev <agordeev@linux.ibm.com>
Reported-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Closes: https://lore.kernel.org/linux-mm/87wmalyktd.fsf@linux.ibm.com/
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Wei Yang <richard.weiyang@gmail.com>
Cc: Marc Hartmayer <mhartmay@linux.ibm.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
A null pointer dereference in handshake_complete() was observed [1].

When handshake_req_next() return NULL in handshake_nl_accept_doit(),
function handshake_complete() will be called unexpectedly which triggers
this crash. Fix it by goto out_status when req is NULL.

[1]
Oops: general protection fault, probably for non-canonical address 0xdffffc0000000005: 0000 [#1] SMP KASAN PTI
RIP: 0010:handshake_complete+0x36/0x2b0 net/handshake/request.c:288
Call Trace:
 <TASK>
 handshake_nl_accept_doit+0x32d/0x7e0 net/handshake/netlink.c:129
 genl_family_rcv_msg_doit+0x204/0x300 net/netlink/genetlink.c:1115
 genl_family_rcv_msg+0x436/0x670 net/netlink/genetlink.c:1195
 genl_rcv_msg+0xcc/0x170 net/netlink/genetlink.c:1210
 netlink_rcv_skb+0x14c/0x430 net/netlink/af_netlink.c:2550
 genl_rcv+0x2d/0x40 net/netlink/genetlink.c:1219
 netlink_unicast_kernel net/netlink/af_netlink.c:1318 [inline]
 netlink_unicast+0x878/0xb20 net/netlink/af_netlink.c:1344
 netlink_sendmsg+0x897/0xd70 net/netlink/af_netlink.c:1894
 sock_sendmsg_nosec net/socket.c:727 [inline]
 __sock_sendmsg net/socket.c:742 [inline]
 ____sys_sendmsg+0xa39/0xbf0 net/socket.c:2592
 ___sys_sendmsg+0x121/0x1c0 net/socket.c:2646
 __sys_sendmsg+0x155/0x200 net/socket.c:2678
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0x5f/0x350 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x76/0x7e
 </TASK>

Fixes: fe67b06 ("net/handshake: convert handshake_nl_accept_doit() to FD_PREPARE()")
Reviewed-by: Chuck Lever <chuck.lever@oracle.com>
Reported-by: Dan Carpenter <dan.carpenter@linaro.org>
Closes: https://lore.kernel.org/kernel-tls-handshake/aScekpuOYHRM9uOd@morisot.1015granger.net/T/#m7cfa5c11efc626d77622b2981591197a2acdd65e
Signed-off-by: Wang Liang <wangliang74@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20251212012723.4111831-1-wangliang74@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
…nged()

There has been a syzkaller bug reported recently with the following
trace:

list_del corruption, ffff888058bea080->prev is LIST_POISON2 (dead000000000122)
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:59!
Oops: invalid opcode: 0000 [#1] SMP KASAN NOPTI
CPU: 3 UID: 0 PID: 21246 Comm: syz.0.2928 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
RIP: 0010:__list_del_entry_valid_or_report+0x13e/0x200 lib/list_debug.c:59
Code: 48 c7 c7 e0 71 f0 8b e8 30 08 ef fc 90 0f 0b 48 89 ef e8 a5 02 55 fd 48 89 ea 48 89 de 48 c7 c7 40 72 f0 8b e8 13 08 ef fc 90 <0f> 0b 48 89 ef e8 88 02 55 fd 48 89 ea 48 b8 00 00 00 00 00 fc ff
RSP: 0018:ffffc9000d49f370 EFLAGS: 00010286
RAX: 000000000000004e RBX: ffff888058bea080 RCX: ffffc9002817d000
RDX: 0000000000000000 RSI: ffffffff819becc6 RDI: 0000000000000005
RBP: dead000000000122 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000080000000 R11: 0000000000000001 R12: ffff888039e9c230
R13: ffff888058bea088 R14: ffff888058bea080 R15: ffff888055461480
FS:  00007fbbcfe6f6c0(0000) GS:ffff8880d6d0a000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000110c3afcb0 CR3: 00000000382c7000 CR4: 0000000000352ef0
Call Trace:
 <TASK>
 __list_del_entry_valid include/linux/list.h:132 [inline]
 __list_del_entry include/linux/list.h:223 [inline]
 list_del_rcu include/linux/rculist.h:178 [inline]
 __team_queue_override_port_del drivers/net/team/team_core.c:826 [inline]
 __team_queue_override_port_del drivers/net/team/team_core.c:821 [inline]
 team_queue_override_port_prio_changed drivers/net/team/team_core.c:883 [inline]
 team_priority_option_set+0x171/0x2f0 drivers/net/team/team_core.c:1534
 team_option_set drivers/net/team/team_core.c:376 [inline]
 team_nl_options_set_doit+0x8ae/0xe60 drivers/net/team/team_core.c:2653
 genl_family_rcv_msg_doit+0x209/0x2f0 net/netlink/genetlink.c:1115
 genl_family_rcv_msg net/netlink/genetlink.c:1195 [inline]
 genl_rcv_msg+0x55c/0x800 net/netlink/genetlink.c:1210
 netlink_rcv_skb+0x158/0x420 net/netlink/af_netlink.c:2552
 genl_rcv+0x28/0x40 net/netlink/genetlink.c:1219
 netlink_unicast_kernel net/netlink/af_netlink.c:1320 [inline]
 netlink_unicast+0x5aa/0x870 net/netlink/af_netlink.c:1346
 netlink_sendmsg+0x8c8/0xdd0 net/netlink/af_netlink.c:1896
 sock_sendmsg_nosec net/socket.c:727 [inline]
 __sock_sendmsg net/socket.c:742 [inline]
 ____sys_sendmsg+0xa98/0xc70 net/socket.c:2630
 ___sys_sendmsg+0x134/0x1d0 net/socket.c:2684
 __sys_sendmsg+0x16d/0x220 net/socket.c:2716
 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
 do_syscall_64+0xcd/0xfa0 arch/x86/entry/syscall_64.c:94
 entry_SYSCALL_64_after_hwframe+0x77/0x7f

The problem is in this flow:
1) Port is enabled, queue_id != 0, in qom_list
2) Port gets disabled
        -> team_port_disable()
        -> team_queue_override_port_del()
        -> del (removed from list)
3) Port is disabled, queue_id != 0, not in any list
4) Priority changes
        -> team_queue_override_port_prio_changed()
        -> checks: port disabled && queue_id != 0
        -> calls del - hits the BUG as it is removed already

To fix this, change the check in team_queue_override_port_prio_changed()
so it returns early if port is not enabled.

Reported-by: syzbot+422806e5f4cce722a71f@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=422806e5f4cce722a71f
Fixes: 6c31ff3 ("team: remove synchronize_rcu() called during queue override change")
Signed-off-by: Jiri Pirko <jiri@nvidia.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20251212102953.167287-1-jiri@resnulli.us
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
After the blamed commit below, if the MPC subflow is already in TCP_CLOSE
status or has fallback to TCP at mptcp_disconnect() time,
mptcp_do_fastclose() skips setting the `send_fastclose flag` and the later
__mptcp_close_ssk() does not reset anymore the related subflow context.

Any later connection will be created with both the `request_mptcp` flag
and the msk-level fallback status off (it is unconditionally cleared at
MPTCP disconnect time), leading to a warning in subflow_data_ready():

  WARNING: CPU: 26 PID: 8996 at net/mptcp/subflow.c:1519 subflow_data_ready (net/mptcp/subflow.c:1519 (discriminator 13))
  Modules linked in:
  CPU: 26 UID: 0 PID: 8996 Comm: syz.22.39 Not tainted 6.18.0-rc7-05427-g11fc074f6c36 #1 PREEMPT(voluntary)
  Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
  RIP: 0010:subflow_data_ready (net/mptcp/subflow.c:1519 (discriminator 13))
  Code: 90 0f 0b 90 90 e9 04 fe ff ff e8 b7 1e f5 fe 89 ee bf 07 00 00 00 e8 db 19 f5 fe 83 fd 07 0f 84 35 ff ff ff e8 9d 1e f5 fe 90 <0f> 0b 90 e9 27 ff ff ff e8 8f 1e f5 fe 4c 89 e7 48 89 de e8 14 09
  RSP: 0018:ffffc9002646fb30 EFLAGS: 00010293
  RAX: 0000000000000000 RBX: ffff88813b218000 RCX: ffffffff825c8435
  RDX: ffff8881300b3580 RSI: ffffffff825c8443 RDI: 0000000000000005
  RBP: 000000000000000b R08: ffffffff825c8435 R09: 000000000000000b
  R10: 0000000000000005 R11: 0000000000000007 R12: ffff888131ac0000
  R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
  FS:  00007f88330af6c0(0000) GS:ffff888a93dd2000(0000) knlGS:0000000000000000
  CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
  CR2: 00007f88330aefe8 CR3: 000000010ff59000 CR4: 0000000000350ef0
  Call Trace:
   <TASK>
   tcp_data_ready (net/ipv4/tcp_input.c:5356)
   tcp_data_queue (net/ipv4/tcp_input.c:5445)
   tcp_rcv_state_process (net/ipv4/tcp_input.c:7165)
   tcp_v4_do_rcv (net/ipv4/tcp_ipv4.c:1955)
   __release_sock (include/net/sock.h:1158 (discriminator 6) net/core/sock.c:3180 (discriminator 6))
   release_sock (net/core/sock.c:3737)
   mptcp_sendmsg (net/mptcp/protocol.c:1763 net/mptcp/protocol.c:1857)
   inet_sendmsg (net/ipv4/af_inet.c:853 (discriminator 7))
   __sys_sendto (net/socket.c:727 (discriminator 15) net/socket.c:742 (discriminator 15) net/socket.c:2244 (discriminator 15))
   __x64_sys_sendto (net/socket.c:2247)
   do_syscall_64 (arch/x86/entry/syscall_64.c:63 (discriminator 1) arch/x86/entry/syscall_64.c:94 (discriminator 1))
   entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130)
  RIP: 0033:0x7f883326702d

Address the issue setting an explicit `fastclosing` flag at fastclose
time, and checking such flag after mptcp_do_fastclose().

Fixes: ae15506 ("mptcp: fix duplicate reset on fastclose")
Cc: stable@vger.kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Reviewed-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Signed-off-by: Matthieu Baerts (NGI0) <matttbe@kernel.org>
Link: https://patch.msgid.link/20251212-net-mptcp-subflow_data_ready-warn-v1-2-d1f9fd1c36c8@kernel.org
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
In e1000_tbi_should_accept() we read the last byte of the frame via
'data[length - 1]' to evaluate the TBI workaround. If the descriptor-
reported length is zero or larger than the actual RX buffer size, this
read goes out of bounds and can hit unrelated slab objects. The issue
is observed from the NAPI receive path (e1000_clean_rx_irq):

==================================================================
BUG: KASAN: slab-out-of-bounds in e1000_tbi_should_accept+0x610/0x790
Read of size 1 at addr ffff888014114e54 by task sshd/363

CPU: 0 PID: 363 Comm: sshd Not tainted 5.18.0-rc1 #1
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
Call Trace:
 <IRQ>
 dump_stack_lvl+0x5a/0x74
 print_address_description+0x7b/0x440
 print_report+0x101/0x200
 kasan_report+0xc1/0xf0
 e1000_tbi_should_accept+0x610/0x790
 e1000_clean_rx_irq+0xa8c/0x1110
 e1000_clean+0xde2/0x3c10
 __napi_poll+0x98/0x380
 net_rx_action+0x491/0xa20
 __do_softirq+0x2c9/0x61d
 do_softirq+0xd1/0x120
 </IRQ>
 <TASK>
 __local_bh_enable_ip+0xfe/0x130
 ip_finish_output2+0x7d5/0xb00
 __ip_queue_xmit+0xe24/0x1ab0
 __tcp_transmit_skb+0x1bcb/0x3340
 tcp_write_xmit+0x175d/0x6bd0
 __tcp_push_pending_frames+0x7b/0x280
 tcp_sendmsg_locked+0x2e4f/0x32d0
 tcp_sendmsg+0x24/0x40
 sock_write_iter+0x322/0x430
 vfs_write+0x56c/0xa60
 ksys_write+0xd1/0x190
 do_syscall_64+0x43/0x90
 entry_SYSCALL_64_after_hwframe+0x44/0xae
RIP: 0033:0x7f511b476b10
Code: 73 01 c3 48 8b 0d 88 d3 2b 00 f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 83 3d f9 2b 2c 00 00 75 10 b8 01 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 31 c3 48 83 ec 08 e8 8e 9b 01 00 48 89 04 24
RSP: 002b:00007ffc9211d4e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000000000004024 RCX: 00007f511b476b10
RDX: 0000000000004024 RSI: 0000559a9385962c RDI: 0000000000000003
RBP: 0000559a9383a400 R08: fffffffffffffff0 R09: 0000000000004f00
R10: 0000000000000070 R11: 0000000000000246 R12: 0000000000000000
R13: 00007ffc9211d57f R14: 0000559a9347bde7 R15: 0000000000000003
 </TASK>
Allocated by task 1:
 __kasan_krealloc+0x131/0x1c0
 krealloc+0x90/0xc0
 add_sysfs_param+0xcb/0x8a0
 kernel_add_sysfs_param+0x81/0xd4
 param_sysfs_builtin+0x138/0x1a6
 param_sysfs_init+0x57/0x5b
 do_one_initcall+0x104/0x250
 do_initcall_level+0x102/0x132
 do_initcalls+0x46/0x74
 kernel_init_freeable+0x28f/0x393
 kernel_init+0x14/0x1a0
 ret_from_fork+0x22/0x30
The buggy address belongs to the object at ffff888014114000
 which belongs to the cache kmalloc-2k of size 2048
The buggy address is located 1620 bytes to the right of
 2048-byte region [ffff888014114000, ffff888014114800]
The buggy address belongs to the physical page:
page:ffffea0000504400 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x14110
head:ffffea0000504400 order:3 compound_mapcount:0 compound_pincount:0
flags: 0x100000000010200(slab|head|node=0|zone=1)
raw: 0100000000010200 0000000000000000 dead000000000001 ffff888013442000
raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
==================================================================

This happens because the TBI check unconditionally dereferences the last
byte without validating the reported length first:

	u8 last_byte = *(data + length - 1);

Fix by rejecting the frame early if the length is zero, or if it exceeds
adapter->rx_buffer_len. This preserves the TBI workaround semantics for
valid frames and prevents touching memory beyond the RX buffer.

Fixes: 2037110 ("e1000: move tbi workaround code into helper function")
Cc: stable@vger.kernel.org
Signed-off-by: Guangshuo Li <lgs201920130244@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
When mana_serv_reset() encounters -ETIMEDOUT or -EPROTO from
mana_gd_resume(), it performs a PCI rescan via mana_serv_rescan().

mana_serv_rescan() calls pci_stop_and_remove_bus_device(), which can
invoke the driver's remove path and free the gdma_context associated
with the device. After returning, mana_serv_reset() currently jumps to
the out label and attempts to clear gc->in_service, dereferencing a
freed gdma_context.

The issue was observed with the following call logs:
[  698.942636] BUG: unable to handle page fault for address: ff6c2b638088508d
[  698.943121] #PF: supervisor write access in kernel mode
[  698.943423] #PF: error_code(0x0002) - not-present page
[S[  698.943793] Pat Dec  6 07:GD5 100000067 P4D 1002f7067 PUD 1002f8067 PMD 101bef067 PTE 0
0:56 2025] hv_[n e 698.944283] Oops: Oops: 0002 [#1] SMP NOPTI
tvsc f8615163-00[  698.944611] CPU: 28 UID: 0 PID: 249 Comm: kworker/28:1
...
[Sat Dec  6 07:50:56 2025] R10: [  699.121594] mana 7870:00:00.0 enP30832s1: Configured vPort 0 PD 18 DB 16
000000000000001b R11: 0000000000000000 R12: ff44cf3f40270000
[Sat Dec  6 07:50:56 2025] R13: 0000000000000001 R14: ff44cf3f402700c8 R15: ff44cf3f4021b405
[Sat Dec  6 07:50:56 2025] FS:  0000000000000000(0000) GS:ff44cf7e9fcf9000(0000) knlGS:0000000000000000
[Sat Dec  6 07:50:56 2025] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[Sat Dec  6 07:50:56 2025] CR2: ff6c2b638088508d CR3: 000000011fe43001 CR4: 0000000000b73ef0
[Sat Dec  6 07:50:56 2025] Call Trace:
[Sat Dec  6 07:50:56 2025]  <TASK>
[Sat Dec  6 07:50:56 2025]  mana_serv_func+0x24/0x50 [mana]
[Sat Dec  6 07:50:56 2025]  process_one_work+0x190/0x350
[Sat Dec  6 07:50:56 2025]  worker_thread+0x2b7/0x3d0
[Sat Dec  6 07:50:56 2025]  kthread+0xf3/0x200
[Sat Dec  6 07:50:56 2025]  ? __pfx_worker_thread+0x10/0x10
[Sat Dec  6 07:50:56 2025]  ? __pfx_kthread+0x10/0x10
[Sat Dec  6 07:50:56 2025]  ret_from_fork+0x21a/0x250
[Sat Dec  6 07:50:56 2025]  ? __pfx_kthread+0x10/0x10
[Sat Dec  6 07:50:56 2025]  ret_from_fork_asm+0x1a/0x30
[Sat Dec  6 07:50:56 2025]  </TASK>

Fix this by returning immediately after mana_serv_rescan() to avoid
accessing GC state that may no longer be valid.

Fixes: 9bf6603 ("net: mana: Handle hardware recovery events when probing the device")
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Long Li <longli@microsoft.com>
Signed-off-by: Dipayaan Roy <dipayanroy@linux.microsoft.com>
Link: https://patch.msgid.link/20251218131054.GA3173@linuxonhyperv3.guj3yctzbm1etfxqx2vob5hsef.xx.internal.cloudapp.net
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
There is a crash issue when running zero copy XDP_TX action, the crash
log is shown below.

[  216.122464] Unable to handle kernel paging request at virtual address fffeffff80000000
[  216.187524] Internal error: Oops: 0000000096000144 [#1]  SMP
[  216.301694] Call trace:
[  216.304130]  dcache_clean_poc+0x20/0x38 (P)
[  216.308308]  __dma_sync_single_for_device+0x1bc/0x1e0
[  216.313351]  stmmac_xdp_xmit_xdpf+0x354/0x400
[  216.317701]  __stmmac_xdp_run_prog+0x164/0x368
[  216.322139]  stmmac_napi_poll_rxtx+0xba8/0xf00
[  216.326576]  __napi_poll+0x40/0x218
[  216.408054] Kernel panic - not syncing: Oops: Fatal exception in interrupt

For XDP_TX action, the xdp_buff is converted to xdp_frame by
xdp_convert_buff_to_frame(). The memory type of the resulting xdp_frame
depends on the memory type of the xdp_buff. For page pool based xdp_buff
it produces xdp_frame with memory type MEM_TYPE_PAGE_POOL. For zero copy
XSK pool based xdp_buff it produces xdp_frame with memory type
MEM_TYPE_PAGE_ORDER0. However, stmmac_xdp_xmit_back() does not check the
memory type and always uses the page pool type, this leads to invalid
mappings and causes the crash. Therefore, check the xdp_buff memory type
in stmmac_xdp_xmit_back() to fix this issue.

Fixes: bba2556 ("net: stmmac: Enable RX via AF_XDP zero-copy")
Signed-off-by: Wei Fang <wei.fang@nxp.com>
Reviewed-by: Hariprasad Kelam <hkelam@marvell.com>
Link: https://patch.msgid.link/20251204071332.1907111-1-wei.fang@nxp.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
syzbot reported a crash [1] in dql_completed() after recent usbnet
BQL adoption.

The reason for the crash is that netdev_reset_queue() is called too soon.

It should be called after cancel_work_sync(&dev->bh_work) to make
sure no more TX completion can happen.

[1]
kernel BUG at lib/dynamic_queue_limits.c:99 !
Oops: invalid opcode: 0000 [#1] SMP KASAN PTI
CPU: 1 UID: 0 PID: 5197 Comm: udevd Tainted: G             L      syzkaller #0 PREEMPT(full)
Tainted: [L]=SOFTLOCKUP
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/25/2025
 RIP: 0010:dql_completed+0xbe1/0xbf0 lib/dynamic_queue_limits.c:99
Call Trace:
 <IRQ>
  netdev_tx_completed_queue include/linux/netdevice.h:3864 [inline]
  netdev_completed_queue include/linux/netdevice.h:3894 [inline]
  usbnet_bh+0x793/0x1020 drivers/net/usb/usbnet.c:1601
  process_one_work kernel/workqueue.c:3257 [inline]
  process_scheduled_works+0xad1/0x1770 kernel/workqueue.c:3340
  bh_worker+0x2b1/0x600 kernel/workqueue.c:3611
  tasklet_action+0xc/0x70 kernel/softirq.c:952
  handle_softirqs+0x27d/0x850 kernel/softirq.c:622
  __do_softirq kernel/softirq.c:656 [inline]
  invoke_softirq kernel/softirq.c:496 [inline]
  __irq_exit_rcu+0xca/0x1f0 kernel/softirq.c:723
  irq_exit_rcu+0x9/0x30 kernel/softirq.c:739

Fixes: 7ff14c5 ("usbnet: Add support for Byte Queue Limits (BQL)")
Reported-by: syzbot+5b55e49f8bbd84631a9c@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/netdev/6945644f.a70a0220.207337.0113.GAE@google.com/T/#u
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Simon Schippers <simon.schippers@tu-dortmund.de>
Link: https://patch.msgid.link/20251219144459.692715-1-edumazet@google.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
vladimiroltean pushed a commit that referenced this pull request Jan 3, 2026
… to macb_open()

In the non-RT kernel, local_bh_disable() merely disables preemption,
whereas it maps to an actual spin lock in the RT kernel. Consequently,
when attempting to refill RX buffers via netdev_alloc_skb() in
macb_mac_link_up(), a deadlock scenario arises as follows:

   WARNING: possible circular locking dependency detected
   6.18.0-08691-g2061f18ad76e torvalds#39 Not tainted
   ------------------------------------------------------
   kworker/0:0/8 is trying to acquire lock:
   ffff00080369bbe0 (&bp->lock){+.+.}-{3:3}, at: macb_start_xmit+0x808/0xb7c

   but task is already holding lock:
   ffff000803698e58 (&queue->tx_ptr_lock){+...}-{3:3}, at: macb_start_xmit
   +0x148/0xb7c

   which lock already depends on the new lock.

   the existing dependency chain (in reverse order) is:

   -> #3 (&queue->tx_ptr_lock){+...}-{3:3}:
          rt_spin_lock+0x50/0x1f0
          macb_start_xmit+0x148/0xb7c
          dev_hard_start_xmit+0x94/0x284
          sch_direct_xmit+0x8c/0x37c
          __dev_queue_xmit+0x708/0x1120
          neigh_resolve_output+0x148/0x28c
          ip6_finish_output2+0x2c0/0xb2c
          __ip6_finish_output+0x114/0x308
          ip6_output+0xc4/0x4a4
          mld_sendpack+0x220/0x68c
          mld_ifc_work+0x2a8/0x4f4
          process_one_work+0x20c/0x5f8
          worker_thread+0x1b0/0x35c
          kthread+0x144/0x200
          ret_from_fork+0x10/0x20

   -> #2 (_xmit_ETHER#2){+...}-{3:3}:
          rt_spin_lock+0x50/0x1f0
          sch_direct_xmit+0x11c/0x37c
          __dev_queue_xmit+0x708/0x1120
          neigh_resolve_output+0x148/0x28c
          ip6_finish_output2+0x2c0/0xb2c
          __ip6_finish_output+0x114/0x308
          ip6_output+0xc4/0x4a4
          mld_sendpack+0x220/0x68c
          mld_ifc_work+0x2a8/0x4f4
          process_one_work+0x20c/0x5f8
          worker_thread+0x1b0/0x35c
          kthread+0x144/0x200
          ret_from_fork+0x10/0x20

   -> #1 ((softirq_ctrl.lock)){+.+.}-{3:3}:
          lock_release+0x250/0x348
          __local_bh_enable_ip+0x7c/0x240
          __netdev_alloc_skb+0x1b4/0x1d8
          gem_rx_refill+0xdc/0x240
          gem_init_rings+0xb4/0x108
          macb_mac_link_up+0x9c/0x2b4
          phylink_resolve+0x170/0x614
          process_one_work+0x20c/0x5f8
          worker_thread+0x1b0/0x35c
          kthread+0x144/0x200
          ret_from_fork+0x10/0x20

   -> #0 (&bp->lock){+.+.}-{3:3}:
          __lock_acquire+0x15a8/0x2084
          lock_acquire+0x1cc/0x350
          rt_spin_lock+0x50/0x1f0
          macb_start_xmit+0x808/0xb7c
          dev_hard_start_xmit+0x94/0x284
          sch_direct_xmit+0x8c/0x37c
          __dev_queue_xmit+0x708/0x1120
          neigh_resolve_output+0x148/0x28c
          ip6_finish_output2+0x2c0/0xb2c
          __ip6_finish_output+0x114/0x308
          ip6_output+0xc4/0x4a4
          mld_sendpack+0x220/0x68c
          mld_ifc_work+0x2a8/0x4f4
          process_one_work+0x20c/0x5f8
          worker_thread+0x1b0/0x35c
          kthread+0x144/0x200
          ret_from_fork+0x10/0x20

   other info that might help us debug this:

   Chain exists of:
     &bp->lock --> _xmit_ETHER#2 --> &queue->tx_ptr_lock

    Possible unsafe locking scenario:

          CPU0                    CPU1
          ----                    ----
     lock(&queue->tx_ptr_lock);
                                  lock(_xmit_ETHER#2);
                                  lock(&queue->tx_ptr_lock);
     lock(&bp->lock);

    *** DEADLOCK ***

   Call trace:
    show_stack+0x18/0x24 (C)
    dump_stack_lvl+0xa0/0xf0
    dump_stack+0x18/0x24
    print_circular_bug+0x28c/0x370
    check_noncircular+0x198/0x1ac
    __lock_acquire+0x15a8/0x2084
    lock_acquire+0x1cc/0x350
    rt_spin_lock+0x50/0x1f0
    macb_start_xmit+0x808/0xb7c
    dev_hard_start_xmit+0x94/0x284
    sch_direct_xmit+0x8c/0x37c
    __dev_queue_xmit+0x708/0x1120
    neigh_resolve_output+0x148/0x28c
    ip6_finish_output2+0x2c0/0xb2c
    __ip6_finish_output+0x114/0x308
    ip6_output+0xc4/0x4a4
    mld_sendpack+0x220/0x68c
    mld_ifc_work+0x2a8/0x4f4
    process_one_work+0x20c/0x5f8
    worker_thread+0x1b0/0x35c
    kthread+0x144/0x200
    ret_from_fork+0x10/0x20

Notably, invoking the mog_init_rings() callback upon link establishment
is unnecessary. Instead, we can exclusively call mog_init_rings() within
the ndo_open() callback. This adjustment resolves the deadlock issue.
Furthermore, since MACB_CAPS_MACB_IS_EMAC cases do not use mog_init_rings()
when opening the network interface via at91ether_open(), moving
mog_init_rings() to macb_open() also eliminates the MACB_CAPS_MACB_IS_EMAC
check.

Fixes: 633e98a ("net: macb: use resolved link config in mac_link_up()")
Cc: stable@vger.kernel.org
Suggested-by: Kevin Hao <kexin.hao@windriver.com>
Signed-off-by: Xiaolei Wang <xiaolei.wang@windriver.com>
Link: https://patch.msgid.link/20251222015624.1994551-1-xiaolei.wang@windriver.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
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.

2 participants