From 0f258c68899fa3f48315c92225db8762ac73c4a5 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen.hemminger@vyatta.com>
Date: Mon, 5 Apr 2010 22:10:13 -0700
Subject: Ignore errors from ethtool when setting speed/duplex

Many virtual devices don't implement speed/duplex, so just ignore
any errors.
---
 scripts/vyatta-interfaces.pl | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/scripts/vyatta-interfaces.pl b/scripts/vyatta-interfaces.pl
index 90a4e0f9..8970790f 100755
--- a/scripts/vyatta-interfaces.pl
+++ b/scripts/vyatta-interfaces.pl
@@ -586,13 +586,14 @@ sub set_speed_duplex {
 	}
     }
 
-    my @cmd = ('sudo', 'ethtool', '-s', $intf );
+    my $cmd = "sudo /usr/sbin/ethtool -s $intf";
     if ($nspeed eq 'auto') {
-	push @cmd, qw(autoneg on);
+	$cmd .= " autoneg on";
     } else {
-	push @cmd, 'speed', $nspeed, 'duplex', $nduplex, 'autoneg', 'off';
+	$cmd .= " speed $nspeed duplex $nduplex autoneg off";
     }
-    exec @cmd;
 
-    die "Command failed: ", join(' ', @cmd);
+    # ignore errors since many devices don't allow setting speed/duplex
+    $cmd .= " 2>/dev/null";
+    system ($cmd);
 }
-- 
cgit v1.2.3