Stefan, This looks better with every iteration, I'm still lacking a few minor things though:
The implementation of the rule "if admin status down operational status should be down" only exists in the sysfs code. I would absolutely favour one clear interface representing the operational status of an interface. The transition from DOWN -> DORMANT: 1) responsible system puts up the lower layer and sends out notification. 2) rfc2863_policy() catches this up and sets operstate to DORMANT. Between 1) and 2) a lot can happen, f.e. vlan_transfer_operstate which would see the lower layer as UP when it is supposed to be DORMANT. This is not just a small theoretical race we can live with, a lost notification would imply transitions not taking place etc. Having such essential transitions taking place async is a big no-go to me. I'm still not convinced _what_ we gain by storing operstate a second time in operstate that would justify all the problems it creates. What's wrong with deriving it on the fly instead of being dependant on notifications? The locking with dev_base_lock seems useless, the purpose of dev_base_lock is to protect against readers and to serialize write access to the device list during register/unregister. Changing operstate to int would achieve the same effect. Could you maybe ellaborate the actual purpose behind this locking? dev_base_lock has been abused a few times in the past but we shouldn't continue to do so, it's _not_ a configuration write access serialization point. All these checks for IF_OPER_UNKNOWN are extremly ugly, is there really no way of getting rid of them? It should be possible to clearly state the operational state at all times. Besides that, please fix the coding style before even thinking about inclusion. ;-) - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html