master/fsm_master.c
changeset 603 7f281d7372c6
parent 601 d6d951b766e3
child 604 74ceacf42710
equal deleted inserted replaced
602:0c58446dec3c 603:7f281d7372c6
   282 int ec_fsm_master_action_process_eeprom(
   282 int ec_fsm_master_action_process_eeprom(
   283         ec_fsm_master_t *fsm /**< master state machine */
   283         ec_fsm_master_t *fsm /**< master state machine */
   284         )
   284         )
   285 {
   285 {
   286     ec_master_t *master = fsm->master;
   286     ec_master_t *master = fsm->master;
   287     ec_eeprom_write_request_t *request;
   287     ec_eeprom_write_request_t *request, *next;
   288     ec_slave_t *slave;
   288     ec_slave_t *slave;
   289 
   289 
   290     down(&master->eeprom_sem);
   290     down(&master->eeprom_sem);
   291     list_for_each_entry(request, &master->eeprom_requests, list) {
   291     list_for_each_entry_safe(request, next, &master->eeprom_requests, list) {
   292         list_del_init(&request->list); // dequeue
   292         list_del_init(&request->list); // dequeue
   293         up(&master->eeprom_sem);
   293         up(&master->eeprom_sem);
   294 
   294 
   295         slave = request->slave;
   295         slave = request->slave;
   296         if (!slave->online || slave->error_flag) {
   296         if (!slave->online || slave->error_flag) {