I vote for makeing the open routine mandatory.
The reason, why I've changed the default return value of dev_open,
was a problem with a lance based ethernet card. When the lance driver
is unable to detect irq or dma, it leaves the device structure without
putting an open function in it. This is ok, but the lance driver has
already called ether_setup(), so it's possible to give the device
an IP address. As soon as IP sends a packet to the driver, the kernel
pancis.
If we don't make open mandatory (and undo my change for dev_open()),
we must change some of the ethernet drivers, to avoid the scenario
above.
Thomas.
-- That process _deserves_ to die ("My name is Linus Torvalds, prepare to die"). [Linus Torvalds on linux-kernel]