All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][ATM] remove mod_inc_use_count from lec
@ 2003-02-26 12:30 chas williams
  2003-02-26 12:42 ` Duncan Sands
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: chas williams @ 2003-02-26 12:30 UTC (permalink / raw)
  To: linux-kernel

this patch removes the deprecated MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT
from the lane client.

Index: linux/net/atm/lec.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/net/atm/lec.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- linux/net/atm/lec.c	25 Feb 2003 11:59:08 -0000	1.8
+++ linux/net/atm/lec.c	25 Feb 2003 19:48:44 -0000	1.9
@@ -543,7 +543,6 @@
         }
   
 	printk("%s: Shut down!\n", dev->name);
-        MOD_DEC_USE_COUNT;
 }
 
 static struct atmdev_ops lecdev_ops = {
@@ -824,7 +823,6 @@
         if (dev_lec[i]->flags & IFF_UP) {
                 netif_start_queue(dev_lec[i]);
         }
-        MOD_INC_USE_COUNT;
         return i;
 }
 
Index: linux/net/atm/mpc.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/net/atm/mpc.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux/net/atm/mpc.c	20 Feb 2003 13:46:30 -0000	1.1
+++ linux/net/atm/mpc.c	26 Feb 2003 12:27:30 -0000	1.2
@@ -799,7 +799,6 @@
 			send_set_mps_ctrl_addr(mpc->mps_ctrl_addr, mpc);
 	}
 
-	MOD_INC_USE_COUNT;
 	return arg;
 }
 
@@ -848,7 +847,6 @@
 	
 	printk("mpoa: (%s) going down\n",
 		(mpc->dev) ? mpc->dev->name : "<unknown>");
-	MOD_DEC_USE_COUNT;
 
 	return;
 }

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][ATM] remove mod_inc_use_count from lec
  2003-02-26 12:30 [PATCH][ATM] remove mod_inc_use_count from lec chas williams
@ 2003-02-26 12:42 ` Duncan Sands
  2003-02-26 12:48   ` chas williams
  2003-02-26 15:07 ` Jeff Garzik
  2003-02-26 16:09 ` chas williams
  2 siblings, 1 reply; 7+ messages in thread
From: Duncan Sands @ 2003-02-26 12:42 UTC (permalink / raw)
  To: chas williams, linux-kernel

On Wednesday 26 February 2003 13:30, chas williams wrote:
> this patch removes the deprecated MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT
> from the lane client.

Woah!  Shouldn't you add some try_module_get calls in the atm device handling routines first?

All the best,

Duncan.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][ATM] remove mod_inc_use_count from lec
  2003-02-26 12:42 ` Duncan Sands
@ 2003-02-26 12:48   ` chas williams
  0 siblings, 0 replies; 7+ messages in thread
From: chas williams @ 2003-02-26 12:48 UTC (permalink / raw)
  To: Duncan Sands; +Cc: linux-kernel

In message <200302261342.20282.baldrick@wanadoo.fr>,Duncan Sands writes:
>Woah!  Shouldn't you add some try_module_get calls in the atm device handling 
>routines first?

yeah someone pointed this out already -- working on it.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][ATM] remove mod_inc_use_count from lec
  2003-02-26 12:30 [PATCH][ATM] remove mod_inc_use_count from lec chas williams
  2003-02-26 12:42 ` Duncan Sands
@ 2003-02-26 15:07 ` Jeff Garzik
  2003-02-26 16:09 ` chas williams
  2 siblings, 0 replies; 7+ messages in thread
From: Jeff Garzik @ 2003-02-26 15:07 UTC (permalink / raw)
  To: chas williams; +Cc: linux-kernel, David S. Miller

chas williams wrote:
> this patch removes the deprecated MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT
> from the lane client.


For patches that look ok and do not require feedback, I would suggest 
CC'ing your patches to David Miller, who is the net stack maintainer and 
seems to have been applying several of your patches so far.  Though "To: 
linux-kernel" gets your patch published, you typically want to find a 
"patch penguin" who will apply your patches and send them to 
Linus/Marcelo...

	Jeff




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][ATM] remove mod_inc_use_count from lec
  2003-02-26 12:30 [PATCH][ATM] remove mod_inc_use_count from lec chas williams
  2003-02-26 12:42 ` Duncan Sands
  2003-02-26 15:07 ` Jeff Garzik
@ 2003-02-26 16:09 ` chas williams
  2003-02-27  4:29   ` David S. Miller
  2 siblings, 1 reply; 7+ messages in thread
From: chas williams @ 2003-02-26 16:09 UTC (permalink / raw)
  To: linux-kernel

lets try this again.  for now there are two owner pointers, the original
in atmdev_ops and another in the struct shared between the common code
and the lane code.  the shared one pointers to the private owner.
would that be the 'right' way or should i just ignore the owner field
in atmdev_ops.

Index: linux/net/atm/lec.h
===================================================================
RCS file: /home/chas/CVSROOT/linux/net/atm/lec.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- linux/net/atm/lec.h	24 Feb 2003 13:24:46 -0000	1.3
+++ linux/net/atm/lec.h	26 Feb 2003 15:52:44 -0000	1.4
@@ -65,6 +65,7 @@
         int (*mcast_attach)(struct atm_vcc *vcc, int arg);
         int (*vcc_attach)(struct atm_vcc *vcc, void *arg);
         struct net_device **(*get_lecs)(void);
+        struct module *owner;
 };
 
 /*
Index: linux/net/atm/proc.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/net/atm/proc.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- linux/net/atm/proc.c	20 Feb 2003 13:46:30 -0000	1.1
+++ linux/net/atm/proc.c	26 Feb 2003 15:52:44 -0000	1.2
@@ -444,8 +444,11 @@
 	}
 	if (atm_lane_ops.get_lecs == NULL)
 		return 0; /* the lane module is not there yet */
-	else
-		dev_lec = atm_lane_ops.get_lecs();
+
+	if (!try_module_get(atm_lane_ops.owner))
+		return 0;
+
+	dev_lec = atm_lane_ops.get_lecs();
 
 	count = pos;
 	for(d=0;d<MAX_LEC_ITF;d++) {
@@ -458,6 +461,7 @@
 				e=sprintf(buf,"%s ",
 				    dev_lec[d]->name);
 				lec_info(entry,buf+e);
+				module_put(atm_lane_ops.owner);
 				return strlen(buf);
 			}
 		}
@@ -466,6 +470,7 @@
 			if (--count) continue;
 			e=sprintf(buf,"%s ",dev_lec[d]->name);
 			lec_info(entry, buf+e);
+			module_put(atm_lane_ops.owner);
 			return strlen(buf);
 		}
 		for(entry=priv->lec_no_forward; entry;
@@ -473,6 +478,7 @@
 			if (--count) continue;
 			e=sprintf(buf,"%s ",dev_lec[d]->name);
 			lec_info(entry, buf+e);
+			module_put(atm_lane_ops.owner);
 			return strlen(buf);
 		}
 		for(entry=priv->mcast_fwds; entry;
@@ -480,9 +486,11 @@
 			if (--count) continue;
 			e=sprintf(buf,"%s ",dev_lec[d]->name);
 			lec_info(entry, buf+e);
+			module_put(atm_lane_ops.owner);
 			return strlen(buf);
 		}
 	}
+	module_put(atm_lane_ops.owner);
 	return 0;
 }
 #endif
Index: linux/net/atm/common.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/net/atm/common.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- linux/net/atm/common.c	25 Feb 2003 20:06:54 -0000	1.4
+++ linux/net/atm/common.c	26 Feb 2003 15:52:44 -0000	1.5
@@ -685,12 +685,15 @@
 			}
                         if (atm_lane_ops.lecd_attach == NULL)
 				atm_lane_init();
-                        if (atm_lane_ops.lecd_attach == NULL) { /* try again */
+                        if (!try_module_get(atm_lane_ops.owner)) { /* try again */
 				ret_val = -ENOSYS;
 				goto done;
 			}
 			error = atm_lane_ops.lecd_attach(vcc, (int)arg);
-			if (error >= 0) sock->state = SS_CONNECTED;
+			if (error >= 0)
+				sock->state = SS_CONNECTED;
+			else
+				module_put(atm_lane_ops.owner);
 			ret_val =  error;
 			goto done;
                 case ATMLEC_MCAST:
Index: linux/net/atm/lec.c
===================================================================
RCS file: /home/chas/CVSROOT/linux/net/atm/lec.c,v
retrieving revision 1.8
retrieving revision 1.10
diff -u -r1.8 -r1.10
--- linux/net/atm/lec.c	25 Feb 2003 11:59:08 -0000	1.8
+++ linux/net/atm/lec.c	26 Feb 2003 15:52:44 -0000	1.10
@@ -543,12 +543,12 @@
         }
   
 	printk("%s: Shut down!\n", dev->name);
-        MOD_DEC_USE_COUNT;
 }
 
 static struct atmdev_ops lecdev_ops = {
         .close	= lec_atm_close,
-        .send	= lec_atm_send
+        .send	= lec_atm_send,
+        .owner	= THIS_MODULE
 };
 
 static struct atm_dev lecatm_dev = {
@@ -824,7 +824,6 @@
         if (dev_lec[i]->flags & IFF_UP) {
                 netif_start_queue(dev_lec[i]);
         }
-        MOD_INC_USE_COUNT;
         return i;
 }
 
@@ -834,6 +833,7 @@
         ops->mcast_attach = lec_mcast_attach;
         ops->vcc_attach = lec_vcc_attach;
         ops->get_lecs = get_dev_lec;
+        ops->owner = lecdev_ops.owner;
 
         printk("lec.c: " __DATE__ " " __TIME__ " initialized\n");
 
@@ -859,6 +859,7 @@
         atm_lane_ops.mcast_attach = NULL;
         atm_lane_ops.vcc_attach = NULL;
         atm_lane_ops.get_lecs = NULL;
+        atm_lane_ops.owner = NULL;
 
         for (i = 0; i < MAX_LEC_ITF; i++) {
                 if (dev_lec[i] != NULL) {

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][ATM] remove mod_inc_use_count from lec
  2003-02-26 16:09 ` chas williams
@ 2003-02-27  4:29   ` David S. Miller
  2003-02-27 10:07     ` chas williams
  0 siblings, 1 reply; 7+ messages in thread
From: David S. Miller @ 2003-02-27  4:29 UTC (permalink / raw)
  To: chas williams; +Cc: linux-kernel

On Wed, 2003-02-26 at 08:09, chas williams wrote:
> lets try this again.

Chas, if you don't CC: me I assume you don't want this patch
applied yet.  Just making sure you understand this :)


^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH][ATM] remove mod_inc_use_count from lec
  2003-02-27  4:29   ` David S. Miller
@ 2003-02-27 10:07     ` chas williams
  0 siblings, 0 replies; 7+ messages in thread
From: chas williams @ 2003-02-27 10:07 UTC (permalink / raw)
  To: David S. Miller; +Cc: linux-kernel

In message <1046320155.8085.2.camel@rth.ninka.net>,"David S. Miller" writes:
>Chas, if you don't CC: me I assume you don't want this patch
>applied yet.  Just making sure you understand this :)

that was the intent.  i dont know if i like the pointer to the
pointer to the owner.  i really dont like exporting a struct.
maybe this should be a pointer to a struct instead.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2003-02-27  9:57 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-02-26 12:30 [PATCH][ATM] remove mod_inc_use_count from lec chas williams
2003-02-26 12:42 ` Duncan Sands
2003-02-26 12:48   ` chas williams
2003-02-26 15:07 ` Jeff Garzik
2003-02-26 16:09 ` chas williams
2003-02-27  4:29   ` David S. Miller
2003-02-27 10:07     ` chas williams

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.