program: perf_event_open(&(0x7f0000000040)={0x2, 0x80, 0x96, 0x1, 0x0, 0x0, 0x0, 0x3, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, @perf_config_ext={0x1, 0x8000000000000000}, 0x0, 0x2, 0x1, 0x3, 0x0, 0x1000000, 0x0, 0x0, 0x0, 0x0, 0x3}, 0x0, 0x0, 0xffffffffffffffff, 0x9) set_mempolicy(0x6005, &(0x7f0000000080)=0xfffffffffffffffc, 0x4) mmap$xdp(&(0x7f0000800000/0x800000)=nil, 0x800000, 0x6000003, 0x42031, 0xffffffffffffffff, 0x0) mbind(&(0x7f0000d44000/0x4000)=nil, 0x4000, 0x0, 0x0, 0x0, 0x2) r0 = creat(&(0x7f0000000100)='./file0\x00', 0x80) bpf$BPF_GET_PROG_INFO(0xf, &(0x7f0000000480)={0xffffffffffffffff, 0xe0, &(0x7f0000000380)={0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6, &(0x7f00000001c0)=[0x0, 0x0, 0x0, 0x0, 0x0, 0x0], ""/16, 0x0, 0x0, 0x0, 0x0, 0x2, 0x4, &(0x7f0000000200)=[0x0, 0x0], &(0x7f0000000240)=[0x0, 0x0, 0x0, 0x0], 0x0, 0xf4, &(0x7f0000000280)=[{}, {}, {}, {}, {}], 0x28, 0x10, &(0x7f00000002c0), &(0x7f0000000300), 0x8, 0xa8, 0x8, 0x8, &(0x7f0000000340)}}, 0x10) r2 = bpf$BPF_PROG_RAW_TRACEPOINT_LOAD(0x5, &(0x7f0000000640)={0x18, 0x4, &(0x7f00000004c0)=@framed={{0x18, 0x0, 0x0, 0x0, 0x4}, [@alu={0x7, 0x0, 0x4, 0x3, 0x5, 0x4, 0x8}]}, &(0x7f0000000500)='GPL\x00', 0xffff, 0x1b, &(0x7f0000000540)=""/27, 0x41100, 0x2, '\x00', 0x0, 0x0, 0xffffffffffffffff, 0x8, &(0x7f0000000580)={0x2, 0x2}, 0x8, 0x10, &(0x7f00000005c0)={0x1, 0xf, 0x2, 0x200}, 0x10, 0x0, 0x0, 0x0, &(0x7f0000000600)=[0x1, 0xffffffffffffffff, 0x1], 0x0, 0x10, 0x7, @void, @value}, 0x94) r3 = openat(0xffffffffffffff9c, &(0x7f0000000200)='./bus\x00', 0x48942, 0x0) r4 = openat$cgroup_ro(0xffffffffffffff9c, &(0x7f0000000140)='cpuacct.usage_percpu\x00', 0x275a, 0x0) copy_file_range(r4, 0x0, r3, 0x0, 0xffffffffa003e45c, 0x700000000000000) r5 = creat(&(0x7f0000001180)='./file1\x00', 0x0) pwritev(r5, &(0x7f0000000200)=[{&(0x7f0000000100)="0e", 0xc0000000}], 0x1, 0x3fc000, 0x0) r6 = syz_open_procfs(0x0, &(0x7f0000000080)='net/igmp\x00') preadv(r6, &(0x7f0000000040)=[{&(0x7f0000000140)=""/4087, 0x1022}], 0x1, 0x79, 0x0) bpf$PROG_LOAD(0x5, &(0x7f0000000800)={0x17, 0x6, &(0x7f0000000000)=@raw=[@call={0x85, 0x0, 0x0, 0x89}, @ldst={0x1, 0x0, 0x4, 0x9, 0x8, 0x80, 0x1}, @map_idx_val={0x18, 0x5, 0x6, 0x0, 0x2, 0x0, 0x0, 0x0, 0x5}, @exit, @call={0x85, 0x0, 0x0, 0x6a}], &(0x7f00000000c0)='syzkaller\x00', 0x1ff, 0x0, 0x0, 0x40f00, 0x0, '\x00', 0x0, @cgroup_sysctl, r0, 0x8, &(0x7f0000000140)={0x4, 0x2}, 0x8, 0x10, &(0x7f0000000180)={0x2, 0xf, 0xe, 0x5}, 0x10, r1, r2, 0xa, &(0x7f0000000700)=[r3, r5, r6, 0xffffffffffffffff], &(0x7f0000000740)=[{0x5, 0x2, 0xc, 0x5}, {0x1, 0x1, 0xc, 0xa}, {0x2, 0x5, 0xa, 0x8}, {0x2, 0x5, 0x4, 0x4}, {0x4, 0x5, 0x3, 0x67b0796255e7c757}, {0x4, 0x5, 0x6, 0x3}, {0x3, 0x3, 0x1, 0x2}, {0x5, 0x2, 0xe, 0x1}, {0x1, 0x3, 0xa, 0x4}, {0x5, 0x4, 0x0, 0x1}], 0x10, 0x2, @void, @value}, 0x94) [ 75.840160][ T4663] Bluetooth: hci0: command tx timeout [ 76.328473][ T1308] ieee802154 phy0 wpan0: encryption failed: -22 [ 76.330880][ T1308] ieee802154 phy1 wpan1: encryption failed: -22 [ 76.391321][ T79] [ 76.392249][ T79] ====================================================== [ 76.394645][ T79] WARNING: possible circular locking dependency detected [ 76.397110][ T79] 6.13.0-rc7-syzkaller-00149-g9bffa1ad25b8 #0 Not tainted [ 76.399688][ T79] ------------------------------------------------------ [ 76.402367][ T79] kswapd0/79 is trying to acquire lock: [ 76.404341][ T79] ffffe8ffffc37f50 (&per_cpu_ptr(pool->acomp_ctx, cpu)->mutex){+.+.}-{4:4}, at: zswap_store+0xa3b/0x1c30 [ 76.408223][ T79] [ 76.408223][ T79] but task is already holding lock: [ 76.410767][ T79] ffffffff8ea36f00 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0xbf1/0x36f0 [ 76.413606][ T79] [ 76.413606][ T79] which lock already depends on the new lock. [ 76.413606][ T79] [ 76.417476][ T79] [ 76.417476][ T79] the existing dependency chain (in reverse order) is: [ 76.420541][ T79] [ 76.420541][ T79] -> #1 (fs_reclaim){+.+.}-{0:0}: [ 76.423154][ T79] lock_acquire+0x1ed/0x550 [ 76.425014][ T79] fs_reclaim_acquire+0x88/0x130 [ 76.426938][ T79] __kmalloc_cache_node_noprof+0x40/0x3a0 [ 76.429233][ T79] zswap_cpu_comp_prepare+0xdc/0x400 [ 76.431397][ T79] cpuhp_invoke_callback+0x415/0x830 [ 76.433687][ T79] cpuhp_issue_call+0x46f/0x7e0 [ 76.435622][ T79] __cpuhp_state_add_instance_cpuslocked+0x1ed/0x500 [ 76.438129][ T79] __cpuhp_state_add_instance+0x27/0x40 [ 76.440247][ T79] zswap_pool_create+0x38c/0x680 [ 76.442244][ T79] zswap_setup+0x32a/0x4b0 [ 76.444110][ T79] do_one_initcall+0x248/0x870 [ 76.446104][ T79] do_initcall_level+0x157/0x210 [ 76.448226][ T79] do_initcalls+0x3f/0x80 [ 76.450096][ T79] kernel_init_freeable+0x435/0x5d0 [ 76.452304][ T79] kernel_init+0x1d/0x2b0 [ 76.454231][ T79] ret_from_fork+0x4b/0x80 [ 76.456187][ T79] ret_from_fork_asm+0x1a/0x30 [ 76.458182][ T79] [ 76.458182][ T79] -> #0 (&per_cpu_ptr(pool->acomp_ctx, cpu)->mutex){+.+.}-{4:4}: [ 76.461857][ T79] validate_chain+0x18ef/0x5920 [ 76.463867][ T79] __lock_acquire+0x1397/0x2100 [ 76.465854][ T79] lock_acquire+0x1ed/0x550 [ 76.467721][ T79] __mutex_lock+0x1ac/0xee0 [ 76.469655][ T79] zswap_store+0xa3b/0x1c30 [ 76.471640][ T79] swap_writepage+0x647/0xce0 [ 76.473800][ T79] shmem_writepage+0x1248/0x1610 [ 76.475990][ T79] shrink_folio_list+0x3b68/0x5ca0 [ 76.478206][ T79] evict_folios+0x3c92/0x58c0 [ 76.480184][ T79] try_to_shrink_lruvec+0x9a6/0xc70 [ 76.482364][ T79] shrink_one+0x3b9/0x850 [ 76.484206][ T79] shrink_node+0x37c5/0x3e50 [ 76.486105][ T79] kswapd+0x1ca9/0x36f0 [ 76.487917][ T79] kthread+0x2f0/0x390 [ 76.489366][ T79] ret_from_fork+0x4b/0x80 [ 76.491165][ T79] ret_from_fork_asm+0x1a/0x30 [ 76.493230][ T79] [ 76.493230][ T79] other info that might help us debug this: [ 76.493230][ T79] [ 76.497033][ T79] Possible unsafe locking scenario: [ 76.497033][ T79] [ 76.499919][ T79] CPU0 CPU1 [ 76.501925][ T79] ---- ---- [ 76.504003][ T79] lock(fs_reclaim); [ 76.505426][ T79] lock(&per_cpu_ptr(pool->acomp_ctx, cpu)->mutex); [ 76.508672][ T79] lock(fs_reclaim); [ 76.510695][ T79] lock(&per_cpu_ptr(pool->acomp_ctx, cpu)->mutex); [ 76.513153][ T79] [ 76.513153][ T79] *** DEADLOCK *** [ 76.513153][ T79] [ 76.516196][ T79] 1 lock held by kswapd0/79: [ 76.517975][ T79] #0: ffffffff8ea36f00 (fs_reclaim){+.+.}-{0:0}, at: kswapd+0xbf1/0x36f0 [ 76.521333][ T79] [ 76.521333][ T79] stack backtrace: [ 76.523594][ T79] CPU: 0 UID: 0 PID: 79 Comm: kswapd0 Not tainted 6.13.0-rc7-syzkaller-00149-g9bffa1ad25b8 #0 [ 76.527591][ T79] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014 [ 76.532648][ T79] Call Trace: [ 76.534264][ T79] [ 76.535589][ T79] dump_stack_lvl+0x241/0x360 [ 76.537844][ T79] ? __pfx_dump_stack_lvl+0x10/0x10 [ 76.540283][ T79] ? __pfx__printk+0x10/0x10 [ 76.542299][ T79] print_circular_bug+0x13a/0x1b0 [ 76.544573][ T79] check_noncircular+0x36a/0x4a0 [ 76.546564][ T79] ? __pfx_validate_chain+0x10/0x10 [ 76.548556][ T79] ? __pfx_check_noncircular+0x10/0x10 [ 76.550597][ T79] ? lockdep_lock+0x123/0x2b0 [ 76.552407][ T79] validate_chain+0x18ef/0x5920 [ 76.554274][ T79] ? __lock_acquire+0x1397/0x2100 [ 76.556109][ T79] ? __pfx_validate_chain+0x10/0x10 [ 76.557967][ T79] ? mark_lock+0x9a/0x360 [ 76.559577][ T79] ? lockdep_hardirqs_on_prepare+0x43d/0x780 [ 76.561821][ T79] ? __pfx_lockdep_hardirqs_on_prepare+0x10/0x10 [ 76.564117][ T79] ? mark_lock+0x9a/0x360 [ 76.565788][ T79] __lock_acquire+0x1397/0x2100 [ 76.567558][ T79] lock_acquire+0x1ed/0x550 [ 76.569274][ T79] ? zswap_store+0xa3b/0x1c30 [ 76.570828][ T79] ? __pfx_lock_acquire+0x10/0x10 [ 76.572574][ T79] ? shmem_writepage+0x1248/0x1610 [ 76.574369][ T79] ? shrink_folio_list+0x3b68/0x5ca0 [ 76.576425][ T79] ? __pfx___might_resched+0x10/0x10 [ 76.578502][ T79] ? kswapd+0x1ca9/0x36f0 [ 76.580134][ T79] ? kthread+0x2f0/0x390 [ 76.581820][ T79] ? ret_from_fork+0x4b/0x80 [ 76.583601][ T79] ? ret_from_fork_asm+0x1a/0x30 [ 76.585541][ T79] __mutex_lock+0x1ac/0xee0 [ 76.587266][ T79] ? zswap_store+0xa3b/0x1c30 [ 76.589074][ T79] ? zswap_store+0xa3b/0x1c30 [ 76.591110][ T79] ? __pfx___mutex_lock+0x10/0x10 [ 76.593464][ T79] ? rcu_is_watching+0x15/0xb0 [ 76.595698][ T79] ? trace_kmem_cache_alloc+0x1f/0xc0 [ 76.598073][ T79] zswap_store+0xa3b/0x1c30 [ 76.599788][ T79] ? zswap_store+0x577/0x1c30 [ 76.601551][ T79] ? __pfx_zswap_store+0x10/0x10 [ 76.603416][ T79] ? do_raw_spin_lock+0x14f/0x370 [ 76.605356][ T79] ? do_raw_spin_unlock+0x58/0x8b0 [ 76.607304][ T79] ? _raw_spin_unlock+0x28/0x50 [ 76.609079][ T79] ? folio_free_swap+0x2e1/0x480 [ 76.610936][ T79] swap_writepage+0x647/0xce0 [ 76.612753][ T79] shmem_writepage+0x1248/0x1610 [ 76.614574][ T79] ? __pfx_shmem_writepage+0x10/0x10 [ 76.616503][ T79] shrink_folio_list+0x3b68/0x5ca0 [ 76.618302][ T79] ? __pfx_shrink_folio_list+0x10/0x10 [ 76.620132][ T79] ? do_raw_spin_unlock+0x58/0x8b0 [ 76.622007][ T79] ? __pfx_validate_chain+0x10/0x10 [ 76.623970][ T79] ? _raw_spin_unlock_irqrestore+0xdd/0x140 [ 76.626064][ T79] ? __pfx__raw_spin_unlock_irqrestore+0x10/0x10 [ 76.628539][ T79] ? rcu_is_watching+0x15/0xb0 [ 76.630323][ T79] ? __mod_memcg_lruvec_state+0x2f7/0x4d0 [ 76.632510][ T79] ? mark_lock+0x9a/0x360 [ 76.633918][ T79] ? _raw_spin_unlock_irq+0x23/0x50 [ 76.635605][ T79] ? lockdep_hardirqs_on+0x99/0x150 [ 76.637610][ T79] evict_folios+0x3c92/0x58c0 [ 76.639450][ T79] ? __pfx_evict_folios+0x10/0x10 [ 76.641315][ T79] ? __pfx_lock_acquire+0x10/0x10 [ 76.643711][ T79] ? shrink_slab+0x12b/0x14d0 [ 76.645591][ T79] ? __pfx___might_resched+0x10/0x10 [ 76.647607][ T79] ? mem_cgroup_get_nr_swap_pages+0x28/0x110 [ 76.649891][ T79] ? get_swappiness+0x380/0x3e0 [ 76.651831][ T79] try_to_shrink_lruvec+0x9a6/0xc70 [ 76.653819][ T79] ? __pfx_try_to_shrink_lruvec+0x10/0x10 [ 76.655927][ T79] ? shrink_node+0x3573/0x3e50 [ 76.657940][ T79] ? __pfx_lock_release+0x10/0x10 [ 76.659952][ T79] shrink_one+0x3b9/0x850 [ 76.661550][ T79] ? shrink_node+0x3573/0x3e50 [ 76.663450][ T79] shrink_node+0x37c5/0x3e50 [ 76.665280][ T79] ? shrink_node+0x3573/0x3e50 [ 76.667068][ T79] ? __pfx_lock_acquire+0x10/0x10 [ 76.668926][ T79] ? percpu_ref_put+0x19/0x180 [ 76.670791][ T79] ? __pfx_lock_release+0x10/0x10 [ 76.672739][ T79] ? __pfx_shrink_node+0x10/0x10 [ 76.674568][ T79] ? mem_cgroup_iter+0x3d/0x420 [ 76.676405][ T79] kswapd+0x1ca9/0x36f0 [ 76.677994][ T79] ? kswapd+0xbf1/0x36f0 [ 76.679593][ T79] ? __pfx_kswapd+0x10/0x10 [ 76.681317][ T79] ? lockdep_hardirqs_on_prepare+0x43d/0x780 [ 76.683580][ T79] ? __pfx_lockdep_hardirqs_on_prepare+0x10/0x10 [ 76.685781][ T79] ? __pfx__raw_spin_unlock_irqrestore+0x10/0x10 [ 76.688183][ T79] ? __pfx_autoremove_wake_function+0x10/0x10 [ 76.690540][ T79] ? __kthread_parkme+0x169/0x1d0 [ 76.692343][ T79] ? __pfx_kswapd+0x10/0x10 [ 76.694025][ T79] kthread+0x2f0/0x390 [ 76.695489][ T79] ? __pfx_kswapd+0x10/0x10 [ 76.697181][ T79] ? __pfx_kthread+0x10/0x10 [ 76.698741][ T79] ret_from_fork+0x4b/0x80 [ 76.700272][ T79] ? __pfx_kthread+0x10/0x10 [ 76.702103][ T79] ret_from_fork_asm+0x1a/0x30 [ 76.703912][ T79]