mirror of
https://github.com/torvalds/linux.git
synced 2026-09-23 13:14:02 +02:00
gpu: host1x: Avoid double device_add when clients already present
host1x_device_add looks through the idle clients list to populate
subdevs, and any matches entries are moved from the subdevs list
to the active list. If all subdevs are populated, device_add will
be called on the device. The secondary "subdevs list empty" check
will then incorrectly again call device_add.
However, this would require a convoluted scenario since clients don't
typically end up on the idle clients list.
Fix by checking whether the device was already added before adding
again.
Fixes: fab823d82e ("gpu: host1x: Allow loading tegra-drm without enabled engines")
Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patch.msgid.link/20260609-b4-host1x-small-fixes-a-v1-2-7c1131c0b3ad@nvidia.com
This commit is contained in:
parent
7a39b9856a
commit
254290869f
|
|
@ -508,7 +508,7 @@ static int host1x_device_add(struct host1x *host1x,
|
|||
* Add device even if there are no subdevs to ensure syncpoint functionality
|
||||
* is available regardless of whether any engine subdevices are present
|
||||
*/
|
||||
if (list_empty(&device->subdevs)) {
|
||||
if (list_empty(&device->subdevs) && !device->registered) {
|
||||
err = device_add(&device->dev);
|
||||
if (err < 0)
|
||||
dev_err(&device->dev, "failed to add device: %d\n", err);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user