lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAfh-jPvPhu6G6cp_NouhLAeHvLPeVj6JzPmzrL1VK+0BM78+g@mail.gmail.com>
Date: Fri, 15 Mar 2024 10:07:42 +0800
From: Enlin Mu <enlinmu@...il.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Enlin Mu <enlin.mu@...look.com>, linux-kernel@...r.kernel.org, enlin.mu@...soc.com, 
	linux-hardening@...r.kernel.org
Subject: Re: [PATCH] hrtimer:Add get_hrtimer_cpu_base()

Thomas Gleixner <tglx@...utronix.de> 于2024年3月14日周四 19:59写道:
>
> On Thu, Mar 14 2024 at 18:45, Enlin Mu wrote:
> > Thomas Gleixner <tglx@...utronix.de> 于2024年3月14日周四 18:22写道:
> >>
> >> On Wed, Mar 13 2024 at 05:30, Enlin Mu wrote:
> >> > From: Enlin Mu <enlin.mu@...soc.com>
> >> >
> >> > On the Arm platform,arch_timer may occur irq strom,
> >> > By using the next_timer of hrtimer_cpu_base, it is
> >> > possible to quickly locate abnormal timers.
> >> > As it is an out of tree modules,the function needs
> >> > to be exproted.
> >>
> >> No. We are not exporting for out of tree code.
> > Can you explain it?
>
> Exporting functions or variables requires an in tree usecase.
>
Thands, I got it.

If patch is following:
---
 include/linux/hrtimer.h     | 1 +
 kernel/time/hrtimer.c       | 1 +
 kernel/time/tick-internal.h | 1 -
 kernel/time/timer_list.c    | 1 +
 4 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
index 2a37d2a8e808..a0eaed4a3edc 100644
--- a/include/linux/hrtimer.h
+++ b/include/linux/hrtimer.h
@@ -278,6 +278,7 @@ static inline void hrtimer_start(struct hrtimer
*timer, ktime_t tim,
 extern int hrtimer_cancel(struct hrtimer *timer);
 extern int hrtimer_try_to_cancel(struct hrtimer *timer);
 extern struct hrtimer_cpu_base *get_hrtimer_cpu_base(int cpu);
+DECLARE_PER_CPU(struct tick_device, tick_cpu_device);

 static inline void hrtimer_start_expires(struct hrtimer *timer,
                                         enum hrtimer_mode mode)
diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index f7cf7d48b91d..49024d07c61b 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -113,6 +113,7 @@ DEFINE_PER_CPU(struct hrtimer_cpu_base, hrtimer_bases) =
                },
        }
 };
+EXPORT_PER_CPU_SYMBOL(hrtimer_bases);

 static const int hrtimer_clock_to_base_table[MAX_CLOCKS] = {
        /* Make sure we catch unsupported clockids */
diff --git a/kernel/time/tick-internal.h b/kernel/time/tick-internal.h
index 5f2105e637bd..96df7d21506c 100644
--- a/kernel/time/tick-internal.h
+++ b/kernel/time/tick-internal.h
@@ -18,7 +18,6 @@ struct timer_events {
 # define TICK_DO_TIMER_NONE    -1
 # define TICK_DO_TIMER_BOOT    -2

-DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
 extern ktime_t tick_next_period;
 extern int tick_do_timer_cpu __read_mostly;

diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
index 1c311c46da50..b6fee42e3861 100644
--- a/kernel/time/timer_list.c
+++ b/kernel/time/timer_list.c
@@ -16,6 +16,7 @@
 #include <linux/uaccess.h>

 #include "tick-internal.h"
+#include <linux/hrtimer.h>

 struct timer_list_iter {
        int cpu;
--

please review and comment.

Thanks

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ