netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/5] netns: dont alloc ipv6 fib timer list
       [not found] <20080722212927.937523165@vyatta.com>
@ 2008-07-22 21:29 ` Stephen Hemminger
  2008-07-22 21:33   ` David Miller
  2008-07-22 21:29 ` [PATCH 2/5] ipv6: use round_jiffies Stephen Hemminger
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Stephen Hemminger @ 2008-07-22 21:29 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

[-- Attachment #1: ipv6-timer-alloc.patch --]
[-- Type: text/plain, Size: 3374 bytes --]

FIB timer list is a trivial size structure, avoid indirection and just
put it in existing ns.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

---
 patch against current net-2.6 tree

--- a/net/ipv6/ip6_fib.c	2008-07-22 09:21:36.000000000 -0700
+++ b/net/ipv6/ip6_fib.c	2008-07-22 13:48:21.000000000 -0700
@@ -661,16 +661,16 @@ static int fib6_add_rt2node(struct fib6_
 
 static __inline__ void fib6_start_gc(struct net *net, struct rt6_info *rt)
 {
-	if (!timer_pending(net->ipv6.ip6_fib_timer) &&
+	if (!timer_pending(&net->ipv6.ip6_fib_timer) &&
 	    (rt->rt6i_flags & (RTF_EXPIRES|RTF_CACHE)))
-		mod_timer(net->ipv6.ip6_fib_timer,
+		mod_timer(&net->ipv6.ip6_fib_timer,
 			  jiffies + net->ipv6.sysctl.ip6_rt_gc_interval);
 }
 
 void fib6_force_start_gc(struct net *net)
 {
-	if (!timer_pending(net->ipv6.ip6_fib_timer))
-		mod_timer(net->ipv6.ip6_fib_timer,
+	if (!timer_pending(&net->ipv6.ip6_fib_timer))
+		mod_timer(&net->ipv6.ip6_fib_timer,
 			  jiffies + net->ipv6.sysctl.ip6_rt_gc_interval);
 }
 
@@ -1449,7 +1449,7 @@ void fib6_run_gc(unsigned long expires, 
 	} else {
 		local_bh_disable();
 		if (!spin_trylock(&fib6_gc_lock)) {
-			mod_timer(net->ipv6.ip6_fib_timer, jiffies + HZ);
+			mod_timer(&net->ipv6.ip6_fib_timer, jiffies + HZ);
 			local_bh_enable();
 			return;
 		}
@@ -1462,12 +1462,10 @@ void fib6_run_gc(unsigned long expires, 
 	fib6_clean_all(net, fib6_age, 0, NULL);
 
 	if (gc_args.more)
-		mod_timer(net->ipv6.ip6_fib_timer, jiffies +
+		mod_timer(&net->ipv6.ip6_fib_timer, jiffies +
 			  net->ipv6.sysctl.ip6_rt_gc_interval);
-	else {
-		del_timer(net->ipv6.ip6_fib_timer);
-		net->ipv6.ip6_fib_timer->expires = 0;
-	}
+	else
+		del_timer(&net->ipv6.ip6_fib_timer);
 	spin_unlock_bh(&fib6_gc_lock);
 }
 
@@ -1478,16 +1476,7 @@ static void fib6_gc_timer_cb(unsigned lo
 
 static int fib6_net_init(struct net *net)
 {
-	int ret;
-	struct timer_list *timer;
-
-	ret = -ENOMEM;
-	timer = kzalloc(sizeof(*timer), GFP_KERNEL);
-	if (!timer)
-		goto out;
-
-	setup_timer(timer, fib6_gc_timer_cb, (unsigned long)net);
-	net->ipv6.ip6_fib_timer = timer;
+	setup_timer(&net->ipv6.ip6_fib_timer, fib6_gc_timer_cb, (unsigned long)net);
 
 	net->ipv6.rt6_stats = kzalloc(sizeof(*net->ipv6.rt6_stats), GFP_KERNEL);
 	if (!net->ipv6.rt6_stats)
@@ -1521,9 +1510,7 @@ static int fib6_net_init(struct net *net
 #endif
 	fib6_tables_init(net);
 
-	ret = 0;
-out:
-	return ret;
+	return 0;
 
 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 out_fib6_main_tbl:
@@ -1534,15 +1521,14 @@ out_fib_table_hash:
 out_rt6_stats:
 	kfree(net->ipv6.rt6_stats);
 out_timer:
-	kfree(timer);
-	goto out;
+	return -ENOMEM;
  }
 
 static void fib6_net_exit(struct net *net)
 {
 	rt6_ifdown(net, NULL);
-	del_timer_sync(net->ipv6.ip6_fib_timer);
-	kfree(net->ipv6.ip6_fib_timer);
+	del_timer_sync(&net->ipv6.ip6_fib_timer);
+
 #ifdef CONFIG_IPV6_MULTIPLE_TABLES
 	kfree(net->ipv6.fib6_local_tbl);
 #endif
--- a/include/net/netns/ipv6.h	2008-07-22 09:21:35.000000000 -0700
+++ b/include/net/netns/ipv6.h	2008-07-22 13:46:51.000000000 -0700
@@ -39,7 +39,7 @@ struct netns_ipv6 {
 #endif
 	struct rt6_info         *ip6_null_entry;
 	struct rt6_statistics   *rt6_stats;
-	struct timer_list       *ip6_fib_timer;
+	struct timer_list       ip6_fib_timer;
 	struct hlist_head       *fib_table_hash;
 	struct fib6_table       *fib6_main_tbl;
 	struct dst_ops		*ip6_dst_ops;

-- 


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

* [PATCH 2/5] ipv6: use round_jiffies
       [not found] <20080722212927.937523165@vyatta.com>
  2008-07-22 21:29 ` [PATCH 1/5] netns: dont alloc ipv6 fib timer list Stephen Hemminger
@ 2008-07-22 21:29 ` Stephen Hemminger
  2008-07-22 21:34   ` David Miller
  2008-07-22 21:29 ` [PATCH 3/5] ipv6: use spin_trylock_bh Stephen Hemminger
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 13+ messages in thread
From: Stephen Hemminger @ 2008-07-22 21:29 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

[-- Attachment #1: ipv6-round.patch --]
[-- Type: text/plain, Size: 821 bytes --]

This timer normally happens once a minute, there is no need to cause an
early wakeup for it, so align it to next second boundary to safe power.
It can't be deferred because then it could take too long on cleanup or DoS.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/ipv6/ip6_fib.c	2008-07-21 12:06:44.000000000 -0700
+++ b/net/ipv6/ip6_fib.c	2008-07-21 12:07:41.000000000 -0700
@@ -1462,8 +1462,9 @@ void fib6_run_gc(unsigned long expires, 
 	fib6_clean_all(net, fib6_age, 0, NULL);
 
 	if (gc_args.more)
-		mod_timer(&net->ipv6.ip6_fib_timer, jiffies +
-			  net->ipv6.sysctl.ip6_rt_gc_interval);
+		mod_timer(&net->ipv6.ip6_fib_timer,
+			  round_jiffies(jiffies
+					+ net->ipv6.sysctl.ip6_rt_gc_interval));
 	else
 		del_timer(&net->ipv6.ip6_fib_timer);
 	spin_unlock_bh(&fib6_gc_lock);

-- 


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

* [PATCH 3/5] ipv6: use spin_trylock_bh
       [not found] <20080722212927.937523165@vyatta.com>
  2008-07-22 21:29 ` [PATCH 1/5] netns: dont alloc ipv6 fib timer list Stephen Hemminger
  2008-07-22 21:29 ` [PATCH 2/5] ipv6: use round_jiffies Stephen Hemminger
@ 2008-07-22 21:29 ` Stephen Hemminger
  2008-07-22 21:34   ` David Miller
  2008-07-28  2:46   ` [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer Yang Hongyang
  2008-07-22 21:29 ` [PATCH 4/5] ipv6: use kcalloc Stephen Hemminger
  2008-07-22 21:29 ` [PATCH 5/5] ipv6: icmp6_dst_gc return change Stephen Hemminger
  4 siblings, 2 replies; 13+ messages in thread
From: Stephen Hemminger @ 2008-07-22 21:29 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

[-- Attachment #1: ipv6-spin-lock-bh.patch --]
[-- Type: text/plain, Size: 668 bytes --]

Now there is spin_trylock_bh, use it rather than open coding.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/ipv6/ip6_fib.c	2008-07-21 12:11:46.000000000 -0700
+++ b/net/ipv6/ip6_fib.c	2008-07-21 12:17:52.000000000 -0700
@@ -1447,10 +1447,8 @@ void fib6_run_gc(unsigned long expires, 
 		gc_args.timeout = expires ? (int)expires :
 			net->ipv6.sysctl.ip6_rt_gc_interval;
 	} else {
-		local_bh_disable();
-		if (!spin_trylock(&fib6_gc_lock)) {
+		if (!spin_trylock_bh(&fib6_gc_lock)) {
 			mod_timer(&net->ipv6.ip6_fib_timer, jiffies + HZ);
-			local_bh_enable();
 			return;
 		}
 		gc_args.timeout = net->ipv6.sysctl.ip6_rt_gc_interval;

-- 


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

* [PATCH 4/5] ipv6: use kcalloc
       [not found] <20080722212927.937523165@vyatta.com>
                   ` (2 preceding siblings ...)
  2008-07-22 21:29 ` [PATCH 3/5] ipv6: use spin_trylock_bh Stephen Hemminger
@ 2008-07-22 21:29 ` Stephen Hemminger
  2008-07-22 21:35   ` David Miller
  2008-07-22 21:29 ` [PATCH 5/5] ipv6: icmp6_dst_gc return change Stephen Hemminger
  4 siblings, 1 reply; 13+ messages in thread
From: Stephen Hemminger @ 2008-07-22 21:29 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

[-- Attachment #1: ipv6-kcalloc.patch --]
[-- Type: text/plain, Size: 634 bytes --]

Th fib_table_hash is an array, so use kcalloc.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

--- a/net/ipv6/ip6_fib.c	2008-07-21 12:21:15.000000000 -0700
+++ b/net/ipv6/ip6_fib.c	2008-07-21 12:21:15.000000000 -0700
@@ -1481,9 +1481,9 @@ static int fib6_net_init(struct net *net
 	if (!net->ipv6.rt6_stats)
 		goto out_timer;
 
-	net->ipv6.fib_table_hash =
-		kzalloc(sizeof(*net->ipv6.fib_table_hash)*FIB_TABLE_HASHSZ,
-			GFP_KERNEL);
+	net->ipv6.fib_table_hash = kcalloc(FIB_TABLE_HASHSZ,
+					   sizeof(*net->ipv6.fib_table_hash),
+					   GFP_KERNEL);
 	if (!net->ipv6.fib_table_hash)
 		goto out_rt6_stats;
 

-- 


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

* [PATCH 5/5] ipv6: icmp6_dst_gc return change
       [not found] <20080722212927.937523165@vyatta.com>
                   ` (3 preceding siblings ...)
  2008-07-22 21:29 ` [PATCH 4/5] ipv6: use kcalloc Stephen Hemminger
@ 2008-07-22 21:29 ` Stephen Hemminger
  2008-07-22 21:35   ` David Miller
  4 siblings, 1 reply; 13+ messages in thread
From: Stephen Hemminger @ 2008-07-22 21:29 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

[-- Attachment #1: ipv6-icmp-dst.patch --]
[-- Type: text/plain, Size: 1732 bytes --]

Change icmp6_dst_gc to return the one value the caller cares about rather
than using call by reference.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>


--- a/include/net/ip6_route.h	2008-07-21 12:15:35.000000000 -0700
+++ b/include/net/ip6_route.h	2008-07-21 12:15:41.000000000 -0700
@@ -68,7 +68,7 @@ extern struct rt6_info		*rt6_lookup(stru
 extern struct dst_entry *icmp6_dst_alloc(struct net_device *dev,
 					 struct neighbour *neigh,
 					 const struct in6_addr *addr);
-extern int icmp6_dst_gc(int *more);
+extern int icmp6_dst_gc(void);
 
 extern void fib6_force_start_gc(struct net *net);
 
--- a/net/ipv6/ip6_fib.c	2008-07-21 12:13:41.000000000 -0700
+++ b/net/ipv6/ip6_fib.c	2008-07-21 12:14:35.000000000 -0700
@@ -1453,9 +1453,8 @@ void fib6_run_gc(unsigned long expires, 
 		}
 		gc_args.timeout = net->ipv6.sysctl.ip6_rt_gc_interval;
 	}
-	gc_args.more = 0;
 
-	icmp6_dst_gc(&gc_args.more);
+	gc_args.more = icmp6_dst_gc();
 
 	fib6_clean_all(net, fib6_age, 0, NULL);
 
--- a/net/ipv6/route.c	2008-07-21 12:14:06.000000000 -0700
+++ b/net/ipv6/route.c	2008-07-21 12:15:14.000000000 -0700
@@ -978,13 +978,12 @@ out:
 	return &rt->u.dst;
 }
 
-int icmp6_dst_gc(int *more)
+int icmp6_dst_gc(void)
 {
 	struct dst_entry *dst, *next, **pprev;
-	int freed;
+	int more = 0;
 
 	next = NULL;
-	freed = 0;
 
 	spin_lock_bh(&icmp6_dst_lock);
 	pprev = &icmp6_dst_gc_list;
@@ -993,16 +992,15 @@ int icmp6_dst_gc(int *more)
 		if (!atomic_read(&dst->__refcnt)) {
 			*pprev = dst->next;
 			dst_free(dst);
-			freed++;
 		} else {
 			pprev = &dst->next;
-			(*more)++;
+			++more;
 		}
 	}
 
 	spin_unlock_bh(&icmp6_dst_lock);
 
-	return freed;
+	return more;
 }
 
 static int ip6_dst_gc(struct dst_ops *ops)

-- 


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

* Re: [PATCH 1/5] netns: dont alloc ipv6 fib timer list
  2008-07-22 21:29 ` [PATCH 1/5] netns: dont alloc ipv6 fib timer list Stephen Hemminger
@ 2008-07-22 21:33   ` David Miller
  0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2008-07-22 21:33 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Tue, 22 Jul 2008 14:29:28 -0700

> FIB timer list is a trivial size structure, avoid indirection and just
> put it in existing ns.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied.

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

* Re: [PATCH 2/5] ipv6: use round_jiffies
  2008-07-22 21:29 ` [PATCH 2/5] ipv6: use round_jiffies Stephen Hemminger
@ 2008-07-22 21:34   ` David Miller
  0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2008-07-22 21:34 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Tue, 22 Jul 2008 14:29:29 -0700

> This timer normally happens once a minute, there is no need to cause an
> early wakeup for it, so align it to next second boundary to safe power.
> It can't be deferred because then it could take too long on cleanup or DoS.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied.

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

* Re: [PATCH 3/5] ipv6: use spin_trylock_bh
  2008-07-22 21:29 ` [PATCH 3/5] ipv6: use spin_trylock_bh Stephen Hemminger
@ 2008-07-22 21:34   ` David Miller
  2008-07-28  2:46   ` [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer Yang Hongyang
  1 sibling, 0 replies; 13+ messages in thread
From: David Miller @ 2008-07-22 21:34 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Tue, 22 Jul 2008 14:29:30 -0700

> Now there is spin_trylock_bh, use it rather than open coding.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied.

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

* Re: [PATCH 4/5] ipv6: use kcalloc
  2008-07-22 21:29 ` [PATCH 4/5] ipv6: use kcalloc Stephen Hemminger
@ 2008-07-22 21:35   ` David Miller
  0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2008-07-22 21:35 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Tue, 22 Jul 2008 14:29:31 -0700

> Th fib_table_hash is an array, so use kcalloc.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Applied.

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

* Re: [PATCH 5/5] ipv6: icmp6_dst_gc return change
  2008-07-22 21:29 ` [PATCH 5/5] ipv6: icmp6_dst_gc return change Stephen Hemminger
@ 2008-07-22 21:35   ` David Miller
  0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2008-07-22 21:35 UTC (permalink / raw)
  To: shemminger; +Cc: netdev

From: Stephen Hemminger <shemminger@vyatta.com>
Date: Tue, 22 Jul 2008 14:29:32 -0700

> Change icmp6_dst_gc to return the one value the caller cares about rather
> than using call by reference.
> 
> Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>

Also applied, thanks.

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

* [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer
  2008-07-22 21:29 ` [PATCH 3/5] ipv6: use spin_trylock_bh Stephen Hemminger
  2008-07-22 21:34   ` David Miller
@ 2008-07-28  2:46   ` Yang Hongyang
  1 sibling, 0 replies; 13+ messages in thread
From: Yang Hongyang @ 2008-07-28  2:46 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

When Set Hop-by-Hop options header with NULL data 
pointer and optlen is not zero use setsockopt(),
the kernel successfully return 0 instead of 
return error EINVAL or EFAULT.

This patch fix the problem.

Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
---
 ipv6_sockglue.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/ipv6_sockglue.c b/ipv6_sockglue.c
index ea33b26..2cabac9 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -346,6 +346,8 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
 		 */
 		if (optlen == 0)
 			optval = NULL;
+		else if (optval == NULL)
+			goto e_inval;
 		else if (optlen < sizeof(struct ipv6_opt_hdr) ||
 			 optlen & 0x7 || optlen > 8 * 255)
 			goto e_inval;
-- 
1.5.3.8

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

* [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer
@ 2008-07-28  2:56 Yang Hongyang
  2008-08-04  1:16 ` David Miller
  0 siblings, 1 reply; 13+ messages in thread
From: Yang Hongyang @ 2008-07-28  2:56 UTC (permalink / raw)
  To: David Miller; +Cc: netdev

Please ingnore prev one.

When Set Hop-by-Hop options header with NULL data 
pointer and optlen is not zero use setsockopt(),
the kernel successfully return 0 instead of 
return error EINVAL or EFAULT.

This patch fix the problem.

Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>
---
 ipv6_sockglue.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/ipv6_sockglue.c b/ipv6_sockglue.c
index ea33b26..2cabac9 100644
--- a/net/ipv6/ipv6_sockglue.c
+++ b/net/ipv6/ipv6_sockglue.c
@@ -346,6 +346,8 @@ static int do_ipv6_setsockopt(struct sock *sk, int level, int optname,
 		 */
 		if (optlen == 0)
 			optval = NULL;
+		else if (optval == NULL)
+			goto e_inval;
 		else if (optlen < sizeof(struct ipv6_opt_hdr) ||
 			 optlen & 0x7 || optlen > 8 * 255)
 			goto e_inval;
-- 
1.5.3.8 

-- 
Regards
Yang Hongyang
 
A new email address of FJWAN is launched from Apr.1 2007.
The updated address is: yanghy@cn.fujitsu.com
--------------------------------------------------
Yang Hongyang
Development Dept.I
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
8/F., Civil Defense Building, No.189 Guangzhou Road,
Nanjing, 210029, China
TEL: +86+25-86630566-812
FUJITSU INTERNAL: 79955-812
FAX: +86+25-83317685
EMAIL: yanghy@cn.fujitsu.com
--------------------------------------------------
This communication is for use by the intended recipient(s) only and may contain information that is privileged, confidential and exempt from disclosure under applicable law. If you are not an intended recipient of this communication, you are hereby notified that any dissemination, distribution or copying hereof is strictly prohibited.  If you have received this communication in error, please notify me by reply e-mail, permanently delete this communication from your system, and destroy any hard copies you may have printed

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

* Re: [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer
  2008-07-28  2:56 [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer Yang Hongyang
@ 2008-08-04  1:16 ` David Miller
  0 siblings, 0 replies; 13+ messages in thread
From: David Miller @ 2008-08-04  1:16 UTC (permalink / raw)
  To: yanghy; +Cc: netdev

From: Yang Hongyang <yanghy@cn.fujitsu.com>
Date: Mon, 28 Jul 2008 10:56:35 +0800

> When Set Hop-by-Hop options header with NULL data 
> pointer and optlen is not zero use setsockopt(),
> the kernel successfully return 0 instead of 
> return error EINVAL or EFAULT.
> 
> This patch fix the problem.
> 
> Signed-off-by: Yang Hongyang<yanghy@cn.fujitsu.com>

Applied, thanks!

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

end of thread, other threads:[~2008-08-04  1:16 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20080722212927.937523165@vyatta.com>
2008-07-22 21:29 ` [PATCH 1/5] netns: dont alloc ipv6 fib timer list Stephen Hemminger
2008-07-22 21:33   ` David Miller
2008-07-22 21:29 ` [PATCH 2/5] ipv6: use round_jiffies Stephen Hemminger
2008-07-22 21:34   ` David Miller
2008-07-22 21:29 ` [PATCH 3/5] ipv6: use spin_trylock_bh Stephen Hemminger
2008-07-22 21:34   ` David Miller
2008-07-28  2:46   ` [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer Yang Hongyang
2008-07-22 21:29 ` [PATCH 4/5] ipv6: use kcalloc Stephen Hemminger
2008-07-22 21:35   ` David Miller
2008-07-22 21:29 ` [PATCH 5/5] ipv6: icmp6_dst_gc return change Stephen Hemminger
2008-07-22 21:35   ` David Miller
2008-07-28  2:56 [PATCH] IPv6:Fix the return value of Set Hop-by-Hop options header with NULL data pointer Yang Hongyang
2008-08-04  1:16 ` David 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).