drivers/net/ethernet/ti/tlan.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
From: Zhang Enpei <zhang.enpei@zte.com.cn>
Use time_is_before_eq_jiffies macro instead of using jiffies directly to
handle wraparound.
Signed-off-by: Zhang Enpei <zhang.enpei@zte.com.cn>
---
drivers/net/ethernet/ti/tlan.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/net/ethernet/ti/tlan.c b/drivers/net/ethernet/ti/tlan.c
index a55b0f951181..7c5e51284942 100644
--- a/drivers/net/ethernet/ti/tlan.c
+++ b/drivers/net/ethernet/ti/tlan.c
@@ -1817,7 +1817,6 @@ static void tlan_timer(struct timer_list *t)
{
struct tlan_priv *priv = timer_container_of(priv, t, timer);
struct net_device *dev = priv->dev;
- u32 elapsed;
unsigned long flags = 0;
priv->timer.function = NULL;
@@ -1844,8 +1843,7 @@ static void tlan_timer(struct timer_list *t)
case TLAN_TIMER_ACTIVITY:
spin_lock_irqsave(&priv->lock, flags);
if (priv->timer.function == NULL) {
- elapsed = jiffies - priv->timer_set_at;
- if (elapsed >= TLAN_TIMER_ACT_DELAY) {
+ if (time_is_before_eq_jiffies(priv->timer_set_at + TLAN_TIMER_ACT_DELAY)) {
tlan_dio_write8(dev->base_addr,
TLAN_LED_REG, TLAN_LED_LINK);
} else {
--
2.25.1
On Wed, Aug 27, 2025 at 03:54:55PM +0800, zhang.enpei@zte.com.cn wrote: > From: Zhang Enpei <zhang.enpei@zte.com.cn> > > Use time_is_before_eq_jiffies macro instead of using jiffies directly to > handle wraparound. > > Signed-off-by: Zhang Enpei <zhang.enpei@zte.com.cn> Unfortunately W=1 builds fail with this patch. GCC 15.1.o says: In file included from ./include/linux/bitops.h:7, from ./include/linux/kernel.h:23, from ./include/linux/cpumask.h:11, from ./include/linux/alloc_tag.h:13, from ./include/linux/percpu.h:5, from ./include/linux/context_tracking_state.h:5, from ./include/linux/hardirq.h:5, from drivers/net/ethernet/ti/tlan.c:32: drivers/net/ethernet/ti/tlan.c: In function 'tlan_timer': ./include/linux/typecheck.h:12:25: warning: comparison of distinct pointer types lacks a cast [-Wcompare-distinct-pointer-types] 12 | (void)(&__dummy == &__dummy2); \ | ^~ ./include/linux/jiffies.h:149:10: note: in expansion of macro 'typecheck' 149 | typecheck(unsigned long, b) && \ | ^~~~~~~~~ ./include/linux/jiffies.h:292:38: note: in expansion of macro 'time_after_eq' 292 | #define time_is_before_eq_jiffies(a) time_after_eq(jiffies, a) | ^~~~~~~~~~~~~ drivers/net/ethernet/ti/tlan.c:1846:29: note: in expansion of macro 'time_is_before_eq_jiffies' 1846 | if (time_is_before_eq_jiffies(priv->timer_set_at + TLAN_TIMER_ACT_DELAY)) { | ^~~~~~~~~~~~~~~~~~~~~~~~~ -- pw-bot: changes-requested
On 8/27/2025 12:54 AM, zhang.enpei@zte.com.cn wrote: > From: Zhang Enpei <zhang.enpei@zte.com.cn> > > Use time_is_before_eq_jiffies macro instead of using jiffies directly to > handle wraparound. > > Signed-off-by: Zhang Enpei <zhang.enpei@zte.com.cn> > --- Reviewed-by: Jacob Keller <jacob.e.keller@intel.com> > drivers/net/ethernet/ti/tlan.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/ti/tlan.c b/drivers/net/ethernet/ti/tlan.c > index a55b0f951181..7c5e51284942 100644 > --- a/drivers/net/ethernet/ti/tlan.c > +++ b/drivers/net/ethernet/ti/tlan.c > @@ -1817,7 +1817,6 @@ static void tlan_timer(struct timer_list *t) > { > struct tlan_priv *priv = timer_container_of(priv, t, timer); > struct net_device *dev = priv->dev; > - u32 elapsed; > unsigned long flags = 0; > > priv->timer.function = NULL; > @@ -1844,8 +1843,7 @@ static void tlan_timer(struct timer_list *t) > case TLAN_TIMER_ACTIVITY: > spin_lock_irqsave(&priv->lock, flags); > if (priv->timer.function == NULL) { > - elapsed = jiffies - priv->timer_set_at; > - if (elapsed >= TLAN_TIMER_ACT_DELAY) { > + if (time_is_before_eq_jiffies(priv->timer_set_at + TLAN_TIMER_ACT_DELAY)) { > tlan_dio_write8(dev->base_addr, > TLAN_LED_REG, TLAN_LED_LINK); > } else {
© 2016 - 2025 Red Hat, Inc.