diff mbox series

[net] ipmr: fix build with clang and DEBUG_NET disabled.

Message ID ee75faa926b2446b8302ee5fc30e129d2df73b90.1732810228.git.pabeni@redhat.com (mailing list archive)
State Accepted
Commit f6d7695b5ae22092fa2cc42529bb7462f7e0c4ad
Delegated to: Netdev Maintainers
Headers show
Series [net] ipmr: fix build with clang and DEBUG_NET disabled. | expand

Checks

Context Check Description
netdev/series_format success Single patches do not need cover letters
netdev/tree_selection success Clearly marked for net
netdev/ynl success Generated files up to date; no warnings/errors; no diff in generated;
netdev/fixes_present success Fixes tag present in non-next series
netdev/header_inline success No static functions without inline keyword in header files
netdev/build_32bit success Errors and warnings before: 3 this patch: 3
netdev/build_tools success No tools touched, skip
netdev/cc_maintainers warning 5 maintainers not CCed: llvm@lists.linux.dev morbo@google.com nathan@kernel.org ndesaulniers@google.com justinstitt@google.com
netdev/build_clang success Errors and warnings before: 3 this patch: 3
netdev/verify_signedoff success Signed-off-by tag matches author and committer
netdev/deprecated_api success None detected
netdev/check_selftest success No net selftest shell script
netdev/verify_fixes success Fixes tag looks correct
netdev/build_allmodconfig_warn success Errors and warnings before: 8 this patch: 8
netdev/checkpatch success total: 0 errors, 0 warnings, 0 checks, 16 lines checked
netdev/build_clang_rust success No Rust files in patch. Skipping build
netdev/kdoc success Errors and warnings before: 1 this patch: 1
netdev/source_inline success Was 0 now: 0

Commit Message

Paolo Abeni Nov. 28, 2024, 4:18 p.m. UTC
Sasha reported a build issue in ipmr::

net/ipv4/ipmr.c:320:13: error: function 'ipmr_can_free_table' is not \
	needed and will not be emitted \
	[-Werror,-Wunneeded-internal-declaration]
   320 | static bool ipmr_can_free_table(struct net *net)

Apparently clang is too smart with BUILD_BUG_ON_INVALID(), let's
fallback to a plain WARN_ON_ONCE().

Reported-by: Sasha Levin <sashal@kernel.org>
Closes: https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-25635-g6813e2326f1e/testrun/26111580/suite/build/test/clang-nightly-lkftconfig/details/
Fixes: 11b6e701bce9 ("ipmr: add debug check for mr table cleanup")
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
---
 net/ipv4/ipmr.c  | 2 +-
 net/ipv6/ip6mr.c | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Paolo Abeni Nov. 28, 2024, 4:31 p.m. UTC | #1
On 11/28/24 17:18, Paolo Abeni wrote:
> Sasha reported a build issue in ipmr::
> 
> net/ipv4/ipmr.c:320:13: error: function 'ipmr_can_free_table' is not \
> 	needed and will not be emitted \
> 	[-Werror,-Wunneeded-internal-declaration]
>    320 | static bool ipmr_can_free_table(struct net *net)
> 
> Apparently clang is too smart with BUILD_BUG_ON_INVALID(), let's
> fallback to a plain WARN_ON_ONCE().
> 
> Reported-by: Sasha Levin <sashal@kernel.org>
> Closes: https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-25635-g6813e2326f1e/testrun/26111580/suite/build/test/clang-nightly-lkftconfig/details/
> Fixes: 11b6e701bce9 ("ipmr: add debug check for mr table cleanup")
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>

Given the issue is blocking today's PR, unless someone screams very loud
and very soon, I'm going to apply this fix in matter of minutes.

Thanks,

Paolo
patchwork-bot+netdevbpf@kernel.org Nov. 28, 2024, 5 p.m. UTC | #2
Hello:

This patch was applied to netdev/net.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Thu, 28 Nov 2024 17:18:04 +0100 you wrote:
> Sasha reported a build issue in ipmr::
> 
> net/ipv4/ipmr.c:320:13: error: function 'ipmr_can_free_table' is not \
> 	needed and will not be emitted \
> 	[-Werror,-Wunneeded-internal-declaration]
>    320 | static bool ipmr_can_free_table(struct net *net)
> 
> [...]

Here is the summary with links:
  - [net] ipmr: fix build with clang and DEBUG_NET disabled.
    https://git.kernel.org/netdev/net/c/f6d7695b5ae2

You are awesome, thank you!
Lai, Yi Dec. 5, 2024, 6:21 a.m. UTC | #3
On Thu, Nov 28, 2024 at 05:18:04PM +0100, Paolo Abeni wrote:
> Sasha reported a build issue in ipmr::
> 
> net/ipv4/ipmr.c:320:13: error: function 'ipmr_can_free_table' is not \
> 	needed and will not be emitted \
> 	[-Werror,-Wunneeded-internal-declaration]
>    320 | static bool ipmr_can_free_table(struct net *net)
> 
> Apparently clang is too smart with BUILD_BUG_ON_INVALID(), let's
> fallback to a plain WARN_ON_ONCE().
> 
> Reported-by: Sasha Levin <sashal@kernel.org>
> Closes: https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-25635-g6813e2326f1e/testrun/26111580/suite/build/test/clang-nightly-lkftconfig/details/
> Fixes: 11b6e701bce9 ("ipmr: add debug check for mr table cleanup")
> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> ---
>  net/ipv4/ipmr.c  | 2 +-
>  net/ipv6/ip6mr.c | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
> index 383ea8b91cc7..c5b8ec5c0a8c 100644
> --- a/net/ipv4/ipmr.c
> +++ b/net/ipv4/ipmr.c
> @@ -437,7 +437,7 @@ static void ipmr_free_table(struct mr_table *mrt)
>  {
>  	struct net *net = read_pnet(&mrt->net);
>  
> -	DEBUG_NET_WARN_ON_ONCE(!ipmr_can_free_table(net));
> +	WARN_ON_ONCE(!ipmr_can_free_table(net));
>  
>  	timer_shutdown_sync(&mrt->ipmr_expire_timer);
>  	mroute_clean_tables(mrt, MRT_FLUSH_VIFS | MRT_FLUSH_VIFS_STATIC |
> diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
> index 4147890fe98f..7f1902ac3586 100644
> --- a/net/ipv6/ip6mr.c
> +++ b/net/ipv6/ip6mr.c
> @@ -416,7 +416,7 @@ static void ip6mr_free_table(struct mr_table *mrt)
>  {
>  	struct net *net = read_pnet(&mrt->net);
>  
> -	DEBUG_NET_WARN_ON_ONCE(!ip6mr_can_free_table(net));
> +	WARN_ON_ONCE(!ip6mr_can_free_table(net));
>  
>  	timer_shutdown_sync(&mrt->ipmr_expire_timer);
>  	mroute_clean_tables(mrt, MRT6_FLUSH_MIFS | MRT6_FLUSH_MIFS_STATIC |
> -- 
> 2.45.2
>

Hi Paolo Abeni,

Greetings!

I used Syzkaller and found that there is WARNING in ip6mr_free_table in linux v6.13-rc1.

After bisection and the first bad commit is:
"
f6d7695b5ae22092fa2cc42529bb7462f7e0c4ad ipmr: fix build with clang and DEBUG_NET disabled
"

Please help take a look if the WARNING is triggerd expectedly. I hope following records can be insightful for you.

All detailed into can be found at:
https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table
Syzkaller repro code:
https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.c
Syzkaller repro syscall steps:
https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.prog
Syzkaller report:
https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.report
Kconfig(make olddefconfig):
https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/kconfig_origin
Bisect info:
https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/bisect_info.log
bzImage:
https://github.com/laifryiee/syzkaller_logs/raw/refs/heads/main/241204_202439_ip6mr_free_table/bzImage_2b2d5f55fa44b37555edcdbbaf3acdb821e456a5
Issue dmesg:
https://github.com/laifryiee/syzkaller_logs/blob/main/241204_202439_ip6mr_free_table/2b2d5f55fa44b37555edcdbbaf3acdb821e456a5_dmesg.log

"
[  106.095480] ------------[ cut here ]------------
[  106.096382] WARNING: CPU: 1 PID: 682 at net/ipv6/ip6mr.c:419 ip6mr_free_table+0xc6/0x130
[  106.098015] Modules linked in:
[  106.098454] CPU: 1 UID: 0 PID: 682 Comm: repro Not tainted 6.12.0+ #1
[  106.099311] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
[  106.100953] RIP: 0010:ip6mr_free_table+0xc6/0x130
[  106.101605] Code: 40 0d 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 75 5e 48 83 bb 40 0d 00 00 f
[  106.104018] RSP: 0018:ffff88801743fb88 EFLAGS: 00010293
[  106.104940] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff8558ee4f
[  106.105887] RDX: ffff888021640000 RSI: ffffffff8558ee86 RDI: ffff88802d00a980
[  106.106817] RBP: ffff88801743fba0 R08: 0000000000000000 R09: ffffed1005a013b0
[  106.107758] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888010796000
[  106.108813] R13: 0000000000000001 R14: dead000000000100 R15: dffffc0000000000
[  106.109755] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
[  106.110877] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  106.111660] CR2: 00007f8030792008 CR3: 00000000215c2006 CR4: 0000000000770ef0
[  106.112614] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  106.113549] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  106.114482] PKRU: 55555554
[  106.114856] Call Trace:
[  106.115201]  <TASK>
[  106.115502]  ? show_regs+0x6d/0x80
[  106.115996]  ? __warn+0xf3/0x380
[  106.116499]  ? report_bug+0x25e/0x4b0
[  106.117014]  ? ip6mr_free_table+0xc6/0x130
[  106.117652]  ? report_bug+0x2cb/0x4b0
[  106.118211]  ? ip6mr_free_table+0xc6/0x130
[  106.118784]  ? ip6mr_free_table+0xc7/0x130
[  106.119362]  ? handle_bug+0xf1/0x190
[  106.119890]  ? exc_invalid_op+0x3c/0x80
[  106.120461]  ? asm_exc_invalid_op+0x1f/0x30
[  106.121089]  ? ip6mr_free_table+0x8f/0x130
[  106.121706]  ? ip6mr_free_table+0xc6/0x130
[  106.122336]  ? ip6mr_free_table+0xc6/0x130
[  106.122919]  ? ip6mr_free_table+0xc6/0x130
[  106.123499]  ip6mr_rules_exit+0x12a/0x260
[  106.124076]  ip6mr_net_exit_batch+0x5d/0xb0
[  106.124677]  ? __pfx_ip6mr_net_exit_batch+0x10/0x10
[  106.125382]  ? __pfx_ip6mr_net_exit+0x10/0x10
[  106.126033]  ops_exit_list+0x132/0x190
[  106.126619]  setup_net+0x502/0x840
[  106.127143]  ? __pfx_setup_net+0x10/0x10
[  106.127725]  ? __pfx_down_read_killable+0x10/0x10
[  106.128444]  ? __mutex_init+0xfd/0x140
[  106.129024]  copy_net_ns+0x2bb/0x6e0
[  106.129537]  create_new_namespaces+0x403/0xb40
[  106.130171]  unshare_nsproxy_namespaces+0xca/0x200
[  106.130858]  ksys_unshare+0x482/0xae0
[  106.131439]  ? __pfx_ksys_unshare+0x10/0x10
[  106.132113]  ? __audit_syscall_entry+0x39c/0x500
[  106.132827]  __x64_sys_unshare+0x3a/0x50
[  106.133432]  x64_sys_call+0xd3e/0x2140
[  106.134007]  do_syscall_64+0x6d/0x140
[  106.134574]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  106.135333] RIP: 0033:0x7ff3dc83ee5d
[  106.135873] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
[  106.138484] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
[  106.139569] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
[  106.140603] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
[  106.141608] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
[  106.142538] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
[  106.143474] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
[  106.144466]  </TASK>
[  106.144784] irq event stamp: 50463
[  106.145252] hardirqs last  enabled at (50471): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
[  106.146386] hardirqs last disabled at (50478): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
[  106.147514] softirqs last  enabled at (50120): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
[  106.148727] softirqs last disabled at (50107): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
[  106.149948] ---[ end trace 0000000000000000 ]---
[  106.158499] ------------[ cut here ]------------
[  106.159167] WARNING: CPU: 1 PID: 682 at net/ipv4/ipmr.c:440 ipmr_rules_exit+0x14b/0x1d0
[  106.160449] Modules linked in:
[  106.160933] CPU: 1 UID: 0 PID: 682 Comm: repro Tainted: G        W          6.12.0+ #1
[  106.162053] Tainted: [W]=WARN
[  106.162492] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
[  106.164206] RIP: 0010:ipmr_rules_exit+0x14b/0x1d0
[  106.164915] Code: df 48 c1 ea 03 80 3c 02 00 75 7b 48 c7 83 08 08 00 00 00 00 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc 6
[  106.167497] RSP: 0018:ffff88801743fbc0 EFLAGS: 00010293
[  106.168432] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff85369a4b
[  106.169436] RDX: ffff888021640000 RSI: ffffffff85369abb RDI: 0000000000000005
[  106.170449] RBP: ffff88801743fbe8 R08: 0000000000000000 R09: ffffed1005a013b0
[  106.171462] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888021756000
[  106.172592] R13: 0000000000000001 R14: ffff88802d00a448 R15: ffff88802d009c40
[  106.173605] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
[  106.174742] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  106.175568] CR2: 00007f0c14691000 CR3: 00000000215c2006 CR4: 0000000000770ef0
[  106.176685] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  106.177702] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[  106.178717] PKRU: 55555554
[  106.179131] Call Trace:
[  106.179469]  <TASK>
[  106.179770]  ? show_regs+0x6d/0x80
[  106.180294]  ? __warn+0xf3/0x380
[  106.180761]  ? report_bug+0x25e/0x4b0
[  106.181302]  ? ipmr_rules_exit+0x14b/0x1d0
[  106.181925]  ? report_bug+0x2cb/0x4b0
[  106.182491]  ? ipmr_rules_exit+0x14b/0x1d0
[  106.183111]  ? ipmr_rules_exit+0x14c/0x1d0
[  106.183726]  ? handle_bug+0xf1/0x190
[  106.184315]  ? exc_invalid_op+0x3c/0x80
[  106.184915]  ? asm_exc_invalid_op+0x1f/0x30
[  106.185567]  ? ipmr_rules_exit+0xdb/0x1d0
[  106.186177]  ? ipmr_rules_exit+0x14b/0x1d0
[  106.186793]  ? ipmr_rules_exit+0x14b/0x1d0
[  106.187429]  ipmr_net_exit_batch+0x5d/0xb0
[  106.188045]  ? __pfx_ipmr_net_exit_batch+0x10/0x10
[  106.188778]  ? __pfx_ipmr_net_exit+0x10/0x10
[  106.189423]  ops_exit_list+0x132/0x190
[  106.190020]  setup_net+0x502/0x840
[  106.190549]  ? __pfx_setup_net+0x10/0x10
[  106.191142]  ? __pfx_down_read_killable+0x10/0x10
[  106.191845]  ? __mutex_init+0xfd/0x140
[  106.192461]  copy_net_ns+0x2bb/0x6e0
[  106.193024]  create_new_namespaces+0x403/0xb40
[  106.193706]  unshare_nsproxy_namespaces+0xca/0x200
[  106.194427]  ksys_unshare+0x482/0xae0
[  106.195001]  ? __pfx_ksys_unshare+0x10/0x10
[  106.195648]  ? __audit_syscall_entry+0x39c/0x500
[  106.196384]  __x64_sys_unshare+0x3a/0x50
[  106.196988]  x64_sys_call+0xd3e/0x2140
[  106.197555]  do_syscall_64+0x6d/0x140
[  106.198120]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[  106.198870] RIP: 0033:0x7ff3dc83ee5d
[  106.199409] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
[  106.202011] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
[  106.203093] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
[  106.204126] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
[  106.205144] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
[  106.206160] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
[  106.207175] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
[  106.208253]  </TASK>
[  106.208592] irq event stamp: 51871
[  106.209097] hardirqs last  enabled at (51879): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
[  106.210317] hardirqs last disabled at (51886): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
[  106.211536] softirqs last  enabled at (51802): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
[  106.212814] softirqs last disabled at (51903): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
[  106.213954] ---[ end trace 0000000000000000 ]---
"

Regards,
Yi Lai

---

If you don't need the following environment to reproduce the problem or if you
already have one reproduced environment, please ignore the following information.

How to reproduce:
git clone https://gitlab.com/xupengfe/repro_vm_env.git
cd repro_vm_env
tar -xvf repro_vm_env.tar.gz
cd repro_vm_env; ./start3.sh  // it needs qemu-system-x86_64 and I used v7.1.0
  // start3.sh will load bzImage_2241ab53cbb5cdb08a6b2d4688feb13971058f65 v6.2-rc5 kernel
  // You could change the bzImage_xxx as you want
  // Maybe you need to remove line "-drive if=pflash,format=raw,readonly=on,file=./OVMF_CODE.fd \" for different qemu version
You could use below command to log in, there is no password for root.
ssh -p 10023 root@localhost

After login vm(virtual machine) successfully, you could transfer reproduced
binary to the vm by below way, and reproduce the problem in vm:
gcc -pthread -o repro repro.c
scp -P 10023 repro root@localhost:/root/

Get the bzImage for target kernel:
Please use target kconfig and copy it to kernel_src/.config
make olddefconfig
make -jx bzImage           //x should equal or less than cpu num your pc has

Fill the bzImage file into above start3.sh to load the target kernel in vm.


Tips:
If you already have qemu-system-x86_64, please ignore below info.
If you want to install qemu v7.1.0 version:
git clone https://github.com/qemu/qemu.git
cd qemu
git checkout -f v7.1.0
mkdir build
cd build
yum install -y ninja-build.x86_64
yum -y install libslirp-devel.x86_64
../configure --target-list=x86_64-softmmu --enable-kvm --enable-vnc --enable-gtk --enable-sdl --enable-usb-redir --enable-slirp
make
make install
Eric Dumazet Dec. 5, 2024, 6:47 a.m. UTC | #4
On Thu, Dec 5, 2024 at 7:22 AM Lai, Yi <yi1.lai@linux.intel.com> wrote:
>
> On Thu, Nov 28, 2024 at 05:18:04PM +0100, Paolo Abeni wrote:
> > Sasha reported a build issue in ipmr::
> >
> > net/ipv4/ipmr.c:320:13: error: function 'ipmr_can_free_table' is not \
> >       needed and will not be emitted \
> >       [-Werror,-Wunneeded-internal-declaration]
> >    320 | static bool ipmr_can_free_table(struct net *net)
> >
> > Apparently clang is too smart with BUILD_BUG_ON_INVALID(), let's
> > fallback to a plain WARN_ON_ONCE().
> >
> > Reported-by: Sasha Levin <sashal@kernel.org>
> > Closes: https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-25635-g6813e2326f1e/testrun/26111580/suite/build/test/clang-nightly-lkftconfig/details/
> > Fixes: 11b6e701bce9 ("ipmr: add debug check for mr table cleanup")
> > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > ---
> >  net/ipv4/ipmr.c  | 2 +-
> >  net/ipv6/ip6mr.c | 2 +-
> >  2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
> > index 383ea8b91cc7..c5b8ec5c0a8c 100644
> > --- a/net/ipv4/ipmr.c
> > +++ b/net/ipv4/ipmr.c
> > @@ -437,7 +437,7 @@ static void ipmr_free_table(struct mr_table *mrt)
> >  {
> >       struct net *net = read_pnet(&mrt->net);
> >
> > -     DEBUG_NET_WARN_ON_ONCE(!ipmr_can_free_table(net));
> > +     WARN_ON_ONCE(!ipmr_can_free_table(net));
> >
> >       timer_shutdown_sync(&mrt->ipmr_expire_timer);
> >       mroute_clean_tables(mrt, MRT_FLUSH_VIFS | MRT_FLUSH_VIFS_STATIC |
> > diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
> > index 4147890fe98f..7f1902ac3586 100644
> > --- a/net/ipv6/ip6mr.c
> > +++ b/net/ipv6/ip6mr.c
> > @@ -416,7 +416,7 @@ static void ip6mr_free_table(struct mr_table *mrt)
> >  {
> >       struct net *net = read_pnet(&mrt->net);
> >
> > -     DEBUG_NET_WARN_ON_ONCE(!ip6mr_can_free_table(net));
> > +     WARN_ON_ONCE(!ip6mr_can_free_table(net));
> >
> >       timer_shutdown_sync(&mrt->ipmr_expire_timer);
> >       mroute_clean_tables(mrt, MRT6_FLUSH_MIFS | MRT6_FLUSH_MIFS_STATIC |
> > --
> > 2.45.2
> >
>
> Hi Paolo Abeni,
>
> Greetings!
>
> I used Syzkaller and found that there is WARNING in ip6mr_free_table in linux v6.13-rc1.
>
> After bisection and the first bad commit is:
> "
> f6d7695b5ae22092fa2cc42529bb7462f7e0c4ad ipmr: fix build with clang and DEBUG_NET disabled
> "
>
> Please help take a look if the WARNING is triggerd expectedly. I hope following records can be insightful for you.
>

Hi there

Probably fixed already in net tree with :

50b94204446e1215af081fd713d7d566d9258e35 ipmr: tune the
ipmr_can_free_table() checks.

Thank you

> All detailed into can be found at:
> https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table
> Syzkaller repro code:
> https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.c
> Syzkaller repro syscall steps:
> https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.prog
> Syzkaller report:
> https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.report
> Kconfig(make olddefconfig):
> https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/kconfig_origin
> Bisect info:
> https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/bisect_info.log
> bzImage:
> https://github.com/laifryiee/syzkaller_logs/raw/refs/heads/main/241204_202439_ip6mr_free_table/bzImage_2b2d5f55fa44b37555edcdbbaf3acdb821e456a5
> Issue dmesg:
> https://github.com/laifryiee/syzkaller_logs/blob/main/241204_202439_ip6mr_free_table/2b2d5f55fa44b37555edcdbbaf3acdb821e456a5_dmesg.log
>
> "
> [  106.095480] ------------[ cut here ]------------
> [  106.096382] WARNING: CPU: 1 PID: 682 at net/ipv6/ip6mr.c:419 ip6mr_free_table+0xc6/0x130
> [  106.098015] Modules linked in:
> [  106.098454] CPU: 1 UID: 0 PID: 682 Comm: repro Not tainted 6.12.0+ #1
> [  106.099311] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
> [  106.100953] RIP: 0010:ip6mr_free_table+0xc6/0x130
> [  106.101605] Code: 40 0d 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 75 5e 48 83 bb 40 0d 00 00 f
> [  106.104018] RSP: 0018:ffff88801743fb88 EFLAGS: 00010293
> [  106.104940] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff8558ee4f
> [  106.105887] RDX: ffff888021640000 RSI: ffffffff8558ee86 RDI: ffff88802d00a980
> [  106.106817] RBP: ffff88801743fba0 R08: 0000000000000000 R09: ffffed1005a013b0
> [  106.107758] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888010796000
> [  106.108813] R13: 0000000000000001 R14: dead000000000100 R15: dffffc0000000000
> [  106.109755] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
> [  106.110877] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  106.111660] CR2: 00007f8030792008 CR3: 00000000215c2006 CR4: 0000000000770ef0
> [  106.112614] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [  106.113549] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [  106.114482] PKRU: 55555554
> [  106.114856] Call Trace:
> [  106.115201]  <TASK>
> [  106.115502]  ? show_regs+0x6d/0x80
> [  106.115996]  ? __warn+0xf3/0x380
> [  106.116499]  ? report_bug+0x25e/0x4b0
> [  106.117014]  ? ip6mr_free_table+0xc6/0x130
> [  106.117652]  ? report_bug+0x2cb/0x4b0
> [  106.118211]  ? ip6mr_free_table+0xc6/0x130
> [  106.118784]  ? ip6mr_free_table+0xc7/0x130
> [  106.119362]  ? handle_bug+0xf1/0x190
> [  106.119890]  ? exc_invalid_op+0x3c/0x80
> [  106.120461]  ? asm_exc_invalid_op+0x1f/0x30
> [  106.121089]  ? ip6mr_free_table+0x8f/0x130
> [  106.121706]  ? ip6mr_free_table+0xc6/0x130
> [  106.122336]  ? ip6mr_free_table+0xc6/0x130
> [  106.122919]  ? ip6mr_free_table+0xc6/0x130
> [  106.123499]  ip6mr_rules_exit+0x12a/0x260
> [  106.124076]  ip6mr_net_exit_batch+0x5d/0xb0
> [  106.124677]  ? __pfx_ip6mr_net_exit_batch+0x10/0x10
> [  106.125382]  ? __pfx_ip6mr_net_exit+0x10/0x10
> [  106.126033]  ops_exit_list+0x132/0x190
> [  106.126619]  setup_net+0x502/0x840
> [  106.127143]  ? __pfx_setup_net+0x10/0x10
> [  106.127725]  ? __pfx_down_read_killable+0x10/0x10
> [  106.128444]  ? __mutex_init+0xfd/0x140
> [  106.129024]  copy_net_ns+0x2bb/0x6e0
> [  106.129537]  create_new_namespaces+0x403/0xb40
> [  106.130171]  unshare_nsproxy_namespaces+0xca/0x200
> [  106.130858]  ksys_unshare+0x482/0xae0
> [  106.131439]  ? __pfx_ksys_unshare+0x10/0x10
> [  106.132113]  ? __audit_syscall_entry+0x39c/0x500
> [  106.132827]  __x64_sys_unshare+0x3a/0x50
> [  106.133432]  x64_sys_call+0xd3e/0x2140
> [  106.134007]  do_syscall_64+0x6d/0x140
> [  106.134574]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> [  106.135333] RIP: 0033:0x7ff3dc83ee5d
> [  106.135873] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
> [  106.138484] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
> [  106.139569] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
> [  106.140603] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
> [  106.141608] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
> [  106.142538] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
> [  106.143474] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
> [  106.144466]  </TASK>
> [  106.144784] irq event stamp: 50463
> [  106.145252] hardirqs last  enabled at (50471): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
> [  106.146386] hardirqs last disabled at (50478): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
> [  106.147514] softirqs last  enabled at (50120): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> [  106.148727] softirqs last disabled at (50107): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> [  106.149948] ---[ end trace 0000000000000000 ]---
> [  106.158499] ------------[ cut here ]------------
> [  106.159167] WARNING: CPU: 1 PID: 682 at net/ipv4/ipmr.c:440 ipmr_rules_exit+0x14b/0x1d0
> [  106.160449] Modules linked in:
> [  106.160933] CPU: 1 UID: 0 PID: 682 Comm: repro Tainted: G        W          6.12.0+ #1
> [  106.162053] Tainted: [W]=WARN
> [  106.162492] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
> [  106.164206] RIP: 0010:ipmr_rules_exit+0x14b/0x1d0
> [  106.164915] Code: df 48 c1 ea 03 80 3c 02 00 75 7b 48 c7 83 08 08 00 00 00 00 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc 6
> [  106.167497] RSP: 0018:ffff88801743fbc0 EFLAGS: 00010293
> [  106.168432] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff85369a4b
> [  106.169436] RDX: ffff888021640000 RSI: ffffffff85369abb RDI: 0000000000000005
> [  106.170449] RBP: ffff88801743fbe8 R08: 0000000000000000 R09: ffffed1005a013b0
> [  106.171462] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888021756000
> [  106.172592] R13: 0000000000000001 R14: ffff88802d00a448 R15: ffff88802d009c40
> [  106.173605] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
> [  106.174742] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [  106.175568] CR2: 00007f0c14691000 CR3: 00000000215c2006 CR4: 0000000000770ef0
> [  106.176685] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [  106.177702] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [  106.178717] PKRU: 55555554
> [  106.179131] Call Trace:
> [  106.179469]  <TASK>
> [  106.179770]  ? show_regs+0x6d/0x80
> [  106.180294]  ? __warn+0xf3/0x380
> [  106.180761]  ? report_bug+0x25e/0x4b0
> [  106.181302]  ? ipmr_rules_exit+0x14b/0x1d0
> [  106.181925]  ? report_bug+0x2cb/0x4b0
> [  106.182491]  ? ipmr_rules_exit+0x14b/0x1d0
> [  106.183111]  ? ipmr_rules_exit+0x14c/0x1d0
> [  106.183726]  ? handle_bug+0xf1/0x190
> [  106.184315]  ? exc_invalid_op+0x3c/0x80
> [  106.184915]  ? asm_exc_invalid_op+0x1f/0x30
> [  106.185567]  ? ipmr_rules_exit+0xdb/0x1d0
> [  106.186177]  ? ipmr_rules_exit+0x14b/0x1d0
> [  106.186793]  ? ipmr_rules_exit+0x14b/0x1d0
> [  106.187429]  ipmr_net_exit_batch+0x5d/0xb0
> [  106.188045]  ? __pfx_ipmr_net_exit_batch+0x10/0x10
> [  106.188778]  ? __pfx_ipmr_net_exit+0x10/0x10
> [  106.189423]  ops_exit_list+0x132/0x190
> [  106.190020]  setup_net+0x502/0x840
> [  106.190549]  ? __pfx_setup_net+0x10/0x10
> [  106.191142]  ? __pfx_down_read_killable+0x10/0x10
> [  106.191845]  ? __mutex_init+0xfd/0x140
> [  106.192461]  copy_net_ns+0x2bb/0x6e0
> [  106.193024]  create_new_namespaces+0x403/0xb40
> [  106.193706]  unshare_nsproxy_namespaces+0xca/0x200
> [  106.194427]  ksys_unshare+0x482/0xae0
> [  106.195001]  ? __pfx_ksys_unshare+0x10/0x10
> [  106.195648]  ? __audit_syscall_entry+0x39c/0x500
> [  106.196384]  __x64_sys_unshare+0x3a/0x50
> [  106.196988]  x64_sys_call+0xd3e/0x2140
> [  106.197555]  do_syscall_64+0x6d/0x140
> [  106.198120]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> [  106.198870] RIP: 0033:0x7ff3dc83ee5d
> [  106.199409] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
> [  106.202011] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
> [  106.203093] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
> [  106.204126] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
> [  106.205144] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
> [  106.206160] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
> [  106.207175] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
> [  106.208253]  </TASK>
> [  106.208592] irq event stamp: 51871
> [  106.209097] hardirqs last  enabled at (51879): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
> [  106.210317] hardirqs last disabled at (51886): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
> [  106.211536] softirqs last  enabled at (51802): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> [  106.212814] softirqs last disabled at (51903): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> [  106.213954] ---[ end trace 0000000000000000 ]---
> "
>
> Regards,
> Yi Lai
>
> ---
>
> If you don't need the following environment to reproduce the problem or if you
> already have one reproduced environment, please ignore the following information.
>
> How to reproduce:
> git clone https://gitlab.com/xupengfe/repro_vm_env.git
> cd repro_vm_env
> tar -xvf repro_vm_env.tar.gz
> cd repro_vm_env; ./start3.sh  // it needs qemu-system-x86_64 and I used v7.1.0
>   // start3.sh will load bzImage_2241ab53cbb5cdb08a6b2d4688feb13971058f65 v6.2-rc5 kernel
>   // You could change the bzImage_xxx as you want
>   // Maybe you need to remove line "-drive if=pflash,format=raw,readonly=on,file=./OVMF_CODE.fd \" for different qemu version
> You could use below command to log in, there is no password for root.
> ssh -p 10023 root@localhost
>
> After login vm(virtual machine) successfully, you could transfer reproduced
> binary to the vm by below way, and reproduce the problem in vm:
> gcc -pthread -o repro repro.c
> scp -P 10023 repro root@localhost:/root/
>
> Get the bzImage for target kernel:
> Please use target kconfig and copy it to kernel_src/.config
> make olddefconfig
> make -jx bzImage           //x should equal or less than cpu num your pc has
>
> Fill the bzImage file into above start3.sh to load the target kernel in vm.
>
>
> Tips:
> If you already have qemu-system-x86_64, please ignore below info.
> If you want to install qemu v7.1.0 version:
> git clone https://github.com/qemu/qemu.git
> cd qemu
> git checkout -f v7.1.0
> mkdir build
> cd build
> yum install -y ninja-build.x86_64
> yum -y install libslirp-devel.x86_64
> ../configure --target-list=x86_64-softmmu --enable-kvm --enable-vnc --enable-gtk --enable-sdl --enable-usb-redir --enable-slirp
> make
> make install
Lai, Yi Dec. 6, 2024, 5:58 a.m. UTC | #5
On Thu, Dec 05, 2024 at 07:47:03AM +0100, Eric Dumazet wrote:
> On Thu, Dec 5, 2024 at 7:22 AM Lai, Yi <yi1.lai@linux.intel.com> wrote:
> >
> > On Thu, Nov 28, 2024 at 05:18:04PM +0100, Paolo Abeni wrote:
> > > Sasha reported a build issue in ipmr::
> > >
> > > net/ipv4/ipmr.c:320:13: error: function 'ipmr_can_free_table' is not \
> > >       needed and will not be emitted \
> > >       [-Werror,-Wunneeded-internal-declaration]
> > >    320 | static bool ipmr_can_free_table(struct net *net)
> > >
> > > Apparently clang is too smart with BUILD_BUG_ON_INVALID(), let's
> > > fallback to a plain WARN_ON_ONCE().
> > >
> > > Reported-by: Sasha Levin <sashal@kernel.org>
> > > Closes: https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-25635-g6813e2326f1e/testrun/26111580/suite/build/test/clang-nightly-lkftconfig/details/
> > > Fixes: 11b6e701bce9 ("ipmr: add debug check for mr table cleanup")
> > > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > > ---
> > >  net/ipv4/ipmr.c  | 2 +-
> > >  net/ipv6/ip6mr.c | 2 +-
> > >  2 files changed, 2 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
> > > index 383ea8b91cc7..c5b8ec5c0a8c 100644
> > > --- a/net/ipv4/ipmr.c
> > > +++ b/net/ipv4/ipmr.c
> > > @@ -437,7 +437,7 @@ static void ipmr_free_table(struct mr_table *mrt)
> > >  {
> > >       struct net *net = read_pnet(&mrt->net);
> > >
> > > -     DEBUG_NET_WARN_ON_ONCE(!ipmr_can_free_table(net));
> > > +     WARN_ON_ONCE(!ipmr_can_free_table(net));
> > >
> > >       timer_shutdown_sync(&mrt->ipmr_expire_timer);
> > >       mroute_clean_tables(mrt, MRT_FLUSH_VIFS | MRT_FLUSH_VIFS_STATIC |
> > > diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
> > > index 4147890fe98f..7f1902ac3586 100644
> > > --- a/net/ipv6/ip6mr.c
> > > +++ b/net/ipv6/ip6mr.c
> > > @@ -416,7 +416,7 @@ static void ip6mr_free_table(struct mr_table *mrt)
> > >  {
> > >       struct net *net = read_pnet(&mrt->net);
> > >
> > > -     DEBUG_NET_WARN_ON_ONCE(!ip6mr_can_free_table(net));
> > > +     WARN_ON_ONCE(!ip6mr_can_free_table(net));
> > >
> > >       timer_shutdown_sync(&mrt->ipmr_expire_timer);
> > >       mroute_clean_tables(mrt, MRT6_FLUSH_MIFS | MRT6_FLUSH_MIFS_STATIC |
> > > --
> > > 2.45.2
> > >
> >
> > Hi Paolo Abeni,
> >
> > Greetings!
> >
> > I used Syzkaller and found that there is WARNING in ip6mr_free_table in linux v6.13-rc1.
> >
> > After bisection and the first bad commit is:
> > "
> > f6d7695b5ae22092fa2cc42529bb7462f7e0c4ad ipmr: fix build with clang and DEBUG_NET disabled
> > "
> >
> > Please help take a look if the WARNING is triggerd expectedly. I hope following records can be insightful for you.
> >
> 
> Hi there
> 
> Probably fixed already in net tree with :
> 
> 50b94204446e1215af081fd713d7d566d9258e35 ipmr: tune the
> ipmr_can_free_table() checks.
> 
> Thank you
>

Thanks for the info. I have tried net-next latest main branch
1daa6591ab7d (HEAD -> main, origin/main, origin/HEAD) Merge branch
'net_sched-sch_sfq-reject-limit-of-1'.

The WARNING in ip6mr_free_table is fixed. However, the WARNING in
ipmr_rules_exit can still be observed.

[   47.037578] ------------[ cut here ]------------
[   47.038326] WARNING: CPU: 0 PID: 840 at net/ipv4/ipmr.c:440 ipmr_rules_exit+0x14b/0x1d0
[   47.039574] Modules linked in:
[   47.040005] CPU: 0 UID: 0 PID: 840 Comm: repro Not tainted 6.13.0-rc1net-tree+ #1
[   47.040959] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
[   47.042538] RIP: 0010:ipmr_rules_exit+0x14b/0x1d0
[   47.043182] Code: df 48 c1 ea 03 80 3c 02 00 75 7b 48 c7 83 08 08 00 00 00 00 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc 6
[   47.045522] RSP: 0000:ffff888030057bc0 EFLAGS: 00010293
[   47.046207] RAX: 0000000000000000 RBX: ffff888013fbb880 RCX: ffffffff853c08db
[   47.047216] RDX: ffff88803016abc0 RSI: ffffffff853c094b RDI: 0000000000000005
[   47.048140] RBP: ffff888030057be8 R08: 0000000000000000 R09: ffffed10027f7738
[   47.049064] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888030722000
[   47.049985] R13: 0000000000000001 R14: ffff888013fbc088 R15: ffff888013fbb880
[   47.050940] FS:  00007facb93cd640(0000) GS:ffff88806c400000(0000) knlGS:0000000000000000
[   47.051979] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   47.052729] CR2: 00007f897b683e80 CR3: 000000001439a005 CR4: 0000000000770ef0
[   47.053652] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   47.054594] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   47.055516] PKRU: 55555554
[   47.055883] Call Trace:
[   47.056217]  <TASK>
[   47.056533]  ? show_regs+0x6d/0x80
[   47.057020]  ? __warn+0xf3/0x390
[   47.057485]  ? report_bug+0x25e/0x4b0
[   47.058006]  ? ipmr_rules_exit+0x14b/0x1d0
[   47.058600]  ? report_bug+0x2cb/0x4b0
[   47.059133]  ? ipmr_rules_exit+0x14b/0x1d0
[   47.059711]  ? ipmr_rules_exit+0x14c/0x1d0
[   47.060291]  ? handle_bug+0xf1/0x190
[   47.060788]  ? exc_invalid_op+0x3c/0x80
[   47.061310]  ? asm_exc_invalid_op+0x1f/0x30
[   47.061900]  ? ipmr_rules_exit+0xdb/0x1d0
[   47.062508]  ? ipmr_rules_exit+0x14b/0x1d0
[   47.063080]  ? ipmr_rules_exit+0x14b/0x1d0
[   47.063668]  ipmr_net_exit_batch+0x5d/0xb0
[   47.064232]  ? __pfx_ipmr_net_exit_batch+0x10/0x10
[   47.064888]  ? __pfx_ipmr_net_exit+0x10/0x10
[   47.065479]  ops_exit_list+0x132/0x190
[   47.066005]  setup_net+0x502/0x840
[   47.066521]  ? __pfx_setup_net+0x10/0x10
[   47.067065]  ? __pfx_down_read_killable+0x10/0x10
[   47.067715]  ? __mutex_init+0xfd/0x140
[   47.068271]  copy_net_ns+0x2bb/0x6e0
[   47.068802]  create_new_namespaces+0x403/0xb40
[   47.069452]  unshare_nsproxy_namespaces+0xca/0x200
[   47.070090]  ksys_unshare+0x482/0xae0
[   47.070622]  ? __pfx_ksys_unshare+0x10/0x10
[   47.071197]  ? __audit_syscall_entry+0x39c/0x500
[   47.071840]  __x64_sys_unshare+0x3a/0x50
[   47.072376]  x64_sys_call+0xd3e/0x2140
[   47.072886]  do_syscall_64+0x6d/0x140
[   47.073383]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   47.074053] RIP: 0033:0x7facb903ee5d
[   47.074574] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
[   47.076927] RSP: 002b:00007facb93ccca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
[   47.077913] RAX: ffffffffffffffda RBX: 00007facb93cd640 RCX: 00007facb903ee5d
[   47.078856] RDX: 00007facb903ee5d RSI: 0000000000000000 RDI: 0000000064040280
[   47.079781] RBP: 00007facb93ccd60 R08: 0000000100000001 R09: 0000000000000000
[   47.080702] R10: 0000000100000001 R11: 0000000000000297 R12: 00007facb93cd640
[   47.081622] R13: 0000000000000006 R14: 00007facb909f560 R15: 0000000000000000
[   47.082618]  </TASK>
[   47.082934] irq event stamp: 56841
[   47.083403] hardirqs last  enabled at (56849): [<ffffffff814606d5>] __up_console_sem+0x95/0xb0
[   47.084546] hardirqs last disabled at (56856): [<ffffffff814606ba>] __up_console_sem+0x7a/0xb0
[   47.085688] softirqs last  enabled at (56588): [<ffffffff8128c01e>] __irq_exit_rcu+0x10e/0x170
[   47.086857] softirqs last disabled at (56571): [<ffffffff8128c01e>] __irq_exit_rcu+0x10e/0x170
[   47.087967] ---[ end trace 0000000000000000 ]---

Is this expected?

> > All detailed into can be found at:
> > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table
> > Syzkaller repro code:
> > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.c
> > Syzkaller repro syscall steps:
> > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.prog
> > Syzkaller report:
> > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.report
> > Kconfig(make olddefconfig):
> > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/kconfig_origin
> > Bisect info:
> > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/bisect_info.log
> > bzImage:
> > https://github.com/laifryiee/syzkaller_logs/raw/refs/heads/main/241204_202439_ip6mr_free_table/bzImage_2b2d5f55fa44b37555edcdbbaf3acdb821e456a5
> > Issue dmesg:
> > https://github.com/laifryiee/syzkaller_logs/blob/main/241204_202439_ip6mr_free_table/2b2d5f55fa44b37555edcdbbaf3acdb821e456a5_dmesg.log
> >
> > "
> > [  106.095480] ------------[ cut here ]------------
> > [  106.096382] WARNING: CPU: 1 PID: 682 at net/ipv6/ip6mr.c:419 ip6mr_free_table+0xc6/0x130
> > [  106.098015] Modules linked in:
> > [  106.098454] CPU: 1 UID: 0 PID: 682 Comm: repro Not tainted 6.12.0+ #1
> > [  106.099311] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
> > [  106.100953] RIP: 0010:ip6mr_free_table+0xc6/0x130
> > [  106.101605] Code: 40 0d 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 75 5e 48 83 bb 40 0d 00 00 f
> > [  106.104018] RSP: 0018:ffff88801743fb88 EFLAGS: 00010293
> > [  106.104940] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff8558ee4f
> > [  106.105887] RDX: ffff888021640000 RSI: ffffffff8558ee86 RDI: ffff88802d00a980
> > [  106.106817] RBP: ffff88801743fba0 R08: 0000000000000000 R09: ffffed1005a013b0
> > [  106.107758] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888010796000
> > [  106.108813] R13: 0000000000000001 R14: dead000000000100 R15: dffffc0000000000
> > [  106.109755] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
> > [  106.110877] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [  106.111660] CR2: 00007f8030792008 CR3: 00000000215c2006 CR4: 0000000000770ef0
> > [  106.112614] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [  106.113549] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > [  106.114482] PKRU: 55555554
> > [  106.114856] Call Trace:
> > [  106.115201]  <TASK>
> > [  106.115502]  ? show_regs+0x6d/0x80
> > [  106.115996]  ? __warn+0xf3/0x380
> > [  106.116499]  ? report_bug+0x25e/0x4b0
> > [  106.117014]  ? ip6mr_free_table+0xc6/0x130
> > [  106.117652]  ? report_bug+0x2cb/0x4b0
> > [  106.118211]  ? ip6mr_free_table+0xc6/0x130
> > [  106.118784]  ? ip6mr_free_table+0xc7/0x130
> > [  106.119362]  ? handle_bug+0xf1/0x190
> > [  106.119890]  ? exc_invalid_op+0x3c/0x80
> > [  106.120461]  ? asm_exc_invalid_op+0x1f/0x30
> > [  106.121089]  ? ip6mr_free_table+0x8f/0x130
> > [  106.121706]  ? ip6mr_free_table+0xc6/0x130
> > [  106.122336]  ? ip6mr_free_table+0xc6/0x130
> > [  106.122919]  ? ip6mr_free_table+0xc6/0x130
> > [  106.123499]  ip6mr_rules_exit+0x12a/0x260
> > [  106.124076]  ip6mr_net_exit_batch+0x5d/0xb0
> > [  106.124677]  ? __pfx_ip6mr_net_exit_batch+0x10/0x10
> > [  106.125382]  ? __pfx_ip6mr_net_exit+0x10/0x10
> > [  106.126033]  ops_exit_list+0x132/0x190
> > [  106.126619]  setup_net+0x502/0x840
> > [  106.127143]  ? __pfx_setup_net+0x10/0x10
> > [  106.127725]  ? __pfx_down_read_killable+0x10/0x10
> > [  106.128444]  ? __mutex_init+0xfd/0x140
> > [  106.129024]  copy_net_ns+0x2bb/0x6e0
> > [  106.129537]  create_new_namespaces+0x403/0xb40
> > [  106.130171]  unshare_nsproxy_namespaces+0xca/0x200
> > [  106.130858]  ksys_unshare+0x482/0xae0
> > [  106.131439]  ? __pfx_ksys_unshare+0x10/0x10
> > [  106.132113]  ? __audit_syscall_entry+0x39c/0x500
> > [  106.132827]  __x64_sys_unshare+0x3a/0x50
> > [  106.133432]  x64_sys_call+0xd3e/0x2140
> > [  106.134007]  do_syscall_64+0x6d/0x140
> > [  106.134574]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> > [  106.135333] RIP: 0033:0x7ff3dc83ee5d
> > [  106.135873] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
> > [  106.138484] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
> > [  106.139569] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
> > [  106.140603] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
> > [  106.141608] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
> > [  106.142538] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
> > [  106.143474] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
> > [  106.144466]  </TASK>
> > [  106.144784] irq event stamp: 50463
> > [  106.145252] hardirqs last  enabled at (50471): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
> > [  106.146386] hardirqs last disabled at (50478): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
> > [  106.147514] softirqs last  enabled at (50120): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > [  106.148727] softirqs last disabled at (50107): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > [  106.149948] ---[ end trace 0000000000000000 ]---
> > [  106.158499] ------------[ cut here ]------------
> > [  106.159167] WARNING: CPU: 1 PID: 682 at net/ipv4/ipmr.c:440 ipmr_rules_exit+0x14b/0x1d0
> > [  106.160449] Modules linked in:
> > [  106.160933] CPU: 1 UID: 0 PID: 682 Comm: repro Tainted: G        W          6.12.0+ #1
> > [  106.162053] Tainted: [W]=WARN
> > [  106.162492] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
> > [  106.164206] RIP: 0010:ipmr_rules_exit+0x14b/0x1d0
> > [  106.164915] Code: df 48 c1 ea 03 80 3c 02 00 75 7b 48 c7 83 08 08 00 00 00 00 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc 6
> > [  106.167497] RSP: 0018:ffff88801743fbc0 EFLAGS: 00010293
> > [  106.168432] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff85369a4b
> > [  106.169436] RDX: ffff888021640000 RSI: ffffffff85369abb RDI: 0000000000000005
> > [  106.170449] RBP: ffff88801743fbe8 R08: 0000000000000000 R09: ffffed1005a013b0
> > [  106.171462] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888021756000
> > [  106.172592] R13: 0000000000000001 R14: ffff88802d00a448 R15: ffff88802d009c40
> > [  106.173605] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
> > [  106.174742] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > [  106.175568] CR2: 00007f0c14691000 CR3: 00000000215c2006 CR4: 0000000000770ef0
> > [  106.176685] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > [  106.177702] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > [  106.178717] PKRU: 55555554
> > [  106.179131] Call Trace:
> > [  106.179469]  <TASK>
> > [  106.179770]  ? show_regs+0x6d/0x80
> > [  106.180294]  ? __warn+0xf3/0x380
> > [  106.180761]  ? report_bug+0x25e/0x4b0
> > [  106.181302]  ? ipmr_rules_exit+0x14b/0x1d0
> > [  106.181925]  ? report_bug+0x2cb/0x4b0
> > [  106.182491]  ? ipmr_rules_exit+0x14b/0x1d0
> > [  106.183111]  ? ipmr_rules_exit+0x14c/0x1d0
> > [  106.183726]  ? handle_bug+0xf1/0x190
> > [  106.184315]  ? exc_invalid_op+0x3c/0x80
> > [  106.184915]  ? asm_exc_invalid_op+0x1f/0x30
> > [  106.185567]  ? ipmr_rules_exit+0xdb/0x1d0
> > [  106.186177]  ? ipmr_rules_exit+0x14b/0x1d0
> > [  106.186793]  ? ipmr_rules_exit+0x14b/0x1d0
> > [  106.187429]  ipmr_net_exit_batch+0x5d/0xb0
> > [  106.188045]  ? __pfx_ipmr_net_exit_batch+0x10/0x10
> > [  106.188778]  ? __pfx_ipmr_net_exit+0x10/0x10
> > [  106.189423]  ops_exit_list+0x132/0x190
> > [  106.190020]  setup_net+0x502/0x840
> > [  106.190549]  ? __pfx_setup_net+0x10/0x10
> > [  106.191142]  ? __pfx_down_read_killable+0x10/0x10
> > [  106.191845]  ? __mutex_init+0xfd/0x140
> > [  106.192461]  copy_net_ns+0x2bb/0x6e0
> > [  106.193024]  create_new_namespaces+0x403/0xb40
> > [  106.193706]  unshare_nsproxy_namespaces+0xca/0x200
> > [  106.194427]  ksys_unshare+0x482/0xae0
> > [  106.195001]  ? __pfx_ksys_unshare+0x10/0x10
> > [  106.195648]  ? __audit_syscall_entry+0x39c/0x500
> > [  106.196384]  __x64_sys_unshare+0x3a/0x50
> > [  106.196988]  x64_sys_call+0xd3e/0x2140
> > [  106.197555]  do_syscall_64+0x6d/0x140
> > [  106.198120]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> > [  106.198870] RIP: 0033:0x7ff3dc83ee5d
> > [  106.199409] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
> > [  106.202011] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
> > [  106.203093] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
> > [  106.204126] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
> > [  106.205144] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
> > [  106.206160] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
> > [  106.207175] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
> > [  106.208253]  </TASK>
> > [  106.208592] irq event stamp: 51871
> > [  106.209097] hardirqs last  enabled at (51879): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
> > [  106.210317] hardirqs last disabled at (51886): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
> > [  106.211536] softirqs last  enabled at (51802): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > [  106.212814] softirqs last disabled at (51903): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > [  106.213954] ---[ end trace 0000000000000000 ]---
> > "
> >
> > Regards,
> > Yi Lai
> >
> > ---
> >
> > If you don't need the following environment to reproduce the problem or if you
> > already have one reproduced environment, please ignore the following information.
> >
> > How to reproduce:
> > git clone https://gitlab.com/xupengfe/repro_vm_env.git
> > cd repro_vm_env
> > tar -xvf repro_vm_env.tar.gz
> > cd repro_vm_env; ./start3.sh  // it needs qemu-system-x86_64 and I used v7.1.0
> >   // start3.sh will load bzImage_2241ab53cbb5cdb08a6b2d4688feb13971058f65 v6.2-rc5 kernel
> >   // You could change the bzImage_xxx as you want
> >   // Maybe you need to remove line "-drive if=pflash,format=raw,readonly=on,file=./OVMF_CODE.fd \" for different qemu version
> > You could use below command to log in, there is no password for root.
> > ssh -p 10023 root@localhost
> >
> > After login vm(virtual machine) successfully, you could transfer reproduced
> > binary to the vm by below way, and reproduce the problem in vm:
> > gcc -pthread -o repro repro.c
> > scp -P 10023 repro root@localhost:/root/
> >
> > Get the bzImage for target kernel:
> > Please use target kconfig and copy it to kernel_src/.config
> > make olddefconfig
> > make -jx bzImage           //x should equal or less than cpu num your pc has
> >
> > Fill the bzImage file into above start3.sh to load the target kernel in vm.
> >
> >
> > Tips:
> > If you already have qemu-system-x86_64, please ignore below info.
> > If you want to install qemu v7.1.0 version:
> > git clone https://github.com/qemu/qemu.git
> > cd qemu
> > git checkout -f v7.1.0
> > mkdir build
> > cd build
> > yum install -y ninja-build.x86_64
> > yum -y install libslirp-devel.x86_64
> > ../configure --target-list=x86_64-softmmu --enable-kvm --enable-vnc --enable-gtk --enable-sdl --enable-usb-redir --enable-slirp
> > make
> > make install
Lai, Yi Jan. 8, 2025, 12:20 a.m. UTC | #6
On Fri, Dec 06, 2024 at 01:58:39PM +0800, Lai, Yi wrote:
> On Thu, Dec 05, 2024 at 07:47:03AM +0100, Eric Dumazet wrote:
> > On Thu, Dec 5, 2024 at 7:22 AM Lai, Yi <yi1.lai@linux.intel.com> wrote:
> > >
> > > On Thu, Nov 28, 2024 at 05:18:04PM +0100, Paolo Abeni wrote:
> > > > Sasha reported a build issue in ipmr::
> > > >
> > > > net/ipv4/ipmr.c:320:13: error: function 'ipmr_can_free_table' is not \
> > > >       needed and will not be emitted \
> > > >       [-Werror,-Wunneeded-internal-declaration]
> > > >    320 | static bool ipmr_can_free_table(struct net *net)
> > > >
> > > > Apparently clang is too smart with BUILD_BUG_ON_INVALID(), let's
> > > > fallback to a plain WARN_ON_ONCE().
> > > >
> > > > Reported-by: Sasha Levin <sashal@kernel.org>
> > > > Closes: https://qa-reports.linaro.org/lkft/sashal-linus-next/build/v6.11-25635-g6813e2326f1e/testrun/26111580/suite/build/test/clang-nightly-lkftconfig/details/
> > > > Fixes: 11b6e701bce9 ("ipmr: add debug check for mr table cleanup")
> > > > Signed-off-by: Paolo Abeni <pabeni@redhat.com>
> > > > ---
> > > >  net/ipv4/ipmr.c  | 2 +-
> > > >  net/ipv6/ip6mr.c | 2 +-
> > > >  2 files changed, 2 insertions(+), 2 deletions(-)
> > > >
> > > > diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
> > > > index 383ea8b91cc7..c5b8ec5c0a8c 100644
> > > > --- a/net/ipv4/ipmr.c
> > > > +++ b/net/ipv4/ipmr.c
> > > > @@ -437,7 +437,7 @@ static void ipmr_free_table(struct mr_table *mrt)
> > > >  {
> > > >       struct net *net = read_pnet(&mrt->net);
> > > >
> > > > -     DEBUG_NET_WARN_ON_ONCE(!ipmr_can_free_table(net));
> > > > +     WARN_ON_ONCE(!ipmr_can_free_table(net));
> > > >
> > > >       timer_shutdown_sync(&mrt->ipmr_expire_timer);
> > > >       mroute_clean_tables(mrt, MRT_FLUSH_VIFS | MRT_FLUSH_VIFS_STATIC |
> > > > diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
> > > > index 4147890fe98f..7f1902ac3586 100644
> > > > --- a/net/ipv6/ip6mr.c
> > > > +++ b/net/ipv6/ip6mr.c
> > > > @@ -416,7 +416,7 @@ static void ip6mr_free_table(struct mr_table *mrt)
> > > >  {
> > > >       struct net *net = read_pnet(&mrt->net);
> > > >
> > > > -     DEBUG_NET_WARN_ON_ONCE(!ip6mr_can_free_table(net));
> > > > +     WARN_ON_ONCE(!ip6mr_can_free_table(net));
> > > >
> > > >       timer_shutdown_sync(&mrt->ipmr_expire_timer);
> > > >       mroute_clean_tables(mrt, MRT6_FLUSH_MIFS | MRT6_FLUSH_MIFS_STATIC |
> > > > --
> > > > 2.45.2
> > > >
> > >
> > > Hi Paolo Abeni,
> > >
> > > Greetings!
> > >
> > > I used Syzkaller and found that there is WARNING in ip6mr_free_table in linux v6.13-rc1.
> > >
> > > After bisection and the first bad commit is:
> > > "
> > > f6d7695b5ae22092fa2cc42529bb7462f7e0c4ad ipmr: fix build with clang and DEBUG_NET disabled
> > > "
> > >
> > > Please help take a look if the WARNING is triggerd expectedly. I hope following records can be insightful for you.
> > >
> > 
> > Hi there
> > 
> > Probably fixed already in net tree with :
> > 
> > 50b94204446e1215af081fd713d7d566d9258e35 ipmr: tune the
> > ipmr_can_free_table() checks.
> > 
> > Thank you
> >
> 
> Thanks for the info. I have tried net-next latest main branch
> 1daa6591ab7d (HEAD -> main, origin/main, origin/HEAD) Merge branch
> 'net_sched-sch_sfq-reject-limit-of-1'.
> 
> The WARNING in ip6mr_free_table is fixed. However, the WARNING in
> ipmr_rules_exit can still be observed.
> 
> [   47.037578] ------------[ cut here ]------------
> [   47.038326] WARNING: CPU: 0 PID: 840 at net/ipv4/ipmr.c:440 ipmr_rules_exit+0x14b/0x1d0
> [   47.039574] Modules linked in:
> [   47.040005] CPU: 0 UID: 0 PID: 840 Comm: repro Not tainted 6.13.0-rc1net-tree+ #1
> [   47.040959] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
> [   47.042538] RIP: 0010:ipmr_rules_exit+0x14b/0x1d0
> [   47.043182] Code: df 48 c1 ea 03 80 3c 02 00 75 7b 48 c7 83 08 08 00 00 00 00 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc 6
> [   47.045522] RSP: 0000:ffff888030057bc0 EFLAGS: 00010293
> [   47.046207] RAX: 0000000000000000 RBX: ffff888013fbb880 RCX: ffffffff853c08db
> [   47.047216] RDX: ffff88803016abc0 RSI: ffffffff853c094b RDI: 0000000000000005
> [   47.048140] RBP: ffff888030057be8 R08: 0000000000000000 R09: ffffed10027f7738
> [   47.049064] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888030722000
> [   47.049985] R13: 0000000000000001 R14: ffff888013fbc088 R15: ffff888013fbb880
> [   47.050940] FS:  00007facb93cd640(0000) GS:ffff88806c400000(0000) knlGS:0000000000000000
> [   47.051979] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> [   47.052729] CR2: 00007f897b683e80 CR3: 000000001439a005 CR4: 0000000000770ef0
> [   47.053652] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> [   47.054594] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> [   47.055516] PKRU: 55555554
> [   47.055883] Call Trace:
> [   47.056217]  <TASK>
> [   47.056533]  ? show_regs+0x6d/0x80
> [   47.057020]  ? __warn+0xf3/0x390
> [   47.057485]  ? report_bug+0x25e/0x4b0
> [   47.058006]  ? ipmr_rules_exit+0x14b/0x1d0
> [   47.058600]  ? report_bug+0x2cb/0x4b0
> [   47.059133]  ? ipmr_rules_exit+0x14b/0x1d0
> [   47.059711]  ? ipmr_rules_exit+0x14c/0x1d0
> [   47.060291]  ? handle_bug+0xf1/0x190
> [   47.060788]  ? exc_invalid_op+0x3c/0x80
> [   47.061310]  ? asm_exc_invalid_op+0x1f/0x30
> [   47.061900]  ? ipmr_rules_exit+0xdb/0x1d0
> [   47.062508]  ? ipmr_rules_exit+0x14b/0x1d0
> [   47.063080]  ? ipmr_rules_exit+0x14b/0x1d0
> [   47.063668]  ipmr_net_exit_batch+0x5d/0xb0
> [   47.064232]  ? __pfx_ipmr_net_exit_batch+0x10/0x10
> [   47.064888]  ? __pfx_ipmr_net_exit+0x10/0x10
> [   47.065479]  ops_exit_list+0x132/0x190
> [   47.066005]  setup_net+0x502/0x840
> [   47.066521]  ? __pfx_setup_net+0x10/0x10
> [   47.067065]  ? __pfx_down_read_killable+0x10/0x10
> [   47.067715]  ? __mutex_init+0xfd/0x140
> [   47.068271]  copy_net_ns+0x2bb/0x6e0
> [   47.068802]  create_new_namespaces+0x403/0xb40
> [   47.069452]  unshare_nsproxy_namespaces+0xca/0x200
> [   47.070090]  ksys_unshare+0x482/0xae0
> [   47.070622]  ? __pfx_ksys_unshare+0x10/0x10
> [   47.071197]  ? __audit_syscall_entry+0x39c/0x500
> [   47.071840]  __x64_sys_unshare+0x3a/0x50
> [   47.072376]  x64_sys_call+0xd3e/0x2140
> [   47.072886]  do_syscall_64+0x6d/0x140
> [   47.073383]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> [   47.074053] RIP: 0033:0x7facb903ee5d
> [   47.074574] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
> [   47.076927] RSP: 002b:00007facb93ccca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
> [   47.077913] RAX: ffffffffffffffda RBX: 00007facb93cd640 RCX: 00007facb903ee5d
> [   47.078856] RDX: 00007facb903ee5d RSI: 0000000000000000 RDI: 0000000064040280
> [   47.079781] RBP: 00007facb93ccd60 R08: 0000000100000001 R09: 0000000000000000
> [   47.080702] R10: 0000000100000001 R11: 0000000000000297 R12: 00007facb93cd640
> [   47.081622] R13: 0000000000000006 R14: 00007facb909f560 R15: 0000000000000000
> [   47.082618]  </TASK>
> [   47.082934] irq event stamp: 56841
> [   47.083403] hardirqs last  enabled at (56849): [<ffffffff814606d5>] __up_console_sem+0x95/0xb0
> [   47.084546] hardirqs last disabled at (56856): [<ffffffff814606ba>] __up_console_sem+0x7a/0xb0
> [   47.085688] softirqs last  enabled at (56588): [<ffffffff8128c01e>] __irq_exit_rcu+0x10e/0x170
> [   47.086857] softirqs last disabled at (56571): [<ffffffff8128c01e>] __irq_exit_rcu+0x10e/0x170
> [   47.087967] ---[ end trace 0000000000000000 ]---
> 
> Is this expected?
> 
> > > All detailed into can be found at:
> > > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table
> > > Syzkaller repro code:
> > > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.c
> > > Syzkaller repro syscall steps:
> > > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.prog
> > > Syzkaller report:
> > > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/repro.report
> > > Kconfig(make olddefconfig):
> > > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/kconfig_origin
> > > Bisect info:
> > > https://github.com/laifryiee/syzkaller_logs/tree/main/241204_202439_ip6mr_free_table/bisect_info.log
> > > bzImage:
> > > https://github.com/laifryiee/syzkaller_logs/raw/refs/heads/main/241204_202439_ip6mr_free_table/bzImage_2b2d5f55fa44b37555edcdbbaf3acdb821e456a5
> > > Issue dmesg:
> > > https://github.com/laifryiee/syzkaller_logs/blob/main/241204_202439_ip6mr_free_table/2b2d5f55fa44b37555edcdbbaf3acdb821e456a5_dmesg.log
> > >
> > > "
> > > [  106.095480] ------------[ cut here ]------------
> > > [  106.096382] WARNING: CPU: 1 PID: 682 at net/ipv6/ip6mr.c:419 ip6mr_free_table+0xc6/0x130
> > > [  106.098015] Modules linked in:
> > > [  106.098454] CPU: 1 UID: 0 PID: 682 Comm: repro Not tainted 6.12.0+ #1
> > > [  106.099311] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
> > > [  106.100953] RIP: 0010:ip6mr_free_table+0xc6/0x130
> > > [  106.101605] Code: 40 0d 00 00 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 80 3c 02 00 75 5e 48 83 bb 40 0d 00 00 f
> > > [  106.104018] RSP: 0018:ffff88801743fb88 EFLAGS: 00010293
> > > [  106.104940] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff8558ee4f
> > > [  106.105887] RDX: ffff888021640000 RSI: ffffffff8558ee86 RDI: ffff88802d00a980
> > > [  106.106817] RBP: ffff88801743fba0 R08: 0000000000000000 R09: ffffed1005a013b0
> > > [  106.107758] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888010796000
> > > [  106.108813] R13: 0000000000000001 R14: dead000000000100 R15: dffffc0000000000
> > > [  106.109755] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
> > > [  106.110877] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > [  106.111660] CR2: 00007f8030792008 CR3: 00000000215c2006 CR4: 0000000000770ef0
> > > [  106.112614] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > > [  106.113549] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > > [  106.114482] PKRU: 55555554
> > > [  106.114856] Call Trace:
> > > [  106.115201]  <TASK>
> > > [  106.115502]  ? show_regs+0x6d/0x80
> > > [  106.115996]  ? __warn+0xf3/0x380
> > > [  106.116499]  ? report_bug+0x25e/0x4b0
> > > [  106.117014]  ? ip6mr_free_table+0xc6/0x130
> > > [  106.117652]  ? report_bug+0x2cb/0x4b0
> > > [  106.118211]  ? ip6mr_free_table+0xc6/0x130
> > > [  106.118784]  ? ip6mr_free_table+0xc7/0x130
> > > [  106.119362]  ? handle_bug+0xf1/0x190
> > > [  106.119890]  ? exc_invalid_op+0x3c/0x80
> > > [  106.120461]  ? asm_exc_invalid_op+0x1f/0x30
> > > [  106.121089]  ? ip6mr_free_table+0x8f/0x130
> > > [  106.121706]  ? ip6mr_free_table+0xc6/0x130
> > > [  106.122336]  ? ip6mr_free_table+0xc6/0x130
> > > [  106.122919]  ? ip6mr_free_table+0xc6/0x130
> > > [  106.123499]  ip6mr_rules_exit+0x12a/0x260
> > > [  106.124076]  ip6mr_net_exit_batch+0x5d/0xb0
> > > [  106.124677]  ? __pfx_ip6mr_net_exit_batch+0x10/0x10
> > > [  106.125382]  ? __pfx_ip6mr_net_exit+0x10/0x10
> > > [  106.126033]  ops_exit_list+0x132/0x190
> > > [  106.126619]  setup_net+0x502/0x840
> > > [  106.127143]  ? __pfx_setup_net+0x10/0x10
> > > [  106.127725]  ? __pfx_down_read_killable+0x10/0x10
> > > [  106.128444]  ? __mutex_init+0xfd/0x140
> > > [  106.129024]  copy_net_ns+0x2bb/0x6e0
> > > [  106.129537]  create_new_namespaces+0x403/0xb40
> > > [  106.130171]  unshare_nsproxy_namespaces+0xca/0x200
> > > [  106.130858]  ksys_unshare+0x482/0xae0
> > > [  106.131439]  ? __pfx_ksys_unshare+0x10/0x10
> > > [  106.132113]  ? __audit_syscall_entry+0x39c/0x500
> > > [  106.132827]  __x64_sys_unshare+0x3a/0x50
> > > [  106.133432]  x64_sys_call+0xd3e/0x2140
> > > [  106.134007]  do_syscall_64+0x6d/0x140
> > > [  106.134574]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> > > [  106.135333] RIP: 0033:0x7ff3dc83ee5d
> > > [  106.135873] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
> > > [  106.138484] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
> > > [  106.139569] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
> > > [  106.140603] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
> > > [  106.141608] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
> > > [  106.142538] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
> > > [  106.143474] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
> > > [  106.144466]  </TASK>
> > > [  106.144784] irq event stamp: 50463
> > > [  106.145252] hardirqs last  enabled at (50471): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
> > > [  106.146386] hardirqs last disabled at (50478): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
> > > [  106.147514] softirqs last  enabled at (50120): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > > [  106.148727] softirqs last disabled at (50107): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > > [  106.149948] ---[ end trace 0000000000000000 ]---
> > > [  106.158499] ------------[ cut here ]------------
> > > [  106.159167] WARNING: CPU: 1 PID: 682 at net/ipv4/ipmr.c:440 ipmr_rules_exit+0x14b/0x1d0
> > > [  106.160449] Modules linked in:
> > > [  106.160933] CPU: 1 UID: 0 PID: 682 Comm: repro Tainted: G        W          6.12.0+ #1
> > > [  106.162053] Tainted: [W]=WARN
> > > [  106.162492] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/4
> > > [  106.164206] RIP: 0010:ipmr_rules_exit+0x14b/0x1d0
> > > [  106.164915] Code: df 48 c1 ea 03 80 3c 02 00 75 7b 48 c7 83 08 08 00 00 00 00 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc 6
> > > [  106.167497] RSP: 0018:ffff88801743fbc0 EFLAGS: 00010293
> > > [  106.168432] RAX: 0000000000000000 RBX: ffff88802d009c40 RCX: ffffffff85369a4b
> > > [  106.169436] RDX: ffff888021640000 RSI: ffffffff85369abb RDI: 0000000000000005
> > > [  106.170449] RBP: ffff88801743fbe8 R08: 0000000000000000 R09: ffffed1005a013b0
> > > [  106.171462] R10: 0000000000000001 R11: 0000000000000001 R12: ffff888021756000
> > > [  106.172592] R13: 0000000000000001 R14: ffff88802d00a448 R15: ffff88802d009c40
> > > [  106.173605] FS:  00007ff3dcab1640(0000) GS:ffff88806c500000(0000) knlGS:0000000000000000
> > > [  106.174742] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > [  106.175568] CR2: 00007f0c14691000 CR3: 00000000215c2006 CR4: 0000000000770ef0
> > > [  106.176685] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
> > > [  106.177702] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
> > > [  106.178717] PKRU: 55555554
> > > [  106.179131] Call Trace:
> > > [  106.179469]  <TASK>
> > > [  106.179770]  ? show_regs+0x6d/0x80
> > > [  106.180294]  ? __warn+0xf3/0x380
> > > [  106.180761]  ? report_bug+0x25e/0x4b0
> > > [  106.181302]  ? ipmr_rules_exit+0x14b/0x1d0
> > > [  106.181925]  ? report_bug+0x2cb/0x4b0
> > > [  106.182491]  ? ipmr_rules_exit+0x14b/0x1d0
> > > [  106.183111]  ? ipmr_rules_exit+0x14c/0x1d0
> > > [  106.183726]  ? handle_bug+0xf1/0x190
> > > [  106.184315]  ? exc_invalid_op+0x3c/0x80
> > > [  106.184915]  ? asm_exc_invalid_op+0x1f/0x30
> > > [  106.185567]  ? ipmr_rules_exit+0xdb/0x1d0
> > > [  106.186177]  ? ipmr_rules_exit+0x14b/0x1d0
> > > [  106.186793]  ? ipmr_rules_exit+0x14b/0x1d0
> > > [  106.187429]  ipmr_net_exit_batch+0x5d/0xb0
> > > [  106.188045]  ? __pfx_ipmr_net_exit_batch+0x10/0x10
> > > [  106.188778]  ? __pfx_ipmr_net_exit+0x10/0x10
> > > [  106.189423]  ops_exit_list+0x132/0x190
> > > [  106.190020]  setup_net+0x502/0x840
> > > [  106.190549]  ? __pfx_setup_net+0x10/0x10
> > > [  106.191142]  ? __pfx_down_read_killable+0x10/0x10
> > > [  106.191845]  ? __mutex_init+0xfd/0x140
> > > [  106.192461]  copy_net_ns+0x2bb/0x6e0
> > > [  106.193024]  create_new_namespaces+0x403/0xb40
> > > [  106.193706]  unshare_nsproxy_namespaces+0xca/0x200
> > > [  106.194427]  ksys_unshare+0x482/0xae0
> > > [  106.195001]  ? __pfx_ksys_unshare+0x10/0x10
> > > [  106.195648]  ? __audit_syscall_entry+0x39c/0x500
> > > [  106.196384]  __x64_sys_unshare+0x3a/0x50
> > > [  106.196988]  x64_sys_call+0xd3e/0x2140
> > > [  106.197555]  do_syscall_64+0x6d/0x140
> > > [  106.198120]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
> > > [  106.198870] RIP: 0033:0x7ff3dc83ee5d
> > > [  106.199409] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 8
> > > [  106.202011] RSP: 002b:00007ff3dcab0ca8 EFLAGS: 00000297 ORIG_RAX: 0000000000000110
> > > [  106.203093] RAX: ffffffffffffffda RBX: 00007ff3dcab1640 RCX: 00007ff3dc83ee5d
> > > [  106.204126] RDX: 00007ff3dc83ee5d RSI: 0000000000000000 RDI: 0000000064040280
> > > [  106.205144] RBP: 00007ff3dcab0d60 R08: 0000000100000001 R09: 0000000000000000
> > > [  106.206160] R10: 0000000100000001 R11: 0000000000000297 R12: 00007ff3dcab1640
> > > [  106.207175] R13: 0000000000000006 R14: 00007ff3dc89f560 R15: 0000000000000000
> > > [  106.208253]  </TASK>
> > > [  106.208592] irq event stamp: 51871
> > > [  106.209097] hardirqs last  enabled at (51879): [<ffffffff814615c5>] __up_console_sem+0x95/0xb0
> > > [  106.210317] hardirqs last disabled at (51886): [<ffffffff814615aa>] __up_console_sem+0x7a/0xb0
> > > [  106.211536] softirqs last  enabled at (51802): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > > [  106.212814] softirqs last disabled at (51903): [<ffffffff8128cc8e>] __irq_exit_rcu+0x10e/0x170
> > > [  106.213954] ---[ end trace 0000000000000000 ]---
> > > "
> > >
> > > Regards,
> > > Yi Lai
> > >

Hi,

Using Linux v6.13-rc6, Syzkaller finds that There is WARNING in
ipmr_rules_exit:

[   55.536312] ------------[ cut here ]------------
[   55.536712] WARNING: CPU: 0 PID: 3306 at net/ipv4/ipmr.c:440 ipmr_rules_exit+0x14b/0x1d0
[   55.537266] Modules linked in:
[   55.537496] CPU: 0 UID: 0 PID: 3306 Comm: repro Tainted: G        W          6.13.0-rc6-9d89551994a4 #1
[   55.538321] Tainted: [W]=WARN
[   55.538558] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
[   55.539302] RIP: 0010:ipmr_rules_exit+0x14b/0x1d0
[   55.539632] Code: df 48 c1 ea 03 80 3c 02 00 75 7b 48 c7 83 48 08 00 00 00 00 00 00 5b 41 5c 41 5d 41 5e 41 5f 5d c3 cc cc cc cc e8 45 0b 2c fc <0f> 0b eb 91 e8 3c 0b 2c fc 44 0f b6 25 01 4e 87 02 31 ff 44 89 e6
[   55.540837] RSP: 0018:ffff88802c92fbc0 EFLAGS: 00010293
[   55.541196] RAX: 0000000000000000 RBX: ffff88802c4a0000 RCX: ffffffff853c375b
[   55.541770] RDX: ffff88802b1c8000 RSI: ffffffff853c37cb RDI: 0000000000000005
[   55.542251] RBP: ffff88802c92fbe8 R08: 0000000000000000 R09: ffffed1005894029
[   55.542834] R10: 0000000000000001 R11: 0000000000000001 R12: ffff88801161c000
[   55.543309] R13: 0000000000000001 R14: ffff88802c4a0848 R15: ffff88802c4a0000
[   55.543783] FS:  00007f339818f640(0000) GS:ffff88806c400000(0000) knlGS:0000000000000000
[   55.544320] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[   55.544709] CR2: 00007f33981a3bf0 CR3: 000000002a104002 CR4: 0000000000370ef0
[   55.545389] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[   55.545955] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
[   55.546460] Call Trace:
[   55.546650]  <TASK>
[   55.546807]  ? show_regs+0x6d/0x80
[   55.547059]  ? __warn+0xf3/0x390
[   55.547296]  ? report_bug+0x25e/0x4b0
[   55.547580]  ? ipmr_rules_exit+0x14b/0x1d0
[   55.547868]  ? report_bug+0x2cb/0x4b0
[   55.548135]  ? ipmr_rules_exit+0x14b/0x1d0
[   55.548420]  ? ipmr_rules_exit+0x14c/0x1d0
[   55.548708]  ? handle_bug+0xf1/0x190
[   55.548966]  ? exc_invalid_op+0x3c/0x80
[   55.549239]  ? asm_exc_invalid_op+0x1f/0x30
[   55.549540]  ? ipmr_rules_exit+0xdb/0x1d0
[   55.549941]  ? ipmr_rules_exit+0x14b/0x1d0
[   55.550233]  ? ipmr_rules_exit+0x14b/0x1d0
[   55.550528]  ipmr_net_exit_batch+0x5d/0xb0
[   55.550814]  ? __pfx_ipmr_net_exit_batch+0x10/0x10
[   55.551148]  ? __pfx_ipmr_net_exit+0x10/0x10
[   55.551454]  ops_exit_list+0x132/0x190
[   55.551732]  setup_net+0x502/0x840
[   55.551986]  ? __pfx_setup_net+0x10/0x10
[   55.552270]  ? __pfx_down_read_killable+0x10/0x10
[   55.552607]  ? __mutex_init+0xfd/0x140
[   55.552889]  copy_net_ns+0x2bb/0x6e0
[   55.553160]  create_new_namespaces+0x403/0xb40
[   55.553484]  unshare_nsproxy_namespaces+0xca/0x200
[   55.553891]  ksys_unshare+0x482/0xae0
[   55.554158]  ? __pfx_ksys_unshare+0x10/0x10
[   55.554463]  ? __audit_syscall_entry+0x39c/0x500
[   55.554802]  __x64_sys_unshare+0x3a/0x50
[   55.555081]  x64_sys_call+0xd3e/0x2140
[   55.555348]  do_syscall_64+0x6d/0x140
[   55.555609]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
[   55.555956] RIP: 0033:0x7f3397e3ee5d
[   55.556220] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8b 0d 93 af 1b 00 f7 d8 64 89 01 48
[   55.557419] RSP: 002b:00007f339818ee08 EFLAGS: 00000246 ORIG_RAX: 0000000000000110
[   55.558005] RAX: ffffffffffffffda RBX: 00007f339818f640 RCX: 00007f3397e3ee5d
[   55.558488] RDX: 00007f3397e9f6d6 RSI: 0000000000000000 RDI: 0000000040000200
[   55.558959] RBP: 00007f339818ee20 R08: 00007ffdc43c8d5f R09: 0000000000000000
[   55.559428] R10: 0000000000000000 R11: 0000000000000246 R12: 00007f339818f640
[   55.559902] R13: 0000000000000016 R14: 00007f3397e9f560 R15: 0000000000000000
[   55.560397]  </TASK>
[   55.560558] irq event stamp: 4505
[   55.560791] hardirqs last  enabled at (4513): [<ffffffff81461e55>] __up_console_sem+0x95/0xb0
[   55.561357] hardirqs last disabled at (4520): [<ffffffff81461e3a>] __up_console_sem+0x7a/0xb0
[   55.561986] softirqs last  enabled at (4590): [<ffffffff8128c08e>] __irq_exit_rcu+0x10e/0x170
[   55.562612] softirqs last disabled at (4529): [<ffffffff8128c08e>] __irq_exit_rcu+0x10e/0x170
[   55.563179] ---[ end trace 0000000000000000 ]---

Regards,
Yi Lai

> > > ---
> > >
> > > If you don't need the following environment to reproduce the problem or if you
> > > already have one reproduced environment, please ignore the following information.
> > >
> > > How to reproduce:
> > > git clone https://gitlab.com/xupengfe/repro_vm_env.git
> > > cd repro_vm_env
> > > tar -xvf repro_vm_env.tar.gz
> > > cd repro_vm_env; ./start3.sh  // it needs qemu-system-x86_64 and I used v7.1.0
> > >   // start3.sh will load bzImage_2241ab53cbb5cdb08a6b2d4688feb13971058f65 v6.2-rc5 kernel
> > >   // You could change the bzImage_xxx as you want
> > >   // Maybe you need to remove line "-drive if=pflash,format=raw,readonly=on,file=./OVMF_CODE.fd \" for different qemu version
> > > You could use below command to log in, there is no password for root.
> > > ssh -p 10023 root@localhost
> > >
> > > After login vm(virtual machine) successfully, you could transfer reproduced
> > > binary to the vm by below way, and reproduce the problem in vm:
> > > gcc -pthread -o repro repro.c
> > > scp -P 10023 repro root@localhost:/root/
> > >
> > > Get the bzImage for target kernel:
> > > Please use target kconfig and copy it to kernel_src/.config
> > > make olddefconfig
> > > make -jx bzImage           //x should equal or less than cpu num your pc has
> > >
> > > Fill the bzImage file into above start3.sh to load the target kernel in vm.
> > >
> > >
> > > Tips:
> > > If you already have qemu-system-x86_64, please ignore below info.
> > > If you want to install qemu v7.1.0 version:
> > > git clone https://github.com/qemu/qemu.git
> > > cd qemu
> > > git checkout -f v7.1.0
> > > mkdir build
> > > cd build
> > > yum install -y ninja-build.x86_64
> > > yum -y install libslirp-devel.x86_64
> > > ../configure --target-list=x86_64-softmmu --enable-kvm --enable-vnc --enable-gtk --enable-sdl --enable-usb-redir --enable-slirp
> > > make
> > > make install
diff mbox series

Patch

diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
index 383ea8b91cc7..c5b8ec5c0a8c 100644
--- a/net/ipv4/ipmr.c
+++ b/net/ipv4/ipmr.c
@@ -437,7 +437,7 @@  static void ipmr_free_table(struct mr_table *mrt)
 {
 	struct net *net = read_pnet(&mrt->net);
 
-	DEBUG_NET_WARN_ON_ONCE(!ipmr_can_free_table(net));
+	WARN_ON_ONCE(!ipmr_can_free_table(net));
 
 	timer_shutdown_sync(&mrt->ipmr_expire_timer);
 	mroute_clean_tables(mrt, MRT_FLUSH_VIFS | MRT_FLUSH_VIFS_STATIC |
diff --git a/net/ipv6/ip6mr.c b/net/ipv6/ip6mr.c
index 4147890fe98f..7f1902ac3586 100644
--- a/net/ipv6/ip6mr.c
+++ b/net/ipv6/ip6mr.c
@@ -416,7 +416,7 @@  static void ip6mr_free_table(struct mr_table *mrt)
 {
 	struct net *net = read_pnet(&mrt->net);
 
-	DEBUG_NET_WARN_ON_ONCE(!ip6mr_can_free_table(net));
+	WARN_ON_ONCE(!ip6mr_can_free_table(net));
 
 	timer_shutdown_sync(&mrt->ipmr_expire_timer);
 	mroute_clean_tables(mrt, MRT6_FLUSH_MIFS | MRT6_FLUSH_MIFS_STATIC |