if_ath: ath_tgt_send_beacon assert if beacon exist
[open-ath9k-htc-firmware.git] / target_firmware / wlan / if_ath.c
index d762989f1f1d50a3b5ea2dbec537a4f0e76262df..b251940fed5dfba795ca6d2cba8610ad6c39cffd 100755 (executable)
@@ -583,7 +583,7 @@ static void ath_tgt_send_beacon(struct ath_softc_tgt *sc, adf_nbuf_t bc_hdr,
        struct ath_hal *ah = sc->sc_ah;
        struct ath_tx_buf *bf;
        a_uint8_t vap_index, *anbdata;
-       ath_beacon_hdr_t *bhdr;
+       ath_beacon_hdr_t *bhdr = NULL;
        a_uint32_t anblen;
 
        if (!bc_hdr) {
@@ -591,6 +591,7 @@ static void ath_tgt_send_beacon(struct ath_softc_tgt *sc, adf_nbuf_t bc_hdr,
                bhdr = (ath_beacon_hdr_t *)anbdata;
        } else {
                adf_os_print("found bc_hdr! 0x%x\n", bc_hdr);
+               adf_os_assert(0);
        }
 
        vap_index = bhdr->vap_index;
@@ -1098,9 +1099,9 @@ static void ath_enable_intr_tgt(void *Context, A_UINT16 Command,
 {
        struct ath_softc_tgt *sc = (struct ath_softc_tgt *)Context;
        struct ath_hal *ah = sc->sc_ah;
-       a_uint32_t intr;
+       a_uint32_t intr = 0;
 
-       if (data)
+       if (datalen == 4)
                intr = (*(a_uint32_t *)data);
 
        intr = adf_os_ntohl(intr);
@@ -1613,11 +1614,14 @@ static void ath_stop_tx_dma_tgt(void *Context, A_UINT16 Command,
        struct ath_hal *ah = sc->sc_ah;
        a_uint32_t q;
 
-       if (data)
-               q = *(a_uint32_t *)data;
+       if (!datalen)
+               goto done;
+
+       q = *(a_uint32_t *)data;
 
        q = adf_os_ntohl(q);
        ah->ah_stopTxDma(ah, q);
+done:
        wmi_cmd_rsp(sc->tgt_wmi_handle, Command, SeqNo, NULL, 0);
 }