OpenWrt – Rev 1

Subversion Repositories:
Rev:
--- a/src/ap/acs.c
+++ b/src/ap/acs.c
@@ -292,18 +292,12 @@ static void acs_fail(struct hostapd_ifac
 static long double
 acs_survey_interference_factor(struct freq_survey *survey, s8 min_nf)
 {
-       long double factor, busy, total;
+       long double factor, busy = 0, total;
 
        if (survey->filled & SURVEY_HAS_CHAN_TIME_BUSY)
                busy = survey->channel_time_busy;
        else if (survey->filled & SURVEY_HAS_CHAN_TIME_RX)
                busy = survey->channel_time_rx;
-       else {
-               /* This shouldn't really happen as survey data is checked in
-                * acs_sanity_check() */
-               wpa_printf(MSG_ERROR, "ACS: Survey data missing");
-               return 0;
-       }
 
        total = survey->channel_time;
 
@@ -392,20 +386,19 @@ static int acs_usable_vht80_chan(struct
 static int acs_survey_is_sufficient(struct freq_survey *survey)
 {
        if (!(survey->filled & SURVEY_HAS_NF)) {
+               survey->nf = -95;
                wpa_printf(MSG_INFO, "ACS: Survey is missing noise floor");
-               return 0;
        }
 
        if (!(survey->filled & SURVEY_HAS_CHAN_TIME)) {
+               survey->channel_time = 0;
                wpa_printf(MSG_INFO, "ACS: Survey is missing channel time");
-               return 0;
        }
 
        if (!(survey->filled & SURVEY_HAS_CHAN_TIME_BUSY) &&
            !(survey->filled & SURVEY_HAS_CHAN_TIME_RX)) {
                wpa_printf(MSG_INFO,
                           "ACS: Survey is missing RX and busy time (at least one is required)");
-               return 0;
        }
 
        return 1;