|
@@ -349,8 +349,10 @@ static void firmware_update_task(void *pvt)
|
|
|
spz->err = err;
|
|
|
|
|
|
err = fwupdate_data_cleanup(spz);
|
|
|
- if (err)
|
|
|
+ if (err) {
|
|
|
MSG("failed (err %d)\n", err);
|
|
|
+ spz->err = err;
|
|
|
+ }
|
|
|
|
|
|
fail:
|
|
|
xSemaphoreGive(fwupdate_done);
|
|
@@ -389,16 +391,17 @@ int firmware_update_start(read_func_t read_data, token_t token)
|
|
|
fwupdate_spz = calloc(1, sizeof *fwupdate_spz);
|
|
|
if (!fwupdate_spz)
|
|
|
goto err;
|
|
|
- fwupdate_spz->err = Z_MEM_ERROR;
|
|
|
+
|
|
|
+ fwupdate_spz->err = Z_MEM_ERROR;
|
|
|
+ fwupdate_spz->read_data = read_data;
|
|
|
+ fwupdate_spz->token = token;
|
|
|
|
|
|
fwupdate_done = xSemaphoreCreateBinary();
|
|
|
if (!fwupdate_done)
|
|
|
goto err;
|
|
|
|
|
|
- fwupdate_spz->read_data = read_data;
|
|
|
- fwupdate_spz->token = token;
|
|
|
- if (xTaskCreate(fwupdate_task, "fwupdate",
|
|
|
- FWUPDATE_STACK, &fwupdate_spz,
|
|
|
+ if (xTaskCreate(firmware_update_task, "fwupdate",
|
|
|
+ FWUPDATE_STACK, fwupdate_spz,
|
|
|
FWUPDATE_PRIORITY, &fwupdate_task) != pdPASS) {
|
|
|
xSemaphoreGive(fwupdate_done);
|
|
|
}
|