bool bChannelChange,
                    int *status)
 {
-#define FAIL(_code)     do { ecode = _code; goto bad; } while (0)
        u32 saveLedState;
        struct ath_hal_5416 *ahp = AH5416(ah);
        struct ath9k_channel *curchan = ah->ah_curchan;
                DPRINTF(ah->ah_sc, ATH_DBG_CHANNEL,
                         "%s: invalid channel %u/0x%x; no mapping\n",
                         __func__, chan->channel, chan->channelFlags);
-               FAIL(-EINVAL);
+               ecode = -EINVAL;
+               goto bad;
        }
 
        if (!ath9k_hw_setpower(ah, ATH9K_PM_AWAKE))
        if (!ath9k_hw_chip_reset(ah, chan)) {
                DPRINTF(ah->ah_sc, ATH_DBG_RESET, "%s: chip reset failed\n",
                         __func__);
-               FAIL(-EIO);
+               ecode = -EINVAL;
+               goto bad;
        }
 
        if (AR_SREV_9280(ah)) {
        }
 
        ecode = ath9k_hw_process_ini(ah, chan, macmode);
-       if (ecode != 0)
+       if (ecode != 0) {
+               ecode = -EINVAL;
                goto bad;
+       }
 
        if (IS_CHAN_OFDM(chan) || IS_CHAN_HT(chan))
                ath9k_hw_set_delta_slope(ah, chan);
        if (!ath9k_hw_eeprom_set_board_values(ah, chan)) {
                DPRINTF(ah->ah_sc, ATH_DBG_EEPROM,
                         "%s: error setting board options\n", __func__);
-               FAIL(-EIO);
+               ecode = -EIO;
+               goto bad;
        }
 
        ath9k_hw_decrease_chain_power(ah, chan);
        REG_WRITE(ah, AR_RSSI_THR, INIT_RSSI_THR);
 
        if (AR_SREV_9280_10_OR_LATER(ah)) {
-               if (!(ath9k_hw_ar9280_set_channel(ah, chan)))
-                       FAIL(-EIO);
+               if (!(ath9k_hw_ar9280_set_channel(ah, chan))) {
+                       ecode = -EIO;
+                       goto bad;
+               }
        } else {
-               if (!(ath9k_hw_set_channel(ah, chan)))
-                       FAIL(-EIO);
+               if (!(ath9k_hw_set_channel(ah, chan))) {
+                       ecode = -EIO;
+                       goto bad;
+               }
        }
 
        for (i = 0; i < AR_NUM_DCU; i++)
 
        ath9k_hw_init_bb(ah, chan);
 
-       if (!ath9k_hw_init_cal(ah, chan))
-               FAIL(-ENODEV);
+       if (!ath9k_hw_init_cal(ah, chan)){
+               ecode = -EIO;;
+               goto bad;
+       }
 
        rx_chainmask = ahp->ah_rxchainmask;
        if ((rx_chainmask == 0x5) || (rx_chainmask == 0x3)) {
        if (status)
                *status = ecode;
        return false;
-#undef FAIL
 }
 
 bool ath9k_hw_phy_disable(struct ath_hal *ah)