Update userfaultfd to 0.8.1

Test: m
Change-Id: I8ba04baeb382665d59e21fc81c0c72f9abe48eb5
diff --git a/crates/userfaultfd/.android-checksum.json b/crates/userfaultfd/.android-checksum.json
new file mode 100644
index 0000000..f4921d0
--- /dev/null
+++ b/crates/userfaultfd/.android-checksum.json
@@ -0,0 +1 @@
+{"package":null,"files":{"README.md":"fd9ce1965c932d374c92e6f7ef1bce654577b899459b1beeb58613af5e71c404","CHANGELOG.md":"fbab2ca5df5a82186be6d30b3d927079724470c64184fad202971b31704d7d3f","cargo_embargo.json":"aa45a963da01d3f018be316cd5b7646a5b413ce2611c5218f2914d2e8a9efd0e","src/lib.rs":"67aecd2486394a10220561dd63ecec7533e0ea7d86ab4d5cca194276694faf55","MODULE_LICENSE_APACHE2":"0d6f8afa3940b7f06bebee651376d43bc8b0d5b437337be2696d30377451e93a","METADATA":"41a29fe2a886c04b541d734c38c199acf651831533e95f7482370d7d48800337","src/builder.rs":"1f9c50df3daa56c6f66ea63c9d5c68f6697142086e384bd1d705d786319b9177",".cargo-checksum.json":"707f6a4be076e593b77f9ed3efc1d71043dc945197e09eb70a22502c5ee01db7","Cargo.toml":"a5361f1be5e04868daeec7ed5d8a8154bf8df513d9dd2fe24d799f9fe7114617","LICENSE":"50f827348bfd5def2df4f30cb41264072cf9c180bd9ed698437e8d85b2482754","LICENSE-APACHE":"50f827348bfd5def2df4f30cb41264072cf9c180bd9ed698437e8d85b2482754","src/event.rs":"1c8c0846ac967c548c1a886de4d055dd1529d5688f0b8e58adc5bfc431a05ca7","Android.bp":"0e228c4d9054d53d6e6f3d12cd94806940c6832752aa26d4973f5d6744498ff2","SECURITY.md":"789b18f8e0f486a10dc1899fecb37df69d494277cc1cbd208c28dbd87a1b06b8","LICENSE-MIT":"38620a3cfaeec97a9197e8c39e436ea7f0bc86699b1f1c35f1aa41785b6d4eac","src/raw.rs":"f8a5048506216e12ff0e650adff8e17bd9a6fff4d25380a990ddbc3506ab7959","Cargo.lock":"cc02bdc5fd36a7a72913f8a0fad71359cd0e071ee8205ceaa839f35595d28dcd","src/error.rs":"a6d1cb3c0829710a06716d6f1dcb4912de251788231a21aa6b77d8197ebb97ec","tests/manpage_example.rs":"20accf0ee454bb0254bbc52bd4eebd44a93e43defde5fd535ea505afe47b7508","examples/manpage.rs":"6c96cf8317a638fdac0da10e087848009d7859d2306ddb2d94ad6b7451f83961"}}
\ No newline at end of file
diff --git a/crates/userfaultfd/.cargo-checksum.json b/crates/userfaultfd/.cargo-checksum.json
index 134cb1f..f01ebcc 100644
--- a/crates/userfaultfd/.cargo-checksum.json
+++ b/crates/userfaultfd/.cargo-checksum.json
@@ -1 +1 @@
-{"files":{"CHANGELOG.md":"24c349af44513c6b6203528abfa52cb005cfc2a981f38dd02232164a4e3946d0","Cargo.lock":"3cf3621a6c16698afea83cdaf4dbe26dc9c8d9c6bd0e28872ecd1c9abe2acafc","Cargo.toml":"0afefada80af75eddf1efa4f5b7a6115e92ea2f3d2990d0f7cf0d9add0918373","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"b74b3340c43ac4cb62222f7227679ae126932dc2a2bc3531db90f19c979b1f2c","SECURITY.md":"3b5277e9f160125b292f3b89495b4c415c9e0bb7e408cdaf74e962771b44bd20","examples/manpage.rs":"874a315962c0fa25d57fcdd36c3e017db0c5a6f1fe0e54c66150dd78995e065c","src/builder.rs":"aff3fd9d56cd55f7600ff4344d36d906770052fdc0249b2ea4836bfa91bad7c1","src/error.rs":"19ecfa61b7c1a5e7ae538f4600397306590cca0a69ff763d7c2782e08dbd9f5b","src/event.rs":"487969707beecfadc24341cdd9f875af53621c30562a4e07aff4c01dbd198919","src/lib.rs":"ade7645789182453a991996abeb1479452809020658e30cf8b3af67f4acbc4e8","src/raw.rs":"1f87cc5209b9942491a848e6834f6e3bde3d98c86b553b6f4907bf860cd9992a","tests/manpage_example.rs":"8bf6d190b6b21243e85118133dafd698009cad9509be229a29e0a75889205751"},"package":"b6a38c7e24af201e66f02659492f86ccd5efa9fd62f2c851fff3961a60e81966"}
\ No newline at end of file
+{"files":{"CHANGELOG.md":"9eee4043fd67a96b77d76cfc98e411e1ed98bcb125d5145748a96ca92b2b5a5e","Cargo.lock":"ca21583b3ff3c8280d3da57b4ecb6acaaa9467e1a8a4622f6adf340cb9eba3b4","Cargo.toml":"1f79c9ed9d22986a1730d0338282f34ca6650b775b4dc4be7895b3a633e3485c","LICENSE-APACHE":"62c7a1e35f56406896d7aa7ca52d0cc0d272ac022b5d2796e7d6905db8a3636a","LICENSE-MIT":"23f18e03dc49df91622fe2a76176497404e46ced8a715d9d2b67a7446571cca3","README.md":"b74b3340c43ac4cb62222f7227679ae126932dc2a2bc3531db90f19c979b1f2c","SECURITY.md":"3b5277e9f160125b292f3b89495b4c415c9e0bb7e408cdaf74e962771b44bd20","examples/manpage.rs":"5c38139bb6158ca3e2f92ae43e0b45060b50e55530d2e14e0f193c800f432f19","src/builder.rs":"c452dbce717b460e983b03bfabacbbcfcefb9333f1dba92e2aeab444669a05b7","src/error.rs":"3bc09988c23d92a687836fefbb7cbb3b87c73b098c9091a6120e252b82ae0121","src/event.rs":"487969707beecfadc24341cdd9f875af53621c30562a4e07aff4c01dbd198919","src/lib.rs":"b247141c3134f19734bb123d7f09fe81b469a428bd1d0a23d6137584708d4e5c","src/raw.rs":"1f87cc5209b9942491a848e6834f6e3bde3d98c86b553b6f4907bf860cd9992a","tests/manpage_example.rs":"8bf6d190b6b21243e85118133dafd698009cad9509be229a29e0a75889205751"},"package":"18d8b176d4d3e420685e964f87c25df5fdd5b26d7eb0d0e7c892d771f5b81035"}
\ No newline at end of file
diff --git a/crates/userfaultfd/Android.bp b/crates/userfaultfd/Android.bp
index 073ed2c..922b3d3 100644
--- a/crates/userfaultfd/Android.bp
+++ b/crates/userfaultfd/Android.bp
@@ -18,7 +18,7 @@
     host_supported: true,
     crate_name: "userfaultfd",
     cargo_env_compat: true,
-    cargo_pkg_version: "0.7.0",
+    cargo_pkg_version: "0.8.1",
     crate_root: "src/lib.rs",
     edition: "2018",
     features: ["default"],
diff --git a/crates/userfaultfd/CHANGELOG.md b/crates/userfaultfd/CHANGELOG.md
index b0797ad..70195d6 100755
--- a/crates/userfaultfd/CHANGELOG.md
+++ b/crates/userfaultfd/CHANGELOG.md
@@ -1,4 +1,9 @@
-### Unreleased
+### 0.8.0 (2024-01-12)
+
+- `IoctlFlags` accepts unknown flags (e.g. due to future kernel changes).
+  `Error::UnrecognizedIoctls` is removed.
+
+### 0.3.1 ~ 0.7.0
 
 - Added `Uffd::read_events` that can read multiple events from the userfaultfd file descriptor.
 - Updated `bitflags` dependency to `2.2.1`.
diff --git a/crates/userfaultfd/Cargo.lock b/crates/userfaultfd/Cargo.lock
index 13fbad0..6990d63 100644
--- a/crates/userfaultfd/Cargo.lock
+++ b/crates/userfaultfd/Cargo.lock
@@ -4,9 +4,9 @@
 
 [[package]]
 name = "aho-corasick"
-version = "1.0.5"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c378d78423fdad8089616f827526ee33c19f2fddbd5de1629152c9593ba4783"
+checksum = "b2969dcb958b36655471fc61f7e416fa76033bdd4bfed0678d8fee1e2d07a1f0"
 dependencies = [
  "memchr",
 ]
@@ -33,9 +33,9 @@
 
 [[package]]
 name = "bitflags"
-version = "2.4.0"
+version = "2.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4682ae6287fcf752ecaabbfcc7b6f9b72aa33933dc23a554d853aea8eea8635"
+checksum = "327762f6e5a765692301e5bb513e0d9fef63be86bbc14528052b1cd3e6f03e07"
 
 [[package]]
 name = "cc"
@@ -63,9 +63,9 @@
 
 [[package]]
 name = "clang-sys"
-version = "1.6.1"
+version = "1.7.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f"
+checksum = "67523a3b4be3ce1989d607a828d036249522dd9c1c8de7f4dd2dae43a37369d1"
 dependencies = [
  "glob",
  "libc",
@@ -92,25 +92,25 @@
 
 [[package]]
 name = "libc"
-version = "0.2.147"
+version = "0.2.152"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3"
+checksum = "13e3bf6590cbc649f4d1a3eefc9d5d6eb746f5200ffb04e5e142700b8faa56e7"
 
 [[package]]
 name = "libloading"
-version = "0.7.4"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f"
+checksum = "c571b676ddfc9a8c12f1f3d3085a7b163966a8fd8098a90640953ce5f6170161"
 dependencies = [
  "cfg-if",
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
 name = "memchr"
-version = "2.6.1"
+version = "2.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f478948fd84d9f8e86967bf432640e46adfb5a4bd4f14ef7e864ab38220534ae"
+checksum = "523dc4f511e55ab87b694dc30d0f820d60906ef06413f93d4d7a1385599cc149"
 
 [[package]]
 name = "minimal-lexical"
@@ -147,27 +147,27 @@
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.66"
+version = "1.0.76"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9"
+checksum = "95fc56cda0b5c3325f5fbbd7ff9fda9e02bb00bb3dac51252d2f1bfa1cb8cc8c"
 dependencies = [
  "unicode-ident",
 ]
 
 [[package]]
 name = "quote"
-version = "1.0.33"
+version = "1.0.35"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae"
+checksum = "291ec9ab5efd934aaf503a6466c5d5251535d108ee747472c3977cc5acc868ef"
 dependencies = [
  "proc-macro2",
 ]
 
 [[package]]
 name = "regex"
-version = "1.9.4"
+version = "1.10.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12de2eff854e5fa4b1295edd650e227e9d8fb0c9e90b12e7f36d6a6811791a29"
+checksum = "380b951a9c5e80ddfd6136919eef32310721aa4aacd4889a8d39124b026ab343"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -177,9 +177,9 @@
 
 [[package]]
 name = "regex-automata"
-version = "0.3.7"
+version = "0.4.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49530408a136e16e5b486e883fbb6ba058e8e4e8ae6621a77b048b314336e629"
+checksum = "5f804c7828047e88b2d32e2d7fe5a105da8ee3264f01902f796c8e067dc2483f"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -188,9 +188,9 @@
 
 [[package]]
 name = "regex-syntax"
-version = "0.7.5"
+version = "0.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da"
+checksum = "c08c74e62047bb2de4ff487b251e4a92e24f48745648451635cec7d591162d9f"
 
 [[package]]
 name = "rustc-hash"
@@ -200,15 +200,15 @@
 
 [[package]]
 name = "shlex"
-version = "1.1.0"
+version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3"
+checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380"
 
 [[package]]
 name = "syn"
-version = "2.0.29"
+version = "2.0.48"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a"
+checksum = "0f3531638e407dfc0814761abb7c00a5b54992b849452a0646b7f65c9f770f3f"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -217,18 +217,18 @@
 
 [[package]]
 name = "thiserror"
-version = "1.0.47"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f"
+checksum = "d54378c645627613241d077a3a79db965db602882668f9136ac42af9ecb730ad"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.47"
+version = "1.0.56"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b"
+checksum = "fa0faa943b50f3db30a20aa7e265dbc66076993efed8463e8de414e5d06d3471"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -237,13 +237,13 @@
 
 [[package]]
 name = "unicode-ident"
-version = "1.0.11"
+version = "1.0.12"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c"
+checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b"
 
 [[package]]
 name = "userfaultfd"
-version = "0.7.0"
+version = "0.8.1"
 dependencies = [
  "bitflags",
  "cfg-if",
@@ -265,23 +265,67 @@
 ]
 
 [[package]]
-name = "winapi"
-version = "0.3.9"
+name = "windows-sys"
+version = "0.48.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
+checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9"
 dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
+ "windows-targets",
 ]
 
 [[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
+name = "windows-targets"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
+checksum = "9a2fa6e2155d7247be68c096456083145c183cbbbc2764150dda45a87197940c"
+dependencies = [
+ "windows_aarch64_gnullvm",
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_gnullvm",
+ "windows_x86_64_msvc",
+]
 
 [[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
+name = "windows_aarch64_gnullvm"
+version = "0.48.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
+checksum = "2b38e32f0abccf9987a4e3079dfb67dcd799fb61361e53e2882c3cbaf0d905d8"
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dc35310971f3b2dbbf3f0690a219f40e2d9afcf64f9ab7cc1be722937c26b4bc"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a75915e7def60c94dcef72200b9a8e58e5091744960da64ec734a6c6e9b3743e"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8f55c233f70c4b27f66c523580f78f1004e8b5a8b659e05a4eb49d4166cca406"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "53d40abd2583d23e4718fddf1ebec84dbff8381c07cae67ff7768bbf19c6718e"
+
+[[package]]
+name = "windows_x86_64_gnullvm"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0b7b52767868a23d5bab768e390dc5f5c55825b6d30b86c844ff2dc7414044cc"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.48.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538"
diff --git a/crates/userfaultfd/Cargo.toml b/crates/userfaultfd/Cargo.toml
index a43c013..7bbf1e0 100644
--- a/crates/userfaultfd/Cargo.toml
+++ b/crates/userfaultfd/Cargo.toml
@@ -12,7 +12,7 @@
 [package]
 edition = "2018"
 name = "userfaultfd"
-version = "0.7.0"
+version = "0.8.1"
 authors = ["The Wasmtime Project Developers"]
 description = "Rust bindings for the Linux userfaultfd functionality"
 readme = "README.md"
@@ -20,7 +20,7 @@
 repository = "https://github.com/bytecodealliance/userfaultfd-rs"
 
 [dependencies.bitflags]
-version = "2.2.1"
+version = "2.4.0"
 
 [dependencies.cfg-if]
 version = "^1.0.0"
diff --git a/crates/userfaultfd/METADATA b/crates/userfaultfd/METADATA
index 7c5f394..1aa4798 100644
--- a/crates/userfaultfd/METADATA
+++ b/crates/userfaultfd/METADATA
@@ -1,17 +1,17 @@
 name: "userfaultfd"
 description: "Rust bindings for the Linux userfaultfd functionality"
 third_party {
-  version: "0.7.0"
+  version: "0.8.1"
   license_type: NOTICE
   last_upgrade_date {
-    year: 2023
+    year: 2024
     month: 12
-    day: 16
+    day: 20
   }
   homepage: "https://crates.io/crates/userfaultfd"
   identifier {
     type: "Archive"
-    value: "https://static.crates.io/crates/userfaultfd/userfaultfd-0.7.0.crate"
-    version: "0.7.0"
+    value: "https://static.crates.io/crates/userfaultfd/userfaultfd-0.8.1.crate"
+    version: "0.8.1"
   }
 }
diff --git a/crates/userfaultfd/examples/manpage.rs b/crates/userfaultfd/examples/manpage.rs
index 1de593e..d0edeae 100644
--- a/crates/userfaultfd/examples/manpage.rs
+++ b/crates/userfaultfd/examples/manpage.rs
@@ -29,8 +29,9 @@
     loop {
         // See what poll() tells us about the userfaultfd
 
-        let pollfd = PollFd::new(&uffd, PollFlags::POLLIN);
-        let nready = poll(&mut [pollfd], -1).expect("poll");
+        let mut fds = [PollFd::new(&uffd, PollFlags::POLLIN)];
+        let nready = poll(&mut fds, -1).expect("poll");
+        let pollfd = fds[0];
 
         println!("\nfault_handler_thread():");
         let revents = pollfd.revents().unwrap();
diff --git a/crates/userfaultfd/src/builder.rs b/crates/userfaultfd/src/builder.rs
index a200148..7b2a599 100644
--- a/crates/userfaultfd/src/builder.rs
+++ b/crates/userfaultfd/src/builder.rs
@@ -187,8 +187,7 @@
         unsafe {
             raw::api(uffd.fd, &mut api as *mut raw::uffdio_api)?;
         }
-        let supported =
-            IoctlFlags::from_bits(api.ioctls).ok_or(Error::UnrecognizedIoctls(api.ioctls))?;
+        let supported = IoctlFlags::from_bits_retain(api.ioctls);
         if !supported.contains(self.req_ioctls) {
             Err(Error::UnsupportedIoctls(supported))
         } else {
diff --git a/crates/userfaultfd/src/error.rs b/crates/userfaultfd/src/error.rs
index f66806a..fe28e52 100644
--- a/crates/userfaultfd/src/error.rs
+++ b/crates/userfaultfd/src/error.rs
@@ -38,10 +38,6 @@
     #[error("Unrecognized event in uffd_msg: {0}")]
     UnrecognizedEvent(u8),
 
-    /// An unrecognized ioctl bit was set in the result of API initialization or registration.
-    #[error("Unrecognized ioctl flags: {0}")]
-    UnrecognizedIoctls(u64),
-
     /// Requested ioctls were not available when initializing the API.
     #[error("Requested ioctls unsupported; supported: {0:?}")]
     UnsupportedIoctls(IoctlFlags),
diff --git a/crates/userfaultfd/src/lib.rs b/crates/userfaultfd/src/lib.rs
index e18ef3c..af0e530 100644
--- a/crates/userfaultfd/src/lib.rs
+++ b/crates/userfaultfd/src/lib.rs
@@ -118,7 +118,7 @@
         unsafe {
             raw::register(self.as_raw_fd(), &mut register as *mut raw::uffdio_register)?;
         }
-        IoctlFlags::from_bits(register.ioctls).ok_or(Error::UnrecognizedIoctls(register.ioctls))
+        Ok(IoctlFlags::from_bits_retain(register.ioctls))
     }
 
     /// Unregister a memory address range from the userfaultfd object.
@@ -377,6 +377,9 @@
         #[cfg(feature = "linux5_7")]
         const WRITE_PROTECT = 1 << raw::_UFFDIO_WRITEPROTECT;
         const API = 1 << raw::_UFFDIO_API;
+
+        /// Unknown ioctls flags are allowed to be robust to future kernel changes.
+        const _ = !0;
     }
 }
 
diff --git a/pseudo_crate/Cargo.lock b/pseudo_crate/Cargo.lock
index 8b5def0..f6fc66e 100644
--- a/pseudo_crate/Cargo.lock
+++ b/pseudo_crate/Cargo.lock
@@ -5755,9 +5755,9 @@
 
 [[package]]
 name = "userfaultfd"
-version = "0.7.0"
+version = "0.8.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b6a38c7e24af201e66f02659492f86ccd5efa9fd62f2c851fff3961a60e81966"
+checksum = "18d8b176d4d3e420685e964f87c25df5fdd5b26d7eb0d0e7c892d771f5b81035"
 dependencies = [
  "bitflags 2.6.0",
  "cfg-if",
diff --git a/pseudo_crate/Cargo.toml b/pseudo_crate/Cargo.toml
index 6484aad..9c5dc6c 100644
--- a/pseudo_crate/Cargo.toml
+++ b/pseudo_crate/Cargo.toml
@@ -369,7 +369,7 @@
 unsafe-libyaml = "=0.2.10"
 untrusted = "=0.7.1"
 url = "=2.3.1"
-userfaultfd = "=0.7.0"
+userfaultfd = "=0.8.1"
 userfaultfd-sys = "=0.5.0"
 utf-8 = "=0.7.6"
 uuid = "=1.7.0"