X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=src%2Fkernel%2Fao_log.c;h=2167d145d2ecd7211832ce01879fcd68bcc3bb17;hb=6f06cf3e8fe0531b927d5e11ae2b0e9af3663b0f;hp=f0816aeeeb07365836c29627ccd84ed10c275660;hpb=c246a366a6e0117e70abafc30db71c0545b88f6f;p=fw%2Faltos diff --git a/src/kernel/ao_log.c b/src/kernel/ao_log.c index f0816aee..2167d145 100644 --- a/src/kernel/ao_log.c +++ b/src/kernel/ao_log.c @@ -292,28 +292,28 @@ ao_log_scan(void) ao_log_end_pos = ao_log_pos_block_end(0); if (ao_flight_number) { - uint32_t full = ao_log_current_pos; - uint32_t empty = ao_log_end_pos - AO_LOG_SIZE; + uint32_t full = (ao_log_current_pos) / AO_LOG_SIZE; + uint32_t empty = (ao_log_end_pos - AO_LOG_SIZE) / AO_LOG_SIZE; /* If there's already a flight started, then find the * end of it */ for (;;) { - ao_log_current_pos = (full + empty) >> 1; - ao_log_current_pos -= ao_log_current_pos % AO_LOG_SIZE; + uint32_t current = (full + empty) >> 1; + ao_log_current_pos = current * AO_LOG_SIZE; - if (ao_log_current_pos == full) { + if (current == full) { if (ao_log_check(ao_log_current_pos) != AO_LOG_EMPTY) ao_log_current_pos += AO_LOG_SIZE; break; } - if (ao_log_current_pos == empty) + if (current == empty) break; if (ao_log_check(ao_log_current_pos) != AO_LOG_EMPTY) { - full = ao_log_current_pos; + full = current; } else { - empty = ao_log_current_pos; + empty = current; } } ret = 1;