On Fri, Sep 23, 2022 at 2:42 AM ruanjinjie <ruanjinjie@xxxxxxxxxx> wrote: > > Add missing pci_disable_device() if brcmf_pcie_get_resource() fails. Did you encounter any issue because of the absensent pci_disable_device? A bit more context will be very helpful. > > Signed-off-by: ruanjinjie <ruanjinjie@xxxxxxxxxx> > --- > drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c | 9 +++++++-- > 1 file changed, 7 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c > index f98641bb1528..25fa69793d86 100644 > --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c > +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/pcie.c > @@ -1725,7 +1725,8 @@ static int brcmf_pcie_get_resource(struct brcmf_pciedev_info *devinfo) > if ((bar1_size == 0) || (bar1_addr == 0)) { > brcmf_err(bus, "BAR1 Not enabled, device size=%ld, addr=%#016llx\n", > bar1_size, (unsigned long long)bar1_addr); > - return -EINVAL; > + err = -EINVAL; > + goto err_disable; > } > > devinfo->regs = ioremap(bar0_addr, BRCMF_PCIE_REG_MAP_SIZE); > @@ -1734,7 +1735,8 @@ static int brcmf_pcie_get_resource(struct brcmf_pciedev_info *devinfo) > if (!devinfo->regs || !devinfo->tcm) { > brcmf_err(bus, "ioremap() failed (%p,%p)\n", devinfo->regs, > devinfo->tcm); > - return -EINVAL; > + err = -EINVAL; > + goto err_disable; > } > brcmf_dbg(PCIE, "Phys addr : reg space = %p base addr %#016llx\n", > devinfo->regs, (unsigned long long)bar0_addr); > @@ -1743,6 +1745,9 @@ static int brcmf_pcie_get_resource(struct brcmf_pciedev_info *devinfo) > (unsigned int)bar1_size); > > return 0; > +err_disable: > + pci_disable_device(pdev); Isn't brcmf_pcie_release_resource() a better choice which also unmap the io if any was mapped? Regards, - Franky > + return err; > } > > > -- > 2.25.1 >
Attachment:
smime.p7s
Description: S/MIME Cryptographic Signature