All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH][ATM] minor cleanups for 2.5
@ 2003-07-16 21:18 chas williams
  2003-07-21 12:24 ` David S. Miller
  0 siblings, 1 reply; 3+ messages in thread
From: chas williams @ 2003-07-16 21:18 UTC (permalink / raw)
  To: davem; +Cc: netdev

just some cleanup work for the 2.5 kernels.  one biggish
oopsy -- never checked the return code from atm_dev_lookup()
in vcc_connect.  found it last week, and someone else found it
recently as well.  the lec timers now use mod_timer() and go
away with del_timer_sync() (and how does __inline__ work
when its the timer function?)



[atm]:  make sigd_sleep conditional with WAIT_FOR_DEMON

# 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.1364  -> 1.1365 
#	 net/atm/signaling.c	1.17    -> 1.18   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/06/21	chas@relax.cmf.nrl.navy.mil	1.1365
# signaling.c:
#   make sigd_sleep conditional with WAIT_FOR_DEMON
# --------------------------------------------
#
diff -Nru a/net/atm/signaling.c b/net/atm/signaling.c
--- a/net/atm/signaling.c	Mon Jun 23 09:45:13 2003
+++ b/net/atm/signaling.c	Mon Jun 23 09:45:13 2003
@@ -31,7 +31,9 @@
 
 
 struct atm_vcc *sigd = NULL;
+#ifdef WAIT_FOR_DEMON
 static DECLARE_WAIT_QUEUE_HEAD(sigd_sleep);
+#endif
 
 
 static void sigd_put_skb(struct sk_buff *skb)
@@ -254,6 +256,8 @@
 	vcc_insert_socket(vcc->sk);
 	set_bit(ATM_VF_META,&vcc->flags);
 	set_bit(ATM_VF_READY,&vcc->flags);
+#ifdef WAIT_FOR_DEMON
 	wake_up(&sigd_sleep);
+#endif
 	return 0;
 }





[atm]: return ENODEV if !dev

# 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.1413  -> 1.1414 
#	    net/atm/common.c	1.43    -> 1.44   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/07/16	chas@relax.cmf.nrl.navy.mil	1.1414
# return ENODEV if !dev
# --------------------------------------------
#
diff -Nru a/net/atm/common.c b/net/atm/common.c
--- a/net/atm/common.c	Wed Jul 16 17:06:05 2003
+++ b/net/atm/common.c	Wed Jul 16 17:06:05 2003
@@ -478,6 +478,8 @@
 		return -EINVAL;
 	if (itf != ATM_ITF_ANY) {
 		dev = atm_dev_lookup(itf);
+		if (!dev)
+			return -ENODEV;
 		error = __vcc_connect(vcc, dev, vpi, vci);
 		if (error) {
 			atm_dev_put(dev);



[atm]: if !IFF_UP drop the frames

# 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.1380.1.43 -> 1.1380.1.44
#	       net/atm/lec.c	1.33    -> 1.34   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/07/08	chas@relax.cmf.nrl.navy.mil	1.1380.1.44
# if !IFF_UP drop the frames
# --------------------------------------------
#
diff -Nru a/net/atm/lec.c b/net/atm/lec.c
--- a/net/atm/lec.c	Wed Jul 16 17:05:18 2003
+++ b/net/atm/lec.c	Wed Jul 16 17:05:18 2003
@@ -692,10 +692,11 @@
 
                 atm_return(vcc,skb->truesize);
                 if (*(uint16_t *)skb->data == htons(priv->lecid) ||
-                    !priv->lecd) { 
+                    !priv->lecd ||
+                    !(dev->flags & IFF_UP)) { 
                         /* Probably looping back, or if lecd is missing,
                            lecd has gone down */
-                        DPRINTK("Ignoring loopback frame...\n");
+                        DPRINTK("Ignoring frame...\n");
                         dev_kfree_skb(skb);
                         return;
                 }


[atm]: cleanup timers in lec

# 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.1380.1.44 -> 1.1380.1.45
#	       net/atm/lec.c	1.34    -> 1.35   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/07/08	chas@relax.cmf.nrl.navy.mil	1.1380.1.45
# timer cleanup
# --------------------------------------------
#
diff -Nru a/net/atm/lec.c b/net/atm/lec.c
--- a/net/atm/lec.c	Wed Jul 16 17:05:30 2003
+++ b/net/atm/lec.c	Wed Jul 16 17:05:30 2003
@@ -1031,7 +1031,7 @@
 #define LEC_ARP_REFRESH_INTERVAL (3*HZ)
 
 static void lec_arp_check_expire(unsigned long data);
-static __inline__ void lec_arp_expire_arp(unsigned long data);
+static void lec_arp_expire_arp(unsigned long data);
 void dump_arp_table(struct lec_priv *priv);
 
 /* 
@@ -1371,7 +1371,7 @@
         struct lec_arp_table *entry, *next;
         int i;
 
-        del_timer(&priv->lec_arp_timer);
+        del_timer_sync(&priv->lec_arp_timer);
         
         /*
          * Remove all entries
@@ -1386,7 +1386,7 @@
         entry = priv->lec_arp_empty_ones;
         while(entry) {
                 next = entry->next;
-                del_timer(&entry->timer);
+                del_timer_sync(&entry->timer);
                 lec_arp_clear_vccs(entry);
                 kfree(entry);
                 entry = next;
@@ -1395,7 +1395,7 @@
         entry = priv->lec_no_forward;
         while(entry) {
                 next = entry->next;
-                del_timer(&entry->timer);
+                del_timer_sync(&entry->timer);
                 lec_arp_clear_vccs(entry);
                 kfree(entry);
                 entry = next;
@@ -1404,7 +1404,7 @@
         entry = priv->mcast_fwds;
         while(entry) {
                 next = entry->next;
-                del_timer(&entry->timer);
+                /* No timer, LANEv2 7.1.20 and 2.3.5.3 */
                 lec_arp_clear_vccs(entry);
                 kfree(entry);
                 entry = next;
@@ -1478,8 +1478,6 @@
 
         entry = (struct lec_arp_table *)data;
 
-        del_timer(&entry->timer);
-
         DPRINTK("lec_arp_expire_arp\n");
         if (entry->status == ESI_ARP_PENDING) {
                 if (entry->no_tries <= entry->priv->max_retry_count) {
@@ -1489,8 +1487,7 @@
                                 send_to_lecd(entry->priv, l_arp_xmt, entry->mac_addr, NULL, NULL);
                         entry->no_tries++;
                 }
-                entry->timer.expires = jiffies + (1*HZ);
-                add_timer(&entry->timer);
+                mod_timer(&entry->timer, jiffies + (1*HZ));
         }
 }
 
@@ -1562,8 +1559,6 @@
         unsigned long time_to_check;
         int i;
 
-        del_timer(&priv->lec_arp_timer);
-
         DPRINTK("lec_arp_check_expire %p,%d\n",priv,
                 atomic_read(&priv->lec_arp_users));
         DPRINTK("expire: eo:%p nf:%p\n",priv->lec_arp_empty_ones,
@@ -1621,8 +1616,8 @@
                 }
                 lec_arp_put(priv);
         }
-        priv->lec_arp_timer.expires = jiffies + LEC_ARP_REFRESH_INTERVAL;
-        add_timer(&priv->lec_arp_timer);
+
+        mod_timer(&priv->lec_arp_timer, jiffies + LEC_ARP_REFRESH_INTERVAL);
 }
 /*
  * Try to find vcc where mac_address is attached.

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

* Re: [PATCH][ATM] minor cleanups for 2.5
  2003-07-16 21:18 [PATCH][ATM] minor cleanups for 2.5 chas williams
@ 2003-07-21 12:24 ` David S. Miller
  2003-07-21 15:03   ` chas williams
  0 siblings, 1 reply; 3+ messages in thread
From: David S. Miller @ 2003-07-21 12:24 UTC (permalink / raw)
  To: chas3; +Cc: chas, netdev

On Wed, 16 Jul 2003 17:18:04 -0400
chas williams <chas@cmf.nrl.navy.mil> wrote:

> (and how does __inline__ work
> when its the timer function?)

If you take the address of a function marked inline,
gcc outputs a non-inline of the function.

All of your ATM patches applied, thanks Chas.

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

* Re: [PATCH][ATM] minor cleanups for 2.5
  2003-07-21 12:24 ` David S. Miller
@ 2003-07-21 15:03   ` chas williams
  0 siblings, 0 replies; 3+ messages in thread
From: chas williams @ 2003-07-21 15:03 UTC (permalink / raw)
  To: David S. Miller; +Cc: netdev

In message <20030721052416.3ef97f3b.davem@redhat.com>,"David S. Miller" writes:
>> (and how does __inline__ work
>> when its the timer function?)
>
>If you take the address of a function marked inline,
>gcc outputs a non-inline of the function.

i figured that.  tagging this function inline is essentially
pointless.  (which was sort of my point in a roundabout way)

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

end of thread, other threads:[~2003-07-21 15:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-16 21:18 [PATCH][ATM] minor cleanups for 2.5 chas williams
2003-07-21 12:24 ` David S. Miller
2003-07-21 15:03   ` 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.