| From 1cd098738a2dccd3eb870f5460ee66e245af2af7 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Wed, 30 Apr 2025 10:03:43 -0700 |
| Subject: bnxt_en: fix module unload sequence |
| |
| From: Vadim Fedorenko <vadfed@meta.com> |
| |
| [ Upstream commit 927069d5c40c1cfa7b2d13cfc6d7d58bc6f85c50 ] |
| |
| 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@gmail.com> |
| Closes: https://lore.kernel.org/netdev/CAMArcTWDe2cd41=ub=zzvYifaYcYv-N-csxfqxUvejy_L0D6UQ@mail.gmail.com/ |
| Signed-off-by: Vadim Fedorenko <vadfed@meta.com> |
| Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> |
| Reviewed-by: Michael Chan <michael.chan@broadcom.com> |
| Tested-by: Taehee Yoo <ap420073@gmail.com> |
| Link: https://patch.msgid.link/20250430170343.759126-1-vadfed@meta.com |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| 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 a414d7d721b20..bd8b9cb05ae98 100644 |
| --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c |
| +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c |
| @@ -15731,8 +15731,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.39.5 |
| |