zephyr/drivers/spi
Marti Bolivar 3ac9ca0859 spi: dw: fix spi_dw_init()
It is incorrect to call spi_context_release() on a
spi_dw_data object's ctx field before data->ctx->config is first
set in spi_dw_configure(). This is because spi_context_release()
reads ctx->config->operation. In particular, during spi_dw_init(),
calling spi_context_release() reads the uninitialized memory in
spi->ctx->config->operation.

Call spi_context_unlock_unconditionally() instead to properly increase
the semaphore count.

Without this patch, the first call to spi_transceive() can block
forever depending on the value of the uninitialized memory holding
spi->ctx->config->operation.

Signed-off-by: Marti Bolivar <marti.bolivar@linaro.org>
2017-07-14 18:10:38 +03:00
..
Kconfig spi: add SPI driver for STM32 family 2017-07-01 08:36:51 -04:00
Kconfig.dw
Kconfig.mcux_dspi
Kconfig.nrf5
Makefile spi: add SPI driver for STM32 family 2017-07-01 08:36:51 -04:00
spi_context.h kernel: make K_.*_INITIALIZER private to kernel 2017-07-10 11:44:56 -07:00
spi_dw_legacy.c
spi_dw_quark_se_ss_regs.h
spi_dw_regs.h
spi_dw.c spi: dw: fix spi_dw_init() 2017-07-14 18:10:38 +03:00
spi_dw.h
spi_intel.c
spi_intel.h
spi_ll_stm32.c spi: stm32: fix spi_stm32_init() 2017-07-14 18:10:38 +03:00
spi_ll_stm32.h spi: add SPI driver for STM32 family 2017-07-01 08:36:51 -04:00
spi_mcux_dspi.c
spi_qmsi_ss.c
spi_qmsi.c
spim_nrf52.c
spis_nrf5.c