On Wed, Dec 9, 2009 at 8:25 PM, Eric Dumazet <eric.dumazet@xxxxxxxxx> wrote: > Le 10/12/2009 02:25, chavey@xxxxxxxxxx a écrit : >> Fix compiler warning "discards qualifiers from pointer target type". >> The function prototype defines parameters as pointer to a constant. >> Such parameters should not have their content modified in the >> function. >> >> Signed-off-by: Laurent Chavey <chavey@xxxxxxxxxx> > > This is not the right fix IMHO. > > We want an unique timestamp for the whole netfilter matches, because several 'time' rules > could get 'interesting' effects. > > The 'const' attribute is a debugging aid, and the skb->tstamp 'write-once' is a valid exception. > > Read again the comment in time_mt() : good point. I agree with the need for the exception, I would just like it to be more explicit in the code itself (like a turn off check around that particular statement) so we do not have to scrub thru the compiler output to filter out good / bad warning. question: why do we not force the timestamp in the skb before going thru the chain ? it looks to me that the check for (skb->tstamp.tv64 == 0) should be done once > > vi +163 net/netfilter/xt_time.c > > static bool > time_mt(const struct sk_buff *skb, const struct xt_match_param *par) > { > const struct xt_time_info *info = par->matchinfo; > unsigned int packet_time; > struct xtm current_time; > s64 stamp; > > /* > * We cannot use get_seconds() instead of __net_timestamp() here. > * Suppose you have two rules: > * 1. match before 13:00 > * 2. match after 13:00 > * If you match against processing time (get_seconds) it > * may happen that the same packet matches both rules if > * it arrived at the right moment before 13:00. > */ > if (skb->tstamp.tv64 == 0) > __net_timestamp((struct sk_buff *)skb); > > -- To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html