From f391b6c5957fec01381a8ff2ea8b4a86891d9140 Mon Sep 17 00:00:00 2001 From: David Arinzon Date: Wed, 7 Feb 2024 13:57:21 +0000 Subject: [PATCH] linux/ena: Fix PHC info release timing As PHC info is a part of the adapter struct and since the adapter struct is also a part of the netdev private area [1], PHC info must be released before releasing netdev. [1]: https://elixir.bootlin.com/linux/v6.7/source/net/core/dev.c#L10778 Fixes: 2e9a716dbbb6 ("linux/ena: Move PHC info struct allocation") Signed-off-by: Amit Bernstein --- kernel/linux/ena/ena_netdev.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/kernel/linux/ena/ena_netdev.c b/kernel/linux/ena/ena_netdev.c index 089142aa..5edd2d32 100644 --- a/kernel/linux/ena/ena_netdev.c +++ b/kernel/linux/ena/ena_netdev.c @@ -4914,6 +4914,8 @@ static void __ena_shutoff(struct pci_dev *pdev, bool shutdown) adapter->reset_reason = ENA_REGS_RESET_SHUTDOWN; ena_destroy_device(adapter, true); + ena_phc_free(adapter); + if (shutdown) { netif_device_detach(netdev); dev_close(netdev); @@ -4932,8 +4934,6 @@ static void __ena_shutoff(struct pci_dev *pdev, bool shutdown) ena_com_delete_customer_metrics_buffer(ena_dev); - ena_phc_free(adapter); - ena_release_bars(ena_dev, pdev); pci_disable_device(pdev);