Bug 157783
| Summary: | 8139cp not working for all 10ec:8139 devices | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Ronny Buchmann <ronny-rhbugzilla> |
| Component: | hotplug | Assignee: | Bill Nottingham <notting> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Brian Brock <bbrock> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | rawhide | CC: | davej, linville, oliva, rvokal, sgrubb, wtogami |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | FC5 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2006-09-25 18:47:06 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Ronny Buchmann
2005-05-15 12:17:06 UTC
There is an overlap between the devices supported by the 8139cp and 8139too drivers. This overlap cannot be resolved simply by looking at PCI IDs, although considering PCI revisions may prove useful. I'm reassigning to the developer responsible for hotplug. kudzu does the right thing with these devices. The kernel needs to not export duplicate PCI ids in general. "8139cp gets loaded by hotplug... kudzu will use 8139too instead" So, I guess comment 3 is correct, if irrelevant... :-) Once again, reassigning to _hotplug_... hotplug modprobes an alias consisting of vendor and device id. And modprobe loads the first module which fits. I think the best place for the information which module is responsible for which devices is best located in the kernel. kudzu simply overrides the information from the kernel (really a duplicate effort) "The kernel needs to not export duplicate PCI ids in general." +1 Given the mess vendors do with pci ids, it maybe better if modprobe loads all modules, not only the first. The problem is that there is no information exported for the kernel on a hotplug event to pick the correct device generally, and adding special code into the hotplug path for one driver just seems silly. The kernel *already* does the same thing with things like i8xx_tco and tpm_XXX; so userspace can at best pick one module with the current hotplug infrastructure as implemented by the kernel. FWIW, something has replaced 8139too with 8139cp in my /etc/modprobe.conf,
breaking eth0 on my AMD64 notebook. I can't quite figure out what it is, but it
sure is bogus. From the time the file was modified, it looks like it wasn't an
rpm script, but rather something done at boot time, that didn't affect that
boot, only subsequent boots. Is kudzu to blame? Should this be filed there?
FWIW, even though eth0 is now correctly aliased back to 8139too, and eth0 works
again, something still loads the 8139cp module. hotplug?
02:01.0 Class 0200: 10ec:8139 (rev 10)
02:01.0 Ethernet controller: Realtek Semiconductor Co., Ltd.
RTL-8139/8139C/8139C+ (rev 10)
Subsystem: Hewlett-Packard Company: Unknown device 006b
Flags: bus master, medium devsel, latency 64, IRQ 185
I/O ports at 7000 [size=256]
Memory at e0106800 (32-bit, non-prefetchable) [size=256]
Capabilities: [50] Power Management version 2
In the devel tree, a hotplug event for PCMCIA/Cardbus will load both modules, as they both match the alias on hotplugging. Only one should actually claim the card, though. A fix for the accidental reconfiguration should be in kudzu-1.1.122-1. This should be solved in FC5 and the FC6 devel tree. This should be solved in FC5 and the FC6 devel tree. |