[PATCH][ATM]: [ioctl][5/8] change vcc clip info handling (from levon@movementarian.org)

DORMANTno replies

From: chas williams <hidden>
Date: 2003-09-25 16:10:42

please apply to 2.6 -- thanks

# 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.1451  -> 1.1452 
#	      net/atm/proc.c	1.30    -> 1.31   
#	include/linux/atmdev.h	1.30    -> 1.31   
#	      net/atm/clip.c	1.26    -> 1.27   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/09/23	chas@relax.cmf.nrl.navy.mil	1.1452
# [ATM]: [ioctl][5/8] change vcc clip info handling (from levon@movementarian.org)
# --------------------------------------------
#
diff -Nru a/include/linux/atmdev.h b/include/linux/atmdev.h
--- a/include/linux/atmdev.h	Thu Sep 25 09:24:35 2003
+++ b/include/linux/atmdev.h	Thu Sep 25 09:24:35 2003
@@ -253,6 +253,7 @@
 	ATM_VF_HASSAP,		/* SAP has been set */
 	ATM_VF_CLOSE,		/* asynchronous close - treat like VF_RELEASED*/
 	ATM_VF_WAITING,		/* waiting for reply from sigd */
+	ATM_VF_IS_CLIP,		/* in use by CLIP protocol */
 };
 
 
diff -Nru a/net/atm/clip.c b/net/atm/clip.c
--- a/net/atm/clip.c	Thu Sep 25 09:24:35 2003
+++ b/net/atm/clip.c	Thu Sep 25 09:24:35 2003
@@ -488,6 +488,7 @@
 	DPRINTK("mkip clip_vcc %p vcc %p\n",clip_vcc,vcc);
 	clip_vcc->vcc = vcc;
 	vcc->user_back = clip_vcc;
+	set_bit(ATM_VF_IS_CLIP, &vcc->flags);
 	clip_vcc->entry = NULL;
 	clip_vcc->xoff = 0;
 	clip_vcc->encap = 1;
diff -Nru a/net/atm/proc.c b/net/atm/proc.c
--- a/net/atm/proc.c	Thu Sep 25 09:24:35 2003
+++ b/net/atm/proc.c	Thu Sep 25 09:24:35 2003
@@ -25,6 +25,7 @@
 #include <linux/atmarp.h>
 #include <linux/if_arp.h>
 #include <linux/init.h> /* for __init */
+#include <net/atmclip.h>
 #include <asm/uaccess.h>
 #include <asm/atomic.h>
 #include <asm/param.h> /* for HZ */
@@ -32,9 +33,6 @@
 #include "common.h" /* atm_proc_init prototype */
 #include "signaling.h" /* to get sigd - ugly too */
 
-#include <net/atmclip.h>
-#include "ipcommon.h"
-
 #if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
 #include "lec.h"
 #include "lec_arpc.h"
@@ -139,7 +137,6 @@
 struct vcc_state {
 	struct sock *sk;
 	int family;
-	int clip_info;
 };
 
 static inline int compare_family(struct sock *sk, int family)
@@ -190,7 +187,6 @@
 		goto out_kfree;
 
 	state->family = family;
-	state->clip_info = try_atm_clip_ops();
 
 	seq = file->private_data;
 	seq->private = state;
@@ -203,13 +199,6 @@
 
 static int vcc_seq_release(struct inode *inode, struct file *file)
 {
-#if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE)
-	struct seq_file *seq = file->private_data;
-	struct vcc_state *state = seq->private;
-
-	if (state->clip_info)
-		module_put(atm_clip_ops->owner);
-#endif
 	return seq_release_private(inode, file);
 }
 
@@ -237,7 +226,7 @@
 	return v;
 }
 
-static void pvc_info(struct seq_file *seq, struct atm_vcc *vcc, int clip_info)
+static void pvc_info(struct seq_file *seq, struct atm_vcc *vcc)
 {
 	static const char *class_name[] = { "off","UBR","CBR","VBR","ABR" };
 	static const char *aal_name[] = {
@@ -252,8 +241,7 @@
 	    aal_name[vcc->qos.aal],vcc->qos.rxtp.min_pcr,
 	    class_name[vcc->qos.rxtp.traffic_class],vcc->qos.txtp.min_pcr,
 	    class_name[vcc->qos.txtp.traffic_class]);
-#if defined(CONFIG_ATM_CLIP) || defined(CONFIG_ATM_CLIP_MODULE)
-	if (clip_info && (vcc->push == atm_clip_ops->clip_push)) {
+	if (test_bit(ATM_VF_IS_CLIP, &vcc->flags)) {
 		struct clip_vcc *clip_vcc = CLIP_VCC(vcc);
 		struct net_device *dev;
 
@@ -262,7 +250,6 @@
 		    dev ? dev->name : "none?");
 		seq_printf(seq, "%s", clip_vcc->encap ? "LLC/SNAP" : "None");
 	}
-#endif
 	seq_putc(seq, '\n');
 }
 
@@ -405,7 +392,7 @@
 		struct vcc_state *state = seq->private;
 		struct atm_vcc *vcc = atm_sk(state->sk);
 
-		pvc_info(seq, vcc, state->clip_info);
+		pvc_info(seq, vcc);
 	}
 	return 0;
 }
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help