# Change to linux/timer.h from 5.14.0-611.55.1 to 5.14.0-687.10.1

**URL:** <https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548>\
**Category:** Rocky Linux Help & Support\
**Created:** [May 30, 2026, 6:52pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548 "2026-05-30T18:52:02Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![DaveAtFraud](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/daveatfraud/32/2824_2.png) [@DaveAtFraud](https://forums.rockylinux.org/u/DaveAtFraud)\
**Post date:** [May 30, 2026, 6:52pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/1 "2026-05-30T18:52:02Z")

</div>

Getting a build error for the mhvtl virtual tape library project. Not sure how to chase this change to linux/timer.h. timer\_pending code provided for context. 5.14.0-687.5.3.el9\_8.x86\_64 has:

```auto
#define timer_container_of(var, callback_timer, timer_fieldname) \
        container_of(callback_timer, typeof(*var), timer_fieldname)

/**
 * timer_pending - is a timer pending?
 * @timer: the timer in question
 *
 * timer_pending will tell whether a given timer is currently pending,
 * or not. Callers must ensure serialization wrt. other operations done
 * to this timer, eg. interrupt contexts, or other CPUs on SMP.
 *
 * return value: 1 if the timer is pending, 0 if not.
 */
static inline int timer_pending(const struct timer_list * timer)
{
        return !hlist_unhashed_lockless(&timer->entry);
}

```

and linux/timer.h in 5.14.0-611.55.1.el9\_7.0.3.x86\_64 has:

```auto
#define from_timer(var, callback_timer, timer_fieldname) \
        container_of(callback_timer, typeof(*var), timer_fieldname)

/**
 * timer_pending - is a timer pending?
 * @timer: the timer in question
 *
 * timer_pending will tell whether a given timer is currently pending,
 * or not. Callers must ensure serialization wrt. other operations done
 * to this timer, eg. interrupt contexts, or other CPUs on SMP.
 *
 * return value: 1 if the timer is pending, 0 if not.
 */
static inline int timer_pending(const struct timer_list * timer)
{
        return !hlist_unhashed_lockless(&timer->entry);
}

```

The from\_timer function still exists since simply pasting the from\_timer definition from 611.55.1 into timer.h for 687.5.3 resolves the build error but doesn’t result in an unresolved external reference.

Thinking this should be resolved by the maintainer for linux/timer.h but not easy to tell where the change came from (Rocky, RH or the actual maintainer).

---

<div class="post-metadata">

**Author:** ![iwalker](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/iwalker/32/2599_2.png) [@iwalker](https://forums.rockylinux.org/u/iwalker)\
**Post date:** [May 30, 2026, 7:05pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/2 "2026-05-30T19:05:32Z")

</div>

This is how it looks in RHEL9:

```auto
#define timer_container_of(var, callback_timer, timer_fieldname) \
        container_of(callback_timer, typeof(*var), timer_fieldname)

/**
 * timer_pending - is a timer pending?
 * @timer: the timer in question
 *
 * timer_pending will tell whether a given timer is currently pending,
 * or not. Callers must ensure serialization wrt. other operations done
 * to this timer, eg. interrupt contexts, or other CPUs on SMP.
 *
 * return value: 1 if the timer is pending, 0 if not.
 */
static inline int timer_pending(const struct timer_list * timer)
{
        return !hlist_unhashed_lockless(&timer->entry);
}

```

as far as I see it’s correct, therefore as Rocky is based on RHEL, then that is how it’s meant to be.

Perhaps the mhvtl tape library project should update their software to work with the new kernel?

---

<div class="post-metadata">

**Author:** ![iwalker](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/iwalker/32/2599_2.png) [@iwalker](https://forums.rockylinux.org/u/iwalker)\
**Post date:** [May 30, 2026, 7:10pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/3 "2026-05-30T19:10:41Z")

</div>

I found your github issue: [Build error with Red Hat kernel 5.14.0-687.10.1.el9\_8.0.1.x86\_64 · Issue #178 · markh794/mhvtl · GitHub](https://github.com/markh794/mhvtl/issues/178)

The guy there said it works on Alma, but he doesn’t even have the same kernel version. He is using `5.14.0-687.5.3` and not `5.14.0-687.10.1`

The real question is, is the kernel actually the problem, or does he now need to adapt his driver/module to build with the new kernel features. I’d be interested to know if it builds on 6.x or even 7.x kernels. If not, then that would suggest his code needs updating to work with newer kernels. Easy enough to check, by testing on Rocky 10 (6.x) or Fedora 44 (has kernel 7.x).

---

<div class="post-metadata">

**Author:** ![iwalker](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/iwalker/32/2599_2.png) [@iwalker](https://forums.rockylinux.org/u/iwalker)\
**Post date:** [May 30, 2026, 7:17pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/4 "2026-05-30T19:17:57Z")

</div>

Kernel 7.0.10 from Fedora 44:

```auto
#define timer_container_of(var, callback_timer, timer_fieldname) \
container_of(callback_timer, typeof(*var), timer_fieldname)

/**
* timer_pending - is a timer pending?
* @timer: the timer in question
*
* timer_pending will tell whether a given timer is currently pending,
* or not. Callers must ensure serialization wrt. other operations done
* to this timer, eg. interrupt contexts, or other CPUs on SMP.
*
* Returns: 1 if the timer is pending, 0 if not.
*/
static inline int timer_pending(const struct timer_list * timer)

 return !hlist_unhashed_lockless(&timer->entry);
}

```

would suggest newer kernels are correct and he needs to adapt his driver/module to work with them.

Same here also: [linux/include/linux/timer.h at master · torvalds/linux · GitHub](https://github.com/torvalds/linux/blob/master/include/linux/timer.h) and the commit that introduced the rename: [treewide, timers: Rename from\_timer() to timer\_container\_of() · torvalds/linux@41cb085 · GitHub](https://github.com/torvalds/linux/commit/41cb08555c4164996d67c78b3bf1c658075b75f1#diff-27962f93d3af82317462213521ad9983f6cdbc2317f334d3ccb9501588669f48)

Kind of confirms the fact that they have to change their driver/module to work with newer kernels.

---

<div class="post-metadata">

**Author:** ![iwalker](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/iwalker/32/2599_2.png) [@iwalker](https://forums.rockylinux.org/u/iwalker)\
**Post date:** [May 30, 2026, 7:33pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/5 "2026-05-30T19:33:30Z")

</div>

And Google Search AI results:

 ![image](https://us1.discourse-cdn.com/flex020/uploads/rockylinux/original/2X/2/22636aa090143a497d0c0f82cecae066ad9e984f.png)

I expect once all those changes are made in their module, it will compile fine. Or they can make changes for it to support both old and new kernels with the suggested compatibility wrapper.

Obviously RH have backported it into 5.x kernels hence why it’s showing up. As backporting is normal for RH, then the module code needs updating to work with it.

---

<div class="post-metadata">

**Author:** ![DaveAtFraud](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/daveatfraud/32/2824_2.png) [@DaveAtFraud](https://forums.rockylinux.org/u/DaveAtFraud)\
**Post date:** [May 30, 2026, 9:52pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/6 "2026-05-30T21:52:49Z")

</div>

That’s what I was looking for. Someone among the kernel folks decided to change the name of from\_timer and change it to timer\_container\_of. Hopefully, this means that only the name changed and the functionality hasn’t changed.

I’ll pass the information back to the mhvtl folks and suggest a patch that changes the name of from\_timer. Not sure how Mark tracks kernel changes like this that may affect the mhvtl code.

Thanks for your help on this. I’ll have to play with Google for this sort of search. Used it for finding solutions to error messages for years but not for tracking changes like this.

---

<div class="post-metadata">

**Author:** ![gerry666uk](https://avatars.discourse-cdn.com/v4/letter/g/dbc845/32.png) [@gerry666uk](https://forums.rockylinux.org/u/gerry666uk)\
**Post date:** [May 31, 2026, 1:35pm UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/7 "2026-05-31T13:35:34Z")

</div>

I don’t know how they communicated this change, but I can see that kernel module people must have known about it.  
Rokcy 9.8 kernel

```auto
drivers/media/dvb-core/dmxdev.c
365c365,366
< struct dmxdev_filter *dmxdevfilter = from_timer(dmxdevfilter, t, timer);
---
> struct dmxdev_filter *dmxdevfilter = timer_container_of(dmxdevfilter, t, timer);

```

---

<div class="post-metadata">

**Author:** ![DaveAtFraud](https://sea2.discourse-cdn.com/flex020/user_avatar/forums.rockylinux.org/daveatfraud/32/2824_2.png) [@DaveAtFraud](https://forums.rockylinux.org/u/DaveAtFraud)\
**Post date:** [June 1, 2026, 3:26am UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/8 "2026-06-01T03:26:20Z")

</div>

Found problem!! I was using an old version of config.sh that didn’t have thebackport logic. Pulled new copy and all is good.

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex020/uploads/rockylinux/original/1X/91b7219eec10e30013422e4df76c1d898711a5d5.svg) [@system](https://forums.rockylinux.org/u/system)\
**Post date:** [July 31, 2026, 3:26am UTC](https://forums.rockylinux.org/t/change-to-linux-timer-h-from-5-14-0-611-55-1-to-5-14-0-687-10-1/20548/9 "2026-07-31T03:26:59Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
