Mon, Jul 27, 2020 at 03:29:17PM CEST, andy.shevche...@gmail.com wrote: >On Mon, Jul 27, 2020 at 3:23 PM Vadym Kochan <vadym.koc...@plvision.eu> wrote:
[...] > >> + pci_set_drvdata(pdev, fw); >> + >> + err = prestera_fw_init(fw); >> + if (err) >> + goto err_prestera_fw_init; >> + >> + dev_info(fw->dev.dev, "Switch FW is ready\n"); >> + >> + fw->wq = alloc_workqueue("prestera_fw_wq", WQ_HIGHPRI, 1); >> + if (!fw->wq) >> + goto err_wq_alloc; >> + >> + INIT_WORK(&fw->evt_work, prestera_fw_evt_work_fn); >> + >> + err = pci_alloc_irq_vectors(pdev, 1, 1, PCI_IRQ_MSI); >> + if (err < 0) { >> + pci_err(pdev, "MSI IRQ init failed\n"); >> + goto err_irq_alloc; >> + } >> + >> + err = request_irq(pci_irq_vector(pdev, 0), prestera_pci_irq_handler, >> + 0, driver_name, fw); >> + if (err) { >> + pci_err(pdev, "fail to request IRQ\n"); >> + goto err_request_irq; >> + } >> + >> + err = prestera_device_register(&fw->dev); >> + if (err) >> + goto err_prestera_dev_register; >> + >> + return 0; >> + >> +err_prestera_dev_register: >> + free_irq(pci_irq_vector(pdev, 0), fw); >> +err_request_irq: >> + pci_free_irq_vectors(pdev); >> +err_irq_alloc: >> + destroy_workqueue(fw->wq); >> +err_wq_alloc: >> + prestera_fw_uninit(fw); > >> +err_prestera_fw_init: >> +err_pci_dev_alloc: >> +err_dma_mask: > >All three are useless. This is okay. It is symmetrical with init. err_what_you_init. It is all over the place. [...]