* [PATCH 0/6]
@ 2015-11-28 2:38 Peter Hurley
2015-11-28 2:38 ` [PATCH 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
` (6 more replies)
0 siblings, 7 replies; 18+ messages in thread
From: Peter Hurley @ 2015-11-28 2:38 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Hi Greg,
This patch series is part of the ongoing effort to cleanup and reduce the
kernel tty interface; specifically removing undefined function declarations,
unused macros, encapsulating global data, undefining unused exports,
limiting functions and data to file scope, etc.
Regards,
Peter Hurley (6):
tty: Unexport system-wide tty_mutex
tty: Eliminate global symbol tty_ldisc_N_TTY
tty: Remove declarations to non-existent functions
tty: Move tty_check_change() helper
tty: Remove unreferenced tty flags macro TTY_DEBUG
tty: Make tty_files_lock per-tty
drivers/tty/n_tty.c | 18 ++++++++----------
drivers/tty/tty_io.c | 37 ++++++++++++++++++++-----------------
drivers/tty/tty_ldisc.c | 6 ------
include/linux/tty.h | 10 ++--------
security/selinux/hooks.c | 4 ++--
5 files changed, 32 insertions(+), 43 deletions(-)
--
2.6.3
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/6] tty: Unexport system-wide tty_mutex
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
@ 2015-11-28 2:38 ` Peter Hurley
2015-11-28 2:38 ` [PATCH 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY Peter Hurley
` (5 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2015-11-28 2:38 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
tty_mutex is a core, system-wide lock; there is no reason for any
code outside the tty core to have direct access.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/tty_io.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 09e8d4f..64c4a7e 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -135,10 +135,8 @@ EXPORT_SYMBOL(tty_std_termios);
LIST_HEAD(tty_drivers); /* linked list of tty drivers */
-/* Mutex to protect creating and releasing a tty. This is shared with
- vt.c for deeply disgusting hack reasons */
+/* Mutex to protect creating and releasing a tty */
DEFINE_MUTEX(tty_mutex);
-EXPORT_SYMBOL(tty_mutex);
/* Spinlock to protect the tty->tty_files list */
DEFINE_SPINLOCK(tty_files_lock);
--
2.6.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
2015-11-28 2:38 ` [PATCH 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
@ 2015-11-28 2:38 ` Peter Hurley
2015-11-28 2:38 ` [PATCH 3/6] tty: Remove declarations to non-existent functions Peter Hurley
` (4 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2015-11-28 2:38 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Reduce global tty symbols; move and rename tty_ldisc_begin() as
n_tty_init() and redefine the N_TTY ldisc ops as file scope.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/n_tty.c | 12 ++++++++----
drivers/tty/tty_io.c | 2 +-
drivers/tty/tty_ldisc.c | 6 ------
include/linux/tty.h | 3 +--
4 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
index 4f2b5dc..d294e24 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
@@ -2499,7 +2499,7 @@ static void n_tty_closing(struct tty_struct *tty)
ldata->closing = 1;
}
-struct tty_ldisc_ops tty_ldisc_N_TTY = {
+static struct tty_ldisc_ops n_tty_ops = {
.magic = TTY_LDISC_MAGIC,
.name = "n_tty",
.open = n_tty_open,
@@ -2521,14 +2521,18 @@ struct tty_ldisc_ops tty_ldisc_N_TTY = {
* n_tty_inherit_ops - inherit N_TTY methods
* @ops: struct tty_ldisc_ops where to save N_TTY methods
*
- * Enables a 'subclass' line discipline to 'inherit' N_TTY
- * methods.
+ * Enables a 'subclass' line discipline to 'inherit' N_TTY methods.
*/
void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
{
- *ops = tty_ldisc_N_TTY;
+ *ops = n_tty_ops;
ops->owner = NULL;
ops->refcount = ops->flags = 0;
}
EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
+
+void __init n_tty_init(void)
+{
+ tty_register_ldisc(N_TTY, &n_tty_ops);
+}
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 64c4a7e..0778fa9 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -3566,7 +3566,7 @@ void __init console_init(void)
initcall_t *call;
/* Setup the default TTY line discipline. */
- tty_ldisc_begin();
+ n_tty_init();
/*
* set up the console device so that later boot sequences can
diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
index 8a960fd..5734c22 100644
--- a/drivers/tty/tty_ldisc.c
+++ b/drivers/tty/tty_ldisc.c
@@ -840,9 +840,3 @@ void tty_ldisc_deinit(struct tty_struct *tty)
tty_ldisc_put(tty->ldisc);
tty->ldisc = NULL;
}
-
-void tty_ldisc_begin(void)
-{
- /* Setup the default TTY line discipline. */
- (void) tty_register_ldisc(N_TTY, &tty_ldisc_N_TTY);
-}
diff --git a/include/linux/tty.h b/include/linux/tty.h
index cc15147..9e3231e 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -577,7 +577,6 @@ extern int tty_ldisc_setup(struct tty_struct *tty, struct tty_struct *o_tty);
extern void tty_ldisc_release(struct tty_struct *tty);
extern void tty_ldisc_init(struct tty_struct *tty);
extern void tty_ldisc_deinit(struct tty_struct *tty);
-extern void tty_ldisc_begin(void);
static inline int tty_ldisc_receive_buf(struct tty_ldisc *ld, unsigned char *p,
char *f, int count)
@@ -594,8 +593,8 @@ static inline int tty_ldisc_receive_buf(struct tty_ldisc *ld, unsigned char *p,
/* n_tty.c */
-extern struct tty_ldisc_ops tty_ldisc_N_TTY;
extern void n_tty_inherit_ops(struct tty_ldisc_ops *ops);
+extern void __init n_tty_init(void);
/* tty_audit.c */
#ifdef CONFIG_AUDIT
--
2.6.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/6] tty: Remove declarations to non-existent functions
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
2015-11-28 2:38 ` [PATCH 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
2015-11-28 2:38 ` [PATCH 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY Peter Hurley
@ 2015-11-28 2:38 ` Peter Hurley
2015-11-28 2:38 ` [PATCH 4/6] tty: Move tty_check_change() helper Peter Hurley
` (3 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2015-11-28 2:38 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
tty_read_raw_data() and tty_signal() no longer exist; remove
declarations.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
include/linux/tty.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 9e3231e..584bf4c 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -432,8 +432,6 @@ extern struct device *tty_register_device_attr(struct tty_driver *driver,
void *drvdata,
const struct attribute_group **attr_grp);
extern void tty_unregister_device(struct tty_driver *driver, unsigned index);
-extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
- int buflen);
extern void tty_write_message(struct tty_struct *tty, char *msg);
extern int tty_send_xchar(struct tty_struct *tty, char ch);
extern int tty_put_char(struct tty_struct *tty, unsigned char c);
@@ -447,7 +445,6 @@ extern int tty_unthrottle_safe(struct tty_struct *tty);
extern int tty_do_resize(struct tty_struct *tty, struct winsize *ws);
extern int is_current_pgrp_orphaned(void);
extern int is_ignored(int sig);
-extern int tty_signal(int sig, struct tty_struct *tty);
extern void tty_hangup(struct tty_struct *tty);
extern void tty_vhangup(struct tty_struct *tty);
extern int tty_hung_up_p(struct file *filp);
--
2.6.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/6] tty: Move tty_check_change() helper
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
` (2 preceding siblings ...)
2015-11-28 2:38 ` [PATCH 3/6] tty: Remove declarations to non-existent functions Peter Hurley
@ 2015-11-28 2:38 ` Peter Hurley
2015-11-28 2:38 ` [PATCH 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG Peter Hurley
` (2 subsequent siblings)
6 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2015-11-28 2:38 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Move is_ignored() to drivers/tty/tty_io.c and re-declare in file
scope.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/n_tty.c | 6 ------
drivers/tty/tty_io.c | 6 ++++++
include/linux/tty.h | 1 -
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
index d294e24..f61be24 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
@@ -1753,12 +1753,6 @@ static int n_tty_receive_buf2(struct tty_struct *tty, const unsigned char *cp,
return n_tty_receive_buf_common(tty, cp, fp, count, 1);
}
-int is_ignored(int sig)
-{
- return (sigismember(¤t->blocked, sig) ||
- current->sighand->action[sig-1].sa.sa_handler == SIG_IGN);
-}
-
/**
* n_tty_set_termios - termios data changed
* @tty: terminal
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 0778fa9..a8a1f62 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -381,6 +381,12 @@ struct tty_driver *tty_find_polling_driver(char *name, int *line)
EXPORT_SYMBOL_GPL(tty_find_polling_driver);
#endif
+static int is_ignored(int sig)
+{
+ return (sigismember(¤t->blocked, sig) ||
+ current->sighand->action[sig-1].sa.sa_handler == SIG_IGN);
+}
+
/**
* tty_check_change - check for POSIX terminal changes
* @tty: tty to check
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 584bf4c..8f16d52 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -444,7 +444,6 @@ extern int tty_throttle_safe(struct tty_struct *tty);
extern int tty_unthrottle_safe(struct tty_struct *tty);
extern int tty_do_resize(struct tty_struct *tty, struct winsize *ws);
extern int is_current_pgrp_orphaned(void);
-extern int is_ignored(int sig);
extern void tty_hangup(struct tty_struct *tty);
extern void tty_vhangup(struct tty_struct *tty);
extern int tty_hung_up_p(struct file *filp);
--
2.6.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
` (3 preceding siblings ...)
2015-11-28 2:38 ` [PATCH 4/6] tty: Move tty_check_change() helper Peter Hurley
@ 2015-11-28 2:38 ` Peter Hurley
2015-11-28 2:38 ` [PATCH 6/6] tty: Make tty_files_lock per-tty Peter Hurley
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
6 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2015-11-28 2:38 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
The TTY_DEBUG macro is not used; remove.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
include/linux/tty.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 8f16d52..168f198 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -335,7 +335,6 @@ struct tty_file_private {
#define TTY_IO_ERROR 1 /* Cause an I/O error (may be no ldisc too) */
#define TTY_OTHER_CLOSED 2 /* Other side (if any) has closed */
#define TTY_EXCLUSIVE 3 /* Exclusive open mode */
-#define TTY_DEBUG 4 /* Debugging */
#define TTY_DO_WRITE_WAKEUP 5 /* Call write_wakeup after queuing new */
#define TTY_OTHER_DONE 6 /* Closed pty has completed input processing */
#define TTY_LDISC_OPEN 11 /* Line discipline is open */
--
2.6.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 6/6] tty: Make tty_files_lock per-tty
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
` (4 preceding siblings ...)
2015-11-28 2:38 ` [PATCH 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG Peter Hurley
@ 2015-11-28 2:38 ` Peter Hurley
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
6 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2015-11-28 2:38 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Access to tty->tty_files list is always per-tty, never for all ttys
simultaneously. Replace global tty_files_lock spinlock with per-tty
->files_lock. Initialize when the ->tty_files list is inited, in
alloc_tty_struct().
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/tty_io.c | 25 ++++++++++++-------------
include/linux/tty.h | 2 +-
security/selinux/hooks.c | 4 ++--
3 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index a8a1f62..5c8f519 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -138,9 +138,6 @@ LIST_HEAD(tty_drivers); /* linked list of tty drivers */
/* Mutex to protect creating and releasing a tty */
DEFINE_MUTEX(tty_mutex);
-/* Spinlock to protect the tty->tty_files list */
-DEFINE_SPINLOCK(tty_files_lock);
-
static ssize_t tty_read(struct file *, char __user *, size_t, loff_t *);
static ssize_t tty_write(struct file *, const char __user *, size_t, loff_t *);
ssize_t redirected_tty_write(struct file *, const char __user *,
@@ -202,9 +199,9 @@ void tty_add_file(struct tty_struct *tty, struct file *file)
priv->tty = tty;
priv->file = file;
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_add(&priv->list, &tty->tty_files);
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
}
/**
@@ -225,10 +222,11 @@ void tty_free_file(struct file *file)
static void tty_del_file(struct file *file)
{
struct tty_file_private *priv = file->private_data;
+ struct tty_struct *tty = priv->tty;
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_del(&priv->list);
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
tty_free_file(file);
}
@@ -286,11 +284,11 @@ static int check_tty_count(struct tty_struct *tty, const char *routine)
struct list_head *p;
int count = 0;
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_for_each(p, &tty->tty_files) {
count++;
}
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
if (tty->driver->type == TTY_DRIVER_TYPE_PTY &&
tty->driver->subtype == PTY_TYPE_SLAVE &&
tty->link && tty->link->count)
@@ -713,7 +711,7 @@ static void __tty_hangup(struct tty_struct *tty, int exit_session)
workqueue with the lock held */
check_tty_count(tty, "tty_hangup");
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
/* This breaks for file handles being sent over AF_UNIX sockets ? */
list_for_each_entry(priv, &tty->tty_files, list) {
filp = priv->file;
@@ -725,7 +723,7 @@ static void __tty_hangup(struct tty_struct *tty, int exit_session)
__tty_fasync(-1, filp, 0); /* can't block */
filp->f_op = &hung_up_tty_fops;
}
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
refs = tty_signal_session_leader(tty, exit_session);
/* Account for the p->signal references we killed */
@@ -1641,9 +1639,9 @@ static void release_one_tty(struct work_struct *work)
tty_driver_kref_put(driver);
module_put(owner);
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_del_init(&tty->tty_files);
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
put_pid(tty->pgrp);
put_pid(tty->session);
@@ -3166,6 +3164,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx)
mutex_init(&tty->atomic_write_lock);
spin_lock_init(&tty->ctrl_lock);
spin_lock_init(&tty->flow_lock);
+ spin_lock_init(&tty->files_lock);
INIT_LIST_HEAD(&tty->tty_files);
INIT_WORK(&tty->SAK_work, do_SAK_work);
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 168f198..a2d167e 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -302,6 +302,7 @@ struct tty_struct {
struct work_struct hangup_work;
void *disc_data;
void *driver_data;
+ spinlock_t files_lock; /* protects tty_files list */
struct list_head tty_files;
#define N_TTY_BUF_SIZE 4096
@@ -509,7 +510,6 @@ extern int tty_standard_install(struct tty_driver *driver,
struct tty_struct *tty);
extern struct mutex tty_mutex;
-extern spinlock_t tty_files_lock;
#define tty_is_writelocked(tty) (mutex_is_locked(&tty->atomic_write_lock))
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index d0cfaa9..ae6dbc75 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -2352,7 +2352,7 @@ static inline void flush_unauthorized_files(const struct cred *cred,
tty = get_current_tty();
if (tty) {
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
if (!list_empty(&tty->tty_files)) {
struct tty_file_private *file_priv;
@@ -2367,7 +2367,7 @@ static inline void flush_unauthorized_files(const struct cred *cred,
if (file_path_has_perm(cred, file, FILE__READ | FILE__WRITE))
drop_tty = 1;
}
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
tty_kref_put(tty);
}
/* Reset controlling tty. */
--
2.6.3
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 0/6] tty globals cleanup (cont'd)
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
` (5 preceding siblings ...)
2015-11-28 2:38 ` [PATCH 6/6] tty: Make tty_files_lock per-tty Peter Hurley
@ 2016-01-10 5:35 ` Peter Hurley
2016-01-10 5:35 ` [PATCH v2 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
` (5 more replies)
6 siblings, 6 replies; 18+ messages in thread
From: Peter Hurley @ 2016-01-10 5:35 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Changes from v2: rebased on top of current tty-next
original message follows:
Hi Greg,
This patch series is part of the ongoing effort to cleanup and reduce the
kernel tty interface; specifically removing undefined function declarations,
unused macros, encapsulating global data, undefining unused exports,
limiting functions and data to file scope, etc.
Regards,
Peter Hurley (6):
tty: Unexport system-wide tty_mutex
tty: Eliminate global symbol tty_ldisc_N_TTY
tty: Remove declarations to non-existent functions
tty: Move tty_check_change() helper
tty: Remove unreferenced tty flags macro TTY_DEBUG
tty: Make tty_files_lock per-tty
drivers/tty/n_tty.c | 18 ++++++++----------
drivers/tty/tty_io.c | 37 ++++++++++++++++++++-----------------
drivers/tty/tty_ldisc.c | 6 ------
include/linux/tty.h | 10 ++--------
security/selinux/hooks.c | 4 ++--
5 files changed, 32 insertions(+), 43 deletions(-)
--
2.7.0
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH v2 1/6] tty: Unexport system-wide tty_mutex
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
@ 2016-01-10 5:35 ` Peter Hurley
2016-01-10 5:35 ` [PATCH v2 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY Peter Hurley
` (4 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2016-01-10 5:35 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
tty_mutex is a core, system-wide lock; there is no reason for any
code outside the tty core to have direct access.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/tty_io.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index cef913c..0650a34 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -135,10 +135,8 @@ EXPORT_SYMBOL(tty_std_termios);
LIST_HEAD(tty_drivers); /* linked list of tty drivers */
-/* Mutex to protect creating and releasing a tty. This is shared with
- vt.c for deeply disgusting hack reasons */
+/* Mutex to protect creating and releasing a tty */
DEFINE_MUTEX(tty_mutex);
-EXPORT_SYMBOL(tty_mutex);
/* Spinlock to protect the tty->tty_files list */
DEFINE_SPINLOCK(tty_files_lock);
--
2.7.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
2016-01-10 5:35 ` [PATCH v2 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
@ 2016-01-10 5:35 ` Peter Hurley
2016-01-10 5:35 ` [PATCH v2 3/6] tty: Remove declarations to non-existent functions Peter Hurley
` (3 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2016-01-10 5:35 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Reduce global tty symbols; move and rename tty_ldisc_begin() as
n_tty_init() and redefine the N_TTY ldisc ops as file scope.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/n_tty.c | 12 ++++++++----
drivers/tty/tty_io.c | 2 +-
drivers/tty/tty_ldisc.c | 6 ------
include/linux/tty.h | 3 +--
4 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
index 6bab08a..5315d1a 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
@@ -2488,7 +2488,7 @@ static void n_tty_fasync(struct tty_struct *tty, int on)
}
}
-struct tty_ldisc_ops tty_ldisc_N_TTY = {
+static struct tty_ldisc_ops n_tty_ops = {
.magic = TTY_LDISC_MAGIC,
.name = "n_tty",
.open = n_tty_open,
@@ -2509,14 +2509,18 @@ struct tty_ldisc_ops tty_ldisc_N_TTY = {
* n_tty_inherit_ops - inherit N_TTY methods
* @ops: struct tty_ldisc_ops where to save N_TTY methods
*
- * Enables a 'subclass' line discipline to 'inherit' N_TTY
- * methods.
+ * Enables a 'subclass' line discipline to 'inherit' N_TTY methods.
*/
void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
{
- *ops = tty_ldisc_N_TTY;
+ *ops = n_tty_ops;
ops->owner = NULL;
ops->refcount = ops->flags = 0;
}
EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
+
+void __init n_tty_init(void)
+{
+ tty_register_ldisc(N_TTY, &n_tty_ops);
+}
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 0650a34..8b4e7cd 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -3576,7 +3576,7 @@ void __init console_init(void)
initcall_t *call;
/* Setup the default TTY line discipline. */
- tty_ldisc_begin();
+ n_tty_init();
/*
* set up the console device so that later boot sequences can
diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
index 4cb5e572..68947f6 100644
--- a/drivers/tty/tty_ldisc.c
+++ b/drivers/tty/tty_ldisc.c
@@ -824,9 +824,3 @@ void tty_ldisc_deinit(struct tty_struct *tty)
tty_ldisc_put(tty->ldisc);
tty->ldisc = NULL;
}
-
-void tty_ldisc_begin(void)
-{
- /* Setup the default TTY line discipline. */
- (void) tty_register_ldisc(N_TTY, &tty_ldisc_N_TTY);
-}
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 1b31736..328a7b8 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -576,7 +576,6 @@ extern int tty_ldisc_setup(struct tty_struct *tty, struct tty_struct *o_tty);
extern void tty_ldisc_release(struct tty_struct *tty);
extern void tty_ldisc_init(struct tty_struct *tty);
extern void tty_ldisc_deinit(struct tty_struct *tty);
-extern void tty_ldisc_begin(void);
static inline int tty_ldisc_receive_buf(struct tty_ldisc *ld, unsigned char *p,
char *f, int count)
@@ -593,8 +592,8 @@ static inline int tty_ldisc_receive_buf(struct tty_ldisc *ld, unsigned char *p,
/* n_tty.c */
-extern struct tty_ldisc_ops tty_ldisc_N_TTY;
extern void n_tty_inherit_ops(struct tty_ldisc_ops *ops);
+extern void __init n_tty_init(void);
/* tty_audit.c */
#ifdef CONFIG_AUDIT
--
2.7.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 3/6] tty: Remove declarations to non-existent functions
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
2016-01-10 5:35 ` [PATCH v2 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
2016-01-10 5:35 ` [PATCH v2 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY Peter Hurley
@ 2016-01-10 5:35 ` Peter Hurley
2016-01-10 5:35 ` [PATCH v2 4/6] tty: Move tty_check_change() helper Peter Hurley
` (2 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2016-01-10 5:35 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
tty_read_raw_data() and tty_signal() no longer exist; remove
declarations.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
include/linux/tty.h | 3 ---
1 file changed, 3 deletions(-)
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 328a7b8..fecfe92 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -433,8 +433,6 @@ extern struct device *tty_register_device_attr(struct tty_driver *driver,
void *drvdata,
const struct attribute_group **attr_grp);
extern void tty_unregister_device(struct tty_driver *driver, unsigned index);
-extern int tty_read_raw_data(struct tty_struct *tty, unsigned char *bufp,
- int buflen);
extern void tty_write_message(struct tty_struct *tty, char *msg);
extern int tty_send_xchar(struct tty_struct *tty, char ch);
extern int tty_put_char(struct tty_struct *tty, unsigned char c);
@@ -448,7 +446,6 @@ extern int tty_unthrottle_safe(struct tty_struct *tty);
extern int tty_do_resize(struct tty_struct *tty, struct winsize *ws);
extern int is_current_pgrp_orphaned(void);
extern int is_ignored(int sig);
-extern int tty_signal(int sig, struct tty_struct *tty);
extern void tty_hangup(struct tty_struct *tty);
extern void tty_vhangup(struct tty_struct *tty);
extern int tty_hung_up_p(struct file *filp);
--
2.7.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 4/6] tty: Move tty_check_change() helper
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
` (2 preceding siblings ...)
2016-01-10 5:35 ` [PATCH v2 3/6] tty: Remove declarations to non-existent functions Peter Hurley
@ 2016-01-10 5:35 ` Peter Hurley
2016-01-10 5:35 ` [PATCH v2 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG Peter Hurley
2016-01-10 5:35 ` [PATCH v2 6/6] tty: Make tty_files_lock per-tty Peter Hurley
5 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2016-01-10 5:35 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Move is_ignored() to drivers/tty/tty_io.c and re-declare in file
scope.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/n_tty.c | 6 ------
drivers/tty/tty_io.c | 6 ++++++
include/linux/tty.h | 1 -
3 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
index 5315d1a..8272069 100644
--- a/drivers/tty/n_tty.c
+++ b/drivers/tty/n_tty.c
@@ -1754,12 +1754,6 @@ static int n_tty_receive_buf2(struct tty_struct *tty, const unsigned char *cp,
return n_tty_receive_buf_common(tty, cp, fp, count, 1);
}
-int is_ignored(int sig)
-{
- return (sigismember(¤t->blocked, sig) ||
- current->sighand->action[sig-1].sa.sa_handler == SIG_IGN);
-}
-
/**
* n_tty_set_termios - termios data changed
* @tty: terminal
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index 8b4e7cd..b89c0a5 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -381,6 +381,12 @@ struct tty_driver *tty_find_polling_driver(char *name, int *line)
EXPORT_SYMBOL_GPL(tty_find_polling_driver);
#endif
+static int is_ignored(int sig)
+{
+ return (sigismember(¤t->blocked, sig) ||
+ current->sighand->action[sig-1].sa.sa_handler == SIG_IGN);
+}
+
/**
* tty_check_change - check for POSIX terminal changes
* @tty: tty to check
diff --git a/include/linux/tty.h b/include/linux/tty.h
index fecfe92..a01f9dd 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -445,7 +445,6 @@ extern int tty_throttle_safe(struct tty_struct *tty);
extern int tty_unthrottle_safe(struct tty_struct *tty);
extern int tty_do_resize(struct tty_struct *tty, struct winsize *ws);
extern int is_current_pgrp_orphaned(void);
-extern int is_ignored(int sig);
extern void tty_hangup(struct tty_struct *tty);
extern void tty_vhangup(struct tty_struct *tty);
extern int tty_hung_up_p(struct file *filp);
--
2.7.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
` (3 preceding siblings ...)
2016-01-10 5:35 ` [PATCH v2 4/6] tty: Move tty_check_change() helper Peter Hurley
@ 2016-01-10 5:35 ` Peter Hurley
2016-01-10 5:35 ` [PATCH v2 6/6] tty: Make tty_files_lock per-tty Peter Hurley
5 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2016-01-10 5:35 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
The TTY_DEBUG macro is not used; remove.
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
include/linux/tty.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/include/linux/tty.h b/include/linux/tty.h
index a01f9dd..8ed795d 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -336,7 +336,6 @@ struct tty_file_private {
#define TTY_IO_ERROR 1 /* Cause an I/O error (may be no ldisc too) */
#define TTY_OTHER_CLOSED 2 /* Other side (if any) has closed */
#define TTY_EXCLUSIVE 3 /* Exclusive open mode */
-#define TTY_DEBUG 4 /* Debugging */
#define TTY_DO_WRITE_WAKEUP 5 /* Call write_wakeup after queuing new */
#define TTY_OTHER_DONE 6 /* Closed pty has completed input processing */
#define TTY_LDISC_OPEN 11 /* Line discipline is open */
--
2.7.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH v2 6/6] tty: Make tty_files_lock per-tty
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
` (4 preceding siblings ...)
2016-01-10 5:35 ` [PATCH v2 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG Peter Hurley
@ 2016-01-10 5:35 ` Peter Hurley
5 siblings, 0 replies; 18+ messages in thread
From: Peter Hurley @ 2016-01-10 5:35 UTC (permalink / raw)
To: Greg Kroah-Hartman; +Cc: Jiri Slaby, linux-kernel, Peter Hurley
Access to tty->tty_files list is always per-tty, never for all ttys
simultaneously. Replace global tty_files_lock spinlock with per-tty
->files_lock. Initialize when the ->tty_files list is inited, in
alloc_tty_struct().
Signed-off-by: Peter Hurley <peter@hurleysoftware.com>
---
drivers/tty/tty_io.c | 25 ++++++++++++-------------
include/linux/tty.h | 2 +-
security/selinux/hooks.c | 4 ++--
3 files changed, 15 insertions(+), 16 deletions(-)
diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
index b89c0a5..48281a5 100644
--- a/drivers/tty/tty_io.c
+++ b/drivers/tty/tty_io.c
@@ -138,9 +138,6 @@ LIST_HEAD(tty_drivers); /* linked list of tty drivers */
/* Mutex to protect creating and releasing a tty */
DEFINE_MUTEX(tty_mutex);
-/* Spinlock to protect the tty->tty_files list */
-DEFINE_SPINLOCK(tty_files_lock);
-
static ssize_t tty_read(struct file *, char __user *, size_t, loff_t *);
static ssize_t tty_write(struct file *, const char __user *, size_t, loff_t *);
ssize_t redirected_tty_write(struct file *, const char __user *,
@@ -202,9 +199,9 @@ void tty_add_file(struct tty_struct *tty, struct file *file)
priv->tty = tty;
priv->file = file;
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_add(&priv->list, &tty->tty_files);
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
}
/**
@@ -225,10 +222,11 @@ void tty_free_file(struct file *file)
static void tty_del_file(struct file *file)
{
struct tty_file_private *priv = file->private_data;
+ struct tty_struct *tty = priv->tty;
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_del(&priv->list);
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
tty_free_file(file);
}
@@ -286,11 +284,11 @@ static int check_tty_count(struct tty_struct *tty, const char *routine)
struct list_head *p;
int count = 0;
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_for_each(p, &tty->tty_files) {
count++;
}
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
if (tty->driver->type == TTY_DRIVER_TYPE_PTY &&
tty->driver->subtype == PTY_TYPE_SLAVE &&
tty->link && tty->link->count)
@@ -713,7 +711,7 @@ static void __tty_hangup(struct tty_struct *tty, int exit_session)
workqueue with the lock held */
check_tty_count(tty, "tty_hangup");
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
/* This breaks for file handles being sent over AF_UNIX sockets ? */
list_for_each_entry(priv, &tty->tty_files, list) {
filp = priv->file;
@@ -725,7 +723,7 @@ static void __tty_hangup(struct tty_struct *tty, int exit_session)
__tty_fasync(-1, filp, 0); /* can't block */
filp->f_op = &hung_up_tty_fops;
}
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
refs = tty_signal_session_leader(tty, exit_session);
/* Account for the p->signal references we killed */
@@ -1637,9 +1635,9 @@ static void release_one_tty(struct work_struct *work)
tty_driver_kref_put(driver);
module_put(owner);
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
list_del_init(&tty->tty_files);
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
put_pid(tty->pgrp);
put_pid(tty->session);
@@ -3176,6 +3174,7 @@ struct tty_struct *alloc_tty_struct(struct tty_driver *driver, int idx)
mutex_init(&tty->atomic_write_lock);
spin_lock_init(&tty->ctrl_lock);
spin_lock_init(&tty->flow_lock);
+ spin_lock_init(&tty->files_lock);
INIT_LIST_HEAD(&tty->tty_files);
INIT_WORK(&tty->SAK_work, do_SAK_work);
diff --git a/include/linux/tty.h b/include/linux/tty.h
index 8ed795d..dea7d54 100644
--- a/include/linux/tty.h
+++ b/include/linux/tty.h
@@ -302,6 +302,7 @@ struct tty_struct {
struct work_struct hangup_work;
void *disc_data;
void *driver_data;
+ spinlock_t files_lock; /* protects tty_files list */
struct list_head tty_files;
#define N_TTY_BUF_SIZE 4096
@@ -508,7 +509,6 @@ extern int tty_standard_install(struct tty_driver *driver,
struct tty_struct *tty);
extern struct mutex tty_mutex;
-extern spinlock_t tty_files_lock;
#define tty_is_writelocked(tty) (mutex_is_locked(&tty->atomic_write_lock))
diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c
index d0cfaa9..ae6dbc75 100644
--- a/security/selinux/hooks.c
+++ b/security/selinux/hooks.c
@@ -2352,7 +2352,7 @@ static inline void flush_unauthorized_files(const struct cred *cred,
tty = get_current_tty();
if (tty) {
- spin_lock(&tty_files_lock);
+ spin_lock(&tty->files_lock);
if (!list_empty(&tty->tty_files)) {
struct tty_file_private *file_priv;
@@ -2367,7 +2367,7 @@ static inline void flush_unauthorized_files(const struct cred *cred,
if (file_path_has_perm(cred, file, FILE__READ | FILE__WRITE))
drop_tty = 1;
}
- spin_unlock(&tty_files_lock);
+ spin_unlock(&tty->files_lock);
tty_kref_put(tty);
}
/* Reset controlling tty. */
--
2.7.0
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 0/6]
@ 2013-07-25 17:35 Anand Jain
0 siblings, 0 replies; 18+ messages in thread
From: Anand Jain @ 2013-07-25 17:35 UTC (permalink / raw)
To: linux-btrfs
The below patch set is on top of,
git://repo.or.cz/btrfs-progs-unstable/devel.git integration-20130710
and is for your kind review coment and integration
Thanks
Anand Jain (6):
btrfs-progs: close_all_devices() in btrfs-find-root.c does nothing
btrfs-progs: let user know that devid can be used if path is missing
btrfs-progs: cmd_start_replace() to use test_dev_for_mkfs()
btrfs-progs: mkfs.c overwrites fd without appropriate close
btrfs-progs: avoid write to the disk before sure to create fs
btrfs-progs: don't have to report ENOMEDIUM error during open
btrfs-find-root.c | 17 +--------
cmds-replace.c | 33 ++--------------
disk-io.c | 3 +-
disk-io.h | 1 +
mkfs.c | 107 +++++++++++++++++++++-------------------------------
utils.c | 56 +++++++++++++++++++++++++++-
utils.h | 2 +
7 files changed, 107 insertions(+), 112 deletions(-)
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 0/6]
@ 2013-04-05 22:24 Alex Elder
0 siblings, 0 replies; 18+ messages in thread
From: Alex Elder @ 2013-04-05 22:24 UTC (permalink / raw)
To: ceph-devel
(These patches, along with the two I just posted, are
available in the branch "review/wip-3761-2" of the
ceph-client git-repository.)
This series of patches implements messages having more
than one data item describing message data. Recent
changes have implemented a list of data items in a
message, but it was in practice limited to use just
one item. The first part of the series is rearranging
things so a message has a single cursor that moves among
the data items on the message's data list.
-Alex
[PATCH 1/6] libceph: record bio length
[PATCH 2/6] libceph: move cursor into message
[PATCH 3/6] libceph: have cursor point to data
[PATCH 4/6] libceph: replace message data pointer with list
[PATCH 5/6] libceph: implement multiple data items in a message
[PATCH 6/6] libceph: add, don't set data for a message
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 0/6]
2007-06-08 15:52 dougthompson
@ 2007-06-15 17:30 ` Phillip Susi
0 siblings, 0 replies; 18+ messages in thread
From: Phillip Susi @ 2007-06-15 17:30 UTC (permalink / raw)
To: dougthompson; +Cc: alan, linux-kernel, akpm
Using a subject line would be helpful.
dougthompson@xmission.com wrote:
> From: Douglas Thompson <dougthompson@xmission.com>
>
> This set of 6 patches for EDAC fix some code style issues,
> typos, support for archs other than X86, new pci_ids.h
> devices entries for the K8 Northbridge and fix for compile
> warnings.
>
> These patches are against 2.6.22-rc4-mm2
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 0/6]
@ 2007-06-08 15:52 dougthompson
2007-06-15 17:30 ` Phillip Susi
0 siblings, 1 reply; 18+ messages in thread
From: dougthompson @ 2007-06-08 15:52 UTC (permalink / raw)
To: alan, linux-kernel, akpm
From: Douglas Thompson <dougthompson@xmission.com>
This set of 6 patches for EDAC fix some code style issues,
typos, support for archs other than X86, new pci_ids.h
devices entries for the K8 Northbridge and fix for compile
warnings.
These patches are against 2.6.22-rc4-mm2
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2016-01-10 5:36 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-28 2:38 [PATCH 0/6] Peter Hurley
2015-11-28 2:38 ` [PATCH 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
2015-11-28 2:38 ` [PATCH 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY Peter Hurley
2015-11-28 2:38 ` [PATCH 3/6] tty: Remove declarations to non-existent functions Peter Hurley
2015-11-28 2:38 ` [PATCH 4/6] tty: Move tty_check_change() helper Peter Hurley
2015-11-28 2:38 ` [PATCH 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG Peter Hurley
2015-11-28 2:38 ` [PATCH 6/6] tty: Make tty_files_lock per-tty Peter Hurley
2016-01-10 5:35 ` [PATCH v2 0/6] tty globals cleanup (cont'd) Peter Hurley
2016-01-10 5:35 ` [PATCH v2 1/6] tty: Unexport system-wide tty_mutex Peter Hurley
2016-01-10 5:35 ` [PATCH v2 2/6] tty: Eliminate global symbol tty_ldisc_N_TTY Peter Hurley
2016-01-10 5:35 ` [PATCH v2 3/6] tty: Remove declarations to non-existent functions Peter Hurley
2016-01-10 5:35 ` [PATCH v2 4/6] tty: Move tty_check_change() helper Peter Hurley
2016-01-10 5:35 ` [PATCH v2 5/6] tty: Remove unreferenced tty flags macro TTY_DEBUG Peter Hurley
2016-01-10 5:35 ` [PATCH v2 6/6] tty: Make tty_files_lock per-tty Peter Hurley
-- strict thread matches above, loose matches on Subject: below --
2013-07-25 17:35 [PATCH 0/6] Anand Jain
2013-04-05 22:24 Alex Elder
2007-06-08 15:52 dougthompson
2007-06-15 17:30 ` Phillip Susi
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.