Jens Axboe
b5e683d5ca
eventfd: track eventfd_signal() recursion depth
...
eventfd use cases from aio and io_uring can deadlock due to circular
or resursive calling, when eventfd_signal() tries to grab the waitqueue
lock. On top of that, it's also possible to construct notification
chains that are deep enough that we could blow the stack.
Add a percpu counter that tracks the percpu recursion depth, warn if we
exceed it. The counter is also exposed so that users of eventfd_signal()
can do the right thing if it's non-zero in the context where it is
called.
Cc: stable@vger.kernel.org # 4.19+
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2020-02-03 17:27:38 -07:00
..
2020-01-02 15:34:27 +01:00
2020-01-21 11:06:12 +05:30
2020-01-05 15:13:13 -08:00
2020-01-05 23:22:32 -08:00
2020-01-29 09:51:36 -08:00
2020-01-18 14:26:13 +00:00
2020-01-22 14:22:21 +00:00
2020-01-27 10:30:42 -08:00
2020-01-12 12:32:32 -08:00
2020-01-16 15:48:58 -08:00
2020-01-28 16:02:33 -08:00
2020-01-09 20:08:15 +01:00
2020-01-24 20:54:29 +01:00
2020-01-14 10:50:19 +05:30
2019-12-30 14:27:53 +01:00
2020-01-29 10:15:11 -08:00
2020-01-27 14:35:32 +01:00
2020-01-13 11:44:09 -08:00
2020-01-15 14:10:45 +00:00
2020-01-28 10:07:09 -08:00
2020-01-29 18:16:16 -08:00
2020-01-16 17:32:43 +05:30
2020-01-23 12:37:18 +00:00
2020-01-29 10:09:44 -08:00
2019-12-27 11:02:07 +01:00
2019-12-25 20:47:19 -07:00
2020-01-24 21:03:53 +01:00
2020-01-14 15:16:50 +01:00
2020-01-15 22:55:36 -05:00
2019-12-28 09:44:56 -07:00
2020-01-28 16:02:33 -08:00
2020-01-29 18:16:16 -08:00
2020-01-22 23:04:52 +01:00
2020-01-10 17:20:07 +01:00
2019-12-27 14:20:10 -08:00
2020-01-25 07:12:40 -08:00
2020-01-22 23:04:52 +01:00
2020-01-04 20:23:39 -07:00
2020-01-27 10:24:32 +01:00
2020-01-03 09:32:51 +01:00
2020-01-27 10:24:32 +01:00
2020-01-23 00:35:50 +01:00
2020-01-09 11:30:53 +08:00
2019-12-30 09:59:06 +09:00
2020-01-27 10:55:50 -08:00
2020-01-20 08:14:29 +01:00
2020-01-27 11:09:31 +01:00
2019-12-27 16:40:02 -08:00
2020-02-03 17:27:38 -07:00
2020-01-29 15:45:47 -07:00
2020-01-13 14:15:27 +09:00
2020-01-03 09:42:52 +01:00
2020-01-18 09:19:18 -05:00
2020-01-13 21:48:42 +01:00
2020-01-16 20:03:34 -08:00
2020-01-29 18:16:16 -08:00
2020-01-22 14:50:03 -08:00
2020-01-14 13:27:32 -08:00
2020-01-28 10:07:09 -08:00
2020-01-14 12:20:55 +01:00
2020-01-23 13:15:09 -08:00
2020-01-03 09:33:24 +01:00
2020-01-08 12:52:33 -08:00
2020-01-22 15:22:51 -05:00
2020-01-06 09:45:59 +01:00
2020-01-20 09:19:33 +00:00
2019-12-31 13:15:38 +01:00
2019-12-30 12:01:56 -08:00
2020-01-03 09:42:52 +01:00
2020-01-10 14:00:57 -08:00
2020-01-28 08:46:13 -08:00
2020-01-04 13:55:08 -08:00
2019-12-25 19:51:33 -08:00
2020-01-05 23:22:32 -08:00
2020-01-14 11:54:47 -04:00
2020-01-29 18:53:37 -08:00
2020-01-14 11:54:47 -04:00
2020-01-13 18:19:02 -08:00
2020-01-29 11:20:24 -08:00
2020-01-27 11:00:21 +01:00
2020-01-27 11:31:35 +01:00
2020-01-14 12:20:48 +01:00
2019-12-26 15:17:26 -08:00
2020-01-16 17:09:18 +01:00
2020-01-20 17:04:02 -07:00
2020-01-21 10:50:41 +01:00
2020-01-05 23:22:32 -08:00
2020-01-23 13:15:09 -08:00
2019-12-30 20:19:27 -08:00
2020-01-29 11:20:24 -08:00
2020-01-04 13:49:51 +08:00
2019-12-30 20:31:40 -08:00
2020-01-13 18:16:43 -08:00
2020-01-24 10:24:31 -08:00
2020-01-25 10:05:23 +01:00
2020-01-10 14:00:58 -08:00
2020-01-24 10:37:27 -08:00
2020-01-24 10:24:31 -08:00
2020-01-24 10:24:31 -08:00
2020-01-09 21:23:36 +00:00
2020-01-20 16:19:10 +01:00
2020-01-29 19:38:34 -08:00
2020-01-15 13:39:14 +01:00
2020-01-27 11:00:21 +01:00
2020-01-15 23:26:13 +01:00
2020-01-24 20:40:09 +01:00
2020-01-13 18:31:48 -08:00
2020-01-17 10:19:21 +01:00
2020-01-16 21:47:03 +01:00
2020-01-06 13:33:14 -08:00
2020-01-29 19:38:34 -08:00
2020-01-26 15:28:47 +01:00
2020-01-14 12:20:59 +01:00
2020-01-14 12:20:57 +01:00
2020-01-15 13:39:59 -08:00
2020-01-15 22:55:37 -05:00
2020-01-14 12:20:48 +01:00
2020-01-17 22:33:37 -05:00