mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: David Miller <davem@davemloft.net>
To: bunk@stusta.de
Cc: torvalds@linux-foundation.org, akpm@linux-foundation.org,
	linux-kernel@vger.kernel.org, lenb@kernel.org,
	netdev@vger.kernel.org
Subject: Re: [6/6] 2.6.21-rc4: known regressions
Date: Sat, 24 Mar 2007 12:50:46 -0700 (PDT)	[thread overview]
Message-ID: <20070324.125046.112613933.davem@davemloft.net> (raw)
In-Reply-To: <20070319.193829.102575512.davem@davemloft.net>

From: David Miller <davem@davemloft.net>
Date: Mon, 19 Mar 2007 19:38:29 -0700 (PDT)

> From: Adrian Bunk <bunk@stusta.de>
> Date: Sun, 18 Mar 2007 19:49:38 +0100
> 
> > Subject    : ipv6 crash
> > References : http://lkml.org/lkml/2007/3/10/2
> > Submitter  : Len Brown <lenb@kernel.org>
> > Status     : unknown
> 
> This is caused by some problem in the router round-robin code in
> net/ipv6/route.c:rt6_select()
 ...
> I'll see if I can come up with something to fix this properly.

Here is the fix I came up with and just posted to netdev for
a quick review, I'll push this to the appropriate places soon
if nobody spots any problems in it.

commit 4c68db63b8314df3cf30b7fe595a1b8935bb2cb0
Author: David S. Miller <davem@sunset.davemloft.net>
Date:   Sat Mar 24 12:06:32 2007 -0700

    [IPV6]: Fix routing round-robin locking.
    
    As per RFC2461, section 6.3.6, item #2, when no routers on the
    matching list are known to be reachable or probably reachable we
    do round robin on those available routes so that we make sure
    to probe as many of them as possible to detect when one becomes
    reachable faster.
    
    Each routing table has a rwlock protecting the tree and the linked
    list of routes at each leaf.  The round robin code executes during
    lookup and thus with the rwlock taken as a reader.  A small local
    spinlock tries to provide protection but this does not work at all
    for two reasons:
    
    1) The round-robin list manipulation, as coded, goes like this (with
       read lock held):
    
    	walk routes finding head and tail
    
    	spin_lock();
    	rotate list using head and tail
    	spin_unlock();
    
       While one thread is rotating the list, another thread can
       end up with stale values of head and tail and then proceed
       to corrupt the list when it gets the lock.  This ends up causing
       the OOPS in fib6_add() later onthat many people have been hitting.
    
    2) All the other code paths that run with the rwlock held as
       a reader do not expect the list to change on them, they
       expect it to remain completely fixed while they hold the
       lock in that way.
    
    So, simply stated, it is impossible to implement this correctly using
    a manipulation of the list without violating the rwlock locking
    semantics.
    
    Reimplement using a per-fib6_node round-robin pointer.  This way we
    don't need to manipulate the list at all, and since the round-robin
    pointer can only ever point to real existing entries we don't need
    to perform any locking on the changing of the round-robin pointer
    itself.  We only need to reset the round-robin pointer to NULL when
    the entry it is pointing to is removed.
    
    The idea is from Thomas Graf and it is very similar to how this
    was implemented before the advanced router selection code when in.
    
    Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/include/net/ip6_fib.h b/include/net/ip6_fib.h
index 9eda572..cf355a3 100644
--- a/include/net/ip6_fib.h
+++ b/include/net/ip6_fib.h
@@ -58,6 +58,7 @@ struct fib6_node
 	__u16			fn_bit;		/* bit key */
 	__u16			fn_flags;
 	__u32			fn_sernum;
+	struct rt6_info		*rr_ptr;
 };
 
 #ifndef CONFIG_IPV6_SUBTREES
diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
index f4d7be7..c46f909 100644
--- a/net/ipv6/ip6_fib.c
+++ b/net/ipv6/ip6_fib.c
@@ -1109,6 +1109,10 @@ static void fib6_del_route(struct fib6_node *fn, struct rt6_info **rtp,
 	rt6_stats.fib_rt_entries--;
 	rt6_stats.fib_discarded_routes++;
 
+	/* Reset round-robin state, if necessary */
+	if (fn->rr_ptr == rt)
+		fn->rr_ptr = NULL;
+
 	/* Adjust walkers */
 	read_lock(&fib6_walker_lock);
 	FOR_WALKERS(w) {
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index a6b3117..3931b33 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -363,55 +363,76 @@ static int rt6_score_route(struct rt6_info *rt, int oif,
 	return m;
 }
 
-static struct rt6_info *rt6_select(struct rt6_info **head, int oif,
-				   int strict)
+static struct rt6_info *find_match(struct rt6_info *rt, int oif, int strict,
+				   int *mpri, struct rt6_info *match)
 {
-	struct rt6_info *match = NULL, *last = NULL;
-	struct rt6_info *rt, *rt0 = *head;
-	u32 metric;
+	int m;
+
+	if (rt6_check_expired(rt))
+		goto out;
+
+	m = rt6_score_route(rt, oif, strict);
+	if (m < 0)
+		goto out;
+
+	if (m > *mpri) {
+		if (strict & RT6_LOOKUP_F_REACHABLE)
+			rt6_probe(match);
+		*mpri = m;
+		match = rt;
+	} else if (strict & RT6_LOOKUP_F_REACHABLE) {
+		rt6_probe(rt);
+	}
+
+out:
+	return match;
+}
+
+static struct rt6_info *find_rr_leaf(struct fib6_node *fn,
+				     struct rt6_info *rr_head,
+				     u32 metric, int oif, int strict)
+{
+	struct rt6_info *rt, *match;
 	int mpri = -1;
 
-	RT6_TRACE("%s(head=%p(*head=%p), oif=%d)\n",
-		  __FUNCTION__, head, head ? *head : NULL, oif);
+	match = NULL;
+	for (rt = rr_head; rt && rt->rt6i_metric == metric;
+	     rt = rt->u.dst.rt6_next)
+		match = find_match(rt, oif, strict, &mpri, match);
+	for (rt = fn->leaf; rt && rt != rr_head && rt->rt6i_metric == metric;
+	     rt = rt->u.dst.rt6_next)
+		match = find_match(rt, oif, strict, &mpri, match);
 
-	for (rt = rt0, metric = rt0->rt6i_metric;
-	     rt && rt->rt6i_metric == metric && (!last || rt != rt0);
-	     rt = rt->u.dst.rt6_next) {
-		int m;
+	return match;
+}
 
-		if (rt6_check_expired(rt))
-			continue;
+static struct rt6_info *rt6_select(struct fib6_node *fn, int oif, int strict)
+{
+	struct rt6_info *match, *rt0;
 
-		last = rt;
+	RT6_TRACE("%s(fn->leaf=%p, oif=%d)\n",
+		  __FUNCTION__, fn->leaf, oif);
 
-		m = rt6_score_route(rt, oif, strict);
-		if (m < 0)
-			continue;
+	rt0 = fn->rr_ptr;
+	if (!rt0)
+		fn->rr_ptr = rt0 = fn->leaf;
 
-		if (m > mpri) {
-			if (strict & RT6_LOOKUP_F_REACHABLE)
-				rt6_probe(match);
-			match = rt;
-			mpri = m;
-		} else if (strict & RT6_LOOKUP_F_REACHABLE) {
-			rt6_probe(rt);
-		}
-	}
+	match = find_rr_leaf(fn, rt0, rt0->rt6i_metric, oif, strict);
 
 	if (!match &&
-	    (strict & RT6_LOOKUP_F_REACHABLE) &&
-	    last && last != rt0) {
+	    (strict & RT6_LOOKUP_F_REACHABLE)) {
+		struct rt6_info *next = rt0->u.dst.rt6_next;
+
 		/* no entries matched; do round-robin */
-		static DEFINE_SPINLOCK(lock);
-		spin_lock(&lock);
-		*head = rt0->u.dst.rt6_next;
-		rt0->u.dst.rt6_next = last->u.dst.rt6_next;
-		last->u.dst.rt6_next = rt0;
-		spin_unlock(&lock);
+		if (!next || next->rt6i_metric != rt0->rt6i_metric)
+			next = fn->leaf;
+
+		if (next != rt0)
+			fn->rr_ptr = next;
 	}
 
-	RT6_TRACE("%s() => %p, score=%d\n",
-		  __FUNCTION__, match, mpri);
+	RT6_TRACE("%s() => %p\n",
+		  __FUNCTION__, match);
 
 	return (match ? match : &ip6_null_entry);
 }
@@ -657,7 +678,7 @@ restart_2:
 	fn = fib6_lookup(&table->tb6_root, &fl->fl6_dst, &fl->fl6_src);
 
 restart:
-	rt = rt6_select(&fn->leaf, fl->iif, strict | reachable);
+	rt = rt6_select(fn, fl->iif, strict | reachable);
 	BACKTRACK(&fl->fl6_src);
 	if (rt == &ip6_null_entry ||
 	    rt->rt6i_flags & RTF_CACHE)
@@ -752,7 +773,7 @@ restart_2:
 	fn = fib6_lookup(&table->tb6_root, &fl->fl6_dst, &fl->fl6_src);
 
 restart:
-	rt = rt6_select(&fn->leaf, fl->oif, strict | reachable);
+	rt = rt6_select(fn, fl->oif, strict | reachable);
 	BACKTRACK(&fl->fl6_src);
 	if (rt == &ip6_null_entry ||
 	    rt->rt6i_flags & RTF_CACHE)

  reply	other threads:[~2007-03-24 21:35 UTC|newest]

Thread overview: 259+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-03-16 16:33 Linux 2.6.21-rc4 Linus Torvalds
2007-03-16 17:01 ` Takashi Iwai
2007-03-16 17:44 ` Michal Piotrowski
2007-03-16 18:26   ` Andrew Morton
2007-03-16 18:55     ` Michal Piotrowski
2007-03-16 23:23       ` Jan Engelhardt
2007-03-16 23:31         ` Michal Piotrowski
2007-03-17  8:19           ` Mariusz Kozlowski
2007-03-16 18:54   ` Takashi Iwai
2007-03-16 19:03     ` Michal Piotrowski
2007-03-17 23:46       ` Adrian Bunk
2007-03-18 13:04         ` Michal Piotrowski
2007-03-16 20:34 ` Rafael J. Wysocki
2007-03-16 20:47   ` Thomas Gleixner
2007-03-16 23:25     ` [PATCH] clockevents: Fix suspend/resume to disk hangs Thomas Gleixner
2007-03-17  9:35       ` Milan Broz
2007-03-17 10:07       ` Thomas Meyer
2007-03-17 21:47         ` Rafael J. Wysocki
2007-03-18 17:58           ` Adrian Bunk
2007-03-18  0:42         ` appletouch quirk doesn't run at resume Adrian Bunk
2007-03-18 18:45           ` Jiri Kosina
2007-03-18 19:01             ` Thomas Meyer
2007-03-18 19:22               ` Jiri Kosina
2007-03-27 21:02                 ` Thomas Meyer
2007-03-28 12:26                   ` Jiri Kosina
2007-03-28 13:24                     ` Dmitry Torokhov
2007-03-28 16:51                       ` Thomas Meyer
2007-03-28 17:06                         ` Jiri Kosina
2007-03-28 17:35                           ` Dmitry Torokhov
2007-03-20  9:35       ` [PATCH] clockevents: Fix suspend/resume to disk hangs Marcus Better
2007-03-21 14:04         ` Thomas Gleixner
2007-03-22 10:34           ` Marcus Better
2007-03-23  9:14             ` Marcus Better
2007-03-23 10:05               ` Tino Keitel
2007-03-23 13:47               ` Rafael J. Wysocki
2007-03-23 14:36                 ` Marcus Better
2007-03-16 21:11 ` Linux 2.6.21-rc4 Randy Dunlap
2007-03-16 22:39   ` Randy Dunlap
2007-03-16 23:13     ` Chris Friesen
2007-03-16 23:27       ` Jan Engelhardt
2007-03-17  6:43     ` Sam Ravnborg
2007-03-18 12:39       ` Sam Ravnborg
2007-03-19  4:16         ` Randy Dunlap
2007-03-18 18:49 ` [1/6] 2.6.21-rc4: known regressions Adrian Bunk
2007-03-20 10:24   ` Tobias Diedrich
2007-03-20 11:14     ` Adrian Bunk
2007-03-22  3:45   ` Linus Torvalds
2007-03-22  4:18     ` Nick Piggin
2007-03-22 15:21       ` Linus Torvalds
2007-03-23  1:08         ` Mingming Cao
2007-03-23  1:40           ` Linus Torvalds
2007-03-23  2:11             ` Nick Piggin
2007-03-23  7:51               ` Michal Piotrowski
2007-03-23  9:37                 ` Nick Piggin
2007-03-23 17:19                   ` Adrian Bunk
2007-03-23 12:01                 ` [patch] hrtimers debug patch Ingo Molnar
     [not found]                   ` <4607BDD9.1010002@googlemail.com>
     [not found]                     ` <6bffcb0e0703260720i37bbb956o3d20019fe4ac9879@mail.gmail.com>
2007-03-26 14:33                       ` Thomas Gleixner
2007-03-26 14:42                         ` Michal Piotrowski
2007-03-26 15:07                           ` Michal Piotrowski
2007-03-26 17:02                     ` Ingo Molnar
2007-03-26 17:50                       ` Michal Piotrowski
2007-04-06 15:27                       ` Michal Piotrowski
2007-04-06 16:39                         ` Ingo Molnar
2007-03-23 11:42             ` [1/6] 2.6.21-rc4: known regressions Ingo Molnar
2007-03-23 11:56               ` Thomas Gleixner
2007-03-23 15:08                 ` [PATCH] i386: add command line option "local_apic_timer_c2_ok" Thomas Gleixner
2007-03-26 12:31                   ` Pavel Machek
2007-03-26 13:52                     ` Thomas Gleixner
2007-03-27 21:19                       ` Len Brown
2007-03-27 21:34                         ` Linus Torvalds
2007-03-27 22:16                           ` Len Brown
2007-03-28  2:18                             ` Len Brown
2007-03-29 14:15                               ` Andi Kleen
2007-03-29 14:53                               ` Langsdorf, Mark
2007-03-29 16:50                                 ` Andi Kleen
2007-03-29 20:02                                   ` Mark Langsdorf
2007-03-29 20:49                                     ` Andi Kleen
2007-03-29 21:16                                       ` Linus Torvalds
2007-03-29 21:45                                         ` Andreas Mohr
2007-03-29 21:56                                           ` Linus Torvalds
2007-03-29 22:06                                           ` Andi Kleen
2007-03-29 22:05                                         ` Andi Kleen
2007-03-30 21:06                                           ` Grzegorz Chwesewicz
2007-03-31  7:47                                           ` Grzegorz Chwesewicz
2007-03-29 21:43                                       ` Grzegorz Chwesewicz
2007-03-29 21:55                                         ` Grzegorz Chwesewicz
2007-03-29 14:19                           ` Andi Kleen
2007-03-23 18:13                 ` [1/6] 2.6.21-rc4: known regressions Linus Torvalds
2007-03-23 18:16                   ` Linus Torvalds
2007-03-23 18:28                     ` Linus Torvalds
2007-03-23 18:43                       ` Thomas Gleixner
2007-03-23 12:27             ` Ingo Molnar
2007-03-22 18:24       ` Mariusz Kozłowski
2007-03-18 18:49 ` [2/6] " Adrian Bunk
2007-03-18 19:25   ` Andi Kleen
2007-03-19 16:06   ` Randy Dunlap
2007-03-19 16:15     ` Adrian Bunk
2007-03-19 17:07       ` Randy Dunlap
2007-03-20 15:32   ` Ray Lee
2007-03-18 18:49 ` [3/6] " Adrian Bunk
2007-03-26  1:25   ` Jeff Chua
2007-03-26  4:05     ` Adrian Bunk
2007-03-26  5:37       ` Jeff Chua
2007-03-26 16:26         ` Thomas Gleixner
2007-03-26 17:46           ` Jeff Chua
2007-03-28  7:04             ` Thomas Gleixner
2007-03-28 13:43               ` Maxim
2007-03-28 14:41                 ` Ingo Molnar
2007-03-28 15:01                   ` Maxim
2007-03-28 16:38                     ` Linus Torvalds
2007-03-28 19:38                       ` [linux-pm] " David Brownell
2007-03-28 20:19                         ` Maxim
2007-03-28 20:59                           ` David Brownell
2007-03-28 21:27                             ` Maxim
2007-03-29 22:33                               ` David Brownell
2007-03-29 23:29                                 ` Maxim Levitsky
2007-03-30  0:09                                   ` David Brownell
2007-03-30  0:48                                     ` Maxim Levitsky
2007-03-28 20:42                         ` Linus Torvalds
2007-03-28 21:17                           ` David Brownell
2007-03-28 22:26                           ` Maxim
2007-03-29  4:41                       ` [ PATCH] Add suspend/resume for HPET was: " Maxim
2007-03-29  5:08                         ` Linus Torvalds
2007-03-29  5:47                           ` Maxim
2007-03-29 13:20                             ` Sergei Shtylyov
2007-03-29 13:31                               ` Maxim
2007-03-29 13:46                                 ` [PATCH v2] Add suspend/resume for HPET Maxim Levitsky
2007-03-29 16:53                                   ` Linus Torvalds
2007-03-29 17:28                                     ` Maxim Levitsky
2007-03-29 17:51                                     ` Ingo Molnar
2007-03-29 20:46                                       ` Andi Kleen
2007-03-29 18:11                                   ` Jeff Chua
2007-03-31 15:51                                   ` Thomas Gleixner
2007-03-31 16:01                                     ` Jeff Chua
2007-03-31 16:09                                       ` Thomas Gleixner
2007-03-31 16:09                                     ` Linus Torvalds
2007-03-31 16:33                                       ` Thomas Gleixner
2007-03-31 16:41                                         ` Greg KH
2007-03-31 16:53                                         ` Linus Torvalds
2007-03-31 17:02                                           ` Ingo Molnar
2007-03-31 18:18                                             ` [linux-pm] " David Brownell
2007-03-31 19:32                                               ` David Brownell
2007-04-01  3:13                                                 ` Jeff Chua
2007-04-01  4:13                                                   ` David Brownell
2007-03-31 17:08                                           ` Greg KH
2007-03-31 17:55                                           ` [linux-pm] " David Brownell
2007-03-31 16:56                                     ` Maxim Levitsky
2007-03-31 17:09                                       ` Linus Torvalds
2007-03-31 17:17                                         ` Ingo Molnar
2007-03-31 17:58                                           ` Daniel Walker
2007-03-29 16:35                             ` [ PATCH] Add suspend/resume for HPET was: Re: [3/6] 2.6.21-rc4: known regressions Linus Torvalds
2007-03-29 16:51                               ` Maxim Levitsky
2007-03-29 17:22                                 ` Linus Torvalds
2007-03-29 17:47                                   ` [patch, v2] add suspend/resume for HPET Ingo Molnar
2007-03-28 18:04                 ` [3/6] 2.6.21-rc4: known regressions Michael S. Tsirkin
2007-03-28 18:32                   ` Ingo Molnar
2007-03-28 18:35                   ` Randy Dunlap
2007-03-29 14:24                   ` Jeff Chua
2007-03-18 18:49 ` [4/6] " Adrian Bunk
2007-03-18 18:49 ` [5/6] " Adrian Bunk
2007-03-18 19:07   ` Maxim
2007-03-18 19:22     ` Adrian Bunk
2007-03-18 19:59       ` Maxim
2007-03-18 20:03         ` Maxim
2007-03-18 18:49 ` [6/6] " Adrian Bunk
2007-03-20  2:38   ` David Miller
2007-03-24 19:50     ` David Miller [this message]
2007-03-19 20:39 ` 2.6.21-rc4: known regressions with patches available Adrian Bunk
2007-03-20 11:02   ` [Alsa-devel] " Takashi Iwai
2007-03-23 18:48 ` [1/5] 2.6.21-rc4: known regressions (v2) Adrian Bunk
2007-03-25  4:45   ` David Miller
2007-03-25  5:08     ` Paul Collins
2007-03-25 12:22     ` Adrian Bunk
2007-03-23 18:48 ` [2/5] " Adrian Bunk
2007-03-23 21:08   ` Thomas Gleixner
2007-03-24  0:14   ` Ray Lee
2007-03-24  6:40     ` Thomas Gleixner
2007-03-24 18:17       ` Ray Lee
2007-03-24 19:11     ` [PATCH] x86_64: avoid sending LOCAL_TIMER_VECTOR IPI to itself Ingo Molnar
2007-03-25 19:24       ` Ray Lee
2007-03-26 10:01   ` [2/5] 2.6.21-rc4: known regressions (v2) Tejun Heo
2007-03-23 18:50 ` [3/5] " Adrian Bunk
2007-03-23 19:07   ` Maxim
2007-03-23 20:53   ` Rafael J. Wysocki
2007-03-24 17:04   ` Thomas Meyer
2007-03-24 18:02     ` Eric W. Biederman
2007-03-24 18:20       ` Thomas Meyer
2007-03-24 18:47         ` Eric W. Biederman
2007-03-24 20:34           ` Thomas Meyer
2007-03-25  3:39             ` Eric W. Biederman
2007-03-25 11:41               ` Thomas Meyer
2007-03-25 12:03                 ` Eric W. Biederman
2007-03-25 12:28                   ` Rafael J. Wysocki
2007-03-25 12:56                     ` Eric W. Biederman
2007-03-25 19:14                       ` Rafael J. Wysocki
2007-03-25 20:37                         ` Eric W. Biederman
2007-03-26 21:03                           ` Rafael J. Wysocki
2007-03-25 14:17                     ` Thomas Meyer
2007-03-25 18:56                       ` Rafael J. Wysocki
2007-03-25 13:54                   ` Thomas Meyer
2007-03-25 14:48                 ` Adrian Bunk
2007-03-25 17:25                   ` Thomas Meyer
2007-03-25 19:06                     ` Rafael J. Wysocki
2007-03-25 19:31                       ` Rafael J. Wysocki
2007-03-26 20:01               ` Luck, Tony
2007-03-27  3:29                 ` Eric W. Biederman
2007-04-02 15:38                   ` Bjorn Helgaas
2007-04-02 16:38                     ` Bjorn Helgaas
2007-04-02 19:50                     ` Eric W. Biederman
2007-03-25 21:34   ` Frédéric Riss
2007-03-26  6:45     ` Frédéric RISS
2007-03-26  9:14       ` Thomas Gleixner
2007-03-26 10:36         ` Frederic Riss
2007-03-26 18:53         ` Frédéric Riss
2007-03-26 19:02           ` Adrian Bunk
2007-03-26 19:39             ` Frederic Riss
2007-03-26 19:46               ` Adrian Bunk
2007-03-26 10:00   ` Marcus Better
2007-03-26 12:35     ` Pavel Machek
2007-03-26 14:11       ` Marcus Better
2007-03-26 14:34     ` Adrian Bunk
2007-03-26 17:42       ` Marcus Better
2007-03-26 18:48         ` Adrian Bunk
2007-03-27  9:42           ` Marcus Better
2007-03-23 18:50 ` [4/5] " Adrian Bunk
2007-03-23 19:15   ` Thomas Gleixner
2007-03-23 19:15     ` Adrian Bunk
2007-03-23 19:21     ` Thomas Gleixner
2007-03-23 22:23     ` Chuck Ebbert
2007-03-23 22:43       ` Thomas Gleixner
2007-03-23 23:35         ` Thomas Gleixner
2007-03-25 12:42           ` [PATCH] clocksource: Fix thinko in watchdog selection Thomas Gleixner
2007-03-23 23:00       ` [4/5] 2.6.21-rc4: known regressions (v2) Adrian Bunk
2007-03-23 23:05         ` Chuck Ebbert
2007-03-23 19:22   ` Thomas Gleixner
2007-03-24 13:47     ` Thomas Gleixner
2007-03-25 12:31       ` [PATCH] dynticks: fix hrtimer rounding error in next_timer_interrupt Thomas Gleixner
2007-03-23 19:49   ` [4/5] 2.6.21-rc4: known regressions (v2) Thomas Gleixner
     [not found]     ` <20070325071023.GL17532@mellanox.co.il>
2007-03-25  7:37       ` Thomas Gleixner
2007-03-25  8:57         ` Michael S. Tsirkin
2007-03-25 10:17           ` Thomas Gleixner
2007-03-25 10:15             ` Michael S. Tsirkin
2007-03-25 10:27               ` Thomas Gleixner
2007-03-25 10:25                 ` Michael S. Tsirkin
2007-03-25 10:38                   ` Thomas Gleixner
2007-03-25 11:16                     ` Ingo Molnar
2007-03-25 12:09                       ` Thomas Gleixner
2007-03-26 14:19       ` Michael S. Tsirkin
2007-03-23 20:00   ` Thomas Gleixner
2007-03-23 20:08   ` Thomas Gleixner
2007-03-24 13:59     ` Michal Piotrowski
2007-03-24 15:14       ` Thomas Gleixner
2007-03-24 16:13         ` Michal Piotrowski
2007-03-23 21:43   ` john stultz
2007-03-23 21:54     ` Linus Torvalds
2007-03-24  0:44       ` john stultz
2007-03-23 18:50 ` [5/5] " Adrian Bunk
2007-03-24 11:25 ` 2.6.21-rc4: known regressions with patches (v2) Adrian Bunk
2007-03-26 12:37   ` Bob Tracy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070324.125046.112613933.davem@davemloft.net \
    --to=davem@davemloft.net \
    --cc=akpm@linux-foundation.org \
    --cc=bunk@stusta.de \
    --cc=lenb@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®