From efdf6bab7760e39d6ba06e1fcd72248d92780432 Mon Sep 17 00:00:00 2001 From: Tambet Ingo Date: Mon, 27 Oct 2008 10:50:21 +0000 Subject: [PATCH] 2008-10-27 Tambet Ingo * src/nm-device-ethernet.c (nm_device_ethernet_get_speed): Implement correct speed reporting for fast devices (kernel >= 2.6.27). git-svn-id: http://svn-archive.gnome.org/svn/NetworkManager/trunk@4226 4912f4e0-d625-0410-9fb7-b9a5a253dbdc --- ChangeLog | 5 +++++ src/nm-device-ethernet.c | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index f298208f28..46f775cc3c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2008-10-27 Tambet Ingo + + * src/nm-device-ethernet.c (nm_device_ethernet_get_speed): Implement + correct speed reporting for fast devices (kernel >= 2.6.27). + 2008-10-26 Dan Williams Attempt to compensate for modems that don't enable full AT parsing before diff --git a/src/nm-device-ethernet.c b/src/nm-device-ethernet.c index 6fd3987bcf..4ef4ee1e42 100644 --- a/src/nm-device-ethernet.c +++ b/src/nm-device-ethernet.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -453,7 +454,14 @@ nm_device_ethernet_get_speed (NMDeviceEthernet *self) if (ioctl (fd, SIOCETHTOOL, &ifr) == -1) goto out; - speed = edata.speed != G_MAXUINT16 ? edata.speed : 0; +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,27) + speed = edata.speed; +#else + speed = ethtool_cmd_speed (&edata); +#endif + + if (speed == G_MAXUINT16 || speed == G_MAXUINT32) + speed = 0; out: close (fd);