summaryrefslogtreecommitdiff
path: root/rust/helpers/poll.c
diff options
context:
space:
mode:
authorAlice Ryhl <aliceryhl@google.com>2025-06-23 13:57:27 +0000
committerChristian Brauner <brauner@kernel.org>2025-07-14 14:12:24 +0200
commitde747bd023c09b5b7f3bf5c952d7b1da77a9caaa (patch)
tree821cb9111e8e85008ab87e8b551ffc0cafde1662 /rust/helpers/poll.c
parent19272b37aa4f83ca52bdf9c16d5d81bdd1354494 (diff)
poll: rust: allow poll_table ptrs to be null
It's possible for a poll_table to be null. This can happen if an end-user just wants to know if a resource has events right now without registering a waiter for when events become available. Furthermore, these null pointers should be handled transparently by the API, so we should not change `from_ptr` to return an `Option`. Thus, change `PollTable` to wrap a raw pointer rather than use a reference so that you can pass null. Comments mentioning `struct poll_table` are changed to just `poll_table` since `poll_table` is a typedef. (It's a typedef because it's supposed to be opaque.) Reviewed-by: Benno Lossin <lossin@kernel.org> Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Diffstat (limited to 'rust/helpers/poll.c')
-rw-r--r--rust/helpers/poll.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/rust/helpers/poll.c b/rust/helpers/poll.c
new file mode 100644
index 000000000000..7e5b1751c2d5
--- /dev/null
+++ b/rust/helpers/poll.c
@@ -0,0 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0
+
+#include <linux/export.h>
+#include <linux/poll.h>
+
+void rust_helper_poll_wait(struct file *filp, wait_queue_head_t *wait_address,
+ poll_table *p)
+{
+ poll_wait(filp, wait_address, p);
+}