https://bugzilla.redhat.com/show_bug.cgi?id=178557
authorMarc Fiuczynski <mef@cs.princeton.edu>
Sat, 20 Jun 2009 16:39:27 +0000 (16:39 +0000)
committerMarc Fiuczynski <mef@cs.princeton.edu>
Sat, 20 Jun 2009 16:39:27 +0000 (16:39 +0000)
lspci says that the builtin ethernet on nVidia nForce3 chipset is a
Bridge.  It should be a Communications device.

This specifically was a problem on planetlab2.icu.ac.kr, but there
were a few others as well for which we worked around the problem by
inserting a known-to-work NIC card.

With this little special exception we basically treat this device as a
network device and can therefore use this NIC.

source/systeminfo.py

index 8be877f..94d9f78 100755 (executable)
@@ -282,11 +282,17 @@ def get_system_modules( vars = {}, log = sys.stderr):
     for slot in devlist:
         dev = pcidevs[slot]
         base = (dev[4] & 0xff0000) >> 16
+        modules = pcimap.get(dev)
         if base not in (PCI_BASE_CLASS_STORAGE,
                         PCI_BASE_CLASS_NETWORK):
-            continue
+            # special exception for forcedeth NICs whose base id
+            # claims to be a Bridge, even though it is clearly a
+            # network device
+            if "forcedeth" in modules: 
+                base=PCI_BASE_CLASS_NETWORK
+            else:
+                continue
 
-        modules = pcimap.get(dev)
         if len(modules) > 0:
             if base == PCI_BASE_CLASS_NETWORK:
                 network_mods += modules