lkml.org 
[lkml]   [2003]   [Apr]   [21]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[PATCH] n_hdlc.c 2.5.68 (try 2)
From
Date
Attempt 2 with suggestions from Chritoph Hellwig

* Remove MODULE_USE_COUNT macros
* Add owner member to struct tty_ldisc
* Init tty_ldisc at compile time
* make some functions static

Please apply
--
Paul Fulghum, paulkf@microgate.com
Microgate Corporation, http://www.microgate.com

--- linux-2.5.68/drivers/char/n_hdlc.c 2003-04-07 12:30:59.000000000 -0500
+++ linux-2.5.68-mg/drivers/char/n_hdlc.c 2003-04-21 14:15:07.733582832 -0500
@@ -9,7 +9,7 @@
* Al Longyear <longyear@netcom.com>, Paul Mackerras <Paul.Mackerras@cs.anu.edu.au>
*
* Original release 01/11/99
- * $Id: n_hdlc.c,v 4.2 2002/10/10 14:52:41 paulkf Exp $
+ * $Id: n_hdlc.c,v 4.6 2003/04/21 19:14:07 paulkf Exp $
*
* This code is released under the GNU General Public License (GPL)
*
@@ -78,7 +78,7 @@
*/

#define HDLC_MAGIC 0x239e
-#define HDLC_VERSION "$Revision: 4.2 $"
+#define HDLC_VERSION "$Revision: 4.6 $"

#include <linux/version.h>
#include <linux/config.h>
@@ -171,9 +171,9 @@
/*
* HDLC buffer list manipulation functions
*/
-void n_hdlc_buf_list_init(N_HDLC_BUF_LIST *list);
-void n_hdlc_buf_put(N_HDLC_BUF_LIST *list,N_HDLC_BUF *buf);
-N_HDLC_BUF* n_hdlc_buf_get(N_HDLC_BUF_LIST *list);
+static void n_hdlc_buf_list_init(N_HDLC_BUF_LIST *list);
+static void n_hdlc_buf_put(N_HDLC_BUF_LIST *list,N_HDLC_BUF *buf);
+static N_HDLC_BUF* n_hdlc_buf_get(N_HDLC_BUF_LIST *list);

/* Local functions */

@@ -299,7 +299,6 @@
n_hdlc->tty = n_hdlc->backup_tty;
} else {
n_hdlc_release (n_hdlc);
- MOD_DEC_USE_COUNT;
}
}

@@ -339,8 +338,6 @@
tty->disc_data = n_hdlc;
n_hdlc->tty = tty;

- MOD_INC_USE_COUNT;
-
#if defined(TTY_NO_WRITE_SPLIT)
/* change tty_io write() to not split large writes into 8K chunks */
set_bit(TTY_NO_WRITE_SPLIT,&tty->flags);
@@ -903,7 +900,7 @@
* Arguments: list pointer to buffer list
* Return Value: None
*/
-void n_hdlc_buf_list_init(N_HDLC_BUF_LIST *list)
+static void n_hdlc_buf_list_init(N_HDLC_BUF_LIST *list)
{
memset(list,0,sizeof(N_HDLC_BUF_LIST));
spin_lock_init(&list->spinlock);
@@ -920,7 +917,7 @@
*
* Return Value: None
*/
-void n_hdlc_buf_put(N_HDLC_BUF_LIST *list,N_HDLC_BUF *buf)
+static void n_hdlc_buf_put(N_HDLC_BUF_LIST *list,N_HDLC_BUF *buf)
{
unsigned long flags;
spin_lock_irqsave(&list->spinlock,flags);
@@ -950,7 +947,7 @@
*
* pointer to HDLC buffer if available, otherwise NULL
*/
-N_HDLC_BUF* n_hdlc_buf_get(N_HDLC_BUF_LIST *list)
+static N_HDLC_BUF* n_hdlc_buf_get(N_HDLC_BUF_LIST *list)
{
unsigned long flags;
N_HDLC_BUF *buf;
@@ -971,7 +968,25 @@

static int __init n_hdlc_init(void)
{
- static struct tty_ldisc n_hdlc_ldisc;
+ static struct tty_ldisc n_hdlc_ldisc = {
+ TTY_LDISC_MAGIC, /* magic */
+ "hdlc", /* name */
+ 0, /* num */
+ 0, /* flags */
+ n_hdlc_tty_open, /* open */
+ n_hdlc_tty_close, /* close */
+ 0, /* flush_buffer */
+ 0, /* chars_in_buffer */
+ n_hdlc_tty_read, /* read */
+ n_hdlc_tty_write, /* write */
+ n_hdlc_tty_ioctl, /* ioctl */
+ 0, /* set_termios */
+ n_hdlc_tty_poll, /* poll */
+ n_hdlc_tty_receive, /* receive_buf */
+ n_hdlc_tty_room, /* receive_room */
+ n_hdlc_tty_wakeup, /* write_wakeup */
+ THIS_MODULE /* owner */
+ };
int status;

/* range check maxframe arg */
@@ -983,21 +998,6 @@
printk("HDLC line discipline: version %s, maxframe=%u\n",
szVersion, maxframe);

- /* Register the tty discipline */
-
- memset(&n_hdlc_ldisc, 0, sizeof (n_hdlc_ldisc));
- n_hdlc_ldisc.magic = TTY_LDISC_MAGIC;
- n_hdlc_ldisc.name = "hdlc";
- n_hdlc_ldisc.open = n_hdlc_tty_open;
- n_hdlc_ldisc.close = n_hdlc_tty_close;
- n_hdlc_ldisc.read = n_hdlc_tty_read;
- n_hdlc_ldisc.write = n_hdlc_tty_write;
- n_hdlc_ldisc.ioctl = n_hdlc_tty_ioctl;
- n_hdlc_ldisc.poll = n_hdlc_tty_poll;
- n_hdlc_ldisc.receive_room = n_hdlc_tty_room;
- n_hdlc_ldisc.receive_buf = n_hdlc_tty_receive;
- n_hdlc_ldisc.write_wakeup = n_hdlc_tty_wakeup;
-
status = tty_register_ldisc(N_HDLC, &n_hdlc_ldisc);
if (!status)
printk (KERN_INFO"N_HDLC line discipline registered.\n");


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:34    [W:0.045 / U:0.260 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site