{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":207181317,"defaultBranch":"rust-next","name":"linux","ownerLogin":"Rust-for-Linux","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2019-09-08T22:26:32.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/54721195?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1715545006.0","currentOid":""},"activityList":{"items":[{"before":"2e2592fb7d2165e68073020066789bd8860678d0","after":"0ba66aa32900fdbf23461296a381686d1411d401","ref":"refs/heads/staging/dev","pushedAt":"2024-06-17T22:51:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: drm: gem: Add GEM object abstraction\n\nThe DRM GEM subsystem is the DRM memory management subsystem used by\nmost modern drivers. Add a Rust abstraction to allow Rust DRM driver\nimplementations to use it.\n\nSigned-off-by: Asahi Lina \nCo-developed-by: Danilo Krummrich \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: drm: gem: Add GEM object abstraction"}},{"before":"6530ecc4ac729a040a955a5e2d13c37d671b6e5c","after":"d17331cf0a5c6b70d5a657eeb2be25495582662c","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-17T22:51:36.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"0a137e568c054362d0988cd65c2960de3172ff41","after":"2e2592fb7d2165e68073020066789bd8860678d0","ref":"refs/heads/staging/dev","pushedAt":"2024-06-15T02:10:26.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: drm: gem: Add GEM object abstraction\n\nThe DRM GEM subsystem is the DRM memory management subsystem used by\nmost modern drivers. Add a Rust abstraction to allow Rust DRM driver\nimplementations to use it.\n\nSigned-off-by: Asahi Lina \nCo-developed-by: Danilo Krummrich \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: drm: gem: Add GEM object abstraction"}},{"before":"67c52781b1d338389e5bb822095ff5347b888bb4","after":"6530ecc4ac729a040a955a5e2d13c37d671b6e5c","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-15T02:09:58.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"8f5d38cf42672216b6162952b8ad13a9b15ba78c","after":"0a137e568c054362d0988cd65c2960de3172ff41","ref":"refs/heads/staging/dev","pushedAt":"2024-06-12T22:55:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: drm: gem: Add GEM object abstraction\n\nThe DRM GEM subsystem is the DRM memory management subsystem used by\nmost modern drivers. Add a Rust abstraction to allow Rust DRM driver\nimplementations to use it.\n\nSigned-off-by: Asahi Lina \nCo-developed-by: Danilo Krummrich \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: drm: gem: Add GEM object abstraction"}},{"before":"41bfbd2e248d23ee0906048e12743eeb83075bcc","after":"67c52781b1d338389e5bb822095ff5347b888bb4","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-12T22:55:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"0084313fe9bcad208f9180bc9f490d17277f9d98","after":"a126eca844353360ebafa9088d22865cb8e022e3","ref":"refs/heads/rust-fixes","pushedAt":"2024-06-11T22:08:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"ojeda","name":"Miguel Ojeda","path":"/ojeda","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1054456?s=80&v=4"},"commit":{"message":"rust: avoid unused import warning in `rusttest`\n\nWhen compiling for the `rusttest` target, the `core::ptr` import is\nunused since its only use happens in the `reserve()` method which is\nnot compiled in that target:\n\n warning: unused import: `core::ptr`\n --> rust/kernel/alloc/vec_ext.rs:7:5\n |\n 7 | use core::ptr;\n | ^^^^^^^^^\n |\n = note: `#[warn(unused_imports)]` on by default\n\nThus clean it.\n\nFixes: 97ab3e8eec0c (\"rust: alloc: fix dangling pointer in VecExt::reserve()\")\nReviewed-by: Alice Ryhl \nReviewed-by: Danilo Krummrich \nLink: https://lore.kernel.org/r/20240519210735.587323-1-ojeda@kernel.org\nSigned-off-by: Miguel Ojeda ","shortMessageHtmlLink":"rust: avoid unused import warning in rusttest"}},{"before":"1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0","after":"0084313fe9bcad208f9180bc9f490d17277f9d98","ref":"refs/heads/rust-fixes","pushedAt":"2024-06-11T21:51:40.000Z","pushType":"push","commitsCount":709,"pusher":{"login":"ojeda","name":"Miguel Ojeda","path":"/ojeda","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1054456?s=80&v=4"},"commit":{"message":"arch: um: rust: Use the generated target.json again\n\nThe Rust compiler can take a target config from 'target.json', which is\ngenerated by scripts/generate_rust_target.rs. It used to be that all\nLinux architectures used this to generate a target.json, but now\narchitectures must opt-in to this, or they will default to the Rust\ncompiler's built-in target definition.\n\nThis is mostly okay for (64-bit) x86 and UML, except that it can\ngenerate SSE instructions, which we can't use in the kernel. So\nre-instate the custom target.json, which disables SSE (and generally\nenables the 'soft-float' feature). This fixes the following compile\nerror:\n\nerror: :0:0: in function _RNvMNtCs5QSdWC790r4_4core3f32f7next_up float (float): SSE register return with SSE disabled\n\nFixes: f82811e22b48 (\"rust: Refactor the build target to allow the use of builtin targets\")\nSigned-off-by: David Gow \nReviewed-by: Boqun Feng \nLink: https://lore.kernel.org/r/20240529093336.4075206-1-davidgow@google.com\nCc: stable@vger.kernel.org\nSigned-off-by: Miguel Ojeda ","shortMessageHtmlLink":"arch: um: rust: Use the generated target.json again"}},{"before":"eaa432058409b3324d794a5d411b9daacc1ca5b0","after":"8f5d38cf42672216b6162952b8ad13a9b15ba78c","ref":"refs/heads/staging/dev","pushedAt":"2024-06-11T12:30:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: drm: gem: Add GEM object abstraction\n\nThe DRM GEM subsystem is the DRM memory management subsystem used by\nmost modern drivers. Add a Rust abstraction to allow Rust DRM driver\nimplementations to use it.\n\nSigned-off-by: Asahi Lina \nCo-developed-by: Danilo Krummrich \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: drm: gem: Add GEM object abstraction"}},{"before":"f5dc6c2a5f66728f209bb70ef2ae762b8a960f3e","after":"eaa432058409b3324d794a5d411b9daacc1ca5b0","ref":"refs/heads/staging/dev","pushedAt":"2024-06-10T18:26:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: drm: gem: Add GEM object abstraction\n\nThe DRM GEM subsystem is the DRM memory management subsystem used by\nmost modern drivers. Add a Rust abstraction to allow Rust DRM driver\nimplementations to use it.\n\nSigned-off-by: Asahi Lina \nCo-developed-by: Danilo Krummrich \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: drm: gem: Add GEM object abstraction"}},{"before":"7a5d6b9d5841830c7551b5672efd44be19ab6712","after":"41bfbd2e248d23ee0906048e12743eeb83075bcc","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-10T18:25:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"5ea8474163e1667a2a5df26746df61546a957a9b","after":"f5dc6c2a5f66728f209bb70ef2ae762b8a960f3e","ref":"refs/heads/staging/dev","pushedAt":"2024-06-10T18:06:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: drm: gem: Add GEM object abstraction\n\nThe DRM GEM subsystem is the DRM memory management subsystem used by\nmost modern drivers. Add a Rust abstraction to allow Rust DRM driver\nimplementations to use it.\n\nSigned-off-by: Asahi Lina \nCo-developed-by: Danilo Krummrich \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: drm: gem: Add GEM object abstraction"}},{"before":"8c251856c87ae1b50817a5efa3a6eb1718d539b9","after":"7a5d6b9d5841830c7551b5672efd44be19ab6712","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-10T18:06:18.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"0683e186929c4922d565e5315525925aa2d8d686","after":"5ea8474163e1667a2a5df26746df61546a957a9b","ref":"refs/heads/staging/dev","pushedAt":"2024-06-10T16:32:09.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add firmware abstractions\n\nAdd an abstraction around the kernels firmware API to request firmware\nimages. The abstraction provides functions to access the firmware\nbuffer and / or copy it to a new buffer allocated with a given allocator\nbackend.\n\nThe firmware is released once the abstraction is dropped.\n\nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add firmware abstractions"}},{"before":"e98a3de09cfc9fae923c259a48e3622cc2a6bb2e","after":"8c251856c87ae1b50817a5efa3a6eb1718d539b9","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-10T16:31:41.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"821e396f08357fe300472fe78ec3da5b46fcbdf7","after":"0683e186929c4922d565e5315525925aa2d8d686","ref":"refs/heads/staging/dev","pushedAt":"2024-06-07T12:12:11.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add firmware abstractions\n\nAdd an abstraction around the kernels firmware API to request firmware\nimages. The abstraction provides functions to access the firmware\nbuffer and / or copy it to a new buffer allocated with a given allocator\nbackend.\n\nThe firmware is released once the abstraction is dropped.\n\nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add firmware abstractions"}},{"before":"de3ee5f5563d214e8f3f51a5b4f6bea06ed4e1d9","after":"e98a3de09cfc9fae923c259a48e3622cc2a6bb2e","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-07T12:11:55.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"43ed6b704779b0b4df9a585d5329bba782e6ece4","after":"821e396f08357fe300472fe78ec3da5b46fcbdf7","ref":"refs/heads/staging/dev","pushedAt":"2024-06-04T09:50:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add firmware abstractions\n\nAdd an abstraction around the kernels firmware API to request firmware\nimages. The abstraction provides functions to access the firmware\nbuffer and / or copy it to a new buffer allocated with a given allocator\nbackend.\n\nThe firmware is released once the abstraction is dropped.\n\nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add firmware abstractions"}},{"before":"5b8860f9e3cfc6b19a7b5247d858e0f526bba011","after":"de3ee5f5563d214e8f3f51a5b4f6bea06ed4e1d9","ref":"refs/heads/staging/rust-device","pushedAt":"2024-06-04T09:49:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"bb0094ab5ad52f90dbe03695f37deb0e38ff444a","after":"147b70bb7d0e8c7d554a188ff82c737b1a6e08df","ref":"refs/heads/rust-dev","pushedAt":"2024-05-30T17:08:23.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"fbq","name":"Boqun Feng","path":"/fbq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/673448?s=80&v=4"},"commit":{"message":"arch: um: rust: Use the generated target.json again\n\nThe Rust compiler can take a target config from 'target.json', which is\ngenerated by scripts/generate_rust_target.rs. It used to be that all\nLinux architectures used this to generate a target.json, but now\narchitectures must opt-in to this, or they will default to the Rust\ncompiler's built-in target definition.\n\nThis is mostly okay for (64-bit) x86 and UML, except that it can\ngenerate SSE instructions, which we can't use in the kernel. So\nre-instate the custom target.json, which disables SSE (and generally\nenables the 'soft-float' feature). This fixes the following compile\nerror:\n\nerror: :0:0: in function _RNvMNtCs5QSdWC790r4_4core3f32f7next_up float (float): SSE register return with SSE disabled\n\nFixes: f82811e22b48 (\"rust: Refactor the build target to allow the use of builtin targets\")\nSigned-off-by: David Gow \nReviewed-by: Boqun Feng \nLink: https://lore.kernel.org/r/20240529093336.4075206-1-davidgow@google.com","shortMessageHtmlLink":"arch: um: rust: Use the generated target.json again"}},{"before":"4c3a73a63142a2e1f83d22c7c3701769ac81d992","after":"bb0094ab5ad52f90dbe03695f37deb0e38ff444a","ref":"refs/heads/rust-dev","pushedAt":"2024-05-28T23:45:33.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"fbq","name":"Boqun Feng","path":"/fbq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/673448?s=80&v=4"},"commit":{"message":"rust: file: add abstraction for `poll_table`\n\nThe existing `CondVar` abstraction is a wrapper around\n`wait_queue_head`, but it does not support all use-cases of the C\n`wait_queue_head` type. To be specific, a `CondVar` cannot be registered\nwith a `struct poll_table`. This limitation has the advantage that you\ndo not need to call `synchronize_rcu` when destroying a `CondVar`.\n\nHowever, we need the ability to register a `poll_table` with a\n`wait_queue_head` in Rust Binder. To enable this, introduce a type\ncalled `PollCondVar`, which is like `CondVar` except that you can\nregister a `poll_table`. We also introduce `PollTable`, which is a safe\nwrapper around `poll_table` that is intended to be used with\n`PollCondVar`.\n\nThe destructor of `PollCondVar` unconditionally calls `synchronize_rcu`\nto ensure that the removal of epoll waiters has fully completed before\nthe `wait_queue_head` is destroyed.\n\nThat said, `synchronize_rcu` is rather expensive and is not needed in\nall cases: If we have never registered a `poll_table` with the\n`wait_queue_head`, then we don't need to call `synchronize_rcu`. (And\nthis is a common case in Binder - not all processes use Binder with\nepoll.) The current implementation does not account for this, but if we\nfind that it is necessary to improve this, a future patch could store a\nboolean next to the `wait_queue_head` to keep track of whether a\n`poll_table` has ever been registered.\n\nReviewed-by: Benno Lossin \nReviewed-by: Martin Rodriguez Reboredo \nReviewed-by: Trevor Gross \nSigned-off-by: Alice Ryhl \nLink: https://lore.kernel.org/r/20240517-alice-file-v6-8-b25bafdc9b97@google.com","shortMessageHtmlLink":"rust: file: add abstraction for poll_table"}},{"before":"c6bf07236e57f3a4a87418caab9afff7d4010dd3","after":"4c3a73a63142a2e1f83d22c7c3701769ac81d992","ref":"refs/heads/rust-dev","pushedAt":"2024-05-28T18:12:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"fbq","name":"Boqun Feng","path":"/fbq","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/673448?s=80&v=4"},"commit":{"message":"kbuild: rust: remove now-unneeded `rusttest` custom sysroot handling\n\nSince we dropped our custom `alloc` in commit 9d0441bab775 (\"rust: alloc:\nremove our fork of the `alloc` crate\"), there is no need anymore to keep\nthe custom sysroot hack.\n\nThus delete it, which makes the target way simpler and faster too.\n\nThis also means we are not using Cargo for anything at the moment,\nand that no download is required anymore, so update the main `Makefile`\nand the documentation accordingly.\n\nSigned-off-by: Miguel Ojeda \nLink: https://lore.kernel.org/r/20240528163502.411600-1-ojeda@kernel.org","shortMessageHtmlLink":"kbuild: rust: remove now-unneeded rusttest custom sysroot handling"}},{"before":"e67572cd2204894179d89bd7b984072f19313b03","after":"1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0","ref":"refs/heads/rust-fixes","pushedAt":"2024-05-27T09:56:08.000Z","pushType":"push","commitsCount":10000,"pusher":{"login":"ojeda","name":"Miguel Ojeda","path":"/ojeda","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1054456?s=80&v=4"},"commit":{"message":"Linux 6.10-rc1","shortMessageHtmlLink":"Linux 6.10-rc1"}},{"before":"97ab3e8eec0ce79d9e265e6c9e4c480492180409","after":"1613e604df0cd359cf2a7fbd9be7a0bcfacfabd0","ref":"refs/heads/rust-next","pushedAt":"2024-05-27T09:55:58.000Z","pushType":"push","commitsCount":10000,"pusher":{"login":"ojeda","name":"Miguel Ojeda","path":"/ojeda","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1054456?s=80&v=4"},"commit":{"message":"Linux 6.10-rc1","shortMessageHtmlLink":"Linux 6.10-rc1"}},{"before":"29396b556208908913b363b64bab43e6e94cea03","after":"43ed6b704779b0b4df9a585d5329bba782e6ece4","ref":"refs/heads/staging/dev","pushedAt":"2024-05-20T16:25:45.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add firmware abstractions\n\nAdd an abstraction around the kernels firmware API to request firmware\nimages. The abstraction provides functions to access the firmware\nbuffer and / or copy it to a new buffer allocated with a given allocator\nbackend.\n\nThe firmware is released once the abstraction is dropped.\n\nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add firmware abstractions"}},{"before":"97f80ecb5a539ff4f2e88aa83c6e41b77f32763e","after":"29396b556208908913b363b64bab43e6e94cea03","ref":"refs/heads/staging/dev","pushedAt":"2024-05-20T16:16:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add firmware abstractions\n\nAdd an abstraction around the kernels firmware API to request firmware\nimages. The abstraction provides functions to access the firmware\nbuffer and / or copy it to a new buffer allocated with a given allocator\nbackend.\n\nThe firmware is released once the abstraction is dropped.\n\nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add firmware abstractions"}},{"before":"22f7b179d5fe89fbca59a1f1e91086972939f7e6","after":"5b8860f9e3cfc6b19a7b5247d858e0f526bba011","ref":"refs/heads/staging/rust-device","pushedAt":"2024-05-20T16:15:19.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the resource on invocation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}},{"before":"59bb93a093f6ba25c1a484b69acb7060e890063b","after":"97f80ecb5a539ff4f2e88aa83c6e41b77f32763e","ref":"refs/heads/staging/dev","pushedAt":"2024-05-20T15:19:28.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add firmware abstractions\n\nAdd an abstraction around the kernels firmware API to request firmware\nimages. The abstraction provides functions to access the firmware\nbuffer and / or copy it to a new buffer allocated with a given allocator\nbackend.\n\nThe firmware is released once the abstraction is dropped.\n\nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add firmware abstractions"}},{"before":"eb6e9e8f065b0c5d426065688dd83cde36edfd7e","after":"59bb93a093f6ba25c1a484b69acb7060e890063b","ref":"refs/heads/staging/dev","pushedAt":"2024-05-20T01:24:48.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add firmware abstractions\n\nAdd an abstraction around the kernels firmware API to request firmware\nimages. The abstraction provides functions to access the firmware\nbuffer and / or copy it to a new buffer allocated with a given allocator\nbackend.\n\nThe firmware is released once the abstraction is dropped.\n\nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add firmware abstractions"}},{"before":"80ebc4f0ad9a6ed252fbcf80563984a65fca25c2","after":"22f7b179d5fe89fbca59a1f1e91086972939f7e6","ref":"refs/heads/staging/rust-device","pushedAt":"2024-05-20T01:23:49.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"dakr","name":"Danilo Krummrich","path":"/dakr","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/3908202?s=80&v=4"},"commit":{"message":"rust: add devres abstraction\n\nAdd a Rust abstraction for the kernel's devres (device resource\nmanagement) implementation.\n\nThe Devres type acts as a container to manage the lifetime and\naccessibility of device bound resources. Therefore it registers a\ndevres callback and revokes access to the ressource on invokation.\n\nUsers of the Devres abstraction can simply free the corresponding\nresources in their Drop implementation, which is invoked when either the\nDevres instance goes out of scope or the devres callback leads to the\nresource being revoked, which implies a call to drop_in_place().\n\nCo-developed-by: Philipp Stanner \nSigned-off-by: Philipp Stanner \nSigned-off-by: Danilo Krummrich ","shortMessageHtmlLink":"rust: add devres abstraction"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEZ9viWwA","startCursor":null,"endCursor":null}},"title":"Activity ยท Rust-for-Linux/linux"}