brcmfmac: clear sdiodev->pdata if irq_of_parse_and_map fails
PATCH 1/1 brcmfmac: clear sdiodev->pdata if irq_of_parse_and_map fails
Clear the pdata pointer in sdiodev after freeing the memory. In my case not doing so interferes with device initialization as request_irq of sdiodev->pdata->oob_irq_nr fails, but even if not, leaving a wild pointer is incorrect.
Signed-off-by Henrik Eriksson <[email protected]>
--- drivers/net/wireless/brcm80211/brcmfmac/of.c | 1 + 1 file changed, 1 insertion(+)
drivers/net/wireless/brcm80211/brcmfmac/of.c +1 -0
@@ -43,6 +43,7 @@ void brcmf_of_probe(struct brcmf_sdio_dev *sdiodev)if (!irq) {brcmf_err ("interrupt could not be mapped\n" );devm_kfree (dev, sdiodev->pdata); + sdiodev->pdata =NULL ;return ; } irqf =irqd_get_trigger_type (irq_get_irq_data (irq));
Signature · 1 line
2.0.4
Please ignore this. [PATCH 1/6] brcmfmac: allow device tree node without 'interrupts' property posted earlier today deals with the same thing, in a better way.
Quoted 22 lines · Henrik Eriksson
Clear the pdata pointer in sdiodev after freeing the memory. In my case not doing so interferes with device initialization as
request_irqofsdiodev->pdata->oob_irq_nrfails, but even if not, leaving a wild pointer is incorrect.Signed-off-by Henrik Eriksson <[email protected]>--- drivers/net/wireless/brcm80211/brcmfmac/of.c | 1 + 1 file changed, 1 insertion(+)drivers/net/wireless/brcm80211/brcmfmac/of.c +1
-0@@ -43,6 +43,7 @@ void brcmf_of_probe(struct brcmf_sdio_dev *sdiodev)if (!irq) {brcmf_err ("interrupt could not be mapped\n" );devm_kfree (dev, sdiodev->pdata); + sdiodev->pdata =NULL ;return ; } irqf =irqd_get_trigger_type (irq_get_irq_data (irq));
Signature · 1 line
henrik eriksson