]> xenbits.xensource.com Git - people/julieng/freebsd.git/commitdiff
ural(4): reduce copy-paste in ural_newstate().
authoradrian <adrian@FreeBSD.org>
Sat, 3 Oct 2015 05:55:16 +0000 (05:55 +0000)
committeradrian <adrian@FreeBSD.org>
Sat, 3 Oct 2015 05:55:16 +0000 (05:55 +0000)
Submitted by: <s3erios@gmail.com>
Differential Revision: https://reviews.freebsd.org/D3656

sys/dev/usb/wlan/if_ural.c

index bff4de54d6671ecd87195b8f6bee7f0f7e4d9649..a085c3012d3cf6aabd384d3adcbc0aae5dfea06f 100644 (file)
@@ -698,12 +698,9 @@ ural_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
                ni = ieee80211_ref_node(vap->iv_bss);
 
                if (vap->iv_opmode != IEEE80211_M_MONITOR) {
-                       if (ic->ic_bsschan == IEEE80211_CHAN_ANYC) {
-                               RAL_UNLOCK(sc);
-                               IEEE80211_LOCK(ic);
-                               ieee80211_free_node(ni);
-                               return (-1);
-                       }
+                       if (ic->ic_bsschan == IEEE80211_CHAN_ANYC)
+                               goto fail;
+
                        ural_update_slot(sc);
                        ural_set_txpreamble(sc);
                        ural_set_basicrates(sc, ic->ic_bsschan);
@@ -717,19 +714,13 @@ ural_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
                        if (m == NULL) {
                                device_printf(sc->sc_dev,
                                    "could not allocate beacon\n");
-                               RAL_UNLOCK(sc);
-                               IEEE80211_LOCK(ic);
-                               ieee80211_free_node(ni);
-                               return (-1);
+                               goto fail;
                        }
                        ieee80211_ref_node(ni);
                        if (ural_tx_bcn(sc, m, ni) != 0) {
                                device_printf(sc->sc_dev,
                                    "could not send beacon\n");
-                               RAL_UNLOCK(sc);
-                               IEEE80211_LOCK(ic);
-                               ieee80211_free_node(ni);
-                               return (-1);
+                               goto fail;
                        }
                }
 
@@ -755,6 +746,12 @@ ural_newstate(struct ieee80211vap *vap, enum ieee80211_state nstate, int arg)
        RAL_UNLOCK(sc);
        IEEE80211_LOCK(ic);
        return (uvp->newstate(vap, nstate, arg));
+
+fail:
+       RAL_UNLOCK(sc);
+       IEEE80211_LOCK(ic);
+       ieee80211_free_node(ni);
+       return (-1);
 }