altos: Handle flight_log_max not being multiple of ao_storage_block
[fw/altos] / src / kernel / ao_log_gps.c
index 7284932cf6f2c98d2558931ff3895964258179d2..bf326c1a7fb972b7e0d601adfaab767b806586a0 100644 (file)
@@ -84,14 +84,14 @@ ao_log_gps_tracking(uint16_t tick, struct ao_telemetry_satellite *gps_tracking_d
 int8_t
 ao_log_check(uint32_t pos)
 {
+       if (ao_storage_is_erased(pos & ~(ao_storage_block - 1)))
+               return 0;
+
        if (!ao_storage_read(pos,
                             &ao_log_data,
                             sizeof (struct ao_log_gps)))
                return AO_LOG_INVALID;
 
-       if (ao_log_check_clear())
-               return AO_LOG_EMPTY;
-
        if (!ao_log_check_data())
                return AO_LOG_INVALID;
        return AO_LOG_VALID;