Thread (3 messages) 3 messages, 2 authors, 2012-11-23

Re: [PATCH] serial:ifx6x60:Delete SPI timer when shut down port

From: Alan Cox <hidden>
Date: 2012-11-22 18:30:39
Also in: lkml

On Thu, 22 Nov 2012 16:43:07 +0800
chao bi [off-list ref] wrote:
quoted hunk ↗ jump to hunk
When shut down SPI port, it's possible that MRDY has been asserted
and a SPI timer was activated waiting for SRDY assert, in the case,
it needs to delete this timer.

Signed-off-by: Chen Jun <redacted>
Signed-off-by: channing <redacted>
---
 drivers/tty/serial/ifx6x60.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/drivers/tty/serial/ifx6x60.c
b/drivers/tty/serial/ifx6x60.c index 5b9bc19..467020b 100644
--- a/drivers/tty/serial/ifx6x60.c
+++ b/drivers/tty/serial/ifx6x60.c
@@ -552,7 +552,10 @@ static void ifx_port_shutdown(struct tty_port
*port) container_of(port, struct ifx_spi_device, tty_port);
 
 	mrdy_set_low(ifx_dev);
-	clear_bit(IFX_SPI_STATE_TIMER_PENDING, &ifx_dev->flags);
+	if (test_and_clear_bit(IFX_SPI_STATE_TIMER_PENDING,
+		&ifx_dev->flags)) {
+		del_timer(&ifx_dev->spi_timer);
+	}
You don't actually need the test here as far as I can see. Providing a
timer has been initialised (init_timer) then running del_timer is safe
even if the timer is not currently queued or has completed.

Alan
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help