OpenCloudOS-Kernel/drivers/hsi
Iago Abal 3c13ab1d96 HSI: cmt_speech: Fix double spin_lock
Release &hi->lock before calling `cs_hsi_control_read_error' to avoid deadlock.

The bug was found using EBA (https://github.com/models-team/eba), which reported
the following:

    Double lock
    first at drivers/hsi/clients/cmt_speech.c:443
    second at drivers/hsi/clients/cmt_speech.c:447
    In cs_hsi_read_on_control_complete defined at drivers/hsi/clients/cmt_speech.c:438:
    (!) drivers/hsi/clients/cmt_speech.c:443: spin_lock(& hi->lock);
    (?) drivers/hsi/clients/cmt_speech.c:445: msg->status == 4 -> true
    (!) drivers/hsi/clients/cmt_speech.c:447: cs_hsi_control_read_error(hi, msg);
        (!) drivers/hsi/clients/cmt_speech.c:407: __cs_hsi_error_pre(hi, msg, "control read",
                       & hi->control_state);
            (!) drivers/hsi/clients/cmt_speech.c:382: spin_lock(& hi->lock);

Signed-off-by: Iago Abal <mail@iagoabal.eu>
Signed-off-by: Sebastian Reichel <sre@kernel.org>
2016-06-10 00:08:10 +02:00
..
clients HSI: cmt_speech: Fix double spin_lock 2016-06-10 00:08:10 +02:00
controllers HSI: omap-ssi: move omap_ssi_port_update_fclk 2016-05-09 22:45:18 +02:00
Kconfig HSI: Introduce OMAP SSI driver 2014-05-16 00:54:51 +02:00
Makefile HSI: Introduce OMAP SSI driver 2014-05-16 00:54:51 +02:00
hsi.c hsi: use kmemdup 2016-05-29 20:38:02 +02:00
hsi_boardinfo.c HSI: hsi: Introducing HSI framework 2012-01-05 15:42:13 +02:00
hsi_core.h HSI: hsi: Introducing HSI framework 2012-01-05 15:42:13 +02:00