brcmfmac: initialize struct brcmf_fws_info fields before iovar

If iovar to the firmware fails the firmware-signalling module
does a cleanup for which it needs pointer to struct brcmf_pub, which
it gets from struct brcmf_fws_info::drvr. Assign this field before
doing the tlv iovar.

Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Reviewed-by: Piotr Haber <phaber@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
This commit is contained in:
Arend van Spriel 2013-04-03 12:40:45 +02:00 committed by John W. Linville
parent c3203374be
commit bfc8bbf91f

View file

@ -919,6 +919,10 @@ int brcmf_fws_init(struct brcmf_pub *drvr)
goto fail;
}
/* set linkage back */
drvr->fws->drvr = drvr;
drvr->fws->fcmode = fcmode;
/* enable proptxtstatus signaling by default */
rc = brcmf_fil_iovar_int_set(drvr->iflist[0], "tlv", tlv);
if (rc < 0) {
@ -937,10 +941,6 @@ int brcmf_fws_init(struct brcmf_pub *drvr)
/* create debugfs file for statistics */
brcmf_debugfs_create_fws_stats(drvr, &drvr->fws->stats);
/* set linkage back */
drvr->fws->drvr = drvr;
drvr->fws->fcmode = fcmode;
/* TODO: remove upon feature delivery */
brcmf_err("%s bdcv2 tlv signaling [%x]\n",
drvr->fw_signals ? "enabled" : "disabled", tlv);