Messages in this thread | | | From | Erwan LE RAY <> | Subject | Re: Fwd: [PATCH] serial: stm32: fix a recursive locking in stm32_config_rs485 | Date | Thu, 6 Jun 2019 07:42:31 +0000 |
| |
Hi Borut,
Please remove unused "flags" variable declaration.
Erwan.
On 6/4/19 3:55 PM, Erwan LE RAY wrote: > >> 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@t-2.net> >>> CC: Maxime Coquelin <mcoquelin.stm32@gmail.com>, Alexandre Torgue >>> <alexandre.torgue@st.com>, Greg Kroah-Hartman >>> <gregkh@linuxfoundation.org>, linux-kernel@vger.kernel.org, >>> borut.seljak@t-2.net, linux-serial@vger.kernel.org, Jiri Slaby >>> <jslaby@suse.com>, linux-stm32@st-md-mailman.stormreply.com, >>> linux-arm-kernel@lists.infradead.org >>> >>> 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@t-2.net> >>> --- >>> 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; - 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; >>> }
| |