[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>
diff --git a/net/dccp/ccids/ccid3.c b/net/dccp/ccids/ccid3.c
index cec23ad..2fa0c6d 100644
--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -75,14 +75,6 @@
static struct dccp_rx_hist *ccid3_rx_hist;
static struct dccp_li_hist *ccid3_li_hist;
-/* TFRC sender states */
-enum ccid3_hc_tx_states {
- TFRC_SSTATE_NO_SENT = 1,
- TFRC_SSTATE_NO_FBACK,
- TFRC_SSTATE_FBACK,
- TFRC_SSTATE_TERM,
-};
-
#ifdef CCID3_DEBUG
static const char *ccid3_tx_state_name(enum ccid3_hc_tx_states state)
{
@@ -251,9 +243,8 @@
hctx->ccid3hctx_x));
break;
default:
- printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n",
- __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state);
- dump_stack();
+ DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk,
+ hctx->ccid3hctx_state);
goto out;
}
@@ -329,9 +320,8 @@
rc = delay > 0 ? delay : 0;
break;
default:
- printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n",
- __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state);
- dump_stack();
+ DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk,
+ hctx->ccid3hctx_state);
rc = -EINVAL;
break;
}
@@ -423,9 +413,8 @@
}
break;
default:
- printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n",
- __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state);
- dump_stack();
+ DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk,
+ hctx->ccid3hctx_state);
break;
}
}
@@ -568,9 +557,8 @@
hctx->ccid3hctx_idle = 1;
break;
default:
- printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n",
- __FUNCTION__, dccp_role(sk), sk, hctx->ccid3hctx_state);
- dump_stack();
+ DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk,
+ hctx->ccid3hctx_state);
break;
}
}
@@ -688,13 +676,6 @@
* RX Half Connection methods
*/
-/* TFRC receiver states */
-enum ccid3_hc_rx_states {
- TFRC_RSTATE_NO_DATA = 1,
- TFRC_RSTATE_DATA,
- TFRC_RSTATE_TERM = 127,
-};
-
#ifdef CCID3_DEBUG
static const char *ccid3_rx_state_name(enum ccid3_hc_rx_states state)
{
@@ -744,9 +725,8 @@
}
break;
default:
- printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n",
- __FUNCTION__, dccp_role(sk), sk, hcrx->ccid3hcrx_state);
- dump_stack();
+ DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk,
+ hcrx->ccid3hcrx_state);
return;
}
@@ -1088,9 +1068,8 @@
}
return;
default:
- printk(KERN_CRIT "%s: %s, sk=%p, Illegal state (%d)!\n",
- __FUNCTION__, dccp_role(sk), sk, hcrx->ccid3hcrx_state);
- dump_stack();
+ DCCP_BUG("%s, sk=%p, Illegal state (%d)!", dccp_role(sk), sk,
+ hcrx->ccid3hcrx_state);
return;
}