================================================================== BUG: KASAN: invalid-access in __kvm_pgtable_visit arch/arm64/kvm/hyp/pgtable.c:163 [inline] BUG: KASAN: invalid-access in __kvm_pgtable_walk+0x8e4/0xa68 arch/arm64/kvm/hyp/pgtable.c:237 Read of size 8 at addr 63f00000141c4000 by task syz.2.17/3632 Pointer tag: [63], memory tag: [fe] CPU: 0 UID: 0 PID: 3632 Comm: syz.2.17 Not tainted syzkaller #0 PREEMPT Hardware name: linux,dummy-virt (DT) Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 print_address_description+0xac/0x288 mm/kasan/report.c:378 print_report+0x84/0xa0 mm/kasan/report.c:482 kasan_report+0xb0/0x110 mm/kasan/report.c:595 kasan_tag_mismatch+0x28/0x3c mm/kasan/sw_tags.c:175 __hwasan_tag_mismatch+0x30/0x60 arch/arm64/lib/kasan_sw_tags.S:55 __kvm_pgtable_visit arch/arm64/kvm/hyp/pgtable.c:163 [inline] __kvm_pgtable_walk+0x8e4/0xa68 arch/arm64/kvm/hyp/pgtable.c:237 _kvm_pgtable_walk arch/arm64/kvm/hyp/pgtable.c:260 [inline] kvm_pgtable_walk+0x294/0x468 arch/arm64/kvm/hyp/pgtable.c:283 kvm_pgtable_stage2_destroy_range+0x60/0xb4 arch/arm64/kvm/hyp/pgtable.c:1563 stage2_destroy_range arch/arm64/kvm/mmu.c:924 [inline] kvm_stage2_destroy arch/arm64/kvm/mmu.c:935 [inline] kvm_free_stage2_pgd+0x198/0x28c arch/arm64/kvm/mmu.c:1112 kvm_uninit_stage2_mmu+0x20/0x38 arch/arm64/kvm/mmu.c:1023 kvm_arch_flush_shadow_all+0x1a8/0x1e0 arch/arm64/kvm/nested.c:1113 kvm_flush_shadow_all virt/kvm/kvm_main.c:343 [inline] kvm_mmu_notifier_release+0x48/0xa8 virt/kvm/kvm_main.c:884 mmu_notifier_unregister+0x128/0x42c mm/mmu_notifier.c:815 kvm_destroy_vm virt/kvm/kvm_main.c:1295 [inline] kvm_put_kvm+0x6a0/0xfa8 virt/kvm/kvm_main.c:1353 kvm_vm_release+0x58/0x78 virt/kvm/kvm_main.c:1376 __fput+0x4ac/0x980 fs/file_table.c:468 ____fput+0x20/0x58 fs/file_table.c:496 task_work_run+0x1bc/0x254 kernel/task_work.c:227 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] do_notify_resume+0x1bc/0x270 arch/arm64/kernel/entry-common.c:155 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:173 [inline] exit_to_user_mode arch/arm64/kernel/entry-common.c:182 [inline] el0_svc+0xb8/0x164 arch/arm64/kernel/entry-common.c:880 el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:898 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596 The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x34f00000141c5b80 pfn:0x541c4 flags: 0x1ffe70000000000(node=0|zone=0|lastcpupid=0x7ff|kasantag=0x9c) raw: 01ffe70000000000 ffffc1ffc08f2648 ffffc1ffc08f1688 0000000000000000 raw: 34f00000141c5b80 0000000000000000 00000000ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: fff00000141c3e00: 72 72 72 72 72 72 72 72 72 72 72 72 fe fe fe fe fff00000141c3f00: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe >fff00000141c4000: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ^ fff00000141c4100: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fff00000141c4200: fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe fe ================================================================== BUG: Bad page state in process syz.2.17 pfn:b15e3 page: refcount:0 mapcount:2 mapping:000000001b05f025 index:0x0 pfn:0xb15e3 aops:ext4_da_aops ino:a4 dentry name(?):"file_contexts.bin" flags: 0x1ffc8c600000a0c(referenced|uptodate|workingset|owner_2|node=0|zone=0|lastcpupid=0x7ff|kasantag=0x23) raw: 01ffc8c600000a0c dead000000000100 dead000000000122 10f0000012bedff8 raw: 0000000000000000 0000000000000000 0000000000000001 0000000000000000 page dumped because: non-NULL mapping Modules linked in: CPU: 0 UID: 0 PID: 3632 Comm: syz.2.17 Tainted: G B syzkaller #0 PREEMPT Tainted: [B]=BAD_PAGE Hardware name: linux,dummy-virt (DT) Call trace: show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:499 (C) __dump_stack+0x30/0x40 lib/dump_stack.c:94 dump_stack_lvl+0xd8/0x12c lib/dump_stack.c:120 dump_stack+0x1c/0x28 lib/dump_stack.c:129 bad_page+0x17c/0x19c mm/page_alloc.c:650 free_page_is_bad mm/page_alloc.c:1083 [inline] free_pages_prepare mm/page_alloc.c:1387 [inline] __free_frozen_pages+0xecc/0xf24 mm/page_alloc.c:2895 free_frozen_pages+0x14/0x20 mm/page_alloc.c:2933 __folio_put+0x314/0x434 mm/swap.c:112 folio_put include/linux/mm.h:1360 [inline] put_page include/linux/mm.h:1429 [inline] kvm_s2_put_page+0x2cc/0x3a0 arch/arm64/kvm/mmu.c:264 stage2_free_walker+0xdc/0x264 arch/arm64/kvm/hyp/pgtable.c:1546 kvm_pgtable_visitor_cb arch/arm64/kvm/hyp/pgtable.c:130 [inline] __kvm_pgtable_visit arch/arm64/kvm/hyp/pgtable.c:-1 [inline] __kvm_pgtable_walk+0x4a8/0xa68 arch/arm64/kvm/hyp/pgtable.c:237 __kvm_pgtable_visit arch/arm64/kvm/hyp/pgtable.c:207 [inline] __kvm_pgtable_walk+0x600/0xa68 arch/arm64/kvm/hyp/pgtable.c:237 _kvm_pgtable_walk arch/arm64/kvm/hyp/pgtable.c:260 [inline] kvm_pgtable_walk+0x294/0x468 arch/arm64/kvm/hyp/pgtable.c:283 kvm_pgtable_stage2_destroy_range+0x60/0xb4 arch/arm64/kvm/hyp/pgtable.c:1563 stage2_destroy_range arch/arm64/kvm/mmu.c:924 [inline] kvm_stage2_destroy arch/arm64/kvm/mmu.c:935 [inline] kvm_free_stage2_pgd+0x198/0x28c arch/arm64/kvm/mmu.c:1112 kvm_uninit_stage2_mmu+0x20/0x38 arch/arm64/kvm/mmu.c:1023 kvm_arch_flush_shadow_all+0x1a8/0x1e0 arch/arm64/kvm/nested.c:1113 kvm_flush_shadow_all virt/kvm/kvm_main.c:343 [inline] kvm_mmu_notifier_release+0x48/0xa8 virt/kvm/kvm_main.c:884 mmu_notifier_unregister+0x128/0x42c mm/mmu_notifier.c:815 kvm_destroy_vm virt/kvm/kvm_main.c:1295 [inline] kvm_put_kvm+0x6a0/0xfa8 virt/kvm/kvm_main.c:1353 kvm_vm_release+0x58/0x78 virt/kvm/kvm_main.c:1376 __fput+0x4ac/0x980 fs/file_table.c:468 ____fput+0x20/0x58 fs/file_table.c:496 task_work_run+0x1bc/0x254 kernel/task_work.c:227 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] do_notify_resume+0x1bc/0x270 arch/arm64/kernel/entry-common.c:155 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:173 [inline] exit_to_user_mode arch/arm64/kernel/entry-common.c:182 [inline] el0_svc+0xb8/0x164 arch/arm64/kernel/entry-common.c:880 el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:898 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596 page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x34f00000141c5b80 pfn:0x541c4 flags: 0x1ffed8000000000(node=0|zone=0|lastcpupid=0x7ff|kasantag=0xb6) raw: 01ffed8000000000 ffffc1ffc08f1488 fff0000072d7e420 0000000000000000 raw: 34f00000141c5b80 b2f0000015f479c0 00000000ffffffff 0000000000000000 page dumped because: VM_BUG_ON_PAGE(page_ref_count(page) == 0) ------------[ cut here ]------------ kernel BUG at ./include/linux/mm.h:1036! Internal error: Oops - BUG: 00000000f2000800 [#1] SMP Modules linked in: CPU: 0 UID: 0 PID: 3632 Comm: syz.2.17 Tainted: G B syzkaller #0 PREEMPT Tainted: [B]=BAD_PAGE Hardware name: linux,dummy-virt (DT) pstate: 61402009 (nZCv daif +PAN -UAO -TCO +DIT -SSBS BTYPE=--) pc : put_page_testzero include/linux/mm.h:1036 [inline] pc : folio_put_testzero include/linux/mm.h:1042 [inline] pc : folio_put include/linux/mm.h:1359 [inline] pc : put_page include/linux/mm.h:1429 [inline] pc : kvm_s2_put_page+0x374/0x3a0 arch/arm64/kvm/mmu.c:264 lr : put_page_testzero include/linux/mm.h:1036 [inline] lr : folio_put_testzero include/linux/mm.h:1042 [inline] lr : folio_put include/linux/mm.h:1359 [inline] lr : put_page include/linux/mm.h:1429 [inline] lr : kvm_s2_put_page+0x374/0x3a0 arch/arm64/kvm/mmu.c:264 sp : ffff80008e777830 x29: ffff80008e777830 x28: 63f00000141c4728 x27: 63f00000141c4728 x26: 00000000000000ff x25: ffff800087396000 x24: ffffc1ffc0000000 x23: ffffc1ffc0507108 x22: 0000000000000000 x21: ffffc1ffc0507134 x20: 0000000000000000 x19: ffffc1ffc0507100 x18: 000000002c6c01e8 x17: 00000000053f8ca2 x16: 000000002c49cbc8 x15: 0000000065ca7ed1 x14: 0000000040000000 x13: fff0000020139d88 x12: 0000000000000001 x11: 0000000000000000 x10: 0000000000ff0100 x9 : d626810f30b05500 x8 : d626810f30b05500 x7 : 0000000000000400 x6 : ffff80008039fbc8 x5 : 0000000000000000 x4 : 0000000000000001 x3 : 0000000000000010 x2 : 0000000000000002 x1 : 0000000100000000 x0 : 000000000000003e Call trace: put_page_testzero include/linux/mm.h:1036 [inline] (P) folio_put_testzero include/linux/mm.h:1042 [inline] (P) folio_put include/linux/mm.h:1359 [inline] (P) put_page include/linux/mm.h:1429 [inline] (P) kvm_s2_put_page+0x374/0x3a0 arch/arm64/kvm/mmu.c:264 (P) stage2_free_walker+0xdc/0x264 arch/arm64/kvm/hyp/pgtable.c:1546 kvm_pgtable_visitor_cb arch/arm64/kvm/hyp/pgtable.c:130 [inline] __kvm_pgtable_visit arch/arm64/kvm/hyp/pgtable.c:212 [inline] __kvm_pgtable_walk+0x7d8/0xa68 arch/arm64/kvm/hyp/pgtable.c:237 _kvm_pgtable_walk arch/arm64/kvm/hyp/pgtable.c:260 [inline] kvm_pgtable_walk+0x294/0x468 arch/arm64/kvm/hyp/pgtable.c:283 kvm_pgtable_stage2_destroy_range+0x60/0xb4 arch/arm64/kvm/hyp/pgtable.c:1563 stage2_destroy_range arch/arm64/kvm/mmu.c:924 [inline] kvm_stage2_destroy arch/arm64/kvm/mmu.c:935 [inline] kvm_free_stage2_pgd+0x198/0x28c arch/arm64/kvm/mmu.c:1112 kvm_uninit_stage2_mmu+0x20/0x38 arch/arm64/kvm/mmu.c:1023 kvm_arch_flush_shadow_all+0x1a8/0x1e0 arch/arm64/kvm/nested.c:1113 kvm_flush_shadow_all virt/kvm/kvm_main.c:343 [inline] kvm_mmu_notifier_release+0x48/0xa8 virt/kvm/kvm_main.c:884 mmu_notifier_unregister+0x128/0x42c mm/mmu_notifier.c:815 kvm_destroy_vm virt/kvm/kvm_main.c:1295 [inline] kvm_put_kvm+0x6a0/0xfa8 virt/kvm/kvm_main.c:1353 kvm_vm_release+0x58/0x78 virt/kvm/kvm_main.c:1376 __fput+0x4ac/0x980 fs/file_table.c:468 ____fput+0x20/0x58 fs/file_table.c:496 task_work_run+0x1bc/0x254 kernel/task_work.c:227 resume_user_mode_work include/linux/resume_user_mode.h:50 [inline] do_notify_resume+0x1bc/0x270 arch/arm64/kernel/entry-common.c:155 exit_to_user_mode_prepare arch/arm64/kernel/entry-common.c:173 [inline] exit_to_user_mode arch/arm64/kernel/entry-common.c:182 [inline] el0_svc+0xb8/0x164 arch/arm64/kernel/entry-common.c:880 el0t_64_sync_handler+0x84/0x12c arch/arm64/kernel/entry-common.c:898 el0t_64_sync+0x198/0x19c arch/arm64/kernel/entry.S:596 Code: 900377c1 910e9421 aa1303e0 97f9c9f2 (d4210000) ---[ end trace 0000000000000000 ]---