e1000 v. e1000e
The e1000e driver, instead, supports PCI-Express adapters. It is a newer driver which is seen as being better written and easier to maintain. It is intended that all new hardware will be supported by this driver, and that, in particular, all PCI-Express hardware will use it. The only problem is that a few PCI-Express chipsets were added to the older e1000 driver before this policy was adopted. Since the newer driver also supports those chipsets, there are two drivers (with two completely different bodies of code) supporting the same hardware. The e1000 maintainers would like to end this duplication and put the e1000 driver into a stable maintenance mode.
To that end, earlier this month, it was announced that, as of 2.6.26, the PCI IDs corresponding to PCI-Express devices would be removed from the e1000 driver, and that all users of that affected hardware need to move over to e1000e. The e1000 developers had originally tried to make this move for 2.6.25, but they committed a fundamental faux pas in the process: they broke Linus's machine. So that change got reverted before 2.6.25-rc1 came out. Instead, now, we have the announcement that the change is coming in the next cycle (when the e1000e problems, presumably, will be fixed) and a bit of configuration trickery has been added; it causes the e1000 driver to not claim PCI-Express devices if the e1000e driver has been built into the kernel.
Ingo's problem is that he built the e1000 driver into his kernel, but
ended up with e1000e configured as a module which was never loaded. That combination leads
to a network adapter which does not work at all, since the built-in driver
no longer claims it. Ingo, a bit disgruntled at having to spend an hour
tracking down the problem, has suggested that it is a regression which must
be fixed. The e1000 driver maintainers have resisted doing so, but Linus,
having also been burned, agrees. So, while
this transition is likely to go ahead as scheduled, 2.6.25 will probably
have a configuration change designed to keep others from falling into a
similar trap.
| Index entries for this article | |
|---|---|
| Kernel | Device drivers/Network drivers |
