Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fc81bab5 authored by Malcolm Priestley's avatar Malcolm Priestley Committed by Kalle Valo
Browse files

rtlwifi: rtl_pci_probe: Fix fail path of _rtl_pci_find_adapter



_rtl_pci_find_adapter fail path will jump to label fail3 for
unsupported adapter types.

However, on course for fail3 there will be call rtl_deinit_core
before rtl_init_core.

For the inclusion of checking pci_iounmap this fail can be moved to
fail2.

Fixes
[    4.492963] BUG: unable to handle kernel NULL pointer dereference at           (null)
[    4.493067] IP: rtl_deinit_core+0x31/0x90 [rtlwifi]

Signed-off-by: default avatarMalcolm Priestley <tvboxspy@gmail.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarKalle Valo <kvalo@codeaurora.org>
parent 06384f7a
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2257,7 +2257,7 @@ int rtl_pci_probe(struct pci_dev *pdev,
	/* find adapter */
	if (!_rtl_pci_find_adapter(pdev, hw)) {
		err = -ENODEV;
		goto fail3;
		goto fail2;
	}

	/* Init IO handler */
@@ -2318,10 +2318,10 @@ int rtl_pci_probe(struct pci_dev *pdev,
	pci_set_drvdata(pdev, NULL);
	rtl_deinit_core(hw);

fail2:
	if (rtlpriv->io.pci_mem_start != 0)
		pci_iounmap(pdev, (void __iomem *)rtlpriv->io.pci_mem_start);

fail2:
	pci_release_regions(pdev);
	complete(&rtlpriv->firmware_loading_complete);