|
@@ -236,7 +236,8 @@ void *tm_una_ping(void *input)
|
|
|
}
|
|
|
|
|
|
/* Check if we were not expecting a failure and a it occurred. */
|
|
|
- if (!expecting_failure() && is_failure(cr_)) {
|
|
|
+ if (!expecting_failure() && is_failure(cr_) &&
|
|
|
+ !failure_is_reschedule()) {
|
|
|
printf("\n\tUnexpected transaction failure 0x%02lx\n\t",
|
|
|
failure_code());
|
|
|
return (void *) -1;
|
|
@@ -244,9 +245,11 @@ void *tm_una_ping(void *input)
|
|
|
|
|
|
/*
|
|
|
* Check if TM failed due to the cause we were expecting. 0xda is a
|
|
|
- * TM_CAUSE_FAC_UNAV cause, otherwise it's an unexpected cause.
|
|
|
+ * TM_CAUSE_FAC_UNAV cause, otherwise it's an unexpected cause, unless
|
|
|
+ * it was caused by a reschedule.
|
|
|
*/
|
|
|
- if (is_failure(cr_) && !failure_is_unavailable()) {
|
|
|
+ if (is_failure(cr_) && !failure_is_unavailable() &&
|
|
|
+ !failure_is_reschedule()) {
|
|
|
printf("\n\tUnexpected failure cause 0x%02lx\n\t",
|
|
|
failure_code());
|
|
|
return (void *) -1;
|