forked from Minki/linux
mwl8k: don't return zero on failure paths in mwl8k_probe[_hw]()
If pci_iomap() fails in mwl8k_probe(), it breaks off initialization, deallocates all resources, but returns zero. There is a similar issue when priv->rxd_ops is NULL in mwl8k_probe_hw(). The patch adds proper error code return values. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
parent
7532c7d013
commit
a2ca8ecb8f
@ -5555,6 +5555,7 @@ static int mwl8k_probe_hw(struct ieee80211_hw *hw)
|
|||||||
if (priv->rxd_ops == NULL) {
|
if (priv->rxd_ops == NULL) {
|
||||||
wiphy_err(hw->wiphy,
|
wiphy_err(hw->wiphy,
|
||||||
"Driver does not have AP firmware image support for this hardware\n");
|
"Driver does not have AP firmware image support for this hardware\n");
|
||||||
|
rc = -ENOENT;
|
||||||
goto err_stop_firmware;
|
goto err_stop_firmware;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -5901,6 +5902,7 @@ static int mwl8k_probe(struct pci_dev *pdev,
|
|||||||
priv->sram = pci_iomap(pdev, 0, 0x10000);
|
priv->sram = pci_iomap(pdev, 0, 0x10000);
|
||||||
if (priv->sram == NULL) {
|
if (priv->sram == NULL) {
|
||||||
wiphy_err(hw->wiphy, "Cannot map device SRAM\n");
|
wiphy_err(hw->wiphy, "Cannot map device SRAM\n");
|
||||||
|
rc = -EIO;
|
||||||
goto err_iounmap;
|
goto err_iounmap;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -5913,6 +5915,7 @@ static int mwl8k_probe(struct pci_dev *pdev,
|
|||||||
priv->regs = pci_iomap(pdev, 2, 0x10000);
|
priv->regs = pci_iomap(pdev, 2, 0x10000);
|
||||||
if (priv->regs == NULL) {
|
if (priv->regs == NULL) {
|
||||||
wiphy_err(hw->wiphy, "Cannot map device registers\n");
|
wiphy_err(hw->wiphy, "Cannot map device registers\n");
|
||||||
|
rc = -EIO;
|
||||||
goto err_iounmap;
|
goto err_iounmap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user