mirror of
https://github.com/torvalds/linux.git
synced 2026-09-22 20:54:03 +02:00
fbdev: omapfb: panel-dsi-cm: initialize lock before registering display
dsicm_probe() registers the display before initializing ddata->lock.
Once omapdss_register_display() publishes the display, another consumer
can reach a dsicm callback that takes this mutex while it is still
uninitialized.
Initialize the mutex before registering the display so the published
callbacks always see a valid lock.
Fixes: f76ee892a9 ("omapfb: copy omapdss & displays for omapfb")
Cc: stable@vger.kernel.org
Signed-off-by: Runyu Xiao <runyu.xiao@seu.edu.cn>
Signed-off-by: Helge Deller <deller@gmx.de>
This commit is contained in:
parent
f74cf70e5e
commit
f8e43fe0f2
|
|
@ -1150,14 +1150,14 @@ static int dsicm_probe(struct platform_device *pdev)
|
|||
dssdev->caps = OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE |
|
||||
OMAP_DSS_DISPLAY_CAP_TEAR_ELIM;
|
||||
|
||||
mutex_init(&ddata->lock);
|
||||
|
||||
r = omapdss_register_display(dssdev);
|
||||
if (r) {
|
||||
dev_err(dev, "Failed to register panel\n");
|
||||
goto err_reg;
|
||||
}
|
||||
|
||||
mutex_init(&ddata->lock);
|
||||
|
||||
atomic_set(&ddata->do_update, 0);
|
||||
|
||||
ddata->reset_gpio = devm_gpiod_get(&pdev->dev, "reset", GPIOD_OUT_LOW);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user