it's it a bug in dev_open, which is already present in 1.2.x and
probably before. Following patch should solve the problem, at least
it does it for me:-)
Thomas.
diff -ru orig/linux-pre-2.0.4/net/core/dev.c linux-pre-2.0.4/net/core/dev.c
--- orig/linux-pre-2.0.4/net/core/dev.c Tue May 14 00:20:14 1996
+++ linux-pre-2.0.4/net/core/dev.c Tue May 14 22:37:12 1996
@@ -45,6 +45,8 @@
* Alan Cox : Cleaned up the backlog initialise.
* Craig Metz : SIOCGIFCONF fix if space for under
* 1 device.
+ * Thomas Bogendoerfer : Return ENODEV for dev_open, if there
+ * is no device open function.
*
*/
@@ -236,7 +238,7 @@
int dev_open(struct device *dev)
{
- int ret = 0;
+ int ret = -ENODEV;
/*
* Call device private open method
-- That process _deserves_ to die ("My name is Linus Torvalds, prepare to die"). [Linus Torvalds on linux-kernel]