master/master.c
changeset 1831 1875b9fea0ba
parent 1804 742607c464c4
child 1848 1fe21e740efd
equal deleted inserted replaced
1830:ef09f0ea0c4c 1831:1875b9fea0ba
   415                 break;
   415                 break;
   416             // get first request
   416             // get first request
   417             request = list_entry(slave->slave_sdo_requests.next,
   417             request = list_entry(slave->slave_sdo_requests.next,
   418                     ec_master_sdo_request_t, list);
   418                     ec_master_sdo_request_t, list);
   419             list_del_init(&request->list); // dequeue
   419             list_del_init(&request->list); // dequeue
   420             EC_INFO("Discarding SDO request, slave %u does not exist anymore.\n",
   420             EC_INFO("Discarding SDO request,"
       
   421 					" slave %u does not exist anymore.\n",
   421                     slave->ring_position);
   422                     slave->ring_position);
   422             request->req.state = EC_INT_REQUEST_FAILURE;
   423             request->req.state = EC_INT_REQUEST_FAILURE;
   423             wake_up(&slave->sdo_queue);
   424             wake_up(&slave->sdo_queue);
   424         }
   425         }
   425         // FoE requests
   426         // FoE requests
   429                 break;
   430                 break;
   430             // get first request
   431             // get first request
   431             request = list_entry(slave->foe_requests.next,
   432             request = list_entry(slave->foe_requests.next,
   432                     ec_master_foe_request_t, list);
   433                     ec_master_foe_request_t, list);
   433             list_del_init(&request->list); // dequeue
   434             list_del_init(&request->list); // dequeue
   434             EC_INFO("Discarding FOE request, slave %u does not exist anymore.\n",
   435             EC_INFO("Discarding FoE request,"
       
   436 					" slave %u does not exist anymore.\n",
   435                     slave->ring_position);
   437                     slave->ring_position);
   436             request->req.state = EC_INT_REQUEST_FAILURE;
   438             request->req.state = EC_INT_REQUEST_FAILURE;
   437             wake_up(&slave->foe_queue);
   439             wake_up(&slave->foe_queue);
       
   440         }
       
   441         // SoE requests
       
   442         while (1) {
       
   443             ec_master_soe_request_t *request;
       
   444             if (list_empty(&slave->soe_requests))
       
   445                 break;
       
   446             // get first request
       
   447             request = list_entry(slave->soe_requests.next,
       
   448                     ec_master_soe_request_t, list);
       
   449             list_del_init(&request->list); // dequeue
       
   450             EC_INFO("Discarding SoE request,"
       
   451 					" slave %u does not exist anymore.\n",
       
   452                     slave->ring_position);
       
   453             request->req.state = EC_INT_REQUEST_FAILURE;
       
   454             wake_up(&slave->soe_queue);
   438         }
   455         }
   439         ec_slave_clear(slave);
   456         ec_slave_clear(slave);
   440     }
   457     }
   441 
   458 
   442     if (master->slaves) {
   459     if (master->slaves) {