Skip to content

Commit

Permalink
brcm80211: fmac: initialize host interface drivers regardless result
Browse files Browse the repository at this point in the history
The module init function of brcmfmac calls init functions for SDIO and
USB doing driver registration. This patch removes terminating the module
init when a driver registration for one host interface fails.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Franky (Zhenhui) Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
  • Loading branch information
Arend van Spriel authored and John W. Linville committed Mar 5, 2012
1 parent 1d9c179 commit 549040a
Show file tree
Hide file tree
Showing 4 changed files with 8 additions and 18 deletions.
4 changes: 1 addition & 3 deletions drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c
Original file line number Diff line number Diff line change
Expand Up @@ -604,7 +604,7 @@ void brcmf_sdio_exit(void)
sdio_unregister_driver(&brcmf_sdmmc_driver);
}

int brcmf_sdio_init(void)
void brcmf_sdio_init(void)
{
int ret;

Expand All @@ -614,6 +614,4 @@ int brcmf_sdio_init(void)

if (ret)
brcmf_dbg(ERROR, "sdio_register_driver failed: %d\n", ret);

return ret;
}
4 changes: 2 additions & 2 deletions drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,11 @@ extern int brcmf_add_if(struct device *dev, int ifidx,

#ifdef CONFIG_BRCMFMAC_SDIO
extern void brcmf_sdio_exit(void);
extern int brcmf_sdio_init(void);
extern void brcmf_sdio_init(void);
#endif
#ifdef CONFIG_BRCMFMAC_USB
extern void brcmf_usb_exit(void);
extern int brcmf_usb_init(void);
extern void brcmf_usb_init(void);
#endif

#endif /* _BRCMF_BUS_H_ */
14 changes: 3 additions & 11 deletions drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c
Original file line number Diff line number Diff line change
Expand Up @@ -1183,21 +1183,13 @@ int brcmf_write_to_file(struct brcmf_pub *drvr, const u8 *buf, int size)

static int __init brcmfmac_init(void)
{
int ret = 0;

#ifdef CONFIG_BRCMFMAC_SDIO
ret = brcmf_sdio_init();
if (ret)
goto fail;
brcmf_sdio_init();
#endif
#ifdef CONFIG_BRCMFMAC_USB
ret = brcmf_usb_init();
if (ret)
goto fail;
brcmf_usb_init();
#endif

fail:
return ret;
return 0;
}

static void __exit brcmfmac_exit(void)
Expand Down
4 changes: 2 additions & 2 deletions drivers/net/wireless/brcm80211/brcmfmac/usb.c
Original file line number Diff line number Diff line change
Expand Up @@ -1615,7 +1615,7 @@ void brcmf_usb_exit(void)
g_image.len = 0;
}

int brcmf_usb_init(void)
void brcmf_usb_init(void)
{
return usb_register(&brcmf_usbdrvr);
usb_register(&brcmf_usbdrvr);
}

0 comments on commit 549040a

Please sign in to comment.