* [PATCH][ATM] cleanup pppoatm and br2684 modules
@ 2003-07-14 21:06 chas williams
2003-07-15 0:11 ` David S. Miller
0 siblings, 1 reply; 2+ messages in thread
From: chas williams @ 2003-07-14 21:06 UTC (permalink / raw)
To: davem; +Cc: netdev
this should be applied to the latest 2.5 sources...
[atm]: cleanup pppoatm_ioctl_hook
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1362 -> 1.1363
# net/atm/pppoatm.c 1.7 -> 1.8
# net/atm/common.h 1.13 -> 1.14
# net/atm/common.c 1.38 -> 1.39
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/06/21 chas@relax.cmf.nrl.navy.mil 1.1363
# pppoatm.c, common.h, common.c:
# cleanup pppoatm_ioctl_hook
# --------------------------------------------
#
diff -Nru a/net/atm/common.c b/net/atm/common.c
--- a/net/atm/common.c Mon Jun 23 09:45:58 2003
+++ b/net/atm/common.c Mon Jun 23 09:45:58 2003
@@ -129,8 +129,19 @@
#endif
#if defined(CONFIG_PPPOATM) || defined(CONFIG_PPPOATM_MODULE)
-int (*pppoatm_ioctl_hook)(struct atm_vcc *, unsigned int, unsigned long);
-EXPORT_SYMBOL(pppoatm_ioctl_hook);
+static DECLARE_MUTEX(pppoatm_ioctl_mutex);
+
+static int (*pppoatm_ioctl_hook)(struct atm_vcc *, unsigned int, unsigned long);
+
+void pppoatm_ioctl_set(int (*hook)(struct atm_vcc *, unsigned int, unsigned long))
+{
+ down(&pppoatm_ioctl_mutex);
+ pppoatm_ioctl_hook = hook;
+ up(&pppoatm_ioctl_mutex);
+}
+#ifdef CONFIG_PPPOATM_MODULE
+EXPORT_SYMBOL(pppoatm_ioctl_set);
+#endif
#endif
#if defined(CONFIG_ATM_BR2684) || defined(CONFIG_ATM_BR2684_MODULE)
@@ -865,12 +876,14 @@
default:
break;
}
+ error = -ENOIOCTLCMD;
#if defined(CONFIG_PPPOATM) || defined(CONFIG_PPPOATM_MODULE)
- if (pppoatm_ioctl_hook) {
+ down(&pppoatm_ioctl_mutex);
+ if (pppoatm_ioctl_hook)
error = pppoatm_ioctl_hook(vcc, cmd, arg);
- if (error != -ENOIOCTLCMD)
- goto done;
- }
+ up(&pppoatm_ioctl_mutex);
+ if (error != -ENOIOCTLCMD)
+ goto done;
#endif
#if defined(CONFIG_ATM_BR2684) || defined(CONFIG_ATM_BR2684_MODULE)
if (br2684_ioctl_hook) {
diff -Nru a/net/atm/common.h b/net/atm/common.h
--- a/net/atm/common.h Mon Jun 23 09:45:58 2003
+++ b/net/atm/common.h Mon Jun 23 09:45:58 2003
@@ -26,6 +26,8 @@
void atm_shutdown_dev(struct atm_dev *dev);
+void pppoatm_ioctl_set(int (*hook)(struct atm_vcc *, unsigned int, unsigned long));
+
int atmpvc_init(void);
void atmpvc_exit(void);
int atmsvc_init(void);
diff -Nru a/net/atm/pppoatm.c b/net/atm/pppoatm.c
--- a/net/atm/pppoatm.c Mon Jun 23 09:45:58 2003
+++ b/net/atm/pppoatm.c Mon Jun 23 09:45:58 2003
@@ -44,6 +44,8 @@
#include <linux/ppp_channel.h>
#include <linux/atmppp.h>
+#include "common.h"
+
#if 0
#define DPRINTK(format, args...) \
printk(KERN_DEBUG "pppoatm: " format, ##args)
@@ -344,17 +346,15 @@
/* the following avoids some spurious warnings from the compiler */
#define UNUSED __attribute__((unused))
-extern int (*pppoatm_ioctl_hook)(struct atm_vcc *, unsigned int, unsigned long);
-
static int __init UNUSED pppoatm_init(void)
{
- pppoatm_ioctl_hook = pppoatm_ioctl;
+ pppoatm_ioctl_set(pppoatm_ioctl);
return 0;
}
static void __exit UNUSED pppoatm_exit(void)
{
- pppoatm_ioctl_hook = NULL;
+ pppoatm_ioctl_set(NULL);
}
module_init(pppoatm_init);
[atm]: cleanup br2684_ioctl_hook
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
# ChangeSet 1.1363 -> 1.1364
# net/atm/br2684.c 1.3 -> 1.4
# net/atm/common.h 1.14 -> 1.15
# net/atm/common.c 1.39 -> 1.40
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/06/21 chas@relax.cmf.nrl.navy.mil 1.1364
# common.h, common.c, br2684.c:
# cleanup br2684_ioctl_hook
# --------------------------------------------
#
diff -Nru a/net/atm/br2684.c b/net/atm/br2684.c
--- a/net/atm/br2684.c Mon Jun 23 09:45:37 2003
+++ b/net/atm/br2684.c Mon Jun 23 09:45:37 2003
@@ -16,9 +16,12 @@
#include <linux/ip.h>
#include <asm/uaccess.h>
#include <net/arp.h>
+#include <linux/atm.h>
+#include <linux/atmdev.h>
#include <linux/atmbr2684.h>
+#include "common.h"
#include "ipcommon.h"
/*
@@ -768,8 +771,6 @@
extern struct proc_dir_entry *atm_proc_root; /* from proc.c */
-extern int (*br2684_ioctl_hook)(struct atm_vcc *, unsigned int, unsigned long);
-
/* the following avoids some spurious warnings from the compiler */
#define UNUSED __attribute__((unused))
@@ -779,14 +780,14 @@
if ((p = create_proc_entry("br2684", 0, atm_proc_root)) == NULL)
return -ENOMEM;
p->proc_fops = &br2684_proc_operations;
- br2684_ioctl_hook = br2684_ioctl;
+ br2684_ioctl_set(br2684_ioctl);
return 0;
}
static void __exit UNUSED br2684_exit(void)
{
struct br2684_dev *brdev;
- br2684_ioctl_hook = NULL;
+ br2684_ioctl_set(NULL);
remove_proc_entry("br2684", atm_proc_root);
while (!list_empty(&br2684_devs)) {
brdev = list_entry_brdev(br2684_devs.next);
diff -Nru a/net/atm/common.c b/net/atm/common.c
--- a/net/atm/common.c Mon Jun 23 09:45:37 2003
+++ b/net/atm/common.c Mon Jun 23 09:45:37 2003
@@ -145,9 +145,18 @@
#endif
#if defined(CONFIG_ATM_BR2684) || defined(CONFIG_ATM_BR2684_MODULE)
-int (*br2684_ioctl_hook)(struct atm_vcc *, unsigned int, unsigned long);
+static DECLARE_MUTEX(br2684_ioctl_mutex);
+
+static int (*br2684_ioctl_hook)(struct atm_vcc *, unsigned int, unsigned long);
+
+void br2684_ioctl_set(int (*hook)(struct atm_vcc *, unsigned int, unsigned long))
+{
+ down(&br2684_ioctl_mutex);
+ br2684_ioctl_hook = hook;
+ up(&br2684_ioctl_mutex);
+}
#ifdef CONFIG_ATM_BR2684_MODULE
-EXPORT_SYMBOL(br2684_ioctl_hook);
+EXPORT_SYMBOL(br2684_ioctl_set);
#endif
#endif
@@ -886,11 +895,12 @@
goto done;
#endif
#if defined(CONFIG_ATM_BR2684) || defined(CONFIG_ATM_BR2684_MODULE)
- if (br2684_ioctl_hook) {
+ down(&br2684_ioctl_mutex);
+ if (br2684_ioctl_hook)
error = br2684_ioctl_hook(vcc, cmd, arg);
- if (error != -ENOIOCTLCMD)
- goto done;
- }
+ up(&br2684_ioctl_mutex);
+ if (error != -ENOIOCTLCMD)
+ goto done;
#endif
error = atm_dev_ioctl(cmd, arg);
diff -Nru a/net/atm/common.h b/net/atm/common.h
--- a/net/atm/common.h Mon Jun 23 09:45:37 2003
+++ b/net/atm/common.h Mon Jun 23 09:45:37 2003
@@ -27,6 +27,7 @@
void atm_shutdown_dev(struct atm_dev *dev);
void pppoatm_ioctl_set(int (*hook)(struct atm_vcc *, unsigned int, unsigned long));
+void br2684_ioctl_set(int (*hook)(struct atm_vcc *, unsigned int, unsigned long));
int atmpvc_init(void);
void atmpvc_exit(void);
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH][ATM] cleanup pppoatm and br2684 modules
2003-07-14 21:06 [PATCH][ATM] cleanup pppoatm and br2684 modules chas williams
@ 2003-07-15 0:11 ` David S. Miller
0 siblings, 0 replies; 2+ messages in thread
From: David S. Miller @ 2003-07-15 0:11 UTC (permalink / raw)
To: chas3; +Cc: chas, netdev
On Mon, 14 Jul 2003 17:06:14 -0400
chas williams <chas@cmf.nrl.navy.mil> wrote:
> this should be applied to the latest 2.5 sources...
Applied, thanks.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2003-07-15 0:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-07-14 21:06 [PATCH][ATM] cleanup pppoatm and br2684 modules chas williams
2003-07-15 0:11 ` David S. Miller
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).