* [PATCH] net: bcmgenet: Initialize u64 stats seq counter
@ 2025-06-29 11:41 Ryo Takakura
2025-06-29 15:54 ` Florian Fainelli
2025-06-30 16:21 ` Simon Horman
0 siblings, 2 replies; 4+ messages in thread
From: Ryo Takakura @ 2025-06-29 11:41 UTC (permalink / raw)
To: opendmb, florian.fainelli, andrew+netdev, davem, edumazet, kuba,
pabeni, zakkemble
Cc: bcm-kernel-feedback-list, netdev, linux-kernel, Ryo Takakura
Initialize u64 stats as it uses seq counter on 32bit machines
as suggested by lockdep below.
[ 1.830953][ T1] INFO: trying to register non-static key.
[ 1.830993][ T1] The code is fine but needs lockdep annotation, or maybe
[ 1.831027][ T1] you didn't initialize this object before use?
[ 1.831057][ T1] turning off the locking correctness validator.
[ 1.831090][ T1] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Tainted: G W 6.16.0-rc2-v7l+ #1 PREEMPT
[ 1.831097][ T1] Tainted: [W]=WARN
[ 1.831099][ T1] Hardware name: BCM2711
[ 1.831101][ T1] Call trace:
[ 1.831104][ T1] unwind_backtrace from show_stack+0x18/0x1c
[ 1.831120][ T1] show_stack from dump_stack_lvl+0x8c/0xcc
[ 1.831129][ T1] dump_stack_lvl from register_lock_class+0x9e8/0x9fc
[ 1.831141][ T1] register_lock_class from __lock_acquire+0x420/0x22c0
[ 1.831154][ T1] __lock_acquire from lock_acquire+0x130/0x3f8
[ 1.831166][ T1] lock_acquire from bcmgenet_get_stats64+0x4a4/0x4c8
[ 1.831176][ T1] bcmgenet_get_stats64 from dev_get_stats+0x4c/0x408
[ 1.831184][ T1] dev_get_stats from rtnl_fill_stats+0x38/0x120
[ 1.831193][ T1] rtnl_fill_stats from rtnl_fill_ifinfo+0x7f8/0x1890
[ 1.831203][ T1] rtnl_fill_ifinfo from rtmsg_ifinfo_build_skb+0xd0/0x138
[ 1.831214][ T1] rtmsg_ifinfo_build_skb from rtmsg_ifinfo+0x48/0x8c
[ 1.831225][ T1] rtmsg_ifinfo from register_netdevice+0x8c0/0x95c
[ 1.831237][ T1] register_netdevice from register_netdev+0x28/0x40
[ 1.831247][ T1] register_netdev from bcmgenet_probe+0x690/0x6bc
[ 1.831255][ T1] bcmgenet_probe from platform_probe+0x64/0xbc
[ 1.831263][ T1] platform_probe from really_probe+0xd0/0x2d4
[ 1.831269][ T1] really_probe from __driver_probe_device+0x90/0x1a4
[ 1.831273][ T1] __driver_probe_device from driver_probe_device+0x38/0x11c
[ 1.831278][ T1] driver_probe_device from __driver_attach+0x9c/0x18c
[ 1.831282][ T1] __driver_attach from bus_for_each_dev+0x84/0xd4
[ 1.831291][ T1] bus_for_each_dev from bus_add_driver+0xd4/0x1f4
[ 1.831303][ T1] bus_add_driver from driver_register+0x88/0x120
[ 1.831312][ T1] driver_register from do_one_initcall+0x78/0x360
[ 1.831320][ T1] do_one_initcall from kernel_init_freeable+0x2bc/0x314
[ 1.831331][ T1] kernel_init_freeable from kernel_init+0x1c/0x144
[ 1.831339][ T1] kernel_init from ret_from_fork+0x14/0x20
[ 1.831344][ T1] Exception stack(0xf082dfb0 to 0xf082dff8)
[ 1.831349][ T1] dfa0: 00000000 00000000 00000000 00000000
[ 1.831353][ T1] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
[ 1.831356][ T1] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
Fixes: 59aa6e3072aa ("net: bcmgenet: switch to use 64bit statistics")
Signed-off-by: Ryo Takakura <ryotkkr98@gmail.com>
---
drivers/net/ethernet/broadcom/genet/bcmgenet.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 2444305dd..dc1d42c25 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -4116,6 +4116,12 @@ static int bcmgenet_probe(struct platform_device *pdev)
priv->rx_rings[i].rx_coalesce_usecs = 50;
}
+ /* Initialize u64 stats seq counter for 32bit machines */
+ for (i = 0; i <= priv->hw_params->rx_queues; i++)
+ u64_stats_init(&priv->rx_rings[i].stats64.syncp);
+ for (i = 0; i <= priv->hw_params->tx_queues; i++)
+ u64_stats_init(&priv->tx_rings[i].stats64.syncp);
+
/* libphy will determine the link state */
netif_carrier_off(dev);
--
2.47.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] net: bcmgenet: Initialize u64 stats seq counter
2025-06-29 11:41 [PATCH] net: bcmgenet: Initialize u64 stats seq counter Ryo Takakura
@ 2025-06-29 15:54 ` Florian Fainelli
2025-06-30 16:21 ` Simon Horman
1 sibling, 0 replies; 4+ messages in thread
From: Florian Fainelli @ 2025-06-29 15:54 UTC (permalink / raw)
To: Ryo Takakura, opendmb, andrew+netdev, davem, edumazet, kuba,
pabeni, zakkemble
Cc: bcm-kernel-feedback-list, netdev, linux-kernel
On 6/29/2025 4:41 AM, Ryo Takakura wrote:
> Initialize u64 stats as it uses seq counter on 32bit machines
> as suggested by lockdep below.
>
> [ 1.830953][ T1] INFO: trying to register non-static key.
> [ 1.830993][ T1] The code is fine but needs lockdep annotation, or maybe
> [ 1.831027][ T1] you didn't initialize this object before use?
> [ 1.831057][ T1] turning off the locking correctness validator.
> [ 1.831090][ T1] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Tainted: G W 6.16.0-rc2-v7l+ #1 PREEMPT
> [ 1.831097][ T1] Tainted: [W]=WARN
> [ 1.831099][ T1] Hardware name: BCM2711
> [ 1.831101][ T1] Call trace:
> [ 1.831104][ T1] unwind_backtrace from show_stack+0x18/0x1c
> [ 1.831120][ T1] show_stack from dump_stack_lvl+0x8c/0xcc
> [ 1.831129][ T1] dump_stack_lvl from register_lock_class+0x9e8/0x9fc
> [ 1.831141][ T1] register_lock_class from __lock_acquire+0x420/0x22c0
> [ 1.831154][ T1] __lock_acquire from lock_acquire+0x130/0x3f8
> [ 1.831166][ T1] lock_acquire from bcmgenet_get_stats64+0x4a4/0x4c8
> [ 1.831176][ T1] bcmgenet_get_stats64 from dev_get_stats+0x4c/0x408
> [ 1.831184][ T1] dev_get_stats from rtnl_fill_stats+0x38/0x120
> [ 1.831193][ T1] rtnl_fill_stats from rtnl_fill_ifinfo+0x7f8/0x1890
> [ 1.831203][ T1] rtnl_fill_ifinfo from rtmsg_ifinfo_build_skb+0xd0/0x138
> [ 1.831214][ T1] rtmsg_ifinfo_build_skb from rtmsg_ifinfo+0x48/0x8c
> [ 1.831225][ T1] rtmsg_ifinfo from register_netdevice+0x8c0/0x95c
> [ 1.831237][ T1] register_netdevice from register_netdev+0x28/0x40
> [ 1.831247][ T1] register_netdev from bcmgenet_probe+0x690/0x6bc
> [ 1.831255][ T1] bcmgenet_probe from platform_probe+0x64/0xbc
> [ 1.831263][ T1] platform_probe from really_probe+0xd0/0x2d4
> [ 1.831269][ T1] really_probe from __driver_probe_device+0x90/0x1a4
> [ 1.831273][ T1] __driver_probe_device from driver_probe_device+0x38/0x11c
> [ 1.831278][ T1] driver_probe_device from __driver_attach+0x9c/0x18c
> [ 1.831282][ T1] __driver_attach from bus_for_each_dev+0x84/0xd4
> [ 1.831291][ T1] bus_for_each_dev from bus_add_driver+0xd4/0x1f4
> [ 1.831303][ T1] bus_add_driver from driver_register+0x88/0x120
> [ 1.831312][ T1] driver_register from do_one_initcall+0x78/0x360
> [ 1.831320][ T1] do_one_initcall from kernel_init_freeable+0x2bc/0x314
> [ 1.831331][ T1] kernel_init_freeable from kernel_init+0x1c/0x144
> [ 1.831339][ T1] kernel_init from ret_from_fork+0x14/0x20
> [ 1.831344][ T1] Exception stack(0xf082dfb0 to 0xf082dff8)
> [ 1.831349][ T1] dfa0: 00000000 00000000 00000000 00000000
> [ 1.831353][ T1] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 1.831356][ T1] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
>
> Fixes: 59aa6e3072aa ("net: bcmgenet: switch to use 64bit statistics")
> Signed-off-by: Ryo Takakura <ryotkkr98@gmail.com>
Good catch, thank you Ryo!
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
--
Florian
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] net: bcmgenet: Initialize u64 stats seq counter
2025-06-29 11:41 [PATCH] net: bcmgenet: Initialize u64 stats seq counter Ryo Takakura
2025-06-29 15:54 ` Florian Fainelli
@ 2025-06-30 16:21 ` Simon Horman
2025-07-01 9:08 ` Ryo Takakura
1 sibling, 1 reply; 4+ messages in thread
From: Simon Horman @ 2025-06-30 16:21 UTC (permalink / raw)
To: Ryo Takakura
Cc: opendmb, florian.fainelli, andrew+netdev, davem, edumazet, kuba,
pabeni, zakkemble, bcm-kernel-feedback-list, netdev, linux-kernel
On Sun, Jun 29, 2025 at 11:41:09AM +0000, Ryo Takakura wrote:
> Initialize u64 stats as it uses seq counter on 32bit machines
> as suggested by lockdep below.
>
> [ 1.830953][ T1] INFO: trying to register non-static key.
> [ 1.830993][ T1] The code is fine but needs lockdep annotation, or maybe
> [ 1.831027][ T1] you didn't initialize this object before use?
> [ 1.831057][ T1] turning off the locking correctness validator.
> [ 1.831090][ T1] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Tainted: G W 6.16.0-rc2-v7l+ #1 PREEMPT
> [ 1.831097][ T1] Tainted: [W]=WARN
> [ 1.831099][ T1] Hardware name: BCM2711
> [ 1.831101][ T1] Call trace:
> [ 1.831104][ T1] unwind_backtrace from show_stack+0x18/0x1c
> [ 1.831120][ T1] show_stack from dump_stack_lvl+0x8c/0xcc
> [ 1.831129][ T1] dump_stack_lvl from register_lock_class+0x9e8/0x9fc
> [ 1.831141][ T1] register_lock_class from __lock_acquire+0x420/0x22c0
> [ 1.831154][ T1] __lock_acquire from lock_acquire+0x130/0x3f8
> [ 1.831166][ T1] lock_acquire from bcmgenet_get_stats64+0x4a4/0x4c8
> [ 1.831176][ T1] bcmgenet_get_stats64 from dev_get_stats+0x4c/0x408
> [ 1.831184][ T1] dev_get_stats from rtnl_fill_stats+0x38/0x120
> [ 1.831193][ T1] rtnl_fill_stats from rtnl_fill_ifinfo+0x7f8/0x1890
> [ 1.831203][ T1] rtnl_fill_ifinfo from rtmsg_ifinfo_build_skb+0xd0/0x138
> [ 1.831214][ T1] rtmsg_ifinfo_build_skb from rtmsg_ifinfo+0x48/0x8c
> [ 1.831225][ T1] rtmsg_ifinfo from register_netdevice+0x8c0/0x95c
> [ 1.831237][ T1] register_netdevice from register_netdev+0x28/0x40
> [ 1.831247][ T1] register_netdev from bcmgenet_probe+0x690/0x6bc
> [ 1.831255][ T1] bcmgenet_probe from platform_probe+0x64/0xbc
> [ 1.831263][ T1] platform_probe from really_probe+0xd0/0x2d4
> [ 1.831269][ T1] really_probe from __driver_probe_device+0x90/0x1a4
> [ 1.831273][ T1] __driver_probe_device from driver_probe_device+0x38/0x11c
> [ 1.831278][ T1] driver_probe_device from __driver_attach+0x9c/0x18c
> [ 1.831282][ T1] __driver_attach from bus_for_each_dev+0x84/0xd4
> [ 1.831291][ T1] bus_for_each_dev from bus_add_driver+0xd4/0x1f4
> [ 1.831303][ T1] bus_add_driver from driver_register+0x88/0x120
> [ 1.831312][ T1] driver_register from do_one_initcall+0x78/0x360
> [ 1.831320][ T1] do_one_initcall from kernel_init_freeable+0x2bc/0x314
> [ 1.831331][ T1] kernel_init_freeable from kernel_init+0x1c/0x144
> [ 1.831339][ T1] kernel_init from ret_from_fork+0x14/0x20
> [ 1.831344][ T1] Exception stack(0xf082dfb0 to 0xf082dff8)
> [ 1.831349][ T1] dfa0: 00000000 00000000 00000000 00000000
> [ 1.831353][ T1] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
> [ 1.831356][ T1] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
>
> Fixes: 59aa6e3072aa ("net: bcmgenet: switch to use 64bit statistics")
> Signed-off-by: Ryo Takakura <ryotkkr98@gmail.com>
Hi Takakura-san,
Thanks for your patch.
Unfortunately it doesn't apply cleanly which is needed by our CI to process
your patch.
Please:
* Rebase and repost your patch on the net tree
* Target your patch at net (as opposed to net-next) like this
Subject: [PATCH net v2] ...
* And include Florian's tag in v2
* Post v2 as a new thread
For more information please see
https://docs.kernel.org/process/maintainer-netdev.html
以上
--
pw-bot: changes-requested
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] net: bcmgenet: Initialize u64 stats seq counter
2025-06-30 16:21 ` Simon Horman
@ 2025-07-01 9:08 ` Ryo Takakura
0 siblings, 0 replies; 4+ messages in thread
From: Ryo Takakura @ 2025-07-01 9:08 UTC (permalink / raw)
To: horms
Cc: andrew+netdev, bcm-kernel-feedback-list, davem, edumazet,
florian.fainelli, kuba, linux-kernel, netdev, opendmb, pabeni,
ryotkkr98, zakkemble
Hello Horman-san!
On Mon, 30 Jun 2025 17:21:47 +0100, Simon Horman wrote:
>On Sun, Jun 29, 2025 at 11:41:09AM +0000, Ryo Takakura wrote:
>> Initialize u64 stats as it uses seq counter on 32bit machines
>> as suggested by lockdep below.
>>
>> [ 1.830953][ T1] INFO: trying to register non-static key.
>> [ 1.830993][ T1] The code is fine but needs lockdep annotation, or maybe
>> [ 1.831027][ T1] you didn't initialize this object before use?
>> [ 1.831057][ T1] turning off the locking correctness validator.
>> [ 1.831090][ T1] CPU: 1 UID: 0 PID: 1 Comm: swapper/0 Tainted: G W 6.16.0-rc2-v7l+ #1 PREEMPT
>> [ 1.831097][ T1] Tainted: [W]=WARN
>> [ 1.831099][ T1] Hardware name: BCM2711
>> [ 1.831101][ T1] Call trace:
>> [ 1.831104][ T1] unwind_backtrace from show_stack+0x18/0x1c
>> [ 1.831120][ T1] show_stack from dump_stack_lvl+0x8c/0xcc
>> [ 1.831129][ T1] dump_stack_lvl from register_lock_class+0x9e8/0x9fc
>> [ 1.831141][ T1] register_lock_class from __lock_acquire+0x420/0x22c0
>> [ 1.831154][ T1] __lock_acquire from lock_acquire+0x130/0x3f8
>> [ 1.831166][ T1] lock_acquire from bcmgenet_get_stats64+0x4a4/0x4c8
>> [ 1.831176][ T1] bcmgenet_get_stats64 from dev_get_stats+0x4c/0x408
>> [ 1.831184][ T1] dev_get_stats from rtnl_fill_stats+0x38/0x120
>> [ 1.831193][ T1] rtnl_fill_stats from rtnl_fill_ifinfo+0x7f8/0x1890
>> [ 1.831203][ T1] rtnl_fill_ifinfo from rtmsg_ifinfo_build_skb+0xd0/0x138
>> [ 1.831214][ T1] rtmsg_ifinfo_build_skb from rtmsg_ifinfo+0x48/0x8c
>> [ 1.831225][ T1] rtmsg_ifinfo from register_netdevice+0x8c0/0x95c
>> [ 1.831237][ T1] register_netdevice from register_netdev+0x28/0x40
>> [ 1.831247][ T1] register_netdev from bcmgenet_probe+0x690/0x6bc
>> [ 1.831255][ T1] bcmgenet_probe from platform_probe+0x64/0xbc
>> [ 1.831263][ T1] platform_probe from really_probe+0xd0/0x2d4
>> [ 1.831269][ T1] really_probe from __driver_probe_device+0x90/0x1a4
>> [ 1.831273][ T1] __driver_probe_device from driver_probe_device+0x38/0x11c
>> [ 1.831278][ T1] driver_probe_device from __driver_attach+0x9c/0x18c
>> [ 1.831282][ T1] __driver_attach from bus_for_each_dev+0x84/0xd4
>> [ 1.831291][ T1] bus_for_each_dev from bus_add_driver+0xd4/0x1f4
>> [ 1.831303][ T1] bus_add_driver from driver_register+0x88/0x120
>> [ 1.831312][ T1] driver_register from do_one_initcall+0x78/0x360
>> [ 1.831320][ T1] do_one_initcall from kernel_init_freeable+0x2bc/0x314
>> [ 1.831331][ T1] kernel_init_freeable from kernel_init+0x1c/0x144
>> [ 1.831339][ T1] kernel_init from ret_from_fork+0x14/0x20
>> [ 1.831344][ T1] Exception stack(0xf082dfb0 to 0xf082dff8)
>> [ 1.831349][ T1] dfa0: 00000000 00000000 00000000 00000000
>> [ 1.831353][ T1] dfc0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
>> [ 1.831356][ T1] dfe0: 00000000 00000000 00000000 00000000 00000013 00000000
>>
>> Fixes: 59aa6e3072aa ("net: bcmgenet: switch to use 64bit statistics")
>> Signed-off-by: Ryo Takakura <ryotkkr98@gmail.com>
>
>Hi Takakura-san,
>
>Thanks for your patch.
>
>Unfortunately it doesn't apply cleanly which is needed by our CI to process
>your patch.
>
>Please:
>
>* Rebase and repost your patch on the net tree
>
>* Target your patch at net (as opposed to net-next) like this
>
> Subject: [PATCH net v2] ...
>
>* And include Florian's tag in v2
>
>* Post v2 as a new thread
>
>For more information please see
>https://docs.kernel.org/process/maintainer-netdev.html
Thank you for elaborating.
I'll resend v2 accordingly!
Sincerely,
Ryo Takakura
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2025-07-01 9:09 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-29 11:41 [PATCH] net: bcmgenet: Initialize u64 stats seq counter Ryo Takakura
2025-06-29 15:54 ` Florian Fainelli
2025-06-30 16:21 ` Simon Horman
2025-07-01 9:08 ` Ryo Takakura
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).