[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ZikasF4nwa5lhuDN@nanopsycho>
Date: Wed, 24 Apr 2024 16:44:00 +0200
From: Jiri Pirko <jiri@...nulli.us>
To: Arkadiusz Kubalewski <arkadiusz.kubalewski@...el.com>
Cc: netdev@...r.kernel.org, vadim.fedorenko@...ux.dev, davem@...emloft.net,
rrameshbabu@...dia.com, linux-kernel@...r.kernel.org,
pabeni@...hat.com, kuba@...nel.org, mschmidt@...hat.com
Subject: Re: [PATCH net v2] dpll: fix dpll_pin_on_pin_register() for multiple
parent pins
Wed, Apr 24, 2024 at 12:16:36PM CEST, arkadiusz.kubalewski@...el.com wrote:
>In scenario where pin is registered with multiple parent pins via
>dpll_pin_on_pin_register(..), all belonging to the same dpll device.
>A second call to dpll_pin_on_pin_unregister(..) would cause a call trace,
>as it tries to use already released registration resources (due to fix
>introduced in b446631f355e). In this scenario pin was registered twice,
>so resources are not yet expected to be release until each registered
>pin/pin pair is unregistered.
>
>Currently, the following crash/call trace is produced when ice driver is
>removed on the system with installed E810T NIC which includes dpll device:
>
>WARNING: CPU: 51 PID: 9155 at drivers/dpll/dpll_core.c:809 dpll_pin_ops+0x20/0x30
>RIP: 0010:dpll_pin_ops+0x20/0x30
>Call Trace:
> ? __warn+0x7f/0x130
> ? dpll_pin_ops+0x20/0x30
> dpll_msg_add_pin_freq+0x37/0x1d0
> dpll_cmd_pin_get_one+0x1c0/0x400
> ? __nlmsg_put+0x63/0x80
> dpll_pin_event_send+0x93/0x140
> dpll_pin_on_pin_unregister+0x3f/0x100
> ice_dpll_deinit_pins+0xa1/0x230 [ice]
> ice_remove+0xf1/0x210 [ice]
>
>Fix by adding a parent pointer as a cookie when creating a registration,
>also when searching for it. For the regular pins pass NULL, this allows to
>create separated registration for each parent the pin is registered with.
>
>Fixes: b446631f355e ("dpll: fix dpll_xa_ref_*_del() for multiple registrations")
>Signed-off-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@...el.com>
Reviewed-by: Jiri Pirko <jiri@...dia.com>
Thanks!
Powered by blists - more mailing lists