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) { |