<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/gpu/drm/amd/amdkfd, branch v4.14.286</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.286</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v4.14.286'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2022-04-20T07:08:31+00:00</updated>
<entry>
<title>drm/amdkfd: Check for potential null return of kmalloc_array()</title>
<updated>2022-04-20T07:08:31+00:00</updated>
<author>
<name>QintaoShen</name>
<email>unSimple1993@163.com</email>
</author>
<published>2022-03-24T08:26:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=40bf32dbfef866c83a3e74800b81d79e52b6d20b'/>
<id>urn:sha1:40bf32dbfef866c83a3e74800b81d79e52b6d20b</id>
<content type='text'>
[ Upstream commit ebbb7bb9e80305820dc2328a371c1b35679f2667 ]

As the kmalloc_array() may return null, the 'event_waiters[i].wait' would lead to null-pointer dereference.
Therefore, it is better to check the return value of kmalloc_array() to avoid this confusion.

Signed-off-by: QintaoShen &lt;unSimple1993@163.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: Fix reference count leaks.</title>
<updated>2020-09-03T09:22:25+00:00</updated>
<author>
<name>Qiushi Wu</name>
<email>wu000273@umn.edu</email>
</author>
<published>2020-06-13T19:32:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=4704cd249f8d28c5cd9fe29148e6833f0dd54b02'/>
<id>urn:sha1:4704cd249f8d28c5cd9fe29148e6833f0dd54b02</id>
<content type='text'>
[ Upstream commit 20eca0123a35305e38b344d571cf32768854168c ]

kobject_init_and_add() takes reference even when it fails.
If this function returns an error, kobject_put() must be called to
properly clean up the memory associated with the object.

Signed-off-by: Qiushi Wu &lt;wu000273@umn.edu&gt;
Reviewed-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Signed-off-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: kfree the wrong pointer</title>
<updated>2020-04-24T06:01:21+00:00</updated>
<author>
<name>Jack Zhang</name>
<email>Jack.Zhang1@amd.com</email>
</author>
<published>2020-04-01T12:06:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=cb8ce25d1f09809715886de491924507e516e0c7'/>
<id>urn:sha1:cb8ce25d1f09809715886de491924507e516e0c7</id>
<content type='text'>
[ Upstream commit 3148a6a0ef3cf93570f30a477292768f7eb5d3c3 ]

Originally, it kfrees the wrong pointer for mem_obj.
It would cause memory leak under stress test.

Signed-off-by: Jack Zhang &lt;Jack.Zhang1@amd.com&gt;
Acked-by: Nirmoy Das &lt;nirmoy.das@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: use init_mqd function to allocate object for hid_mqd (CI)</title>
<updated>2019-04-20T07:15:07+00:00</updated>
<author>
<name>Kevin Wang</name>
<email>kevin1.wang@amd.com</email>
</author>
<published>2019-02-22T04:36:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=86c7f76a8930556ec515095363ddaa0604486cdd'/>
<id>urn:sha1:86c7f76a8930556ec515095363ddaa0604486cdd</id>
<content type='text'>
[ Upstream commit cac734c2dbd2514f14c8c6a17caba1990d83bf1d ]

if use the legacy method to allocate object, when mqd_hiq need to run
uninit code, it will be cause WARNING call trace.

eg: (s3 suspend test)
[   34.918944] Call Trace:
[   34.918948]  [&lt;ffffffff92961dc1&gt;] dump_stack+0x19/0x1b
[   34.918950]  [&lt;ffffffff92297648&gt;] __warn+0xd8/0x100
[   34.918951]  [&lt;ffffffff9229778d&gt;] warn_slowpath_null+0x1d/0x20
[   34.918991]  [&lt;ffffffffc03ce1fe&gt;] uninit_mqd_hiq_sdma+0x4e/0x50 [amdgpu]
[   34.919028]  [&lt;ffffffffc03d0ef7&gt;] uninitialize+0x37/0xe0 [amdgpu]
[   34.919064]  [&lt;ffffffffc03d15a6&gt;] kernel_queue_uninit+0x16/0x30 [amdgpu]
[   34.919086]  [&lt;ffffffffc03d26c2&gt;] pm_uninit+0x12/0x20 [amdgpu]
[   34.919107]  [&lt;ffffffffc03d4915&gt;] stop_nocpsch+0x15/0x20 [amdgpu]
[   34.919129]  [&lt;ffffffffc03c1dce&gt;] kgd2kfd_suspend.part.4+0x2e/0x50 [amdgpu]
[   34.919150]  [&lt;ffffffffc03c2667&gt;] kgd2kfd_suspend+0x17/0x20 [amdgpu]
[   34.919171]  [&lt;ffffffffc03c103a&gt;] amdgpu_amdkfd_suspend+0x1a/0x20 [amdgpu]
[   34.919187]  [&lt;ffffffffc02ec428&gt;] amdgpu_device_suspend+0x88/0x3a0 [amdgpu]
[   34.919189]  [&lt;ffffffff922e22cf&gt;] ? enqueue_entity+0x2ef/0xbe0
[   34.919205]  [&lt;ffffffffc02e8220&gt;] amdgpu_pmops_suspend+0x20/0x30 [amdgpu]
[   34.919207]  [&lt;ffffffff925c56ff&gt;] pci_pm_suspend+0x6f/0x150
[   34.919208]  [&lt;ffffffff925c5690&gt;] ? pci_pm_freeze+0xf0/0xf0
[   34.919210]  [&lt;ffffffff926b45c6&gt;] dpm_run_callback+0x46/0x90
[   34.919212]  [&lt;ffffffff926b49db&gt;] __device_suspend+0xfb/0x2a0
[   34.919213]  [&lt;ffffffff926b4b9f&gt;] async_suspend+0x1f/0xa0
[   34.919214]  [&lt;ffffffff922c918f&gt;] async_run_entry_fn+0x3f/0x130
[   34.919216]  [&lt;ffffffff922b9d4f&gt;] process_one_work+0x17f/0x440
[   34.919217]  [&lt;ffffffff922bade6&gt;] worker_thread+0x126/0x3c0
[   34.919218]  [&lt;ffffffff922bacc0&gt;] ? manage_workers.isra.25+0x2a0/0x2a0
[   34.919220]  [&lt;ffffffff922c1c31&gt;] kthread+0xd1/0xe0
[   34.919221]  [&lt;ffffffff922c1b60&gt;] ? insert_kthread_work+0x40/0x40
[   34.919222]  [&lt;ffffffff92974c1d&gt;] ret_from_fork_nospec_begin+0x7/0x21
[   34.919224]  [&lt;ffffffff922c1b60&gt;] ? insert_kthread_work+0x40/0x40
[   34.919224] ---[ end trace 38cd9f65c963adad ]---

Signed-off-by: Kevin Wang &lt;kevin1.wang@amd.com&gt;
Reviewed-by: Oak Zeng &lt;Oak.Zeng@amd.com&gt;
Signed-off-by: Alex Deucher &lt;alexander.deucher@amd.com&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: Fix error codes in kfd_get_process</title>
<updated>2018-09-26T06:38:12+00:00</updated>
<author>
<name>Wei Lu</name>
<email>wei.lu2@amd.com</email>
</author>
<published>2018-07-12T02:32:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bb2874bba8eec8dbeed8de569f4d918deca70c97'/>
<id>urn:sha1:bb2874bba8eec8dbeed8de569f4d918deca70c97</id>
<content type='text'>
[ Upstream commit e47cb828eb3fca3e8999a0b9aa053dda18552071 ]

Return ERR_PTR(-EINVAL) if kfd_get_process fails to find the process.
This fixes kernel oopses when a child process calls KFD ioctls with
a file descriptor inherited from the parent process.

Signed-off-by: Wei Lu &lt;wei.lu2@amd.com&gt;
Reviewed-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Signed-off-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Acked-by: Christian König &lt;christian.koenig@amd.com&gt;
Signed-off-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: fix clock counter retrieval for node without GPU</title>
<updated>2018-06-20T19:02:47+00:00</updated>
<author>
<name>Andres Rodriguez</name>
<email>andres.rodriguez@amd.com</email>
</author>
<published>2018-04-10T21:32:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=56dfe52e04a287eb8c1d25d8fcfaef9e32fcd2e8'/>
<id>urn:sha1:56dfe52e04a287eb8c1d25d8fcfaef9e32fcd2e8</id>
<content type='text'>
[ Upstream commit 1cf6cc74bbeb85bb87c3ca3f3df97a283c3aa737 ]

Currently if a user requests clock counters for a node without a GPU
resource we will always return EINVAL.

Instead if no GPU resource is attached, fill the gpu_clock_counter
argument with zeroes so that we may proceed and return valid CPU
counters.

Signed-off-by: Andres Rodriguez &lt;andres.rodriguez@amd.com&gt;
Signed-off-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Reviewed-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: Fix scratch memory with HWS enabled</title>
<updated>2018-05-30T05:52:19+00:00</updated>
<author>
<name>Felix Kuehling</name>
<email>Felix.Kuehling@amd.com</email>
</author>
<published>2018-03-23T19:30:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=bbeb1a42dc584137041841652b98ac0f4e7b7200'/>
<id>urn:sha1:bbeb1a42dc584137041841652b98ac0f4e7b7200</id>
<content type='text'>
[ Upstream commit c70a36268799cf2f902b5a31e452571fcb96bfe9 ]

Program sh_hidden_private_base_vmid correctly in the map-process
PM4 packet.

Signed-off-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Reviewed-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: Fix memory leaks in kfd topology</title>
<updated>2018-03-19T07:42:54+00:00</updated>
<author>
<name>Yong Zhao</name>
<email>yong.zhao@amd.com</email>
</author>
<published>2017-12-09T04:08:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=12848af16f9e969d7853427ee2fe884a22986181'/>
<id>urn:sha1:12848af16f9e969d7853427ee2fe884a22986181</id>
<content type='text'>
[ Upstream commit 5108d768408abc80e4e8d99f5b406a73cb04056b ]

Kobject created using kobject_create_and_add() can be freed using
kobject_put() when there is no referenece any more. However,
kobject memory allocated with kzalloc() has to set up a release
callback in order to free it when the counter decreases to 0.
Otherwise it causes memory leak.

Signed-off-by: Yong Zhao &lt;yong.zhao@amd.com&gt;
Signed-off-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Reviewed-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@microsoft.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: Fix SDMA oversubsription handling</title>
<updated>2018-02-03T16:39:02+00:00</updated>
<author>
<name>Felix Kuehling</name>
<email>Felix.Kuehling@amd.com</email>
</author>
<published>2017-11-01T23:21:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=b15f53b46d880fae35c976d8285c09debbb760bb'/>
<id>urn:sha1:b15f53b46d880fae35c976d8285c09debbb760bb</id>
<content type='text'>
[ Upstream commit 8c946b8988acec785bcf67088b6bd0747f36d2d3 ]

SDMA only supports a fixed number of queues. HWS cannot handle
oversubscription.

Signed-off-by: shaoyun liu &lt;shaoyun.liu@amd.com&gt;
Signed-off-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Reviewed-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
<entry>
<title>drm/amdkfd: Fix SDMA ring buffer size calculation</title>
<updated>2018-02-03T16:39:02+00:00</updated>
<author>
<name>shaoyunl</name>
<email>Shaoyun.Liu@amd.com</email>
</author>
<published>2017-11-01T23:21:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=64aca9911a1097b224739e2cf060c3114e6bd59f'/>
<id>urn:sha1:64aca9911a1097b224739e2cf060c3114e6bd59f</id>
<content type='text'>
[ Upstream commit d12fb13f23199faa7e536acec1db49068e5a067d ]

ffs function return the position of the first bit set on 1 based.
(bit zero returns 1).

Signed-off-by: shaoyun liu &lt;shaoyun.liu@amd.com&gt;
Signed-off-by: Felix Kuehling &lt;Felix.Kuehling@amd.com&gt;
Reviewed-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Oded Gabbay &lt;oded.gabbay@gmail.com&gt;
Signed-off-by: Sasha Levin &lt;alexander.levin@verizon.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;
</content>
</entry>
</feed>
