dma_buf_unpin() requires the caller to hold the exporter's dma_resv
lock:
void dma_buf_unpin(struct dma_buf_attachment *attach)
{
...
dma_resv_assert_held(dmabuf->resv);
...
}
iopt_release_pages() calls dma_buf_unpin() without taking that lock,
so every iommufd_ioas_destroy()/iommufd_ioas_unmap() that releases
the last reference on a DMABUF-backed iopt_pages triggers a WARN.
This was hit while running tools/testing/selftests/iommu/iommufd:
WARNING: drivers/dma-buf/dma-buf.c:1137 at dma_buf_unpin+0x62/0x70
RIP: 0010:dma_buf_unpin+0x62/0x70
Call Trace:
<TASK>
dma_buf_unpin+0x62/0x70
iopt_release_pages+0xe4/0x190
iopt_unmap_iova_range+0x1c7/0x290
iopt_unmap_all+0x1a/0x30
iommufd_ioas_destroy+0x1d/0x50
iommufd_fops_release+0x93/0x150
__fput+0xfc/0x2c0
__x64_sys_close+0x3d/0x80
do_syscall_64+0x65/0x180
</TASK>
Take the dma_resv lock around dma_buf_unpin() in iopt_release_pages(),
matching the iopt_map_dmabuf() convention. dma_buf_detach() acquires the
reservation lock internally, so it must remain outside the locked region.
Fixes: 8c5f9645c389 ("iommufd: Add dma_buf_pin()")
Reported-by: Ankit Soni <Ankit.Soni(a)amd.com>
Signed-off-by: Ankit Soni <Ankit.Soni(a)amd.com>
---
drivers/iommu/iommufd/pages.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/iommu/iommufd/pages.c b/drivers/iommu/iommufd/pages.c
index 9bdb2945afe1..7b64002e54b9 100644
--- a/drivers/iommu/iommufd/pages.c
+++ b/drivers/iommu/iommufd/pages.c
@@ -1663,7 +1663,9 @@ void iopt_release_pages(struct kref *kref)
if (iopt_is_dmabuf(pages) && pages->dmabuf.attach) {
struct dma_buf *dmabuf = pages->dmabuf.attach->dmabuf;
+ dma_resv_lock(dmabuf->resv, NULL);
dma_buf_unpin(pages->dmabuf.attach);
+ dma_resv_unlock(dmabuf->resv);
dma_buf_detach(dmabuf, pages->dmabuf.attach);
dma_buf_put(dmabuf);
WARN_ON(!list_empty(&pages->dmabuf.tracker));
--
2.43.0
(certifitasap(a)gmail.com) No Exam: When you buy a genuine NEBOSH Certification, there will be no need to take the exams. Convenience: Many people have tight schedules and do not have enough time to go through the exams or testing process. Buying the NEBOSH Certification will be very convenient for them. Apply for the NEBOSH certificate in Malaysia https://streamable.com/2yj6u6
To check NEBOSH results online in Kuwait or the UAE. Where can I buy the NEBOSH Diploma online? How to see my registered NEBOSH certificates? Get the NEBOSH health and safety certificate in the USA. France. Luxembourg. Switzerland. Colombia. India. Turkey. Kuwait. Qatar. Hong Kong. Bahrain. Malaysia. Russian. Japan. Ireland. Saudi Arabia. Egypt . China. Taiwan. Israel. Indonesia Lebanon. Jordan. Serbia. Iran. Thailand. United Arab Emirates. Iraq. Oman Buy original NEBOSH diplomas without exam in Saudi Arabia
We are a group of Teachers and Examiners specialized in the Acquisition of NEBOSH CERTIFICATES & all Certificates without taking the exams. https://streamable.com/2n368u
1- We provide an Official certificate with registration in the database and actual center stamps for customers interested in obtaining the certificate without taking the test.
2. We provide you with a new certificate with the updated results for you to follow your PR procedures without any risk.
3- We can provide Question papers for future tests before the actual test date. The questionnaires will be issued about 6 to 10 days before the test data and will be 100% the same questions that will appear in the test. Guaranteed at 100%. https://vimeo.com/1189663914?share=copy&fl=sv&fe=ci
4- We are teachers and examination officials working together as a team, so you can choose any of our professionals to go in for the exams on your behave.
5- You can register for your exams and go in for but we shall provide your target scores as you request because we have underground partners working at any center test, which gives us access to the system.
6- We equally assist our clients by sending recommendation letters to well-known educational institutions or enterprises offering employment abroad in Canada, the UK, the USA, Australia, New Zealand, and others to give you a kick start for your future.
NEBOSH Diplomas in countries like: USA, Australia, Belgium, Brazil, Canada, Italy, Finland, France, Germany, Israel, Mexico, Netherlands,
, Spain, United Kingdom.
https://t.me/+A1TvrjQBdZc2MWRhhttps://t.me/+UfhkuxkiJsw5NWExhttps://t.me/neboshigcdiplomahttps://neboshigc03.wixsite.com/website/serviceshttps://neboshigc03.wixsite.com/website/abouthttps://neboshigc03.wixs....com/website/book-onlinehttps://neboshigc03.wixsite.com/website/contacthttps://neboshigc03.wixsite.com/website/products
Contact us via Teams ID--Â (Jacob JB)
We provide verified NEBOSH certificates with online possibilities. You are guaranteed 100% with us, as the certificate you obtain is 100% legal and accepted anywhere without any doubt. Customers interested in obtaining the certificate should contact us through the contact details listed below. Payment and prices shall be discussed upon your response to this ad. Contact Customer Care for a fast chat via
Email....certifitasap(a)gmail.com
WhatsApp...+1 (450)912-2147
Contact us via Teams ID--Â (Jacob JB)
Email (neboshigc03(a)yahoo.com)
NEBOSH IGC Certificate
NEBOSH Oil and Gas Safety
NEBOSH Fire Certificate
NEBOSH Diploma
Contact Customer Care for a fast chat via
Email....certifitasap(a)gmail.com
WhatsApp.....+1 (450) 912-2147
https://streamable.com/xhi9hi
British NEBOSH certificate
Obtain Real NEBOSH Diploma
Acquire NEBOSH Diploma online
Diploma without Exam in Tuvalu
Buy NEBOSH Diploma without exam
Obtain NEBOSH certificate in Dubai
Acquire NEBOSH certificate in India
Buy NEBOSH Fire Certificate in Nepal
Obtain NEBOSH certificate in the UAE
NEBOSH Fire Certificate without Exam
BCSP Certification Online in Austria
Obtain NEBOSH Exam in the Netherlands
Get NEBOSH Diploma online without Exam
Apply for NEBOSH Diploma UK without Exam
Apply for the British NEBOSH Certificate
Buy a NEBOSH certificate without an exam
Buy British NEBOSH IGC certificates in UK
Apply for the NEBOSH IGC certificate in UK
NEBOSH Diploma Online in the Netherlands
Acquire the NEBOSH certificate in Punjab
Buy NEBOSH in New York/Islamabad/Seoul,
Buy/get/order NEBOSH WITHOUT exams/test,
Order NEBOSH in Tashkent/ Hanoi/Hong Kong,
NEBOSH certificate without exam in Kerala
Order original NEBOSH Diploma without Exam
Buy CSP Certificate Without Exam in Germany
Buy SMS Certificate Without Exam in Sweden
Buy a CHST Certificate Without Exam in Iran
NEBOSH certificate without Exam in the UAE
Buy a NEBOSH certificate UK without an Exam
Buy a British NEBOSH Fire certificate online
Acquire NEBOSH certificates without an Exam
Order NEBOSH Certificate Online Without Exam
Want to Improve your NEBOSH IGC or Diplomas?
Apply for the NEBOSH certificate in Malaysia.
British NEBOSH Fire certificate without Exam
Buy NEBOSH IGC Certificate Online in Austria
NEBOSH certificate without exam in Hyderabad
Buy NEBOSH Certificate Without Exam in Belgium
Apply for the NEEBOSH certificate in Australia
Buy a NEBOSH certificate in Karachi, Australia
Buy NEBOSH certificate in Australia/Pakistan,
Buy Original NEBOSH without exams in Karachi
Obtain NEBOSH WITHOUT tests/exams in the UK,
Buy a CET Certificate Without Exam in Belgium
Buy NEBOSH Certificate Without Exam in Bulgaria
Buy ASP Certificate Without Exam in Luxembourg
Order NEBOSH certificate without Exam in Aruba
Acquire a Diploma without an Exam in Australia
Purchase NEBOSH Fire Certificate without Exam
Buy NEBOSH certificate without Exam in Algeria
Buy NEBOSH Diploma without exam in Martinique
Buy NEBOSH Diploma without Exam in Kyrgyzstan
NEBOSH IGC Certificate Without Exam in Denmark
Get NEBOSH HSW Certificate Without Exam in Greece
Buy Original NEBOSH Certificate Online in the UK
Obtain NEBOSH certificate without exam in Punjab
Order NEBOSH Certificate Without Exam in Bulgaria
Purchase the NBOSH certificate without the Exam
Apply for NEBOSH IGC Certificate UK without Exam
Apply for NEBOSH Diploma without Exam in Mongolia
NEBOSH certificate without Exam in New Caledonia
NEBOSH IGC Certificate Without Exam in Seychelles
Buy STSC Certificate Without Exam in Switzerland
Buy NEBOSH HSW Certificate Without Exam in Croatia
Buy STS Certificate Without Exam in the Netherlands
Buy NEBOSH HSW Certificate Without Exam in Greece
Buy NEBOSH HSW Certificate Without Exam in Norway
Buy NEBOSH IDIP Certificate Without Exam in Turkey
Buy NEBOSH IGC Certificate Without Exam in Poland
Purchase a registered NEBOSH London/Sydney/Dubai
NEBOSH Certificate Without Exam in Saudi Arabia
Buy/get NEBOSH in Qatar without taking the test,
Obtain a Registered NEBOSH certificate in Qatar,
Buy/obtain/get NEBOSH certificate in Dubai/UAE,
Get/purchase/Buy NEBOSH certificate in Qatar/ India,
Original NEBOSH Certificate Without Exam in Jordan
Buy NEBOSH IGC 1 Certificate Without Exam in Ukraine
Buy NEBOSH IGC 2 Certificate Without Exam in Portugal
Obtain NEBOSH Oil and Gas Safety without Exam in London
Acquire NEBOSH Diploma without Exam in Western Sahara
Purchase NEBOSH Diploma without Exam in Cote d'Ivoire
Purchase NEBOSH IGC Certificate without Exam in Uganda
Obtain original NEBOSH Fire Certificate without Exam
Obtain NEBOSH IGC Certificate Without Exam in Poland
Buy NEBOSH IGC 1 Certificate Without Exam in Ukraine
Acquire NEBOSH Certificate Without Exam in Germany
Acquire NEBOSH certificate without exam in Bangalore
Buy a NEBOSH Certificate without an exam in Chennai
Get NEBOSH Diploma Certificate Without Exam in Sweden
Obtain NEBOSH Certificate Without Exam in Switzerland
Acquire NEBOSH HSW Certificate Without Exam in Croatia
Apply for NEBOSH HSW Certificate Without Exam in Norway
Acquire NEBOSH IDIP Certificate Without Exam in Turkey
Buy a NEBOSH certificate without an Exam in Bouvet Island
Apply for British NEBOSH Oil and Gas Safety certificates
Apply for the NEBOSH certificate without an exam in Delhi
Acquire NEBOSH Certificate Without Exam in the Netherlands
Apply for NEBOSH IGC Certificate Without Exam in Luxembourg
Buy NEBOSH health and safety Certificate Without Exam in Iran
Buy/purchase/ Acquire an original NEBOSH certificate in Karachi
Order/obtain/buy NEBOSH certificate in Malaysia/Germany,
Get/obtain NEBOSH certificate in Pakistan, New Zealand,
Buy/Obtain/Get NEBOSH certificate in the United Kingdom (UK),
Order Original NEBOSH Diploma Without Exam Online in Egypt
Order Original NEBOSH course Certificate Without Exam in Jordan,
Apply for Original NEBOSH Diplomas Without Exam in Saudi Arabia
Apply for NEBOSH Oil and Gas Safety without Exam in Guyana
Buy NEBOSH HSW Certificate Without Exam in the Czech Republic
How to get the original NEBOSH Fire Certificate without Exam
Get NEBOSH verification. Obtain a real NEBOSH Certificate online
Acquire a NEBOSH certificate without an Exam in the United States
Order original NEBOSH Oil and Gas Safety certificate without the Exam
Purchase real NEBOSH Oil and Gas Safety certificates without an Exam
Apply for NEBOSH Fire Certificate without Exam in Brunei Darussalam
Apply for NEBOSH IGC Certificate without Exam in Antigua and Barbuda
Purchase Original NEBOSH Diploma Online Without Exam in Jordan,
Acquire Original NEBOSH Oil and Gas Safety Without Exam Online in Bahrain,
Apply for Original NEBOSH Fire Certificate Without Exam Online in Algeria,
Order Original NEBOSH Fire Certificate Online Without Exam in Saudi Arabia
Obtain Original NEBOSH Diploma Without Exam Online in the Middle East,
Obtain Original NEBOSH IGC Certificates Online Without Exam in Kuwait,
Apply for Original NEBOSH Oil and Gas Safety Online Without Exam in Qatar,
Obtain Original NEBOSH Fire Certificate Online Without Exam in Jordan,
Apply for the NEBOSH certificate without an Exam in the Falkland Islands
Apply for NEBOSH oil and gas Certificate Without Exam in Iran, Netherlands
Buy/Get/Order Verified NEBOSH Certificates Online in South Korea, Gwangju
Apply for Original NEBOSH Certificates Online in the United Arab Emirates, UAE, Dubai,
Purchase the NEBOSH Oil and Gas Safety certificate without an Exam online in Antigua
Obtain NEBOSH Oil and Gas Safety without an exam in the French Southern Territories
Buy/Get/Order Verified NEBOSH Diplomas Certificates Online in South Korea, Seoul
Apply for Original NEBOSH Certificate Without Exam in the United Arab Emirates, UAE, Dubai NEBOSH Diploma in the UAE, Qatar, Kuwait, Oman, Bahrain, Malaysia Singapore Jordan Saudi Arabia USA Ireland UK France Italy Belgium, Ukraine, Iceland, Brazil, Spain, Germany Egypt, Turkey, Morocco, Algeria, Greece)
Contact Customer Care for a fast chat via
Contact us via Teams ID--Â (Jacob JB)
Email....certifitasap(a)gmail.com
WhatsApp.....+1 (450) 912-2147
Don't hesitate, feel free to contact us so as to get your certificates done perfectly and on time. available service 24Hs/7Ds
In rocket_job_run(), after creating a fence at line 305 and taking an
extra reference for job->done_fence at line 311 via dma_fence_get(),
two error paths fail to release that extra reference before returning:
- Line 314: When pm_runtime_get_sync() fails, returns fence without
putting job->done_fence.
- Line 318: When iommu_attach_group() fails, returns fence without
putting job->done_fence, and also omits pm_runtime_put() to balance
the successful pm_runtime_get_sync() at line 313.
The leaked fence reference prevents the fence and its underlying rocket
device from being freed while job->done_fence still points to it.
Repeated failures will accumulate leaked fences, consuming kernel memory
and holding device resources indefinitely.
Fix both error paths by calling dma_fence_put(job->done_fence) and
setting job->done_fence to NULL before returning. Also add the missing
pm_runtime_put() on the iommu_attach_group error path.
Cc: stable(a)vger.kernel.org
Fixes: 0810d5ad88a1 ("accel/rocket: Add job submission IOCTL")
Signed-off-by: ZhaoJinming <zhaojinming(a)uniontech.com>
---
drivers/accel/rocket/rocket_job.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c
index ac51bff39833..66e4a1d57842 100644
--- a/drivers/accel/rocket/rocket_job.c
+++ b/drivers/accel/rocket/rocket_job.c
@@ -311,12 +311,19 @@ static struct dma_fence *rocket_job_run(struct drm_sched_job *sched_job)
job->done_fence = dma_fence_get(fence);
ret = pm_runtime_get_sync(core->dev);
- if (ret < 0)
+ if (ret < 0) {
+ dma_fence_put(job->done_fence);
+ job->done_fence = NULL;
return fence;
+ }
ret = iommu_attach_group(job->domain->domain, core->iommu_group);
- if (ret < 0)
+ if (ret < 0) {
+ pm_runtime_put(core->dev);
+ dma_fence_put(job->done_fence);
+ job->done_fence = NULL;
return fence;
+ }
scoped_guard(mutex, &core->job_lock) {
core->in_flight_job = job;
--
2.20.1
Most of this patch series has already been pushed upstream, this is just
the second half of the patch series that has not been pushed yet + some
additional changes which were required to implement changes requested by
the mailing list. This patch series is originally from Asahi, previously
posted by Daniel Almeida.
The previous version of the patch series can be found here:
https://patchwork.freedesktop.org/series/164580/
Branch with patches applied available here:
https://gitlab.freedesktop.org/lyudess/linux/-/commits/rust/gem-shmem
This patch series applies on top of drm-rust-next
Patch-series wide changes since V15:
* Fix some major rebasing errors I somehow didn't notice :(
* Drop the dependency on LazyInit, use the trick that Alice suggested
instead.
* Fix dependency ordering so that Tyr can get the vmap stuff first
without the other bits.
Patch-series wide changes since V16:
* Fix ordering one more time (SetOnce::reset() doesn't need to come
before adding vmap functions)
* Rebase against the latest DeviceContext changes from me that got
pushed.
Lyude Paul (4):
rust: drm: gem: shmem: Add DmaResvGuard helper
rust: drm: gem: shmem: Add vmap functions
rust: faux: Allow retrieving a bound Device
rust: drm: gem: Introduce shmem::Object::sg_table()
rust/kernel/drm/gem/shmem.rs | 511 ++++++++++++++++++++++++++++++++++-
rust/kernel/faux.rs | 16 +-
2 files changed, 512 insertions(+), 15 deletions(-)
base-commit: fea3a2dd7d3fc1936211ced5f84420e610435730
--
2.54.0
Changes since the RFC:
- Include support for ForeignOwnable for ARef, so that a Fence can be
stuffed into an XArray et al. (Code by Danilo)
- Implement ForeignOwnable (with new borrow type) for DriverFence, so
that it can be stuffed into an XArray.
- Include the rcu::RcuBox data type to defer dropping data with RCU
(Cody by Alice)
- Port DmaFence to RcuBox to make UAF bugs through later, new dma_fence
callbacks (backend_ops) impossible.
- Force users to pass their fence data in an RcuBox (or have it not
need drop()) through a Sealed trait.
- Document the rules for the user's DriverFence::data's drop
implementation very clearly (deadlock danger).
- rustfmt, Clippy.
- Various style suggestions, safety comments, etc. (Önur)
- Add __rust_helper prefix to helper functions. (Önur)
Changes in RFC v3:
- Omit JobQueue patches for now
- Completely redesign the memory layout: Instead of a Fence
refcounting a DriverFence, both now live in the same allocation to
allow for future support the dma_fence backend_ops callbacks which
need to do container_of. (mostly Boris's feedback)
- Allow for pre-allocating fences to avoid deadlocks when submitting
jobs to a GPU. (Boris)
- Simultaneously, allow for pre-preparing fence callback objects, so
the driver can allocate them when it sees fit. (code largely stolen
and inspired by Daniel).
- Signal fences on drop, ensure synchronization.
- Force users to set an error code when signalling.
- Write more documentation
- A ton of minor other changes.
Alright, so since the last RFCs did not reveal significant design
issues, I decided to transition this series to a v1 and hope that we can
get it upstream.
This now includes code for more common infrastructure that dma_fence
needs, contributed by Danilo and Alice.
---
Old cover letter for RFC:
So, this is the spiritual successor of the first / second RFC [1]. v2
also contained code for drm::JobQueue, but mostly to show how the fence
code would be used. JobQueue is under heavy rework right now, so I don't
want to bother your eyes with it. The docstring examples should show how
Rust fences are supposed to be used, though.
This v3 contains a huge amount of highly valuable feedback from a
variety of people, notably Boris, but also from Alice, Gary and Danilo.
There are some TODOs open (a better trait for fence backend_ops and RCU
support), but my hope is that this effort is now finally approaching its
end.
I would greatly appreciate feedback and especially more information
about what might be missing to make this usable, which is obviously
where Daniel's and Boris's feedback will be valuable once more.
Please regard this patch just as what it's titled: an RFC, to discuss a
bit more and to inform a broader community about what the current state
is and where this is heading at.
Many regards,
Philipp
[1] https://lore.kernel.org/rust-for-linux/20260203081403.68733-2-phasta@kernel…
Alice Ryhl (1):
rust: rcu: add RcuBox type
Danilo Krummrich (1):
rust: types: implement ForeignOwnable for ARef<T>
Philipp Stanner (2):
rust: Add dma_fence abstractions
MAINTAINERS: Add entry for Rust dma-buf
MAINTAINERS | 2 +
rust/bindings/bindings_helper.h | 2 +
rust/helpers/dma_fence.c | 48 ++
rust/helpers/helpers.c | 1 +
rust/kernel/dma_buf/dma_fence.rs | 821 +++++++++++++++++++++++++++++++
rust/kernel/dma_buf/mod.rs | 13 +
rust/kernel/lib.rs | 1 +
rust/kernel/sync/aref.rs | 39 ++
rust/kernel/sync/rcu.rs | 31 +-
rust/kernel/sync/rcu/rcu_box.rs | 145 ++++++
10 files changed, 1102 insertions(+), 1 deletion(-)
create mode 100644 rust/helpers/dma_fence.c
create mode 100644 rust/kernel/dma_buf/dma_fence.rs
create mode 100644 rust/kernel/dma_buf/mod.rs
create mode 100644 rust/kernel/sync/rcu/rcu_box.rs
--
2.54.0
UDMABUF_CREATE_LIST copies a variable-length list using a byte count
derived from head.count. The list_limit module parameter is signed and
writable, so setting it negative lets a large unsigned count bypass the
limit check. The u32 byte-count calculation can then wrap, causing only
a small list to be copied while udmabuf_create() still iterates over the
large count.
Reject negative list_limit values and use checked size_t multiplication
before copying the list.
Assisted-by: Codex:gpt-5.5-cyber-preview
Signed-off-by: Samuel Moelius <sam.moelius(a)trailofbits.com>
---
drivers/dma-buf/udmabuf.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/dma-buf/udmabuf.c b/drivers/dma-buf/udmabuf.c
index 94b8ecb892bb..46b077639bfb 100644
--- a/drivers/dma-buf/udmabuf.c
+++ b/drivers/dma-buf/udmabuf.c
@@ -13,6 +13,7 @@
#include <linux/hugetlb.h>
#include <linux/slab.h>
#include <linux/udmabuf.h>
+#include <linux/overflow.h>
#include <linux/vmalloc.h>
#include <linux/iosys-map.h>
@@ -489,13 +490,14 @@ static long udmabuf_ioctl_create_list(struct file *filp, unsigned long arg)
struct udmabuf_create_list head;
struct udmabuf_create_item *list;
int ret = -EINVAL;
- u32 lsize;
+ size_t lsize;
if (copy_from_user(&head, (void __user *)arg, sizeof(head)))
return -EFAULT;
- if (head.count > list_limit)
+ if (list_limit < 0 || head.count > list_limit)
+ return -EINVAL;
+ if (check_mul_overflow(sizeof(struct udmabuf_create_item), head.count, &lsize))
return -EINVAL;
- lsize = sizeof(struct udmabuf_create_item) * head.count;
list = memdup_user((void __user *)(arg + sizeof(head)), lsize);
if (IS_ERR(list))
return PTR_ERR(list);
--
2.43.0
Most of this patch series has already been pushed upstream, this is just
the second half of the patch series that has not been pushed yet + some
additional changes which were required to implement changes requested by
the mailing list. This patch series is originally from Asahi, previously
posted by Daniel Almeida.
The previous version of the patch series can be found here:
https://patchwork.freedesktop.org/series/164580/
Branch with patches applied available here:
https://gitlab.freedesktop.org/lyudess/linux/-/commits/rust/gem-shmem
This patch series applies on top of drm-rust-next
Patch-series wide changes since V15:
* Fix some major rebasing errors I somehow didn't notice :(
* Drop the dependency on LazyInit, use the trick that Alice suggested
instead.
* Fix dependency ordering so that Tyr can get the vmap stuff first
without the other bits.
Patch-series wide changes since V16:
* Fix ordering one more time (SetOnce::reset() doesn't need to come
before adding vmap functions)
* Rebase against the latest DeviceContext changes from me that got
pushed.
Lyude Paul (6):
rust: drm: gem: shmem: Fix Default implementation for ObjectConfig
rust: drm: gem: shmem: Add DmaResvGuard helper
rust: drm: gem: shmem: Add vmap functions
rust: faux: Allow retrieving a bound Device
rust: sync: Add SetOnce::reset()
rust: drm: gem: Introduce shmem::Object::sg_table()
rust/kernel/drm/gem/shmem.rs | 518 ++++++++++++++++++++++++++++++++++-
rust/kernel/faux.rs | 7 +-
rust/kernel/sync/set_once.rs | 60 +++-
3 files changed, 563 insertions(+), 22 deletions(-)
base-commit: 723bd79ca9e492cc91850094a2892bde0345c51a
--
2.54.0
Crossy Road is the kind of game that looks cute and simple… until you realize you’ve been playing for an hour straight.
All you do is cross roads, rivers, and train tracks while trying not to get hit or fall behind. Sounds easy, right? Not really. The longer you survive, the faster and crazier everything becomes.
The pixel graphics, funny characters, and random chaos make every run feel different. One second you’re doing great, the next second a train appears out of nowhere.
Crossy Road proves that a simple game can still be super fun, addictive, and impossible to put down.
https://crossyroad-game.io
Slope Rider 3D is a captivating endless runner arcade game that delivers non-stop excitement through its dynamic 3D environment and ever-increasing speed. With its sleek design and smooth gameplay flow, the game creates a highly engaging experience where every moment feels intense and unpredictable. The minimalist concept combined with rapid progression makes it perfect for players looking for quick entertainment or a long, immersive challenge.
https://sloperider3d.io