diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2006-11-15 18:27:47 -0500 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-12-03 00:23:49 -0500 |
commit | 3c6952624a8f600f9a0fbc1f5db5560a7ef9b13e (patch) | |
tree | 294924e950000cd786b0cdaf026ed58b2f81102d /net/dccp/ccids/ccid3.c | |
parent | 6bb100b9fc8f1ce330231b360028ab705a9f0378 (diff) |
[DCCP]: Introduce DCCP_{BUG{_ON},CRIT} macros, use enum:8 for the ccid3 states
This patch tackles the following problem:
* the ccid3_hc_{t,r}x_sock define ccid3hc{t,r}x_state as `u8', but
in reality there can only be a few, pre-defined enum names
* this necessitates addiditional checking for unexpected values
which would otherwise be caught by the compiler
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
Diffstat (limited to 'net/dccp/ccids/ccid3.c')
-rw-r--r-- | net/dccp/ccids/ccid3.c | 45 |
1 files changed, 12 insertions, 33 deletions
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c index cec23ad286de..2fa0c6d1fbee 100644 --- a/net/dccp/ccids/ccid3.c +++ b/net/dccp/ccids/ccid3.c | |||
@@ -75,14 +75,6 @@ static struct dccp_tx_hist *ccid3_tx_hist; | |||
75 | static struct dccp_rx_hist *ccid3_rx_hist; | 75 | static struct dccp_rx_hist *ccid3_rx_hist; |
76 | static struct dccp_li_hist *ccid3_li_hist; | 76 | static struct dccp_li_hist *ccid3_li_hist; |
77 | 77 | ||
78 | /* TFRC sender states */ | ||
79 | enum ccid3_hc_tx_states { | ||
80 | TFRC_SSTATE_NO_SENT = 1, | ||
81 | TFRC_SSTATE_NO_FBACK, | ||
82 | TFRC_SSTATE_FBACK, | ||
83 | TFRC_SSTATE_TERM, | ||
84 | }; | ||
85 | |||
86 | #ifdef CCID3_DEBUG | 78 | #ifdef CCID3_DEBUG |
87 | static const char *ccid3_tx_state_name(enum ccid3_hc_tx_states state) | 79 | static const char *ccid3_tx_state_name(enum ccid3_hc_tx_states state) |
88 | { | 80 | { |
@@ -251,9 +243,8 @@ static void ccid3_hc_tx_no_feedback_timer(unsigned long data) | |||
251 | hctx->ccid3hctx_x)); | 243 | hctx->ccid3hctx_x)); |
252 | break; | 244 | break; |
253 | default: | 245 | default: |
254 | printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n", | 246 | DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk, |
255 | __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state); | 247 | hctx->ccid3hctx_state); |
256 | dump_stack(); | ||
257 | goto out; | 248 | goto out; |
258 | } | 249 | } |
259 | 250 | ||
@@ -329,9 +320,8 @@ static int ccid3_hc_tx_send_packet(struct sock *sk, | |||
329 | rc = delay > 0 ? delay : 0; | 320 | rc = delay > 0 ? delay : 0; |
330 | break; | 321 | break; |
331 | default: | 322 | default: |
332 | printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n", | 323 | DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk, |
333 | __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state); | 324 | hctx->ccid3hctx_state); |
334 | dump_stack(); | ||
335 | rc = -EINVAL; | 325 | rc = -EINVAL; |
336 | break; | 326 | break; |
337 | } | 327 | } |
@@ -423,9 +413,8 @@ static void ccid3_hc_tx_packet_sent(struct sock *sk, int more, int len) | |||
423 | } | 413 | } |
424 | break; | 414 | break; |
425 | default: | 415 | default: |
426 | printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n", | 416 | DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk, |
427 | __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state); | 417 | hctx->ccid3hctx_state); |
428 | dump_stack(); | ||
429 | break; | 418 | break; |
430 | } | 419 | } |
431 | } | 420 | } |
@@ -568,9 +557,8 @@ static void ccid3_hc_tx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
568 | hctx->ccid3hctx_idle = 1; | 557 | hctx->ccid3hctx_idle = 1; |
569 | break; | 558 | break; |
570 | default: | 559 | default: |
571 | printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n", | 560 | DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk, |
572 | __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state); | 561 | hctx->ccid3hctx_state); |
573 | dump_stack(); | ||
574 | break; | 562 | break; |
575 | } | 563 | } |
576 | } | 564 | } |
@@ -688,13 +676,6 @@ static void ccid3_hc_tx_exit(struct sock *sk) | |||
688 | * RX Half Connection methods | 676 | * RX Half Connection methods |
689 | */ | 677 | */ |
690 | 678 | ||
691 | /* TFRC receiver states */ | ||
692 | enum ccid3_hc_rx_states { | ||
693 | TFRC_RSTATE_NO_DATA = 1, | ||
694 | TFRC_RSTATE_DATA, | ||
695 | TFRC_RSTATE_TERM = 127, | ||
696 | }; | ||
697 | |||
698 | #ifdef CCID3_DEBUG | 679 | #ifdef CCID3_DEBUG |
699 | static const char *ccid3_rx_state_name(enum ccid3_hc_rx_states state) | 680 | static const char *ccid3_rx_state_name(enum ccid3_hc_rx_states state) |
700 | { | 681 | { |
@@ -744,9 +725,8 @@ static void ccid3_hc_rx_send_feedback(struct sock *sk) | |||
744 | } | 725 | } |
745 | break; | 726 | break; |
746 | default: | 727 | default: |
747 | printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n", | 728 | DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk, |
748 | __FUNCTION__, dccp_role(sk), sk, hcrx->ccid3hcrx_state); | 729 | hcrx->ccid3hcrx_state); |
749 | dump_stack(); | ||
750 | return; | 730 | return; |
751 | } | 731 | } |
752 | 732 | ||
@@ -1088,9 +1068,8 @@ static void ccid3_hc_rx_packet_recv(struct sock *sk, struct sk_buff *skb) | |||
1088 | } | 1068 | } |
1089 | return; | 1069 | return; |
1090 | default: | 1070 | default: |
1091 | printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n", | 1071 | DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk, |
1092 | __FUNCTION__, dccp_role(sk), sk, hcrx->ccid3hcrx_state); | 1072 | hcrx->ccid3hcrx_state); |
1093 | dump_stack(); | ||
1094 | return; | 1073 | return; |
1095 | } | 1074 | } |
1096 | 1075 | ||