[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1334678829-30823-1-git-send-email-paul.gortmaker@windriver.com>
Date: Tue, 17 Apr 2012 12:07:09 -0400
From: Paul Gortmaker <paul.gortmaker@...driver.com>
To: linux-kernel@...r.kernel.org
Cc: Paul Gortmaker <paul.gortmaker@...driver.com>,
Jiri Slaby <jslaby@...e.cz>,
Martin Schwidefsky <schwidefsky@...ibm.com>,
Heiko Carstens <heiko.carstens@...ibm.com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
linux390@...ibm.com, linux-s390@...r.kernel.org
Subject: [PATCH] s390: fix build failure in con3215.c tty wakeup tasklet
Commit 86b26007a37d81e7aca242bb5b649473f8f81297 (tty-next)
"TTY: con3215, use tty from tty_port"
removed the tty struct from the raw struct, causing:
CC drivers/s390/char/con3215.o
drivers/s390/char/con3215.c: In function 'raw3215_wakeup':
drivers/s390/char/con3215.c:339:16: error: 'struct raw3215_info' has no member named 'tty'
make[2]: *** [drivers/s390/char/con3215.o] Error 1
We can't simply add a tty to the args of raw3215_wakeup since
it is registered as a tasklet. The flow is:
raw3215_irq
--> tty_port_tty_get
--> raw3215_next_io
--> tasklet_schedule
--> tty_kref_put
so it seems we'll need to do a get/put in the raw3215_wakeup
tasklet as well.
Cc: Jiri Slaby <jslaby@...e.cz>
Cc: Martin Schwidefsky <schwidefsky@...ibm.com>
Cc: Heiko Carstens <heiko.carstens@...ibm.com>
Cc: Greg Kroah-Hartman <gregkh@...uxfoundation.org>
Cc: linux390@...ibm.com
Cc: linux-s390@...r.kernel.org
Signed-off-by: Paul Gortmaker <paul.gortmaker@...driver.com>
diff --git a/drivers/s390/char/con3215.c b/drivers/s390/char/con3215.c
index e928e04..759c43c 100644
--- a/drivers/s390/char/con3215.c
+++ b/drivers/s390/char/con3215.c
@@ -336,7 +336,13 @@ static inline void raw3215_try_io(struct raw3215_info *raw)
static void raw3215_wakeup(unsigned long data)
{
struct raw3215_info *raw = (struct raw3215_info *) data;
- tty_wakeup(raw->tty);
+ struct tty_struct *tty = tty_port_tty_get(&raw->port);
+
+ if (tty == NULL)
+ return;
+
+ tty_wakeup(tty);
+ tty_kref_put(tty);
}
/*
--
1.7.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists