From: Henrik Maier Date: Tue, 30 May 2017 07:05:36 +0000 (+1000) Subject: Fix spinlock bug for uart_set_rts and uart_set_dtr X-Git-Tag: v3.1-dev~344^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=95fe7929c084302f8e80aa9f3fff651c5996dd52;p=esp-idf Fix spinlock bug for uart_set_rts and uart_set_dtr Merges https://github.com/espressif/esp-idf/pull/649 --- diff --git a/components/driver/uart.c b/components/driver/uart.c index 976efda3d0..3997db2b41 100644 --- a/components/driver/uart.c +++ b/components/driver/uart.c @@ -424,7 +424,7 @@ esp_err_t uart_set_rts(uart_port_t uart_num, int level) UART_CHECK((UART[uart_num]->conf1.rx_flow_en != 1), "disable hw flowctrl before using sw control", ESP_FAIL); UART_ENTER_CRITICAL(&uart_spinlock[uart_num]); UART[uart_num]->conf0.sw_rts = level & 0x1; - UART_ENTER_CRITICAL(&uart_spinlock[uart_num]); + UART_EXIT_CRITICAL(&uart_spinlock[uart_num]); return ESP_OK; } @@ -433,7 +433,7 @@ esp_err_t uart_set_dtr(uart_port_t uart_num, int level) UART_CHECK((uart_num < UART_NUM_MAX), "uart_num error", ESP_FAIL); UART_ENTER_CRITICAL(&uart_spinlock[uart_num]); UART[uart_num]->conf0.sw_dtr = level & 0x1; - UART_ENTER_CRITICAL(&uart_spinlock[uart_num]); + UART_EXIT_CRITICAL(&uart_spinlock[uart_num]); return ESP_OK; }