[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <IA1PR11MB6241452E8500393A6CFF32A58BC3A@IA1PR11MB6241.namprd11.prod.outlook.com>
Date: Fri, 7 Nov 2025 10:20:45 +0000
From: "Rinitha, SX" <sx.rinitha@...el.com>
To: "Nitka, Grzegorz" <grzegorz.nitka@...el.com>,
"intel-wired-lan@...ts.osuosl.org" <intel-wired-lan@...ts.osuosl.org>
CC: "Loktionov, Aleksandr" <aleksandr.loktionov@...el.com>,
"netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"vadim.fedorenko@...ux.dev" <vadim.fedorenko@...ux.dev>
Subject: RE: [Intel-wired-lan] [PATCH v2 iwl-net] ice: fix PTP cleanup on
driver removal in error path
> -----Original Message-----
> From: Intel-wired-lan <intel-wired-lan-bounces@...osl.org> On Behalf Of Grzegorz Nitka
> Sent: 20 October 2025 15:32
> To: intel-wired-lan@...ts.osuosl.org
> Cc: Loktionov, Aleksandr <aleksandr.loktionov@...el.com>; netdev@...r.kernel.org; vadim.fedorenko@...ux.dev
> Subject: [Intel-wired-lan] [PATCH v2 iwl-net] ice: fix PTP cleanup on driver removal in error path
>
> Improve the cleanup on releasing PTP resources in error path.
> The error case might happen either at the driver probe and PTP feature initialization or on PTP restart (errors in reset handling, NVM update etc). In both cases, calls to PF PTP cleanup (ice_ptp_cleanup_pf
> function) and 'ps_lock' mutex deinitialization were missed.
> Additionally, ptp clock was not unregistered in the latter case.
>
> Keep PTP state as 'uninitialized' on init to distinguish between error scenarios and to avoid resource release duplication at driver removal.
>
> The consequence of missing ice_ptp_cleanup_pf call is the following call trace dumped when ice_adapter object is freed (port list is not empty, as it is required at this stage):
>
> [ T93022] ------------[ cut here ]------------ [ T93022] WARNING: CPU: 10 PID: 93022 at
> ice/ice_adapter.c:67 ice_adapter_put+0xef/0x100 [ice] ...
> [ T93022] RIP: 0010:ice_adapter_put+0xef/0x100 [ice] ...
> [ T93022] Call Trace:
> [ T93022] <TASK>
> [ T93022] ? ice_adapter_put+0xef/0x100 [ice 33d2647ad4f6d866d41eefff1806df37c68aef0c]
> [ T93022] ? __warn.cold+0xb0/0x10e
> [ T93022] ? ice_adapter_put+0xef/0x100 [ice 33d2647ad4f6d866d41eefff1806df37c68aef0c]
> [ T93022] ? report_bug+0xd8/0x150
> [ T93022] ? handle_bug+0xe9/0x110
> [ T93022] ? exc_invalid_op+0x17/0x70
> [ T93022] ? asm_exc_invalid_op+0x1a/0x20 [ T93022] ? ice_adapter_put+0xef/0x100 [ice 33d2647ad4f6d866d41eefff1806df37c68aef0c]
> [ T93022] pci_device_remove+0x42/0xb0
> [ T93022] device_release_driver_internal+0x19f/0x200
> [ T93022] driver_detach+0x48/0x90
> [ T93022] bus_remove_driver+0x70/0xf0
> [ T93022] pci_unregister_driver+0x42/0xb0 [ T93022] ice_module_exit+0x10/0xdb0 [ice 33d2647ad4f6d866d41eefff1806df37c68aef0c]
> ...
> [ T93022] ---[ end trace 0000000000000000 ]--- [ T93022] ice: module unloaded
>
> Fixes: e800654e85b5 ("ice: Use ice_adapter for PTP shared data instead of auxdev")
> Signed-off-by: Grzegorz Nitka <grzegorz.nitka@...el.com>
> Reviewed-by: Aleksandr Loktionov <aleksandr.loktionov@...el.com>
> ---
> v1->v2:
> - rebased
> - complete full cleanup if failure in PTP intialization path (no need
> to do a cleanup on PTP release then) and added a comment with clarification
> why keeping PTP_UNINIT state on failure at init
> - setting ptp->clock to NULL explicitly in error path
> ---
> drivers/net/ethernet/intel/ice/ice_ptp.c | 22 +++++++++++++++++++---
> 1 file changed, 19 insertions(+), 3 deletions(-)
>
Tested-by: Rinitha S <sx.rinitha@...el.com> (A Contingent worker at Intel)
Powered by blists - more mailing lists