ath10k: fix error handling in pci_probe
authorMichal Kazior <michal.kazior@tieto.com>
Fri, 10 Apr 2015 13:01:27 +0000 (13:01 +0000)
committerKalle Valo <kvalo@qca.qualcomm.com>
Fri, 17 Apr 2015 06:32:40 +0000 (09:32 +0300)
If chip_id wasn't recognized clean up code wasn't
executed properly. It would skip freeing memory
causing a leak and irqs causing possibly MSI
warning splats later or even kernel crashes.

Fixes: 1a7fecb766c8 ("ath10k: reset chip before reading chip_id in probe")
Signed-off-by: Michal Kazior <michal.kazior@tieto.com>
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
drivers/net/wireless/ath/ath10k/pci.c

index 262a84f67f627d844da894610075bc94a9a13ef4..1f770ac28df417fee0663c60463aa86317411209 100644 (file)
@@ -2684,7 +2684,7 @@ static int ath10k_pci_probe(struct pci_dev *pdev,
        if (!ath10k_pci_chip_is_supported(pdev->device, chip_id)) {
                ath10k_err(ar, "device %04x with chip_id %08x isn't supported\n",
                           pdev->device, chip_id);
-               goto err_sleep;
+               goto err_free_irq;
        }
 
        ret = ath10k_core_register(ar, chip_id);