diff mbox series

[v13,02/13] eventfd: Export eventfd_wake_count to modules

Message ID 20210831103634.33-3-xieyongji@bytedance.com
State New
Headers show
Series Introduce VDUSE - vDPA Device in Userspace | expand

Commit Message

Yongji Xie Aug. 31, 2021, 10:36 a.m. UTC
Export eventfd_wake_count so that some modules can use
the eventfd_signal_count() to check whether the
eventfd_signal() call should be deferred to a safe context.

Signed-off-by: Xie Yongji <xieyongji@bytedance.com>
---
 fs/eventfd.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Jason Wang Sept. 1, 2021, 2:50 a.m. UTC | #1
在 2021/8/31 下午6:36, Xie Yongji 写道:
> Export eventfd_wake_count so that some modules can use

> the eventfd_signal_count() to check whether the

> eventfd_signal() call should be deferred to a safe context.

>

> Signed-off-by: Xie Yongji <xieyongji@bytedance.com>



And this matches the comment inside eventfd_signal():

         /*
          * Deadlock or stack overflow issues can happen if we recurse here
          * through waitqueue wakeup handlers. If the caller users 
potentially
          * nested waitqueues with custom wakeup handlers, then it should
          * check eventfd_signal_count() before calling this function. If
          * it returns true, the eventfd_signal() call should be 
deferred to a
          * safe context.
          */


So:

Acked-by: Jason Wang <jasowang@redhat.com>



> ---

>   fs/eventfd.c | 1 +

>   1 file changed, 1 insertion(+)

>

> diff --git a/fs/eventfd.c b/fs/eventfd.c

> index e265b6dd4f34..1b3130b8d6c1 100644

> --- a/fs/eventfd.c

> +++ b/fs/eventfd.c

> @@ -26,6 +26,7 @@

>   #include <linux/uio.h>

>   

>   DEFINE_PER_CPU(int, eventfd_wake_count);

> +EXPORT_PER_CPU_SYMBOL_GPL(eventfd_wake_count);

>   

>   static DEFINE_IDA(eventfd_ida);

>
diff mbox series

Patch

diff --git a/fs/eventfd.c b/fs/eventfd.c
index e265b6dd4f34..1b3130b8d6c1 100644
--- a/fs/eventfd.c
+++ b/fs/eventfd.c
@@ -26,6 +26,7 @@ 
 #include <linux/uio.h>
 
 DEFINE_PER_CPU(int, eventfd_wake_count);
+EXPORT_PER_CPU_SYMBOL_GPL(eventfd_wake_count);
 
 static DEFINE_IDA(eventfd_ida);