more curious pedantry ... in netdevice.h, one reads:
/* These flag bits are private to the generic network queueing * layer; they may not be explicitly referenced by any other * code. */ enum netdev_state_t { __LINK_STATE_START, __LINK_STATE_PRESENT, __LINK_STATE_NOCARRIER, __LINK_STATE_LINKWATCH_PENDING, __LINK_STATE_DORMANT, }; ok, but there are definitely a few examples of what look like non-generic network queueing code referencing those enums. one example, drivers/net/ethernet/amd/sun3lance.c, which openly (and amusingly) admits that it shouldn't be doing this: dev->netdev_ops = &lance_netdev_ops; // KLUDGE -- REMOVE ME set_bit(__LINK_STATE_PRESENT, &dev->state); return 1; } there are a few more places (admittedly, not many) -- is this acceptable behaviour? rday