Message ID | 20241017010648.189889-1-dlemoal@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Krzysztof Wilczyński |
Headers | show |
Series | [v2] PCI: endpoint: test: Synchronously cancel command handler work | expand |
On Thu, Oct 17, 2024 at 10:06:48AM +0900, Damien Le Moal wrote: > Use cancel_delayed_work_sync() in pci_epf_test_epc_deinit() to ensure > that the command handler is really stopped before proceeding with DMA > and BAR cleanup. > > The same change is also done in pci_epf_test_link_down() to ensure that > the link down handling completes with the command handler fully stopped. > > Signed-off-by: Damien Le Moal <dlemoal@kernel.org> Reviewed-by: Frank Li <Frank.Li@nxp.com> > --- > Changes from v1: > - Corrected typos/grammar in commit message > > drivers/pci/endpoint/functions/pci-epf-test.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c > index a73bc0771d35..c2e7f67e5107 100644 > --- a/drivers/pci/endpoint/functions/pci-epf-test.c > +++ b/drivers/pci/endpoint/functions/pci-epf-test.c > @@ -800,7 +800,7 @@ static void pci_epf_test_epc_deinit(struct pci_epf *epf) > { > struct pci_epf_test *epf_test = epf_get_drvdata(epf); > > - cancel_delayed_work(&epf_test->cmd_handler); > + cancel_delayed_work_sync(&epf_test->cmd_handler); > pci_epf_test_clean_dma_chan(epf_test); > pci_epf_test_clear_bar(epf); > } > @@ -931,7 +931,7 @@ static void pci_epf_test_unbind(struct pci_epf *epf) > struct pci_epf_test *epf_test = epf_get_drvdata(epf); > struct pci_epc *epc = epf->epc; > > - cancel_delayed_work(&epf_test->cmd_handler); > + cancel_delayed_work_sync(&epf_test->cmd_handler); > if (epc->init_complete) { > pci_epf_test_clean_dma_chan(epf_test); > pci_epf_test_clear_bar(epf); > -- > 2.47.0 >
Hello, > Use cancel_delayed_work_sync() in pci_epf_test_epc_deinit() to ensure > that the command handler is really stopped before proceeding with DMA > and BAR cleanup. > > The same change is also done in pci_epf_test_link_down() to ensure that > the link down handling completes with the command handler fully stopped. Applied to endpoint, thank you! [1/1] PCI: endpoint: test: Synchronously cancel command handler work https://git.kernel.org/pci/pci/c/7a48655d2bf2 Krzysztof
diff --git a/drivers/pci/endpoint/functions/pci-epf-test.c b/drivers/pci/endpoint/functions/pci-epf-test.c index a73bc0771d35..c2e7f67e5107 100644 --- a/drivers/pci/endpoint/functions/pci-epf-test.c +++ b/drivers/pci/endpoint/functions/pci-epf-test.c @@ -800,7 +800,7 @@ static void pci_epf_test_epc_deinit(struct pci_epf *epf) { struct pci_epf_test *epf_test = epf_get_drvdata(epf); - cancel_delayed_work(&epf_test->cmd_handler); + cancel_delayed_work_sync(&epf_test->cmd_handler); pci_epf_test_clean_dma_chan(epf_test); pci_epf_test_clear_bar(epf); } @@ -931,7 +931,7 @@ static void pci_epf_test_unbind(struct pci_epf *epf) struct pci_epf_test *epf_test = epf_get_drvdata(epf); struct pci_epc *epc = epf->epc; - cancel_delayed_work(&epf_test->cmd_handler); + cancel_delayed_work_sync(&epf_test->cmd_handler); if (epc->init_complete) { pci_epf_test_clean_dma_chan(epf_test); pci_epf_test_clear_bar(epf);
Use cancel_delayed_work_sync() in pci_epf_test_epc_deinit() to ensure that the command handler is really stopped before proceeding with DMA and BAR cleanup. The same change is also done in pci_epf_test_link_down() to ensure that the link down handling completes with the command handler fully stopped. Signed-off-by: Damien Le Moal <dlemoal@kernel.org> --- Changes from v1: - Corrected typos/grammar in commit message drivers/pci/endpoint/functions/pci-epf-test.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)