Sophie

Sophie

distrib > Scientific%20Linux > 5x > x86_64 > by-pkgid > 89877e42827f16fa5f86b1df0c2860b1 > files > 2654

kernel-2.6.18-128.1.10.el5.src.rpm

From: Bill Burns <bburns@redhat.com>
Date: Thu, 7 Aug 2008 08:09:59 -0400
Subject: [xen] fix netloop restriction
Message-id: 489AE617.7070206@redhat.com
O-Subject: Re: [RHEL5.3 PATCH] Xen Fix netloop restriction
Bugzilla: 358281
RH-Acked-by: Markus Armbruster <armbru@redhat.com>
RH-Acked-by: Mark McLoughlin <markmc@redhat.com>
RH-Acked-by: Chris Lalancette <clalance@redhat.com>
RH-Acked-by: Don Dutile <ddutile@redhat.com>

Bill Burns wrote:

Fixes bz 358182 - default netloop driver creates too few devices by default

diff --git a/drivers/xen/netback/loopback.c b/drivers/xen/netback/loopback.c
index d1a03b6..6c45fae 100644
--- a/drivers/xen/netback/loopback.c
+++ b/drivers/xen/netback/loopback.c
@@ -298,9 +298,20 @@ static void __exit clean_loopback(int i)
 static int __init loopback_init(void)
 {
 	int i, err = 0;
+	struct net_device *tmp;
 
-	if (nloopbacks == -1)
-		nloopbacks = is_initial_xendomain() ? 4 : 0;
+	if (nloopbacks == -1) {
+		nloopbacks = 0;
+
+		if (is_initial_xendomain()) {
+			for(i = 1; (tmp = dev_get_by_index(i)); i++) {
+				nloopbacks++;
+				dev_put(tmp);
+			}
+		}
+	}
+
+	nloopbacks = max(nloopbacks, 4);
 
 	for (i = 0; i < nloopbacks; i++)
 		if ((err = make_loopback(i)) != 0)