Hi Arnaldo / Ian
|  Tomorrow I'll try to review this patch series and take into account
|  your opinion when deciding which ones are pure bug fixes worthy for
|  pushing to DaveM and then to Linus.
I am not fussy about getting the patches into 2.6.20 at all cost. I am 
reconsidering
the add48/sub48 and the dccp_inc_seqno functions/macros.

The reason is something which I initially didn't consider: Ian reminded me that 
the
address of a bitfield (e.g. ccid3hcrx_seqno_nonloss). This means that 
dccp_inc_seqno
is of little use for this purpose - and so are, likely, the add48/sub48 
functions.
Please see below for a suggestion of an _inc48() macro which would work in this 
case.

Since I expect that the sub48/add48 functions will be needed mostly for 
bitfields and
not for 64-bit values of DCCP internal structures, it may be good to leave 
those patches
`on ice' and give Ian's patch the preference.

Ian I would appreciate input on how and where such subtraction/addition 
functions shall
be used. Maybe it is better to just just a set of macros, ditch the sub48/add48 
functions.

Gerrit

+++ b/net/dccp/dccp.h
@@ -102,6 +102,7 @@ extern int  sysctl_dccp_tx_qlen;
 #define TO_UNSIGNED48(x) (((x) >= 0)?         (x) :  COMPLEMENT48(-(x)))
 #define _add48(a, b)    (((a) + (b)) & DCCP_MAX_SEQNO)
 #define _sub48(a, b)    _add48((a), COMPLEMENT48((b)))
+#define _inc48(seqno)   (seqno) = _add48((seqno), 1)
 
 static inline void dccp_set_seqno(u64 *seqno, u64 value)
 {
--- a/net/dccp/ccids/ccid3.c
+++ b/net/dccp/ccids/ccid3.c
@@ -981,10 +981,8 @@ static int ccid3_hc_rx_detect_loss(struc
                loss = 1;
                ccid3_hc_rx_update_li(sk, hcrx->ccid3hcrx_seqno_nonloss,
                   hcrx->ccid3hcrx_ccval_nonloss);
+               _inc48(hcrx->ccid3hcrx_seqno_nonloss);
                tmp_seqno = hcrx->ccid3hcrx_seqno_nonloss;
-               dccp_inc_seqno(&tmp_seqno);
-               hcrx->ccid3hcrx_seqno_nonloss = tmp_seqno;
-               dccp_inc_seqno(&tmp_seqno);
                while (dccp_rx_hist_find_entry(&hcrx->ccid3hcrx_hist,
                   tmp_seqno, &ccval)) {
                        hcrx->ccid3hcrx_seqno_nonloss = tmp_seqno;

-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to