Messages in this thread | | | From | Alex Courbot <> | Subject | Re: [PATCH 2/3] tegra: pwm-backlight: add tegra pwm-bl driver | Date | Wed, 23 Jan 2013 19:29:16 +0900 |
| |
On Wednesday 23 January 2013 18:15:30 Leela Krishna Amudala wrote: > > + pwm_backlight_set_subdriver_data(dev, data); > > Here you are passing ventana_bl_data pointer as input and in the > pwm_backlight_get_subdriver_data() function you are assigning the > received driver data to backlight_device pointer. As both are two > different structures with different structure fields in it. There can > be a chance for a crash.
That's because the following happens later in pwm_backlight_probe():
pb->subdriver_data = dev_get_drvdata(&pdev->dev); ... bl = backlight_device_register(dev_name(&pdev->dev), &pdev->dev, pb, &pwm_backlight_ops, &props); ... platform_set_drvdata(pdev, bl);
So from then on the result of dev_get_drvdata() is indeed an instance of backlight_device from which we can retrieve the subdriver data. I'm not really proud of this. But fortunately it seems like we are going to do things differently.
Alex.
| |