In rocket_job_run(), after taking an extra fence reference for
job->done_fence via dma_fence_get(), the error paths have three bugs:
- The dma_fence reference held by job->done_fence is never released,
causing a reference leak.
- pm_runtime_get_sync() increments the usage counter even on failure,
but the error path does not decrement it, leaking the runtime PM
reference and preventing the NPU from suspending.
- A valid but unsignaled fence is returned to the DRM scheduler,
which triggers WARN("Fence ... released with pending signals!")
when the scheduler drops its reference.
Fix by replacing pm_runtime_get_sync() with pm_runtime_resume_and_get()
which auto-balances the usage counter on failure, releasing both fence
references on error, and returning ERR_PTR(ret) instead of the
unsignaled fence.
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 | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/drivers/accel/rocket/rocket_job.c b/drivers/accel/rocket/rocket_job.c
index ac51bff39833..e8a073e22ac2 100644
--- a/drivers/accel/rocket/rocket_job.c
+++ b/drivers/accel/rocket/rocket_job.c
@@ -310,13 +310,22 @@ static struct dma_fence *rocket_job_run(struct drm_sched_job *sched_job)
dma_fence_put(job->done_fence);
job->done_fence = dma_fence_get(fence);
- ret = pm_runtime_get_sync(core->dev);
- if (ret < 0)
- return fence;
+ ret = pm_runtime_resume_and_get(core->dev);
+ if (ret < 0) {
+ dma_fence_put(job->done_fence);
+ job->done_fence = NULL;
+ dma_fence_put(fence);
+ return ERR_PTR(ret);
+ }
ret = iommu_attach_group(job->domain->domain, core->iommu_group);
- if (ret < 0)
- return fence;
+ if (ret < 0) {
+ pm_runtime_put(core->dev);
+ dma_fence_put(job->done_fence);
+ job->done_fence = NULL;
+ dma_fence_put(fence);
+ return ERR_PTR(ret);
+ }
scoped_guard(mutex, &core->job_lock) {
core->in_flight_job = job;
--
2.20.1
This began as a one-line dma-buf fix for a path_noexec() warning added
by commit 1e7ab6f67824 ("anon_inode: rework assertions"). Christoph
pointed out that the fix belongs higher up: a pseudo filesystem has no
reason not to set SB_I_NOEXEC by default. This series does that.
* Patch 1 sets both flags in init_pseudo(), so every pseudo
filesystem gets them. This is the only patch that changes a flag,
and the only one with Fixes:/Cc: stable.
* Patch 2 drops the assignments that are now redundant in the callers
that set them by hand.
Most callers already set one or both flags. I audited every
init_pseudo() caller. Here is what patch 1 actually changes for each.
The only visible effect is on dma-buf, where SB_I_NOEXEC silences the
warning. SB_I_NODEV is never consulted on these SB_NOUSER mounts, and
none of the callers that gain SB_I_NOEXEC are executed from.
caller had patch 1 adds
--------------------------- -------- --------------
fs/anon_inodes.c both nothing new
mm/secretmem.c both nothing new
virt/kvm/guest_memfd.c both nothing new
fs/nsfs.c both nothing new
fs/pidfs.c both nothing new
fs/aio.c NOEXEC NODEV
drivers/dma-buf/dma-buf.c neither NOEXEC + NODEV
net/socket.c neither NOEXEC + NODEV
fs/pipe.c neither NOEXEC + NODEV
kernel/resource.c neither NOEXEC + NODEV
fs/erofs/super.c neither NOEXEC + NODEV
fs/btrfs/tests/... neither NOEXEC + NODEV
drivers/vfio/vfio_main.c neither NOEXEC + NODEV
drivers/gpu/drm/drm_drv.c neither NOEXEC + NODEV
drivers/dax/super.c neither NOEXEC + NODEV
block/bdev.c neither NOEXEC + NODEV
John Hubbard (2):
libfs: set SB_I_NOEXEC and SB_I_NODEV by default in init_pseudo()
libfs: drop redundant SB_I_NOEXEC/SB_I_NODEV in init_pseudo() callers
fs/aio.c | 1 -
fs/anon_inodes.c | 2 --
fs/libfs.c | 1 +
fs/nsfs.c | 1 -
fs/pidfs.c | 2 --
mm/secretmem.c | 2 --
virt/kvm/guest_memfd.c | 2 --
7 files changed, 1 insertion(+), 10 deletions(-)
base-commit: ba3e43a9e601636f5edb54e259a74f96ca3b8fd8
--
2.54.0
Escape Road 2 challenges players to stay one step ahead in a world where every corner could lead to freedom or failure. Busy streets, unpredictable traffic, and constant pursuit create an exciting environment that rewards skillful driving. Players must make rapid decisions while navigating through increasingly difficult situations. The sense of momentum grows throughout each run, making survival both challenging and satisfying. Smooth vehicle handling enhances the experience, allowing daring maneuvers and creative escapes. Escape Road 2 offers a compelling mix of action and excitement that keeps players returning for another chance to extend their journey.
Play game at https://escaperoad2.io
Ever found yourself humming along to a tune, only to realize you can’t quite place the artist or title? If so, you’re in for a treat with Heardle. This delightful online game offers a daily dose of musical trivia, challenging your ear and memory in a surprisingly addictive way. Whether you're a seasoned music aficionado or just looking for a fun brain-teaser, Heardle provides an engaging experience.
https://heardlefree.com/
What is Heardle?
At its core, Heardle is a daily musical guessing game. Each day, a new song is presented, and your task is to identify it based on short audio snippets. The beauty of Heardle lies in its progressive difficulty. You start with just a second of the intro, and if you’re stumped, you can get more time, up to a maximum of 16 seconds. It's a fantastic way to discover new music or reconnect with old favorites. You can experience the game and try your hand at guessing the daily song by visiting Heardle.
Gameplay: Your Daily Musical Challenge
Playing Heardle is straightforward and intuitive. When you first open the game, you'll see a simple interface with a play button and a search bar.
Listen to the Snippet:Â Click the play button to hear the initial one-second snippet of the song.
Make Your Guess (or Skip):Â Based on this tiny fragment, you can either type your guess into the search bar. As you type, the game will suggest potential song titles and artists. If you have no idea, or want more time, you can click "Skip" to hear a longer segment.
Progressive Reveals:Â Each time you skip, the audio snippet gets slightly longer, giving you more musical clues. You have a total of six attempts.
The Reveal:Â If you guess correctly, or if you exhaust all your attempts, the song's title and artist are revealed. You'll also see your score (how many attempts it took you) and have the option to share your result.
Tips for Mastering Heardle
While luck plays a small part, there are strategies to improve your Heardle success rate:
Focus on Intros:Â Many songs have very distinctive introductions. Pay close attention to unique instrumentals, vocal hooks, or production styles in the initial seconds.
Genre Awareness:Â If you have a general idea of the era or genre, it can significantly narrow down your search. Sometimes just knowing it's a 90s pop song or a classic rock anthem is enough to trigger a memory.
Don't Be Afraid to Skip:Â There's no penalty for skipping! If the first second doesn't ring a bell, don't waste time pondering. Get those extra seconds of audio.
Hum It Out:Â Sometimes, humming the tune in your head can help you connect it to lyrics or a title you know.
Listen Actively:Â Instead of just hearing, actively listen for specific instruments, vocal inflections, or rhythmic patterns.
Explore Past Heardles:Â While not directly helping with the current day's song, revisiting past Heardle puzzles can help you train your ear and recognize common song structures. You can often find archives of past games on sites like Heardle.
Conclusion
Heardle offers a delightful and accessible way to engage with music. It's a perfect brief escape for your coffee break, a fun challenge to share with friends, or simply a way to test your musical knowledge. Give it a try, and you might just surprise yourself with how many melodies you recognize – and perhaps discover a new favorite along the way!
If you are tired of ultra-realistic sports simulators that require complex button combinations and intense strategic planning, it is time to embrace the chaos. Enter the world of physics-based ragdoll games, where the only rule is that there are no rules. At the absolute peak of this hilariously unpredictable genre is Basket Random, a two-button browser game that turns the structured sport of basketball into a chaotic, laughter-inducing spectacle. https://basketrandomgame.com/
Whether you want to kill a few minutes during a study break or challenge a friend to a local duel, here is your ultimate guide to experiencing this delightfully absurd game.
What is Basket Random?
At its core, the game is a 2v2 basketball match, but with a major twist: your players move like floppy, inflatable tube men. Developed with bouncy ragdoll physics, every round presents a completely randomized setup. One round you might be playing with giant heads on a snowy court with a heavy bowling ball; the next, you are on a sunny beach holding a tiny tennis ball with shortened arms.
The objective is simple: be the first to score 5 points. However, achieving that objective is a beautifully chaotic journey of trial, error, and luck.
How to Play: One-Button Mastery
The beauty of the game lies in its minimalist control scheme. You do not need to worry about passing, sprinting, or shooting buttons. You only need one key:
Player 1 (or Single Player): Press the W key (or Up Arrow).
Player 2: Press the Up Arrow key.
When you tap the key, both of your players will jump and tilt in the direction of the ball. If you hold the key, they will swing their arms and legs wildly. Releasing the key at the right moment allows your player to throw the ball toward the hoop. It sounds simple, but because the physics change with every single point scored, you must constantly adapt your timing to the new weight of the ball, the bounce of the court, and the length of your players' limbs.
Tips to Dominate the Chaotic Court
While the game relies heavily on accidental moments of brilliance, you can actually develop a loose strategy to win more matches:
Master the "Spam" vs. "Hold" Balance: Do not just mash the jump button blindly. If the ball is loose, rapid tapping can help you scramble toward it. However, if your player has possession, hold the button to lean backward, then release it at the peak of your jump for a cleaner arc toward the hoop.
Play Defense First: Sometimes, the best offense is a solid block. Position your tallest player under the opponent's hoop to swat away their chaotic shots.
Use the Environment: Take note of the court changes. On icy courts, your players will slide much further, which can be used to slide-tackle the ball away from opponents.
Conclusion
Ultimately, the best way to experience Basket Random is with a friend sitting right next to you. The game’s charm lies in its ability to level the playing field; a seasoned gaming pro can easily lose to a beginner who happened to get a lucky bounce off a player's head. It is a game designed not for sweat and competition, but for shared laughter and high-fives. So, open up your browser, grab a friend, and prepare for some of the most hilarious basketball matches you will ever play.
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