aboutsummaryrefslogtreecommitdiffstats
path: root/net/dccp
diff options
context:
space:
mode:
Diffstat (limited to 'net/dccp')
-rw-r--r--net/dccp/ccid.c1
-rw-r--r--net/dccp/ccids/ccid2.c2
-rw-r--r--net/dccp/feat.c14
3 files changed, 12 insertions, 5 deletions
diff --git a/net/dccp/ccid.c b/net/dccp/ccid.c
index ccbf72c793b6..c45088b5e6fb 100644
--- a/net/dccp/ccid.c
+++ b/net/dccp/ccid.c
@@ -40,6 +40,7 @@ static inline void ccids_write_unlock(void)
40static inline void ccids_read_lock(void) 40static inline void ccids_read_lock(void)
41{ 41{
42 atomic_inc(&ccids_lockct); 42 atomic_inc(&ccids_lockct);
43 smp_mb__after_atomic_inc();
43 spin_unlock_wait(&ccids_lock); 44 spin_unlock_wait(&ccids_lock);
44} 45}
45 46
diff --git a/net/dccp/ccids/ccid2.c b/net/dccp/ccids/ccid2.c
index 248d20f4c7c4..d29b88fe723c 100644
--- a/net/dccp/ccids/ccid2.c
+++ b/net/dccp/ccids/ccid2.c
@@ -298,7 +298,7 @@ static void ccid2_hc_tx_packet_sent(struct sock *sk, int more, unsigned int len)
298 int rc; 298 int rc;
299 299
300 ccid2_pr_debug("allocating more space in history\n"); 300 ccid2_pr_debug("allocating more space in history\n");
301 rc = ccid2_hc_tx_alloc_seq(hctx, CCID2_SEQBUF_LEN, GFP_KERNEL); 301 rc = ccid2_hc_tx_alloc_seq(hctx, CCID2_SEQBUF_LEN, gfp_any());
302 BUG_ON(rc); /* XXX what do we do? */ 302 BUG_ON(rc); /* XXX what do we do? */
303 303
304 next = hctx->ccid2hctx_seqh->ccid2s_next; 304 next = hctx->ccid2hctx_seqh->ccid2s_next;
diff --git a/net/dccp/feat.c b/net/dccp/feat.c
index cd845df5320d..5ebdd86c1b99 100644
--- a/net/dccp/feat.c
+++ b/net/dccp/feat.c
@@ -327,10 +327,16 @@ static void dccp_feat_empty_confirm(struct dccp_minisock *dmsk,
327 } 327 }
328 328
329 switch (type) { 329 switch (type) {
330 case DCCPO_CHANGE_L: opt->dccpop_type = DCCPO_CONFIRM_R; break; 330 case DCCPO_CHANGE_L:
331 case DCCPO_CHANGE_R: opt->dccpop_type = DCCPO_CONFIRM_L; break; 331 opt->dccpop_type = DCCPO_CONFIRM_R;
332 default: DCCP_WARN("invalid type %d\n", type); return; 332 break;
333 333 case DCCPO_CHANGE_R:
334 opt->dccpop_type = DCCPO_CONFIRM_L;
335 break;
336 default:
337 DCCP_WARN("invalid type %d\n", type);
338 kfree(opt);
339 return;
334 } 340 }
335 opt->dccpop_feat = feature; 341 opt->dccpop_feat = feature;
336 opt->dccpop_val = NULL; 342 opt->dccpop_val = NULL;