On Fri, Aug 24, 2018 at 07:17:38AM -0400, rpj...@crashcourse.ca wrote: > 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?
Not in a new driver. The sun3lance is a very old driver. I have misty memories of a Sun 3/60. There is nothing in this code about a driving a PHY. Maybe using netif_carrier_on() would work, but without having access to the hardware to test, i would just leave it alone. Andrew