merge -c1554 branches/stable-1.4: Fixed WC calculation for multiple datagrams.
This commit is contained in:
parent
7fca697c8d
commit
72381046c2
9
NEWS
9
NEWS
|
|
@ -14,7 +14,14 @@ Changes since 1.4.0:
|
|||
* Added phy_read and phy_write commands to ethercat tool.
|
||||
* Added driver for Intel PRO/100 NICs.
|
||||
|
||||
Changes since 1.4.0-rc2:
|
||||
Changes since 1.4.0-rc3:
|
||||
|
||||
* Fixed race condition in jiffy-based frame timeout calculation.
|
||||
* Fixed race condition concerning the ec_slave_config_state->operational flag.
|
||||
* Fixed wrong calculation of the expected working counter if the process data
|
||||
of a domain span several datagrams.
|
||||
|
||||
Changes in 1.4.0-rc3:
|
||||
|
||||
* Ported the master thread to the kthread interface.
|
||||
* Added missing semaphore up() in an ioctl(). In rare cases, the master
|
||||
|
|
|
|||
|
|
@ -161,20 +161,20 @@ int ec_domain_add_datagram(
|
|||
}
|
||||
// If LRW is used, output FMMUs increment the working counter by 2,
|
||||
// while input FMMUs increment it by 1.
|
||||
domain->expected_working_counter =
|
||||
domain->expected_working_counter +=
|
||||
used[EC_DIR_OUTPUT] * 2 + used[EC_DIR_INPUT];
|
||||
} else if (used[EC_DIR_OUTPUT]) { // outputs only
|
||||
if (ec_datagram_lwr(datagram, logical_offset, data_size, data)) {
|
||||
kfree(datagram);
|
||||
return -1;
|
||||
}
|
||||
domain->expected_working_counter = used[EC_DIR_OUTPUT];
|
||||
domain->expected_working_counter += used[EC_DIR_OUTPUT];
|
||||
} else { // inputs only (or nothing)
|
||||
if (ec_datagram_lrd(datagram, logical_offset, data_size, data)) {
|
||||
kfree(datagram);
|
||||
return -1;
|
||||
}
|
||||
domain->expected_working_counter = used[EC_DIR_INPUT];
|
||||
domain->expected_working_counter += used[EC_DIR_INPUT];
|
||||
}
|
||||
|
||||
ec_datagram_zero(datagram);
|
||||
|
|
|
|||
Loading…
Reference in New Issue