> Hi Borut, > > Please add the following line in the commit message (before your > sign-off) in a V2 of your patch: > > fixes: 1bcda09d291081 ("serial: stm32: add support for RS485 hardware > control mode") > > I'm OK with the patch itself. > > Erwan. > > > Subject: [PATCH] serial: stm32: fix a recursive locking in >> stm32_config_rs485 >> Date: Tue, 4 Jun 2019 11:54:51 +0200 >> From: Borut Seljak <borut.seljak@xxxxxxx> >> CC: Maxime Coquelin <mcoquelin.stm32@xxxxxxxxx>, Alexandre Torgue >> <alexandre.torgue@xxxxxx>, Greg Kroah-Hartman >> <gregkh@xxxxxxxxxxxxxxxxxxx>, linux-kernel@xxxxxxxxxxxxxxx, >> borut.seljak@xxxxxxx, linux-serial@xxxxxxxxxxxxxxx, Jiri Slaby >> <jslaby@xxxxxxxx>, linux-stm32@xxxxxxxxxxxxxxxxxxxxxxxxxxxx, >> linux-arm-kernel@xxxxxxxxxxxxxxxxxxx >> >> Remove spin_lock_irqsave in stm32_config_rs485, it cause recursive >> locking. >> Already locked in uart_set_rs485_config. >> >> Signed-off-by: Borut Seljak <borut.seljak@xxxxxxx> >> --- >> drivers/tty/serial/stm32-usart.c | 2 -- >> 1 file changed, 2 deletions(-) >> >> diff --git a/drivers/tty/serial/stm32-usart.c >> b/drivers/tty/serial/stm32-usart.c >> index e8d7a7bb4339..da373a465f51 100644 >> --- a/drivers/tty/serial/stm32-usart.c >> +++ b/drivers/tty/serial/stm32-usart.c >> @@ -107,7 +107,6 @@ static int stm32_config_rs485(struct uart_port >> *port, >> bool over8; >> unsigned long flags; >> - spin_lock_irqsave(&port->lock, flags); >> stm32_clr_bits(port, ofs->cr1, BIT(cfg->uart_enable_bit)); >> port->rs485 = *rs485conf; >> @@ -147,7 +146,6 @@ static int stm32_config_rs485(struct uart_port >> *port, >> } >> stm32_set_bits(port, ofs->cr1, BIT(cfg->uart_enable_bit)); >> - spin_unlock_irqrestore(&port->lock, flags); >> return 0; >> }