[PATCH] Fix OACTIVE for an(4)

Adrian Chadd adrian at freebsd.org
Fri Oct 3 08:29:54 UTC 2014

Having them as flags that can be seen from external is good for diagnostics.

Having external things change behaviour (like queuing packets and
running if_start) is error prone.

It isn't a wrong concept. Computers just grew up a bit more.


On 3 October 2014 01:13, Gleb Smirnoff <glebius at freebsd.org> wrote:
> On Thu, Oct 02, 2014 at 11:16:27AM -0400, John Baldwin wrote:
> J> > I haven't looked at the rest of the driver; is everything else around
> J> > OACTIVE locked correctly and consistently?
> J>
> J> As well as OACTIVE is for any other driver.
> Let me jump into this topic and discuss the if_drv_flags :)
> It seems to me that this in general was a wrong concept, both
> IFF_DRV_OACTIVE and IFF_DRV_RUNNING. The internal state of
> the driver can be known only to the driver itself and should
> be stored in the softc, covered with internal lock.
> There is simply no way to racelessly tell the state from the
> outside, without obtaining driver lock.
> In my ifnet plans I am considering to remove if_drv_flags.
> Can anyone convince me that this is a wrong idea and they
> should be kept?
> --
> Totus tuus, Glebius.

More information about the freebsd-current mailing list