summaryrefslogtreecommitdiffstats
path: root/drivers/tty/n_hdlc.c
diff options
context:
space:
mode:
authorJiri Slaby <jslaby@suse.cz>2020-02-19 09:41:06 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-02-21 10:24:33 +0100
commit43e784eca86a38a957db4022b3e40efbb663b091 (patch)
tree9727707193cc3b6164c7bd24406a8aa9442703fc /drivers/tty/n_hdlc.c
parentn_hdlc: expand tty2n_hdlc macro (diff)
downloadlinux-43e784eca86a38a957db4022b3e40efbb663b091.tar.xz
linux-43e784eca86a38a957db4022b3e40efbb663b091.zip
n_hdlc: inline n_hdlc_release
Put the body of n_hdlc_release into the only caller. It can be seen, that the "if" is superfluous now -- the same happens few lines above in n_hdlc_tty_close already. So drop it. Drop also n_hdlc2tty macro as this was the only user. Signed-off-by: Jiri Slaby <jslaby@suse.cz> Link: https://lore.kernel.org/r/20200219084118.26491-12-jslaby@suse.cz Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/tty/n_hdlc.c')
-rw-r--r--drivers/tty/n_hdlc.c35
1 files changed, 10 insertions, 25 deletions
diff --git a/drivers/tty/n_hdlc.c b/drivers/tty/n_hdlc.c
index 67162611af58..39a58febd896 100644
--- a/drivers/tty/n_hdlc.c
+++ b/drivers/tty/n_hdlc.c
@@ -175,8 +175,6 @@ static void n_hdlc_tty_receive(struct tty_struct *tty, const __u8 *cp,
char *fp, int count);
static void n_hdlc_tty_wakeup(struct tty_struct *tty);
-#define n_hdlc2tty(n_hdlc) ((n_hdlc)->tty)
-
static void flush_rx_queue(struct tty_struct *tty)
{
struct n_hdlc *n_hdlc = tty->disc_data;
@@ -221,28 +219,6 @@ static void n_hdlc_free_buf_list(struct n_hdlc_buf_list *list)
}
/**
- * n_hdlc_release - release an n_hdlc per device line discipline info structure
- * @n_hdlc - per device line discipline info structure
- */
-static void n_hdlc_release(struct n_hdlc *n_hdlc)
-{
- struct tty_struct *tty = n_hdlc2tty (n_hdlc);
-
- /* Ensure that the n_hdlcd process is not hanging on select()/poll() */
- wake_up_interruptible (&tty->read_wait);
- wake_up_interruptible (&tty->write_wait);
-
- if (tty->disc_data == n_hdlc)
- tty->disc_data = NULL; /* Break the tty->n_hdlc link */
-
- n_hdlc_free_buf_list(&n_hdlc->rx_free_buf_list);
- n_hdlc_free_buf_list(&n_hdlc->tx_free_buf_list);
- n_hdlc_free_buf_list(&n_hdlc->rx_buf_list);
- n_hdlc_free_buf_list(&n_hdlc->tx_buf_list);
- kfree(n_hdlc);
-} /* end of n_hdlc_release() */
-
-/**
* n_hdlc_tty_close - line discipline close
* @tty - pointer to tty info structure
*
@@ -266,7 +242,16 @@ static void n_hdlc_tty_close(struct tty_struct *tty)
tty->disc_data = NULL;
if (tty != n_hdlc->tty)
return;
- n_hdlc_release (n_hdlc);
+
+ /* Ensure that the n_hdlcd process is not hanging on select()/poll() */
+ wake_up_interruptible(&tty->read_wait);
+ wake_up_interruptible(&tty->write_wait);
+
+ n_hdlc_free_buf_list(&n_hdlc->rx_free_buf_list);
+ n_hdlc_free_buf_list(&n_hdlc->tx_free_buf_list);
+ n_hdlc_free_buf_list(&n_hdlc->rx_buf_list);
+ n_hdlc_free_buf_list(&n_hdlc->tx_buf_list);
+ kfree(n_hdlc);
} /* end of n_hdlc_tty_close() */
/**