diff options
Diffstat (limited to 'net/dccp/feat.c')
-rw-r--r-- | net/dccp/feat.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/net/dccp/feat.c b/net/dccp/feat.c index 67ffac9905f8..7303f79705d2 100644 --- a/net/dccp/feat.c +++ b/net/dccp/feat.c | |||
@@ -51,8 +51,17 @@ static int dccp_hdlr_ccid(struct sock *sk, u64 ccid, bool rx) | |||
51 | 51 | ||
52 | static int dccp_hdlr_seq_win(struct sock *sk, u64 seq_win, bool rx) | 52 | static int dccp_hdlr_seq_win(struct sock *sk, u64 seq_win, bool rx) |
53 | { | 53 | { |
54 | if (!rx) | 54 | struct dccp_sock *dp = dccp_sk(sk); |
55 | dccp_msk(sk)->dccpms_sequence_window = seq_win; | 55 | |
56 | if (rx) { | ||
57 | dp->dccps_r_seq_win = seq_win; | ||
58 | /* propagate changes to update SWL/SWH */ | ||
59 | dccp_update_gsr(sk, dp->dccps_gsr); | ||
60 | } else { | ||
61 | dp->dccps_l_seq_win = seq_win; | ||
62 | /* propagate changes to update AWL */ | ||
63 | dccp_update_gss(sk, dp->dccps_gss); | ||
64 | } | ||
56 | return 0; | 65 | return 0; |
57 | } | 66 | } |
58 | 67 | ||