On Mon, May 20, 2024 at 09:41:57AM +0200, Christophe JAILLET wrote: > Some resources freed in the remove function are not handled by the error > handling path of the probe. > > Add the needed function calls. > > Fixes: c2b636b3f788 ("Bluetooth: btintel_pcie: Add support for PCIe transport") > Signed-off-by: Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> > --- > Compile tested only. > Maybe incomplete. > --- > drivers/bluetooth/btintel_pcie.c | 20 ++++++++++++++------ > 1 file changed, 14 insertions(+), 6 deletions(-) > > diff --git a/drivers/bluetooth/btintel_pcie.c b/drivers/bluetooth/btintel_pcie.c > index 5b6805d87fcf..d572576d0dbc 100644 > --- a/drivers/bluetooth/btintel_pcie.c > +++ b/drivers/bluetooth/btintel_pcie.c > @@ -1280,17 +1280,17 @@ static int btintel_pcie_probe(struct pci_dev *pdev, > > err = btintel_pcie_config_pcie(pdev, data); > if (err) > - goto exit_error; > + goto exit_destroy_worqueue; typo: workqueue [...] > bt_dev_dbg(data->hdev, "cnvi: 0x%8.8x cnvr: 0x%8.8x", data->cnvi, > data->cnvr); > return 0; > > -exit_error: > +exit_free_pcie: > + btintel_pcie_free(data); > + > +exit_free_irq_vectors: > + pci_free_irq_vectors(pdev); > + > +exit_destroy_worqueue: > + destroy_workqueue(data->workqueue); > + Please use an 'err_' prefix which is shorter and clearly indicates that these are error paths. I'd also drop the newlines. > /* reset device before exit */ > btintel_pcie_reset_bt(data); Johan