| --- a/net/dccp/feat.c | +++ b/net/dccp/feat.c | @@ -1347,10 +1347,8 @@ static u8 dccp_feat_handle_nn_established(struct sock *sk, u8 mandatory, u8 opt, | return 0; | | fval.nn = dccp_decode_value_var(val, len); | - if (fval.nn != entry->val.nn) { | - DCCP_WARN("Bogus Confirm for non-existing value\n"); | - goto fast_path_failed; | - } | + if (fval.nn != entry->val.nn) | + return 0; | | /* It has been confirmed - so remove the entry */ | dccp_feat_list_pop(entry); | This looks good. It would be good to document this case in a comment above the statement. The description sounds very plausible and I recall that these warnings were triggered quite often. Returning 0 here means that the ChangeL does not enter `confirmed' state, hence gets retransmitted (possibly with the most recent value). -- To unsubscribe from this list: send the line "unsubscribe dccp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html