equal
deleted
inserted
replaced
505 fsm->retries = EC_FSM_RETRIES; |
505 fsm->retries = EC_FSM_RETRIES; |
506 fsm->state = ec_fsm_coe_dict_check; |
506 fsm->state = ec_fsm_coe_dict_check; |
507 return; |
507 return; |
508 } |
508 } |
509 |
509 |
510 if (rec_size < 8 || rec_size % 2) { |
|
511 EC_SLAVE_ERR(slave, "Invalid data size %zu!\n", rec_size); |
|
512 ec_print_data(data, rec_size); |
|
513 fsm->state = ec_fsm_coe_error; |
|
514 return; |
|
515 } |
|
516 |
|
517 first_segment = list_empty(&slave->sdo_dictionary) ? true : false; |
510 first_segment = list_empty(&slave->sdo_dictionary) ? true : false; |
518 index_list_offset = first_segment ? 8 : 6; |
511 index_list_offset = first_segment ? 8 : 6; |
|
512 |
|
513 if (rec_size < index_list_offset || rec_size % 2) { |
|
514 EC_SLAVE_ERR(slave, "Invalid data size %zu !\n", rec_size); |
|
515 ec_print_data(data, rec_size); |
|
516 fsm->state = ec_fsm_coe_error; |
|
517 return; |
|
518 } |
519 |
519 |
520 sdo_count = (rec_size - index_list_offset) / 2; |
520 sdo_count = (rec_size - index_list_offset) / 2; |
521 |
521 |
522 for (i = 0; i < sdo_count; i++) { |
522 for (i = 0; i < sdo_count; i++) { |
523 sdo_index = EC_READ_U16(data + index_list_offset + i * 2); |
523 sdo_index = EC_READ_U16(data + index_list_offset + i * 2); |