summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2013-03-07 13:12:28 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-03-18 16:19:44 -0700
commit6982a398426a22166eaf049b79544536fdd6429f (patch)
treea59f9fb6d2560f3d6714a79389626a2ac3339853
parent6865ff222ccab371c04afce17aec1f7d70b17dbc (diff)
TTY: msm_smd_tty, clean up activate/shutdown
Do not dig struct smd_tty_info out of tty_struct using tty_port_tty_get. It is unnecessarily too complicated, use simple container_of instead. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/tty/serial/msm_smd_tty.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/drivers/tty/serial/msm_smd_tty.c b/drivers/tty/serial/msm_smd_tty.c
index e722ff163d9..1238ac370bf 100644
--- a/drivers/tty/serial/msm_smd_tty.c
+++ b/drivers/tty/serial/msm_smd_tty.c
@@ -90,13 +90,13 @@ static void smd_tty_notify(void *priv, unsigned event)
static int smd_tty_port_activate(struct tty_port *tport, struct tty_struct *tty)
{
+ struct smd_tty_info *info = container_of(tport, struct smd_tty_info,
+ port);
int i, res = 0;
- int n = tty->index;
const char *name = NULL;
- struct smd_tty_info *info = smd_tty + n;
for (i = 0; i < smd_tty_channels_len; i++) {
- if (smd_tty_channels[i].id == n) {
+ if (smd_tty_channels[i].id == tty->index) {
name = smd_tty_channels[i].name;
break;
}
@@ -117,17 +117,13 @@ static int smd_tty_port_activate(struct tty_port *tport, struct tty_struct *tty)
static void smd_tty_port_shutdown(struct tty_port *tport)
{
- struct smd_tty_info *info;
- struct tty_struct *tty = tty_port_tty_get(tport);
+ struct smd_tty_info *info = container_of(tport, struct smd_tty_info,
+ port);
- info = tty->driver_data;
if (info->ch) {
smd_close(info->ch);
info->ch = 0;
}
-
- tty->driver_data = 0;
- tty_kref_put(tty);
}
static int smd_tty_open(struct tty_struct *tty, struct file *f)