Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fbdev: sh_mobile_lcdc: Fix destruction of uninitialized mutex
If sh_mobile_lcdc_probe() fails after the allocation of driver-private data, but before the initialization of all channels, a warning will be printed due to the destruction of an uninitialized mutex: WARNING: CPU: 0 PID: 1 at kernel/locking/mutex-debug.c:116 mutex_destroy+0x5c/0x7c() DEBUG_LOCKS_WARN_ON(mutex_is_locked(lock)) ... Backtrace: ... [<c00425b4>] (mutex_destroy) from [<c01d5858>] (sh_mobile_lcdc_remove+0x1bc/0x230) r4:df6a4800 r3:00000000 [<c01d569c>] (sh_mobile_lcdc_remove) from [<c01d6620>] (sh_mobile_lcdc_probe+0xd54/0xe28) Move the initialization of the mutexes from sh_mobile_lcdc_channel_init() to immediately after the allocation of driver-private data to fix this. Note that the interrupt number is moved to a new variable "irq", so we can reuse the existing variable "i" for iterating over the channels. Signed-off-by: Geert Uytterhoeven <[email protected]> Acked-by: Laurent Pinchart <[email protected]> Signed-off-by: Tomi Valkeinen <[email protected]>
- Loading branch information