From: Greg KH <greg@kroah.com>
To: linux-kernel@vger.kernel.org
Subject: [RFC] add module reference to struct tty_driver
Date: Sun, 12 Jan 2003 21:47:09 -0800 [thread overview]
Message-ID: <20030113054708.GA3604@kroah.com> (raw)
In digging into the tty layer locking, I noticed that the tty layer
doesn't handle module reference counting for any tty drivers. Well, I've
known this for a long time, just finally got around to fixing it :)
Here's a patch against 2.5.56 that should fix this issue (works for
me...)
Comments? If no one objects, I'll send it on to Linus, and add support
for this to a number of tty drivers that commonly get built as modules.
thanks,
greg k-h
# TTY: add module reference counting for tty drivers.
diff -Nru a/drivers/char/tty_io.c b/drivers/char/tty_io.c
--- a/drivers/char/tty_io.c Sun Jan 12 21:46:53 2003
+++ b/drivers/char/tty_io.c Sun Jan 12 21:46:53 2003
@@ -833,6 +833,11 @@
* and locked termios may be retained.)
*/
+ if (!try_module_get(driver->owner)) {
+ retval = -ENODEV;
+ goto end_init;
+ }
+
o_tty = NULL;
tp = o_tp = NULL;
ltp = o_ltp = NULL;
@@ -991,6 +996,7 @@
free_tty_struct(tty);
fail_no_mem:
+ module_put(driver->owner);
retval = -ENOMEM;
goto end_init;
@@ -1033,6 +1039,7 @@
tty->magic = 0;
(*tty->driver.refcount)--;
list_del(&tty->tty_files);
+ module_put(tty->driver.owner);
free_tty_struct(tty);
}
diff -Nru a/include/linux/tty_driver.h b/include/linux/tty_driver.h
--- a/include/linux/tty_driver.h Sun Jan 12 21:46:53 2003
+++ b/include/linux/tty_driver.h Sun Jan 12 21:46:53 2003
@@ -120,6 +120,7 @@
struct tty_driver {
int magic; /* magic number for this structure */
+ struct module *owner;
const char *driver_name;
const char *name;
int name_base; /* offset of printed name */
next reply other threads:[~2003-01-13 5:38 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-13 5:47 Greg KH [this message]
2003-01-13 9:27 ` [RFC] add module reference to struct tty_driver Russell King
2003-01-13 17:12 ` Greg KH
2003-01-13 19:51 ` Max Krasnyansky
2003-01-14 20:07 ` Russell King
2003-01-14 22:08 ` Greg KH
2003-01-15 10:00 ` Russell King
2003-01-15 9:09 ` Henrique Gobbi
2003-01-15 10:30 ` John Bradford
2003-01-15 10:40 ` Russell King
2003-01-15 11:12 ` John Bradford
2003-01-15 16:03 ` Randy.Dunlap
2003-01-15 15:26 ` Kai Germaschewski
2003-01-15 16:31 ` Roman Zippel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20030113054708.GA3604@kroah.com \
--to=greg@kroah.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.