git: 201f968de84d - stable/14 - LinuxKPI: timer KPI *_timer -> timer_* (restore symbols)

From: Bjoern A. Zeeb <bz_at_FreeBSD.org>
Date: Sun, 01 Feb 2026 16:46:05 UTC
The branch stable/14 has been updated by bz:

URL: https://cgit.FreeBSD.org/src/commit/?id=201f968de84dad8c28bfa5262854608e7001f49d

commit 201f968de84dad8c28bfa5262854608e7001f49d
Author:     Bjoern A. Zeeb <bz@FreeBSD.org>
AuthorDate: 2026-01-31 22:43:14 +0000
Commit:     Bjoern A. Zeeb <bz@FreeBSD.org>
CommitDate: 2026-02-01 16:44:52 +0000

    LinuxKPI: timer KPI *_timer -> timer_* (restore symbols)
    
    In c84bfaa2531870a023fa9b267a765b9518ed3350 the symbols for the old
    timer KPI were removed and replaced by inline functions as backup.
    
    This breaks kernel modules (such as drm-kmod, though for that there
    should be a rebuild in the package repo given a __FreeBSD_version
    bump) as symbols are missing now.  Restore the symbols for the stable
    branch.
    
    This is a direct commit for the fix.
    
    Reported by:    nyan
    Reviewed by:    nyan
    Fixes:          c84bfaa25318
    Sponsored by:   The FreeBSD Foundation
    Differential Revision: https://reviews.freebsd.org/D55027
---
 sys/compat/linuxkpi/common/include/linux/timer.h | 14 ++------------
 sys/compat/linuxkpi/common/src/linux_compat.c    | 12 ++++++++++++
 2 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/sys/compat/linuxkpi/common/include/linux/timer.h b/sys/compat/linuxkpi/common/include/linux/timer.h
index 9ab30f3003ac..b1bcbe2756f9 100644
--- a/sys/compat/linuxkpi/common/include/linux/timer.h
+++ b/sys/compat/linuxkpi/common/include/linux/timer.h
@@ -84,23 +84,13 @@ extern unsigned long linux_timer_hz_mask;
 extern int mod_timer(struct timer_list *, int);
 extern void add_timer(struct timer_list *);
 extern void add_timer_on(struct timer_list *, int cpu);
+extern int del_timer(struct timer_list *);
+extern int del_timer_sync(struct timer_list *);
 
 extern int timer_delete(struct timer_list *);
 extern int timer_delete_sync(struct timer_list *);
 extern int timer_shutdown_sync(struct timer_list *);
 
-static inline int
-del_timer(struct timer_list *tl)
-{
-	return (timer_delete(tl));
-}
-
-static inline int
-del_timer_sync(struct timer_list *tl)
-{
-	return (timer_delete_sync(tl));
-}
-
 #define	timer_pending(timer)	callout_pending(&(timer)->callout)
 #define	round_jiffies(j)	\
 	((int)(((j) + linux_timer_hz_mask) & ~linux_timer_hz_mask))
diff --git a/sys/compat/linuxkpi/common/src/linux_compat.c b/sys/compat/linuxkpi/common/src/linux_compat.c
index e5e3d7929759..032a12a427c0 100644
--- a/sys/compat/linuxkpi/common/src/linux_compat.c
+++ b/sys/compat/linuxkpi/common/src/linux_compat.c
@@ -2069,6 +2069,18 @@ timer_delete_sync(struct timer_list *timer)
 	return (1);
 }
 
+int
+del_timer(struct timer_list *timer)
+{
+	return (timer_delete(timer));
+}
+
+int
+del_timer_sync(struct timer_list *timer)
+{
+	return (timer_delete_sync(timer));
+}
+
 int
 timer_shutdown_sync(struct timer_list *timer)
 {