android_kernel_msm-6.1_noth.../drivers/gpu/host1x
Yang Yingliang 958c6cbc32 gpu: host1x: Fix memory leak of device names
[ Upstream commit 55879dad0f3ae8468444b42f785ad79eac05fe5b ]

The device names allocated by dev_set_name() need be freed
before module unloading, but they can not be freed because
the kobject's refcount which was set in device_initialize()
has not be decreased to 0.

As comment of device_add() says, if it fails, use only
put_device() drop the refcount, then the name will be
freed in kobejct_cleanup().

device_del() and put_device() can be replaced with
device_unregister(), so call it to unregister the added
successfully devices, and just call put_device() to the
not added device.

Add a release() function to device to avoid null release()
function WARNING in device_release(), it's empty, because
the context devices are freed together in
host1x_memory_context_list_free().

Fixes: 8aa5bcb616 ("gpu: host1x: Add context device management code")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2023-05-11 23:03:12 +09:00
..
hw gpu: host1x: Don't skip assigning syncpoints to channels 2023-03-10 09:33:16 +01:00
bus.c gpu: host1x: Add missing DMA API include 2021-12-16 14:07:07 +01:00
bus.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
cdma.c gpu: host1x: Generalize host1x_cdma_push_wide() 2022-07-08 17:36:26 +02:00
cdma.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
channel.c gpu: host1x: Use the bitmap API to allocate bitmaps 2022-07-08 17:38:34 +02:00
channel.h gpu: host1x: Request channels for clients, not devices 2019-10-28 11:18:33 +01:00
context.c gpu: host1x: Fix memory leak of device names 2023-05-11 23:03:12 +09:00
context.h gpu: host1x: Add context device management code 2022-07-08 16:27:52 +02:00
context_bus.c gpu: host1x: Register context bus unconditionally 2022-07-08 16:31:24 +02:00
debug.c gpu: host1x: Show all allocated syncpts via debugfs 2022-04-06 15:33:57 +02:00
debug.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 201 2019-05-30 11:29:52 -07:00
dev.c gpu: host1x: Avoid trying to use GART on Tegra20 2022-11-18 09:33:20 +01:00
dev.h gpu: host1x: Program virtualization tables 2022-07-08 16:27:52 +02:00
fence.c gpu: host1x: Plug potential memory leak 2021-09-16 18:06:52 +02:00
fence.h gpu: host1x: Add DMA fence implementation 2021-08-10 14:39:50 +02:00
intr.c gpu: host1x: Add initial runtime PM and OPP support 2021-12-16 14:07:07 +01:00
intr.h gpu: host1x: Add DMA fence implementation 2021-08-10 14:39:50 +02:00
job.c gpu: host1x: Do not use mapping cache for job submissions 2022-04-06 15:12:36 +02:00
job.h drm/tegra: Implement correct DMA-BUF semantics 2021-12-16 14:07:06 +01:00
Kconfig gpu: host1x: Add context bus 2022-06-01 11:50:42 +02:00
Makefile gpu: host1x: Tegra234 device data and headers 2022-07-08 16:27:52 +02:00
mipi.c media: gpu: host1x: mipi: Keep MIPI clock enabled and mutex locked till calibration done 2020-08-28 15:12:38 +02:00
syncpt.c gpu: host1x: Always return syncpoint value when waiting 2022-02-16 17:20:53 +01:00
syncpt.h gpu: host1x: Add no-recovery mode 2021-08-10 14:40:23 +02:00