[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CO1PR11MB5089C0D4D11B2E01255F0692D6832@CO1PR11MB5089.namprd11.prod.outlook.com>
Date: Wed, 30 Apr 2025 17:12:54 +0000
From: "Keller, Jacob E" <jacob.e.keller@...el.com>
To: Vadim Fedorenko <vadfed@...a.com>, Vadim Fedorenko
<vadim.fedorenko@...ux.dev>, Michael Chan <michael.chan@...adcom.com>, "Pavan
Chebbi" <pavan.chebbi@...adcom.com>, Jakub Kicinski <kuba@...nel.org>
CC: Richard Cochran <richardcochran@...il.com>, Taehee Yoo
<ap420073@...il.com>, "netdev@...r.kernel.org" <netdev@...r.kernel.org>
Subject: RE: [PATCH net] bnxt_en: fix module unload sequence
> -----Original Message-----
> From: Vadim Fedorenko <vadfed@...a.com>
> Sent: Wednesday, April 30, 2025 10:04 AM
> To: Vadim Fedorenko <vadim.fedorenko@...ux.dev>; Michael Chan
> <michael.chan@...adcom.com>; Pavan Chebbi
> <pavan.chebbi@...adcom.com>; Jakub Kicinski <kuba@...nel.org>
> Cc: Richard Cochran <richardcochran@...il.com>; Taehee Yoo
> <ap420073@...il.com>; netdev@...r.kernel.org
> Subject: [PATCH net] bnxt_en: fix module unload sequence
>
> Recent updates to the PTP part of bnxt changed the way PTP FIFO is
> cleared, skbs waiting for TX timestamps are now cleared during
> ndo_close() call. To do clearing procedure, the ptp structure must
> exist and point to a valid address. Module destroy sequence had ptp
> clear code running before netdev close causing invalid memory access and
> kernel crash. Change the sequence to destroy ptp structure after device
> close.
>
> Fixes: 8f7ae5a85137 ("bnxt_en: improve TX timestamping FIFO configuration")
> Reported-by: Taehee Yoo <ap420073@...il.com>
> Closes: https://lore.kernel.org/netdev/CAMArcTWDe2cd41=ub=zzvYifaYcYv-N-
> csxfqxUvejy_L0D6UQ@...l.gmail.com/
> Signed-off-by: Vadim Fedorenko <vadfed@...a.com>
> ---
Reviewed-by: Jacob Keller <jacob.e.keller@...el.com>
> drivers/net/ethernet/broadcom/bnxt/bnxt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> index 78e496b0ec26..86a5de44b6f3 100644
> --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
> @@ -16006,8 +16006,8 @@ static void bnxt_remove_one(struct pci_dev *pdev)
>
> bnxt_rdma_aux_device_del(bp);
>
> - bnxt_ptp_clear(bp);
> unregister_netdev(dev);
> + bnxt_ptp_clear(bp);
>
> bnxt_rdma_aux_device_uninit(bp);
>
> --
> 2.47.1
>
Powered by blists - more mailing lists