Date: Sun, 15 Mar 2015 21:12:58 +0000 (UTC) From: Adrian Chadd <adrian@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r280102 - head/sys/dev/wpi Message-ID: <201503152112.t2FLCwr9084901@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: adrian Date: Sun Mar 15 21:12:57 2015 New Revision: 280102 URL: https://svnweb.freebsd.org/changeset/base/280102 Log: Rearrange checks in wpi_send_rxon(). PR: kern/197143 Submitted by: Andriy Voskoboinyk <s3erios@gmail.com> Modified: head/sys/dev/wpi/if_wpi.c Modified: head/sys/dev/wpi/if_wpi.c ============================================================================== --- head/sys/dev/wpi/if_wpi.c Sun Mar 15 21:12:05 2015 (r280101) +++ head/sys/dev/wpi/if_wpi.c Sun Mar 15 21:12:57 2015 (r280102) @@ -3648,32 +3648,32 @@ wpi_send_rxon(struct wpi_softc *sc, int error = wpi_cmd(sc, WPI_CMD_RXON_ASSOC, &rxon_assoc, sizeof (struct wpi_assoc), async); + if (error != 0) { + device_printf(sc->sc_dev, + "RXON_ASSOC command failed, error %d\n", error); + return error; + } } else { - if (async) + if (async) { WPI_NT_LOCK(sc); - - error = wpi_cmd(sc, WPI_CMD_RXON, &sc->rxon, - sizeof (struct wpi_rxon), async); - - wpi_clear_node_table(sc); - - if (async) + error = wpi_cmd(sc, WPI_CMD_RXON, &sc->rxon, + sizeof (struct wpi_rxon), async); + if (error == 0) + wpi_clear_node_table(sc); WPI_NT_UNLOCK(sc); - } - if (error != 0) { - device_printf(sc->sc_dev, "RXON command failed, error %d\n", - error); - return error; - } + } else { + error = wpi_cmd(sc, WPI_CMD_RXON, &sc->rxon, + sizeof (struct wpi_rxon), async); + if (error == 0) + wpi_clear_node_table(sc); + } - /* Configuration has changed, set Tx power accordingly. */ - if ((error = wpi_set_txpower(sc, async)) != 0) { - device_printf(sc->sc_dev, - "%s: could not set TX power, error %d\n", __func__, error); - return error; - } + if (error != 0) { + device_printf(sc->sc_dev, + "RXON command failed, error %d\n", error); + return error; + } - if (!(sc->rxon.filter & htole32(WPI_FILTER_BSS))) { /* Add broadcast node. */ error = wpi_add_broadcast_node(sc, async); if (error != 0) { @@ -3683,6 +3683,13 @@ wpi_send_rxon(struct wpi_softc *sc, int } } + /* Configuration has changed, set Tx power accordingly. */ + if ((error = wpi_set_txpower(sc, async)) != 0) { + device_printf(sc->sc_dev, + "%s: could not set TX power, error %d\n", __func__, error); + return error; + } + return 0; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503152112.t2FLCwr9084901>