Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Unverified Commit dc16f70d authored by Kamal Agrawal's avatar Kamal Agrawal
Browse files

msm: kgsl: Correctly free up resources on error during probe



Correctly free up resources on error during probe.

Change-Id: Ia094bfd5694d580735000d2807a30f597f06f4e5
Signed-off-by: default avatarKamal Agrawal <kamaagra@codeaurora.org>
parent bc352de9
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -4367,11 +4367,6 @@ int kgsl_device_platform_probe(struct kgsl_device *device)
	if (status)
		goto error;

	/* This can return -EPROBE_DEFER */
	status = kgsl_mmu_probe(device);
	if (status != 0)
		goto error_pwrctrl_close;

	if (!devm_request_mem_region(&pdev->dev, device->reg_phys,
				device->reg_len, device->name)) {
		dev_err(device->dev, "request_mem_region failed\n");
@@ -4411,6 +4406,11 @@ int kgsl_device_platform_probe(struct kgsl_device *device)
		goto error_pwrctrl_close;
	}

	/* This can return -EPROBE_DEFER */
	status = kgsl_mmu_probe(device);
	if (status != 0)
		goto error_pwrctrl_close;

	kgsl_device_debugfs_init(device);

	dma_set_coherent_mask(&pdev->dev, KGSL_DMA_BIT_MASK);
@@ -4424,6 +4424,11 @@ int kgsl_device_platform_probe(struct kgsl_device *device)
	return 0;

error_pwrctrl_close:
	if (device->events_wq) {
		destroy_workqueue(device->events_wq);
		device->events_wq = NULL;
	}

	kgsl_pwrctrl_close(device);
error:
	_unregister_device(device);
+4 −1
Original line number Diff line number Diff line
@@ -857,8 +857,11 @@ int kgsl_pwrscale_init(struct kgsl_device *device, struct platform_device *pdev,
	}

	pwrscale->devfreq_wq = create_freezable_workqueue("kgsl_devfreq_wq");
	if (!pwrscale->devfreq_wq)
	if (!pwrscale->devfreq_wq) {
		dev_err(device->dev, "Failed to allocate kgsl devfreq workqueue\n");
		device->pwrscale.enabled = false;
		return -ENOMEM;
	}

	devfreq = devfreq_add_device(&pdev->dev, &gpu_profile->profile,
			governor, &adreno_tz_data);