Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

backlight: lcd: Fix race condition during register

Once device_register is called for a device its attributes might be
accessed. As the callbacks of a lcd device's attributes make use of the
lcd_ops, the respective member must be setup before calling
device_register.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Signed-off-by: Lee Jones <lee.jones@linaro.org>

authored by

Uwe Kleine-König and committed by
Lee Jones
cc21942b 7ce7d89f

+2 -2
+2 -2
drivers/video/backlight/lcd.c
··· 226 226 dev_set_name(&new_ld->dev, "%s", name); 227 227 dev_set_drvdata(&new_ld->dev, devdata); 228 228 229 + new_ld->ops = ops; 230 + 229 231 rc = device_register(&new_ld->dev); 230 232 if (rc) { 231 233 put_device(&new_ld->dev); ··· 239 237 device_unregister(&new_ld->dev); 240 238 return ERR_PTR(rc); 241 239 } 242 - 243 - new_ld->ops = ops; 244 240 245 241 return new_ld; 246 242 }