Hi!

> From: Roman Mashak <m...@mojatatu.com>
> 
> [ Upstream commit b15e62631c5f19fea9895f7632dae9c1b27fe0cd ]
> 
> When a new action is installed, firstuse field of 'tcf_t' is explicitly set
> to 0. Value of zero means "new action, not yet used"; as a packet hits the
> action, 'firstuse' is stamped with the current jiffies value.
> 
> tcf_tm_dump() should return 0 for firstuse if action has not yet been hit.

> @@ -69,7 +69,8 @@ static inline void tcf_tm_dump(struct tcf_t *dtm, const 
> struct tcf_t *stm)
>  {
>       dtm->install = jiffies_to_clock_t(jiffies - stm->install);
>       dtm->lastuse = jiffies_to_clock_t(jiffies - stm->lastuse);
> -     dtm->firstuse = jiffies_to_clock_t(jiffies - stm->firstuse);
> +     dtm->firstuse = stm->firstuse ?
> +             jiffies_to_clock_t(jiffies - stm->firstuse) : 0;
>       dtm->expires = jiffies_to_clock_t(stm->expires);
>  }

Jiffies start at small negative value (and are expected to overflow
periodically). This code will not work correctly in that case.

Best regards,
                                                                Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

Attachment: signature.asc
Description: Digital signature

Reply via email to