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

Reply via email to